/** | |
* @file ax_mbedtls.h | |
* @author NXP Semiconductors | |
* @version 1.0 | |
* @par License | |
* | |
* Copyright 2018 NXP | |
* SPDX-License-Identifier: Apache-2.0 | |
* | |
* @par Description | |
* Implementation of key association between A71CH and mbedtls. | |
* @par History | |
* 1.0 30-jan-2018 : Initial version | |
* | |
*****************************************************************************/ | |
#ifndef AX_MBEDTLS_H | |
#define AX_MBEDTLS_H | |
/** @ingroup ax_mbed_tls */ | |
/** @{ */ | |
#include "ax_api.h" | |
#include "mbedtls/pk.h" | |
#include "mbedtls/ssl.h" | |
/** | |
* @brief Associate a keypair provisioned in the secure element for | |
* subsequent operations. | |
* | |
* @param[in] key_index Index in which the keypair is provisoned in the SE | |
* @param[out] pkey Pointer to the mbedtls_pk_context which will be | |
* associated with data corresponding to the key_index | |
* | |
* @return 0 if successful, or 1 if unsuccessful | |
*/ | |
int ax_mbedtls_associate_keypair(SST_Index_t key_index, mbedtls_pk_context * pkey); | |
/** | |
* @brief Associate a pubkey provisioned in the secure element for | |
* subsequent operations. | |
* | |
* @param[in] key_index Index in which the pub key is provisioned in the SE | |
* @param[out] pkey Pointer to the mbedtls_pk_context which will be | |
* associated with data corresponding to the key index | |
* | |
* @return 0 if successful, or 1 if unsuccessful | |
*/ | |
int ax_mbedtls_associate_pubkey(SST_Index_t key_index, mbedtls_pk_context * pkey); | |
/** | |
* @brief Update ECDSA HandShake key with given inded. | |
* | |
* @param[in] key_index Index in which the pub key is provisioned in the SE | |
* @param[in,out] handshake Pointer to the mbedtls_ssl_handshake_params which | |
* will be associated with data corresponding to the | |
* key index | |
* | |
* @return 0 if successful, or 1 if unsuccessful | |
*/ | |
int ax_mbedtls_associate_ecdhctx(SST_Index_t key_index, mbedtls_ssl_handshake_params * handshake); | |
/** | |
* \brief This function frees the components of a key pair. Original implementation | |
* \param key The key pair to free. | |
*/ | |
void mbedtls_ecp_keypair_free_o( mbedtls_ecp_keypair *key ); | |
/** | |
* same as @ref mbedtls_ecp_tls_read_group | |
*/ | |
int mbedtls_ecp_tls_read_group_o( mbedtls_ecp_group *grp, const unsigned char **buf, size_t len ); | |
/** @} */ | |
#endif /* AX_MBEDTLS_H */ |