/** * @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 */