Move size-specific curve/group constants to crypto_compat.h

This commit is contained in:
Gilles Peskine 2019-12-03 17:56:11 +01:00
parent 228abc5773
commit 45c29ce4c0
4 changed files with 40 additions and 205 deletions

View file

@ -102,6 +102,46 @@ typedef MBEDTLS_PSA_DEPRECATED psa_key_usage_t mbedtls_deprecated_psa_key_usage_
#endif /* MBEDTLS_DEPRECATED_REMOVED */
/*
* Size-specific elliptic curve and Diffie-Hellman group names
*/
#define PSA_ECC_CURVE_SECP160K1 ((psa_ecc_curve_t) 0x1600a0)
#define PSA_ECC_CURVE_SECP192K1 ((psa_ecc_curve_t) 0x1600c0)
#define PSA_ECC_CURVE_SECP224K1 ((psa_ecc_curve_t) 0x1600e0)
#define PSA_ECC_CURVE_SECP256K1 ((psa_ecc_curve_t) 0x160100)
#define PSA_ECC_CURVE_SECP160R1 ((psa_ecc_curve_t) 0x1200a0)
#define PSA_ECC_CURVE_SECP192R1 ((psa_ecc_curve_t) 0x1200c0)
#define PSA_ECC_CURVE_SECP224R1 ((psa_ecc_curve_t) 0x1200e0)
#define PSA_ECC_CURVE_SECP256R1 ((psa_ecc_curve_t) 0x120100)
#define PSA_ECC_CURVE_SECP384R1 ((psa_ecc_curve_t) 0x120180)
#define PSA_ECC_CURVE_SECP521R1 ((psa_ecc_curve_t) 0x120209)
#define PSA_ECC_CURVE_SECP160R2 ((psa_ecc_curve_t) 0x1a00a0)
#define PSA_ECC_CURVE_SECT163K1 ((psa_ecc_curve_t) 0x2600a3)
#define PSA_ECC_CURVE_SECT233K1 ((psa_ecc_curve_t) 0x2600e9)
#define PSA_ECC_CURVE_SECT239K1 ((psa_ecc_curve_t) 0x2600ef)
#define PSA_ECC_CURVE_SECT283K1 ((psa_ecc_curve_t) 0x26011b)
#define PSA_ECC_CURVE_SECT409K1 ((psa_ecc_curve_t) 0x260199)
#define PSA_ECC_CURVE_SECT571K1 ((psa_ecc_curve_t) 0x26023b)
#define PSA_ECC_CURVE_SECT163R1 ((psa_ecc_curve_t) 0x2200a3)
#define PSA_ECC_CURVE_SECT193R1 ((psa_ecc_curve_t) 0x2200c1)
#define PSA_ECC_CURVE_SECT233R1 ((psa_ecc_curve_t) 0x2200e9)
#define PSA_ECC_CURVE_SECT283R1 ((psa_ecc_curve_t) 0x22011b)
#define PSA_ECC_CURVE_SECT409R1 ((psa_ecc_curve_t) 0x220199)
#define PSA_ECC_CURVE_SECT571R1 ((psa_ecc_curve_t) 0x22023b)
#define PSA_ECC_CURVE_SECT163R2 ((psa_ecc_curve_t) 0x2a00a3)
#define PSA_ECC_CURVE_SECT193R2 ((psa_ecc_curve_t) 0x2a00c1)
#define PSA_ECC_CURVE_BRAINPOOL_P256R1 ((psa_ecc_curve_t) 0x300100)
#define PSA_ECC_CURVE_BRAINPOOL_P384R1 ((psa_ecc_curve_t) 0x300180)
#define PSA_ECC_CURVE_BRAINPOOL_P512R1 ((psa_ecc_curve_t) 0x300200)
#define PSA_ECC_CURVE_CURVE25519 ((psa_ecc_curve_t) 0x0200ff)
#define PSA_ECC_CURVE_CURVE448 ((psa_ecc_curve_t) 0x0201c0)
#define PSA_DH_GROUP_FFDHE2048 ((psa_dh_group_t) 0x020800)
#define PSA_DH_GROUP_FFDHE3072 ((psa_dh_group_t) 0x020c00)
#define PSA_DH_GROUP_FFDHE4096 ((psa_dh_group_t) 0x021000)
#define PSA_DH_GROUP_FFDHE6144 ((psa_dh_group_t) 0x021800)
#define PSA_DH_GROUP_FFDHE8192 ((psa_dh_group_t) 0x022000)
#ifdef __cplusplus
}
#endif

View file

@ -531,49 +531,6 @@
*/
#define PSA_ECC_CURVE_MONTGOMERY ((psa_ecc_curve_t) 0x400000)
#define PSA_ECC_CURVE_SECP160K1 ((psa_ecc_curve_t) 0x1600a0)
#define PSA_ECC_CURVE_SECP192K1 ((psa_ecc_curve_t) 0x1600c0)
#define PSA_ECC_CURVE_SECP224K1 ((psa_ecc_curve_t) 0x1600e0)
#define PSA_ECC_CURVE_SECP256K1 ((psa_ecc_curve_t) 0x160100)
#define PSA_ECC_CURVE_SECP160R1 ((psa_ecc_curve_t) 0x1200a0)
#define PSA_ECC_CURVE_SECP192R1 ((psa_ecc_curve_t) 0x1200c0)
#define PSA_ECC_CURVE_SECP224R1 ((psa_ecc_curve_t) 0x1200e0)
#define PSA_ECC_CURVE_SECP256R1 ((psa_ecc_curve_t) 0x120100)
#define PSA_ECC_CURVE_SECP384R1 ((psa_ecc_curve_t) 0x120180)
#define PSA_ECC_CURVE_SECP521R1 ((psa_ecc_curve_t) 0x120209)
#define PSA_ECC_CURVE_SECP160R2 ((psa_ecc_curve_t) 0x1a00a0)
#define PSA_ECC_CURVE_SECT163K1 ((psa_ecc_curve_t) 0x2600a3)
#define PSA_ECC_CURVE_SECT233K1 ((psa_ecc_curve_t) 0x2600e9)
#define PSA_ECC_CURVE_SECT239K1 ((psa_ecc_curve_t) 0x2600ef)
#define PSA_ECC_CURVE_SECT283K1 ((psa_ecc_curve_t) 0x26011b)
#define PSA_ECC_CURVE_SECT409K1 ((psa_ecc_curve_t) 0x260199)
#define PSA_ECC_CURVE_SECT571K1 ((psa_ecc_curve_t) 0x26023b)
#define PSA_ECC_CURVE_SECT163R1 ((psa_ecc_curve_t) 0x2200a3)
#define PSA_ECC_CURVE_SECT193R1 ((psa_ecc_curve_t) 0x2200c1)
#define PSA_ECC_CURVE_SECT233R1 ((psa_ecc_curve_t) 0x2200e9)
#define PSA_ECC_CURVE_SECT283R1 ((psa_ecc_curve_t) 0x22011b)
#define PSA_ECC_CURVE_SECT409R1 ((psa_ecc_curve_t) 0x220199)
#define PSA_ECC_CURVE_SECT571R1 ((psa_ecc_curve_t) 0x22023b)
#define PSA_ECC_CURVE_SECT163R2 ((psa_ecc_curve_t) 0x2a00a3)
#define PSA_ECC_CURVE_SECT193R2 ((psa_ecc_curve_t) 0x2a00c1)
#define PSA_ECC_CURVE_BRAINPOOL_P256R1 ((psa_ecc_curve_t) 0x300100)
#define PSA_ECC_CURVE_BRAINPOOL_P384R1 ((psa_ecc_curve_t) 0x300180)
#define PSA_ECC_CURVE_BRAINPOOL_P512R1 ((psa_ecc_curve_t) 0x300200)
/** Curve25519.
*
* This is the curve defined in Bernstein et al.,
* _Curve25519: new Diffie-Hellman speed records_, LNCS 3958, 2006.
* The algorithm #PSA_ALG_ECDH performs X25519 when used with this curve.
*/
#define PSA_ECC_CURVE_CURVE25519 ((psa_ecc_curve_t) 0x0200ff)
/** Curve448
*
* This is the curve defined in Hamburg,
* _Ed448-Goldilocks, a new elliptic curve_, NIST ECC Workshop, 2015.
* The algorithm #PSA_ALG_ECDH performs X448 when used with this curve.
*/
#define PSA_ECC_CURVE_CURVE448 ((psa_ecc_curve_t) 0x0201c0)
#define PSA_KEY_TYPE_DH_PUBLIC_KEY_BASE ((psa_key_type_t)0x62000000)
#define PSA_KEY_TYPE_DH_KEY_PAIR_BASE ((psa_key_type_t)0x72000000)
#define PSA_KEY_TYPE_DH_GROUP_MASK ((psa_key_type_t)0x00ffffff)
@ -619,12 +576,6 @@
*/
#define PSA_DH_GROUP_RFC7919 ((psa_dh_group_t) 0x020000)
#define PSA_DH_GROUP_FFDHE2048 ((psa_dh_group_t) 0x020800)
#define PSA_DH_GROUP_FFDHE3072 ((psa_dh_group_t) 0x020c00)
#define PSA_DH_GROUP_FFDHE4096 ((psa_dh_group_t) 0x021000)
#define PSA_DH_GROUP_FFDHE6144 ((psa_dh_group_t) 0x021800)
#define PSA_DH_GROUP_FFDHE8192 ((psa_dh_group_t) 0x022000)
#define PSA_GET_KEY_TYPE_BLOCK_SIZE_EXPONENT(type) \
(((type) >> 24) & 7)
/** The block size of a block cipher.

View file

@ -375,141 +375,5 @@ ecc_key_family:PSA_ECC_CURVE_BRAINPOOL_P_R1
ECC key family: Montgomery (Curve25519, Curve448)
ecc_key_family:PSA_ECC_CURVE_MONTGOMERY
ECC key types: sect163k1
depends_on:MBEDTLS_ECP_DP_SECT163K1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECT163K1:163
ECC key types: sect163r1
depends_on:MBEDTLS_ECP_DP_SECT163R1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECT163R1:163
ECC key types: sect163r2
depends_on:MBEDTLS_ECP_DP_SECT163R2_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECT163R2:163
ECC key types: sect193r1
depends_on:MBEDTLS_ECP_DP_SECT193R1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECT193R1:193
ECC key types: sect193r2
depends_on:MBEDTLS_ECP_DP_SECT193R2_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECT193R2:193
ECC key types: sect233k1
depends_on:MBEDTLS_ECP_DP_SECT233K1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECT233K1:233
ECC key types: sect233r1
depends_on:MBEDTLS_ECP_DP_SECT233R1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECT233R1:233
ECC key types: sect239k1
depends_on:MBEDTLS_ECP_DP_SECT239K1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECT239K1:239
ECC key types: sect283k1
depends_on:MBEDTLS_ECP_DP_SECT283K1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECT283K1:283
ECC key types: sect283r1
depends_on:MBEDTLS_ECP_DP_SECT283R1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECT283R1:283
ECC key types: sect409k1
depends_on:MBEDTLS_ECP_DP_SECT409K1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECT409K1:409
ECC key types: sect409r1
depends_on:MBEDTLS_ECP_DP_SECT409R1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECT409R1:409
ECC key types: sect571k1
depends_on:MBEDTLS_ECP_DP_SECT571K1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECT571K1:571
ECC key types: sect571r1
depends_on:MBEDTLS_ECP_DP_SECT571R1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECT571R1:571
ECC key types: secp160k1
depends_on:MBEDTLS_ECP_DP_SECP160K1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECP160K1:160
ECC key types: secp160r1
depends_on:MBEDTLS_ECP_DP_SECP160R1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECP160R1:160
ECC key types: secp160r2
depends_on:MBEDTLS_ECP_DP_SECP160R2_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECP160R2:160
ECC key types: secp192k1
depends_on:MBEDTLS_ECP_DP_SECP192K1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECP192K1:192
ECC key types: secp192r1
depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECP192R1:192
ECC key types: secp224k1
depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECP224K1:224
ECC key types: secp224r1
depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECP224R1:224
ECC key types: secp256k1
depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECP256K1:256
ECC key types: secp256r1
depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECP256R1:256
ECC key types: secp384r1
depends_on:MBEDTLS_ECP_DP_SECP384R1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECP384R1:384
ECC key types: secp521r1
depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED
ecc_key_types:PSA_ECC_CURVE_SECP521R1:521
ECC key types: Brainpool P256R1
depends_on:MBEDTLS_ECP_DP_BP256R1_ENABLED
ecc_key_types:PSA_ECC_CURVE_BRAINPOOL_P256R1:256
ECC key types: Brainpool P384R1
depends_on:MBEDTLS_ECP_DP_BP384R1_ENABLED
ecc_key_types:PSA_ECC_CURVE_BRAINPOOL_P384R1:384
ECC key types: Brainpool P512R1
depends_on:MBEDTLS_ECP_DP_BP512R1_ENABLED
ecc_key_types:PSA_ECC_CURVE_BRAINPOOL_P512R1:512
ECC key types: Curve25519
depends_on:MBEDTLS_ECP_DP_CURVE25519_ENABLED
ecc_key_types:PSA_ECC_CURVE_CURVE25519:255
ECC key types: Curve448
depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED
ecc_key_types:PSA_ECC_CURVE_CURVE448:448
DH group family: RFC 7919
dh_key_family:PSA_DH_GROUP_RFC7919
DH group types: FFDHE2048
dh_key_types:PSA_DH_GROUP_FFDHE2048:2048
DH group types: FFDHE3072
dh_key_types:PSA_DH_GROUP_FFDHE3072:2048
DH group types: FFDHE4096
dh_key_types:PSA_DH_GROUP_FFDHE4096:2048
DH group types: FFDHE6144
dh_key_types:PSA_DH_GROUP_FFDHE6144:2048
DH group types: FFDHE8192
dh_key_types:PSA_DH_GROUP_FFDHE8192:2048

View file

@ -491,16 +491,6 @@ void ecc_key_family( int curve_arg )
}
/* END_CASE */
/* BEGIN_CASE */
void ecc_key_types( int curve_arg, int curve_bits_arg )
{
size_t curve_bits = curve_bits_arg;
test_ecc_key_family( curve_arg );
TEST_ASSERT( curve_bits <= PSA_VENDOR_ECC_MAX_CURVE_BITS );
}
/* END_CASE */
/* BEGIN_CASE depends_on:MBEDTLS_DHM_C */
void dh_key_family( int group_arg )
{
@ -515,13 +505,3 @@ void dh_key_family( int group_arg )
TEST_EQUAL( PSA_KEY_TYPE_GET_GROUP( pair_type ), group );
}
/* END_CASE */
/* BEGIN_CASE depends_on:MBEDTLS_DHM_C */
void dh_key_types( int group_arg, int group_bits_arg )
{
test_dh_key_family( group_arg );
/* We have nothing to validate about the group size yet. */
(void) group_bits_arg;
goto exit;
}
/* END_CASE */