Mbed Cloud example program for workshop in W27 2018.
key_config_manager.h File Reference
Keys and Configuration Manager (KCM) APIs. More...
Go to the source code of this file.
Functions | |
kcm_status_e | kcm_init (void) |
Initiate the KCM module. | |
kcm_status_e | kcm_finalize (void) |
Finalize the KCM module. | |
kcm_status_e | kcm_item_store (const uint8_t *kcm_item_name, size_t kcm_item_name_len, kcm_item_type_e kcm_item_type, bool kcm_item_is_factory, const uint8_t *kcm_item_data, size_t kcm_item_data_size, const kcm_security_desc_s security_desc) |
Store the KCM item into a secure storage. | |
kcm_status_e | kcm_item_get_data_size (const uint8_t *kcm_item_name, size_t kcm_item_name_len, kcm_item_type_e kcm_item_type, size_t *kcm_item_data_size_out) |
Retrieve the KCM item data size from a secure storage. | |
kcm_status_e | kcm_item_get_data (const uint8_t *kcm_item_name, size_t kcm_item_name_len, kcm_item_type_e kcm_item_type, uint8_t *kcm_item_data_out, size_t kcm_item_data_max_size, size_t *kcm_item_data_act_size_out) |
Retrieve KCM item data from a secure storage. | |
kcm_status_e | kcm_item_update_data (const uint8_t *kcm_item_name, size_t kcm_item_name_len, kcm_item_type_e kcm_item_type, const uint8_t *kcm_item_data, size_t kcm_item_data_size) |
Update KCM item data in a secure storage. | |
kcm_status_e | kcm_item_delete (const uint8_t *kcm_item_name, size_t kcm_item_name_len, kcm_item_type_e kcm_item_type) |
Delete a KCM item from a secure storage. | |
kcm_status_e | kcm_factory_reset (void) |
Reset the KCM secure storage to factory state. | |
kcm_status_e | kcm_key_pair_generate_and_store (kcm_crypto_key_scheme_s key_scheme, const uint8_t *key_name, size_t key_name_len, uint8_t *pub_key_der_out, size_t pub_key_der_size, const kcm_security_desc_s priv_key_sec_desc, const kcm_security_desc_s pub_key_sec_desc) |
Generate a key pair complying the given crypto scheme DER. | |
kcm_status_e | kcm_csr_generate (const uint8_t *key_name, size_t key_name_len, uint8_t **csr_out, size_t *csr_size_out) |
Generate a general CSR from the given private and public keys. |
Detailed Description
Keys and Configuration Manager (KCM) APIs.
Definition in file key_config_manager.h.
Function Documentation
kcm_status_e kcm_csr_generate | ( | const uint8_t * | key_name, |
size_t | key_name_len, | ||
uint8_t ** | csr_out, | ||
size_t * | csr_size_out | ||
) |
Generate a general CSR from the given private and public keys.
Further design is needed
- Parameters:
-
key_name The key name to fetch from storage(public/private). key_name_len The key name len. csr_out Pointer to generated E2E CSR. csr_size_out Size of the E2E CSR.
- Returns:
- Operation status.
kcm_status_e kcm_factory_reset | ( | void | ) |
Reset the KCM secure storage to factory state.
- Returns:
- KCM_STATUS_SUCCESS in case of success or one of the `kcm_status_e` errors otherwise.
Definition at line 312 of file key_config_manager.c.
kcm_status_e kcm_finalize | ( | void | ) |
Finalize the KCM module.
Finalizes and frees file storage resources.
- Returns:
- KCM_STATUS_SUCCESS in case of success or one of the `kcm_status_e` errors otherwise.
Definition at line 108 of file key_config_manager.c.
kcm_status_e kcm_init | ( | void | ) |
Initiate the KCM module.
Allocates and initializes file storage resources.
- Returns:
- KCM_STATUS_SUCCESS in case of success or one of the `kcm_status_e` errors otherwise.
Definition at line 91 of file key_config_manager.c.
kcm_status_e kcm_item_delete | ( | const uint8_t * | kcm_item_name, |
size_t | kcm_item_name_len, | ||
kcm_item_type_e | kcm_item_type | ||
) |
Delete a KCM item from a secure storage.
- Parameters:
-
[in] kcm_item_name KCM item name. [in] kcm_item_name_len KCM item name length. [in] kcm_item_type KCM item type as defined in `kcm_item_type_e`
- Returns:
- KCM_STATUS_SUCCESS status in case of success or one of kcm_status_e errors otherwise.
Definition at line 275 of file key_config_manager.c.
kcm_status_e kcm_item_get_data | ( | const uint8_t * | kcm_item_name, |
size_t | kcm_item_name_len, | ||
kcm_item_type_e | kcm_item_type, | ||
uint8_t * | kcm_item_data_out, | ||
size_t | kcm_item_data_max_size, | ||
size_t * | kcm_item_data_act_size_out | ||
) |
Retrieve KCM item data from a secure storage.
- Parameters:
-
[in] kcm_item_name KCM item name. [in] kcm_item_name_len KCM item name length. [in] kcm_item_type KCM item type as defined in `kcm_item_type_e` [out] kcm_item_data_out KCM item data output buffer. Can be NULL if `kcm_item_data_size` is 0. [in] kcm_item_data_max_size The maximum size of the KCM item data output buffer in bytes. [out] kcm_item_data_act_size_out Actual KCM item data output buffer size in bytes.
- Returns:
- KCM_STATUS_SUCCESS in case of success or one of the `kcm_status_e` errors otherwise.
Definition at line 234 of file key_config_manager.c.
kcm_status_e kcm_item_get_data_size | ( | const uint8_t * | kcm_item_name, |
size_t | kcm_item_name_len, | ||
kcm_item_type_e | kcm_item_type, | ||
size_t * | kcm_item_data_size_out | ||
) |
Retrieve the KCM item data size from a secure storage.
- Parameters:
-
[in] kcm_item_name KCM item name. [in] kcm_item_name_len KCM item name length. [in] kcm_item_type KCM item type as defined in `kcm_item_type_e` [out] kcm_item_data_size_out KCM item data size in bytes.
- Returns:
- KCM_STATUS_SUCCESS in case of success or one of the `kcm_status_e` errors otherwise.
Definition at line 193 of file key_config_manager.c.
kcm_status_e kcm_item_store | ( | const uint8_t * | kcm_item_name, |
size_t | kcm_item_name_len, | ||
kcm_item_type_e | kcm_item_type, | ||
bool | kcm_item_is_factory, | ||
const uint8_t * | kcm_item_data, | ||
size_t | kcm_item_data_size, | ||
const kcm_security_desc_s | security_desc | ||
) |
Store the KCM item into a secure storage.
- Parameters:
-
[in] kcm_item_name KCM item name. [in] kcm_item_name_len KCM item name length. [in] kcm_item_type KCM item type as defined in `kcm_item_type_e` [in] kcm_item_is_factory True if the KCM item is a factory item, otherwise false. [in] kcm_item_data KCM item data buffer. Can be NULL if `kcm_item_data_size` is 0. [in] kcm_item_data_size KCM item data buffer size in bytes. Can be 0 if you wish to store an empty file. [in] security_desc Security descriptor.
- Returns:
- KCM_STATUS_SUCCESS in case of success or one of the `kcm_status_e` errors otherwise.
Definition at line 125 of file key_config_manager.c.
kcm_status_e kcm_item_update_data | ( | const uint8_t * | kcm_item_name, |
size_t | kcm_item_name_len, | ||
kcm_item_type_e | kcm_item_type, | ||
const uint8_t * | kcm_item_data, | ||
size_t | kcm_item_data_size | ||
) |
Update KCM item data in a secure storage.
- Parameters:
-
[in] kcm_item_name KCM item name. [in] kcm_item_name_len KCM item name length. [in] kcm_item_type KCM item type as defined in `kcm_item_type_e` [in] kcm_item_data KCM item data buffer. [in] kcm_item_data_size KCM item data buffer size in bytes.
- Returns:
- KCM_STATUS_SUCCESS in case of success or one of the `kcm_status_e` errors otherwise.
kcm_status_e kcm_key_pair_generate_and_store | ( | kcm_crypto_key_scheme_s | key_scheme, |
const uint8_t * | key_name, | ||
size_t | key_name_len, | ||
uint8_t * | pub_key_der_out, | ||
size_t | pub_key_der_size, | ||
const kcm_security_desc_s | priv_key_sec_desc, | ||
const kcm_security_desc_s | pub_key_sec_desc | ||
) |
Generate a key pair complying the given crypto scheme DER.
Saves the private key and exposes the public key.
- Parameters:
-
key_scheme The crypto scheme. key_name The key name for which a key pair is generated. key_name_len Key name length. pub_key_der_out Public key to generate in DER format. pub_key_der_size Public key size in bytes. priv_key_sec_desc Private key security descriptor. pub_key_sec_desc Public key security descriptor.
- Returns:
- Operation status.
Generated on Tue Jul 12 2022 16:22:13 by 1.7.2