26 #ifndef MBEDTLS_PSA_UTIL_H 27 #define MBEDTLS_PSA_UTIL_H 29 #if !defined(MBEDTLS_CONFIG_FILE) 32 #include MBEDTLS_CONFIG_FILE 35 #if defined(MBEDTLS_USE_PSA_CRYPTO) 120 #if defined(MBEDTLS_MD2_C) 124 #if defined(MBEDTLS_MD4_C) 128 #if defined(MBEDTLS_MD5_C) 132 #if defined(MBEDTLS_SHA1_C) 136 #if defined(MBEDTLS_SHA256_C) 142 #if defined(MBEDTLS_SHA512_C) 148 #if defined(MBEDTLS_RIPEMD160_C) 160 static inline int mbedtls_psa_get_ecc_oid_from_id(
162 char const **oid,
size_t *oid_len )
169 #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) 175 #if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) 181 #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) 187 #if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) 193 #if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) 204 #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) 210 #if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) 216 #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) 227 #if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) 233 #if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) 239 #if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) 253 #define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH 1 255 #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) 256 #if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 192 + 7 ) / 8 ) + 1 ) 257 #undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH 258 #define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 192 + 7 ) / 8 ) + 1 ) 262 #if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) 263 #if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 224 + 7 ) / 8 ) + 1 ) 264 #undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH 265 #define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 224 + 7 ) / 8 ) + 1 ) 269 #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) 270 #if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 256 + 7 ) / 8 ) + 1 ) 271 #undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH 272 #define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 256 + 7 ) / 8 ) + 1 ) 276 #if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) 277 #if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 384 + 7 ) / 8 ) + 1 ) 278 #undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH 279 #define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 384 + 7 ) / 8 ) + 1 ) 283 #if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) 284 #if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 521 + 7 ) / 8 ) + 1 ) 285 #undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH 286 #define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 521 + 7 ) / 8 ) + 1 ) 290 #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) 291 #if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 192 + 7 ) / 8 ) + 1 ) 292 #undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH 293 #define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 192 + 7 ) / 8 ) + 1 ) 297 #if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) 298 #if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 224 + 7 ) / 8 ) + 1 ) 299 #undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH 300 #define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 224 + 7 ) / 8 ) + 1 ) 304 #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) 305 #if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 256 + 7 ) / 8 ) + 1 ) 306 #undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH 307 #define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 256 + 7 ) / 8 ) + 1 ) 311 #if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) 312 #if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 256 + 7 ) / 8 ) + 1 ) 313 #undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH 314 #define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 256 + 7 ) / 8 ) + 1 ) 318 #if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) 319 #if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 384 + 7 ) / 8 ) + 1 ) 320 #undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH 321 #define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 384 + 7 ) / 8 ) + 1 ) 325 #if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) 326 #if MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH < ( 2 * ( ( 512 + 7 ) / 8 ) + 1 ) 327 #undef MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH 328 #define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ( 2 * ( ( 512 + 7 ) / 8 ) + 1 ) 335 static inline int mbedtls_psa_err_translate_pk(
psa_status_t status )
366 #if defined(MBEDTLS_ECP_C) 368 uint16_t tls_ecc_grp_reg_id,
size_t *bits )
372 if( curve_info == NULL )
389 static inline int mbedtls_psa_tls_psa_ec_to_ecpoint(
unsigned char *src,
404 static inline int mbedtls_psa_tls_ecpoint_to_psa_ec(
unsigned char const *src,
410 if( srclen > dstlen )
413 memcpy( dst, src, srclen );
static psa_ecc_family_t mbedtls_ecc_group_to_psa(mbedtls_ecp_group_id grpid, size_t *bits)
#define MBEDTLS_OID_EC_GRP_SECP192K1
#define PSA_ERROR_COMMUNICATION_FAILURE
This file provides an API for Elliptic Curves over GF(P) (ECP).
Platform Security Architecture cryptography module.
#define MBEDTLS_OID_EC_GRP_SECP192R1
Configuration options (set of defines)
#define MBEDTLS_OID_EC_GRP_SECP384R1
mbedtls_cipher_type_t
Supported {cipher type, cipher mode} pairs.
Object Identifier (OID) database.
Public Key abstraction layer.
#define MBEDTLS_OID_SIZE(x)
#define PSA_ERROR_INSUFFICIENT_MEMORY
#define MBEDTLS_ERR_PK_HW_ACCEL_FAILED
#define MBEDTLS_OID_EC_GRP_SECP256R1
#define PSA_ALG_RIPEMD160
#define MBEDTLS_OID_EC_GRP_BP256R1
#define MBEDTLS_OID_EC_GRP_SECP224K1
#define PSA_KEY_USAGE_DECRYPT
#define PSA_ALG_CBC_NO_PADDING
#define PSA_ECC_FAMILY_BRAINPOOL_P_R1
#define MBEDTLS_OID_EC_GRP_BP512R1
#define PSA_KEY_TYPE_ECC_KEY_PAIR(curve)
#define MBEDTLS_OID_EC_GRP_SECP521R1
uint32_t psa_algorithm_t
Encoding of a cryptographic algorithm.
#define MBEDTLS_ERR_PK_ALLOC_FAILED
#define PSA_ECC_FAMILY_SECP_R1
#define MBEDTLS_ERR_PK_BAD_INPUT_DATA
#define PSA_ERROR_CORRUPTION_DETECTED
uint32_t psa_key_usage_t
Encoding of permitted usage on a key.
uint16_t psa_key_type_t
Encoding of a key type.
const mbedtls_ecp_curve_info * mbedtls_ecp_curve_info_from_tls_id(uint16_t tls_id)
This function retrieves curve information from a TLS NamedCurve value.
#define MBEDTLS_OID_EC_GRP_SECP224R1
#define PSA_ERROR_HARDWARE_FAILURE
mbedtls_ecp_group_id grp_id
This file contains the generic message-digest wrapper.
#define PSA_ERROR_NOT_SUPPORTED
#define MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE
#define MBEDTLS_OID_EC_GRP_BP384R1
#define PSA_ECC_FAMILY_SECP_K1
#define MBEDTLS_OID_EC_GRP_SECP256K1
#define PSA_ERROR_BAD_STATE
#define MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL
#define MBEDTLS_ERR_ECP_RANDOM_FAILED
mbedtls_md_type_t
Supported message digests.
int32_t psa_status_t
Function return status.
#define PSA_KEY_USAGE_ENCRYPT
#define PSA_ERROR_INSUFFICIENT_ENTROPY
#define PSA_ALG_AEAD_WITH_TAG_LENGTH(aead_alg, tag_length)