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
35
43
48
62
69psa_key_attributes_t infuse_security_hkdf_attributes(void);
70
78int infuse_security_cloud_public_key(uint8_t public_key[32]);
79
87int infuse_security_device_public_key(uint8_t public_key[32]);
88
98
107
116
125
134
143
154
161
165 psa_key_id_t base_key;
167 psa_algorithm_t algorithm;
169 psa_key_type_t key_type;
171 size_t key_bits;
173 psa_key_usage_t key_usage;
175 const void *salt;
177 size_t salt_len;
179 const void *info;
181 size_t info_len;
184};
185
194
207psa_key_id_t infuse_security_derive_chacha_key(psa_key_id_t base_key, const void *salt,
208 size_t salt_len, const void *info, size_t info_len,
209 bool force_export);
210
219
232int infuse_security_network_key_write(uint32_t id, const uint8_t key[32]);
233
246int infuse_security_secondary_network_key_write(uint32_t id, const uint8_t key[32]);
247
248#ifdef CONFIG_ZTEST
249
256int infuse_security_network_keys_load(void);
257
261void infuse_security_network_keys_unload(void);
262
263#endif /* CONFIG_ZTEST */
264
268
269#ifdef __cplusplus
270}
271#endif
272
273#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:163
psa_key_type_t key_type
Type of key to generate.
Definition security.h:169
size_t info_len
Length of info.
Definition security.h:181
size_t salt_len
Length of salt.
Definition security.h:177
const void * info
Optional application/usage specific array.
Definition security.h:179
psa_key_usage_t key_usage
How the key will be used.
Definition security.h:173
bool force_export
Force set PSA_KEY_USAGE_EXPORT attribute on generated key.
Definition security.h:183
psa_key_id_t base_key
Base key to use for HKDF.
Definition security.h:165
psa_algorithm_t algorithm
Algorithm key will be used with.
Definition security.h:167
size_t key_bits
Length of key to generate (bits)
Definition security.h:171
const void * salt
Key derivation randomisation.
Definition security.h:175