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
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 <psa/crypto_types.h>
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
41
46
53psa_key_attributes_t infuse_security_hkdf_attributes(void);
54
60void infuse_security_cloud_public_key(uint8_t public_key[32]);
61
67void infuse_security_device_public_key(uint8_t public_key[32]);
68
77
86
95
106
113
117 psa_key_id_t base_key;
119 psa_algorithm_t algorithm;
121 psa_key_type_t key_type;
123 size_t key_bits;
125 psa_key_usage_t key_usage;
127 const void *salt;
129 size_t salt_len;
131 const void *info;
133 size_t info_len;
136};
137
146
159psa_key_id_t infuse_security_derive_chacha_key(psa_key_id_t base_key, const void *salt,
160 size_t salt_len, const void *info, size_t info_len,
161 bool force_export);
162
172
179
188
193#ifdef __cplusplus
194}
195#endif
196
197#endif /* INFUSE_SDK_INCLUDE_INFUSE_SECURITY_H_ */
void infuse_security_cloud_public_key(uint8_t public_key[32])
Retrieve current cloud public key.
psa_key_id_t infuse_security_device_root_key(void)
Get device root key identifier.
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.
uint32_t infuse_security_network_key_identifier(void)
Get the current network key identifier.
void infuse_security_disable_dap(void)
Disable the Debug-Access-Port.
uint32_t infuse_security_device_key_identifier(void)
Get the current device key identifier.
void infuse_security_device_public_key(uint8_t public_key[32])
Retrieve current device public key.
psa_key_attributes_t infuse_security_hkdf_attributes(void)
Retrieve the key attributes required for creating a key compatible with infuse_security_derive_chacha...
uint32_t infuse_security_secondary_network_key_identifier(void)
Get the secondary network key identifier.
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_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.
Parameters to control key creation.
Definition security.h:115
psa_key_type_t key_type
Type of key to generate.
Definition security.h:121
size_t info_len
Length of info.
Definition security.h:133
size_t salt_len
Length of salt.
Definition security.h:129
const void * info
Optional application/usage specific array.
Definition security.h:131
psa_key_usage_t key_usage
How the key will be used.
Definition security.h:125
bool force_export
Force set PSA_KEY_USAGE_EXPORT attribute on generated key.
Definition security.h:135
psa_key_id_t base_key
Base key to use for HKDF.
Definition security.h:117
psa_algorithm_t algorithm
Algorithm key will be used with.
Definition security.h:119
size_t key_bits
Length of key to generate (bits)
Definition security.h:123
const void * salt
Key derivation randomisation.
Definition security.h:127