|
Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
|
ePacket key API More...
Enumerations | |
| enum | epacket_key_type { EPACKET_KEY_NETWORK = 0 , EPACKET_KEY_DEVICE = BIT(7) } |
| enum | epacket_key_interface { EPACKET_KEY_INTERFACE_SERIAL = 0 , EPACKET_KEY_INTERFACE_UDP = 1 , EPACKET_KEY_INTERFACE_BT_ADV = 2 , EPACKET_KEY_INTERFACE_BT_GATT = 3 , EPACKET_KEY_INTERFACE_NUM , EPACKET_KEY_INTERFACE_MASK = 0x7F } |
Functions | |
| int | epacket_key_derive (psa_key_id_t base_key, const uint8_t *info, uint8_t info_len, uint32_t salt, psa_key_id_t *output_key_id) |
| HKDF-SHA256 based key derivation. | |
| psa_key_id_t | epacket_key_id_get (uint8_t key_type, uint32_t key_identifier, uint32_t key_rotation) |
| Get PSA key ID from ePacket key ID. | |
| int | epacket_key_delete (psa_key_id_t key_id) |
| Delete a PSA key ID. | |
| int | epacket_key_extension_network_add (psa_key_id_t key_id, uint32_t network_id) |
| Add another network to the key module. | |
ePacket key API
#include <infuse/epacket/keys.h>
| Enumerator | |
|---|---|
| EPACKET_KEY_INTERFACE_SERIAL | |
| EPACKET_KEY_INTERFACE_UDP | |
| EPACKET_KEY_INTERFACE_BT_ADV | |
| EPACKET_KEY_INTERFACE_BT_GATT | |
| EPACKET_KEY_INTERFACE_NUM | |
| EPACKET_KEY_INTERFACE_MASK | |
| enum epacket_key_type |
#include <infuse/epacket/keys.h>
| Enumerator | |
|---|---|
| EPACKET_KEY_NETWORK | |
| EPACKET_KEY_DEVICE | |
| int epacket_key_delete | ( | psa_key_id_t | key_id | ) |
#include <infuse/epacket/keys.h>
Delete a PSA key ID.
| key_id | PSA key ID |
| 0 | on success |
| -EINVAL | on invalid key |
| int epacket_key_derive | ( | psa_key_id_t | base_key, |
| const uint8_t * | info, | ||
| uint8_t | info_len, | ||
| uint32_t | salt, | ||
| psa_key_id_t * | output_key_id ) |
#include <infuse/epacket/keys.h>
HKDF-SHA256 based key derivation.
Derived key lifetime is PSA_KEY_LIFETIME_VOLATILE. Derived key is only valid for PSA_ALG_CHACHA20_POLY1305.
| base_key | PSA key to use as the base for derivation |
| info | Optional application/usage specific array |
| info_len | Length of info |
| salt | Key derivation randomisation |
| output_key_id | Output key ID |
| 0 | on success |
| -EINVAL | on invalid base_key |
| -EIO | on error |
| int epacket_key_extension_network_add | ( | psa_key_id_t | key_id, |
| uint32_t | network_id ) |
#include <infuse/epacket/keys.h>
Add another network to the key module.
| key_id | PSA key ID for the network root key |
| network_id | Network ID associated with the PSA key |
| 0 | On success |
| -EINVAL | Invalid parameters |
| -EALREADY | Network is already added |
| -ENOMEM | No more extension networks can be added |
| psa_key_id_t epacket_key_id_get | ( | uint8_t | key_type, |
| uint32_t | key_identifier, | ||
| uint32_t | key_rotation ) |
#include <infuse/epacket/keys.h>
Get PSA key ID from ePacket key ID.
| key_type | ePacket key type (Combination of epacket_key_type and epacket_key_interface) |
| key_identifier | 3 byte key identifier |
| key_rotation | Rotation index of ePacket key |