Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
security.h
Go to the documentation of this file.
1
13
14#ifndef INFUSE_SDK_INCLUDE_INFUSE_SECURITY_H_
15#define INFUSE_SDK_INCLUDE_INFUSE_SECURITY_H_
16
17#include <stdint.h>
18#include <stdbool.h>
19
20#include <zephyr/net/tls_credentials.h>
21
22#include <infuse/security_ids.h>
23
24#include <psa/crypto_types.h>
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
36
44
49
63
70psa_key_attributes_t infuse_security_hkdf_attributes(void);
71
79int infuse_security_cloud_public_key(uint8_t public_key[32]);
80
88int infuse_security_device_public_key(uint8_t public_key[32]);
89
99
108
117
126
135
144
155
162
166 psa_key_id_t base_key;
168 psa_algorithm_t algorithm;
170 psa_key_type_t key_type;
172 size_t key_bits;
174 psa_key_usage_t key_usage;
176 const void *salt;
178 size_t salt_len;
180 const void *info;
182 size_t info_len;
185};
186
195
208psa_key_id_t infuse_security_derive_chacha_key(psa_key_id_t base_key, const void *salt,
209 size_t salt_len, const void *info, size_t info_len,
210 bool force_export);
211
220
233int infuse_security_network_key_write(uint32_t id, const uint8_t key[32]);
234
247int infuse_security_secondary_network_key_write(uint32_t id, const uint8_t key[32]);
248
249#ifdef CONFIG_ZTEST
250
257int infuse_security_network_keys_load(void);
258
262void infuse_security_network_keys_unload(void);
263
264#endif /* CONFIG_ZTEST */
265
269
270#ifdef __cplusplus
271}
272#endif
273
274#endif /* INFUSE_SDK_INCLUDE_INFUSE_SECURITY_H_ */
int infuse_security_network_key_write(uint32_t id, const uint8_t key[32])
Update the device network key.
psa_key_id_t infuse_security_device_root_key(void)
Get device root key identifier.
int infuse_security_cloud_public_key(uint8_t public_key[32])
Retrieve current cloud public key.
int infuse_security_device_root_reset(void)
Reset the device root key-pair.
int infuse_security_device_public_key(uint8_t public_key[32])
Retrieve current device public key.
psa_key_id_t infuse_security_device_sign_key(void)
Get device signing key identifier.
psa_key_id_t infuse_security_network_root_key(void)
Get network root key identifier.
psa_key_id_t infuse_security_secondary_device_root_key(void)
Get secondary device root key identifier.
int infuse_security_secondary_remote_public_key(uint8_t public_key[32])
Retrieve current secondary remote public key.
int infuse_security_secondary_device_key_reset(void)
Delete cached secondary device key information.
void infuse_security_disable_dap(void)
Disable the Debug-Access-Port.
psa_key_attributes_t infuse_security_hkdf_attributes(void)
Retrieve the key attributes required for creating a key compatible with infuse_security_derive_chacha...
psa_key_id_t infuse_security_derive_chacha_key(psa_key_id_t base_key, const void *salt, size_t salt_len, const void *info, size_t info_len, bool force_export)
Derive a key for use with ChaCha20-Poly1305.
psa_key_id_t infuse_security_secondary_device_sign_key(void)
Get secondary device signing key identifier.
int infuse_security_secondary_network_key_write(uint32_t id, const uint8_t key[32])
Update the device secondary network key.
psa_key_id_t infuse_security_derive_key(const struct infuse_security_key_params *params)
Derive a key for use with PSA.
int infuse_security_init(void)
Initialise core security systems.
psa_key_id_t infuse_security_secondary_network_root_key(void)
Get secondary network root key identifier.
sec_tag_t infuse_security_coap_dtls_tag(void)
Get security tag for use with Infuse-IoT COAP server.
Infuse Platform Security Identifiers.
Parameters to control key creation.
Definition security.h:164
psa_key_type_t key_type
Type of key to generate.
Definition security.h:170
size_t info_len
Length of info.
Definition security.h:182
size_t salt_len
Length of salt.
Definition security.h:178
const void * info
Optional application/usage specific array.
Definition security.h:180
psa_key_usage_t key_usage
How the key will be used.
Definition security.h:174
bool force_export
Force set PSA_KEY_USAGE_EXPORT attribute on generated key.
Definition security.h:184
psa_key_id_t base_key
Base key to use for HKDF.
Definition security.h:166
psa_algorithm_t algorithm
Algorithm key will be used with.
Definition security.h:168
size_t key_bits
Length of key to generate (bits)
Definition security.h:172
const void * salt
Key derivation randomisation.
Definition security.h:176