14#ifndef INFUSE_SDK_INCLUDE_INFUSE_SECURITY_H_
15#define INFUSE_SDK_INCLUDE_INFUSE_SECURITY_H_
20#include <zephyr/net/tls_credentials.h>
24#include <psa/crypto_types.h>
208 size_t salt_len,
const void *info,
size_t info_len,
256int infuse_security_network_keys_load(
void);
261void infuse_security_network_keys_unload(
void);
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