17 #ifndef __KEYS_CONFIG_MANAGER_H__ 18 #define __KEYS_CONFIG_MANAGER_H__ 91 size_t kcm_item_name_len,
93 bool kcm_item_is_factory,
94 const uint8_t *kcm_item_data,
95 size_t kcm_item_data_size,
119 size_t kcm_item_name_len,
121 size_t *kcm_item_data_size_out);
145 size_t kcm_item_name_len,
147 uint8_t *kcm_item_data_out,
148 size_t kcm_item_data_max_size,
149 size_t *kcm_item_data_act_size_out);
176 size_t kcm_item_name_len,
178 uint8_t ** kcm_item_data_out,
179 size_t * kcm_item_data_size_out);
181 #ifdef MBED_CONF_MBED_CLOUD_CLIENT_PSA_SUPPORT 203 kcm_status_e kcm_item_get_handle(
const uint8_t *kcm_item_name,
204 size_t kcm_item_name_len,
219 #ifdef MBED_CONF_MBED_CLOUD_CLIENT_SECURE_ELEMENT_SUPPORT 224 #define KCM_ITEM_EXTRA_INFO_INIT {KCM_LOCATION_PSA, KCM_LOCATION_PSA} 225 static inline kcm_item_extra_info_s kcm_item_extra_info_init(
void)
227 const kcm_item_extra_info_s extra_info = KCM_ITEM_EXTRA_INFO_INIT;
248 kcm_status_e kcm_item_get_location(
const uint8_t *item_name,
249 size_t item_name_len,
251 kcm_item_location_e *item_location_out);
266 kcm_status_e kcm_se_private_key_get_slot(
const uint8_t *prv_key_name,
267 size_t prv_key_name_len,
268 uint64_t *se_prv_key_slot);
271 #endif // #ifdef MBED_CONF_MBED_CLOUD_CLIENT_SECURE_ELEMENT_SUPPORT 272 #endif // #ifdef MBED_CONF_MBED_CLOUD_CLIENT_PSA_SUPPORT 293 size_t kcm_item_name_len,
313 const uint8_t *kcm_chain_name,
314 size_t kcm_chain_name_len,
315 size_t kcm_chain_len,
316 bool kcm_chain_is_factory);
340 const uint8_t *kcm_chain_name,
341 size_t kcm_chain_name_len,
342 size_t *kcm_chain_len_out);
362 const uint8_t *kcm_cert_data,
363 size_t kcm_cert_data_size);
377 size_t kcm_chain_name_len);
394 size_t *kcm_cert_data_size);
413 uint8_t *kcm_cert_data,
414 size_t kcm_max_cert_data_size,
415 size_t *kcm_actual_cert_data_size);
469 const uint8_t *private_key_name,
470 size_t private_key_name_len,
471 const uint8_t *public_key_name,
472 size_t public_key_name_len,
473 bool kcm_item_is_factory,
492 size_t private_key_name_len,
494 uint8_t *csr_buff_out,
495 size_t csr_buff_max_size,
496 size_t *csr_buff_act_size);
529 const uint8_t *private_key_name,
530 size_t private_key_name_len,
531 const uint8_t *public_key_name,
532 size_t public_key_name_len,
533 bool kcm_item_is_factory,
535 uint8_t *csr_buff_out,
536 size_t csr_buff_max_size,
537 size_t *csr_buff_act_size_out,
559 size_t kcm_cert_data_size,
560 const uint8_t *kcm_priv_key_name,
561 size_t kcm_priv_key_name_len);
587 const uint8_t *private_key_name,
588 size_t private_key_name_len,
589 const uint8_t *hash_digest,
590 size_t hash_digest_size,
591 uint8_t *signature_data_out,
592 size_t signature_data_max_size,
593 size_t *signature_data_act_size_out);
619 const uint8_t *public_key_name,
620 size_t public_key_name_len,
621 const uint8_t *hash_digest,
622 size_t hash_digest_size,
623 const uint8_t *signature,
624 size_t signature_size);
641 #ifndef MBED_CONF_MBED_CLOUD_CLIENT_PSA_SUPPORT 659 const uint8_t *private_key_name,
660 size_t private_key_name_len,
661 const uint8_t *peer_public_key,
662 size_t peer_public_key_size,
663 uint8_t *shared_secret,
664 size_t shared_secret_max_size,
665 size_t *shared_secret_act_size_out);
666 #else //MBED_CONF_MBED_CLOUD_CLIENT_PSA_SUPPORT 690 const uint8_t *private_key_name,
691 size_t private_key_name_len,
692 const uint8_t *peer_public_key,
693 size_t peer_public_key_size,
694 uint8_t *shared_secret,
695 size_t shared_secret_max_size,
696 size_t *shared_secret_act_size_out);
698 #endif //MBED_CONF_MBED_CLOUD_CLIENT_PSA_SUPPORT 704 #endif //__KEYS_CONFIG_MANAGER_H__ kcm_crypto_key_scheme_e
Definition: kcm_defs.h:74
kcm_status_e kcm_cert_chain_close(kcm_cert_chain_handle kcm_chain_handle)
kcm_status_e kcm_asymmetric_sign(const uint8_t *private_key_name, size_t private_key_name_len, const uint8_t *hash_digest, size_t hash_digest_size, uint8_t *signature_data_out, size_t signature_data_max_size, size_t *signature_data_act_size_out)
Key and configuration manager (KCM) status/error codes. This list may grow as needed.
kcm_status_e kcm_csr_generate(const uint8_t *private_key_name, size_t private_key_name_len, const kcm_csr_params_s *csr_params, uint8_t *csr_buff_out, size_t csr_buff_max_size, size_t *csr_buff_act_size)
kcm_status_e kcm_cert_chain_add_next(kcm_cert_chain_handle kcm_chain_handle, const uint8_t *kcm_cert_data, size_t kcm_cert_data_size)
kcm_status_e kcm_cert_chain_open(kcm_cert_chain_handle *kcm_chain_handle, const uint8_t *kcm_chain_name, size_t kcm_chain_name_len, size_t *kcm_chain_len_out)
uintptr_t kcm_key_handle_t
Definition: kcm_defs.h:88
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)
kcm_status_e kcm_finalize(void)
kcm_status_e kcm_item_get_size_and_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_size_out)
void * kcm_security_desc_s
Definition: kcm_defs.h:94
Definition: kcm_defs.h:104
kcm_status_e kcm_generate_random(uint8_t *buffer, size_t buffer_size)
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)
kcm_status_e kcm_cert_chain_get_next_size(kcm_cert_chain_handle kcm_chain_handle, size_t *kcm_cert_data_size)
kcm_item_type_e
Definition: kcm_defs.h:34
kcm_status_e kcm_factory_reset(void)
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)
Key and configuration manager (KCM) definitions.
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 kcm_item_info)
kcm_status_e kcm_asymmetric_verify(const uint8_t *public_key_name, size_t public_key_name_len, const uint8_t *hash_digest, size_t hash_digest_size, const uint8_t *signature, size_t signature_size)
kcm_status_e
Definition: kcm_status.h:30
kcm_status_e kcm_cert_chain_delete(const uint8_t *kcm_chain_name, size_t kcm_chain_name_len)
kcm_status_e kcm_cert_chain_create(kcm_cert_chain_handle *kcm_chain_handle, const uint8_t *kcm_chain_name, size_t kcm_chain_name_len, size_t kcm_chain_len, bool kcm_chain_is_factory)
kcm_status_e kcm_generate_keys_and_csr(kcm_crypto_key_scheme_e key_scheme, const uint8_t *private_key_name, size_t private_key_name_len, const uint8_t *public_key_name, size_t public_key_name_len, bool kcm_item_is_factory, const kcm_csr_params_s *csr_params, uint8_t *csr_buff_out, size_t csr_buff_max_size, size_t *csr_buff_act_size_out, const kcm_security_desc_s kcm_item_info)
kcm_status_e kcm_init(void)
kcm_status_e kcm_cert_chain_get_next_data(kcm_cert_chain_handle kcm_chain_handle, uint8_t *kcm_cert_data, size_t kcm_max_cert_data_size, size_t *kcm_actual_cert_data_size)
kcm_status_e kcm_certificate_verify_with_private_key(const uint8_t *kcm_cert_data, size_t kcm_cert_data_size, const uint8_t *kcm_priv_key_name, size_t kcm_priv_key_name_len)
kcm_status_e kcm_key_pair_generate_and_store(const kcm_crypto_key_scheme_e key_scheme, const uint8_t *private_key_name, size_t private_key_name_len, const uint8_t *public_key_name, size_t public_key_name_len, bool kcm_item_is_factory, const kcm_security_desc_s kcm_item_info)