mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-08-08 17:42:09 +03:00
Merge pull request #8664 from valeriosetti/issue7764
Conversion function from ecp group to PSA curve
This commit is contained in:
@@ -684,7 +684,7 @@ import_with_data:"":PSA_KEY_TYPE_RAW_DATA:8:PSA_ERROR_INVALID_ARGUMENT
|
||||
|
||||
PSA import EC keypair: explicit bit-size=255 for secp256r1
|
||||
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT:PSA_WANT_ECC_SECP_R1_256
|
||||
import_with_data:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):255:PSA_ERROR_NOT_SUPPORTED
|
||||
import_with_data:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):255:PSA_ERROR_INVALID_ARGUMENT
|
||||
|
||||
PSA import EC keypair: explicit bit-size=521 for secp521r1 (good)
|
||||
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT:PSA_WANT_ECC_SECP_R1_521
|
||||
@@ -692,7 +692,7 @@ import_with_data:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af
|
||||
|
||||
PSA import EC keypair: explicit bit-size=528 for secp521r1 (bad)
|
||||
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT:PSA_WANT_ECC_SECP_R1_521
|
||||
import_with_data:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):528:PSA_ERROR_NOT_SUPPORTED
|
||||
import_with_data:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):528:PSA_ERROR_INVALID_ARGUMENT
|
||||
|
||||
PSA import EC keypair: explicit bit-size, DER format
|
||||
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT:PSA_WANT_ECC_SECP_R1_256
|
||||
@@ -716,7 +716,7 @@ import_with_data:"04dea5e45d0ea37fc566232a508f4ad20ea13d47e4bf5fa4d54a57a0ba0120
|
||||
|
||||
PSA import EC keypair: implicit bit-size, not a valid length
|
||||
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT:PSA_WANT_ECC_SECP_R1_256
|
||||
import_with_data:"0123456789abcdef0123456789abcdef":PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):0:PSA_ERROR_NOT_SUPPORTED
|
||||
import_with_data:"0123456789abcdef0123456789abcdef":PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):0:PSA_ERROR_INVALID_ARGUMENT
|
||||
|
||||
PSA import EC keypair: secp256r1, all-bits-zero (bad)
|
||||
depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT:PSA_WANT_ECC_SECP_R1_256
|
||||
@@ -7406,3 +7406,62 @@ persistent_key_load_key_from_storage:"":PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY
|
||||
|
||||
PSA derive persistent key: HKDF SHA-256, exportable
|
||||
persistent_key_load_key_from_storage:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":PSA_KEY_TYPE_RAW_DATA:1024:PSA_KEY_USAGE_EXPORT:0:DERIVE_KEY
|
||||
|
||||
ECP group ID <-> PSA family - SECP192R1
|
||||
depends_on:PSA_WANT_ECC_SECP_R1_192
|
||||
ecc_conversion_functions:MBEDTLS_ECP_DP_SECP192R1:PSA_ECC_FAMILY_SECP_R1:192
|
||||
|
||||
ECP group ID <-> PSA family - SECP224R1
|
||||
depends_on:PSA_WANT_ECC_SECP_R1_224
|
||||
ecc_conversion_functions:MBEDTLS_ECP_DP_SECP224R1:PSA_ECC_FAMILY_SECP_R1:224
|
||||
|
||||
ECP group ID <-> PSA family - SECP256R1
|
||||
depends_on:PSA_WANT_ECC_SECP_R1_256
|
||||
ecc_conversion_functions:MBEDTLS_ECP_DP_SECP256R1:PSA_ECC_FAMILY_SECP_R1:256
|
||||
|
||||
ECP group ID <-> PSA family - SECP384R1
|
||||
depends_on:PSA_WANT_ECC_SECP_R1_384
|
||||
ecc_conversion_functions:MBEDTLS_ECP_DP_SECP384R1:PSA_ECC_FAMILY_SECP_R1:384
|
||||
|
||||
ECP group ID <-> PSA family - SECP521R1
|
||||
depends_on:PSA_WANT_ECC_SECP_R1_521
|
||||
ecc_conversion_functions:MBEDTLS_ECP_DP_SECP521R1:PSA_ECC_FAMILY_SECP_R1:521
|
||||
|
||||
ECP group ID <-> PSA family - BP256R1
|
||||
depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_256
|
||||
ecc_conversion_functions:MBEDTLS_ECP_DP_BP256R1:PSA_ECC_FAMILY_BRAINPOOL_P_R1:256
|
||||
|
||||
ECP group ID <-> PSA family - BP384R1
|
||||
depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_384
|
||||
ecc_conversion_functions:MBEDTLS_ECP_DP_BP384R1:PSA_ECC_FAMILY_BRAINPOOL_P_R1:384
|
||||
|
||||
ECP group ID <-> PSA family - BP512R1
|
||||
depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_512
|
||||
ecc_conversion_functions:MBEDTLS_ECP_DP_BP512R1:PSA_ECC_FAMILY_BRAINPOOL_P_R1:512
|
||||
|
||||
ECP group ID <-> PSA family - CURVE25519
|
||||
depends_on:PSA_WANT_ECC_MONTGOMERY_255
|
||||
ecc_conversion_functions:MBEDTLS_ECP_DP_CURVE25519:PSA_ECC_FAMILY_MONTGOMERY:255
|
||||
|
||||
ECP group ID <-> PSA family - SECP192K1
|
||||
depends_on:PSA_WANT_ECC_SECP_K1_192
|
||||
ecc_conversion_functions:MBEDTLS_ECP_DP_SECP192K1:PSA_ECC_FAMILY_SECP_K1:192
|
||||
|
||||
ECP group ID <-> PSA family - SECP224K1
|
||||
depends_on:PSA_WANT_ECC_SECP_K1_224
|
||||
ecc_conversion_functions:MBEDTLS_ECP_DP_SECP224K1:PSA_ECC_FAMILY_SECP_K1:224
|
||||
|
||||
ECP group ID <-> PSA family - SECP256K1
|
||||
depends_on:PSA_WANT_ECC_SECP_K1_256
|
||||
ecc_conversion_functions:MBEDTLS_ECP_DP_SECP256K1:PSA_ECC_FAMILY_SECP_K1:256
|
||||
|
||||
ECP group ID <-> PSA family - CURVE448
|
||||
depends_on:PSA_WANT_ECC_MONTGOMERY_448
|
||||
ecc_conversion_functions:MBEDTLS_ECP_DP_CURVE448:PSA_ECC_FAMILY_MONTGOMERY:448
|
||||
|
||||
ECP group ID <-> PSA family - Null values
|
||||
ecc_conversion_functions:MBEDTLS_ECP_DP_NONE:0:0
|
||||
|
||||
ECP group ID <-> PSA family - Wrong values
|
||||
ecc_conversion_functions_fail
|
||||
|
||||
|
@@ -6,6 +6,8 @@
|
||||
#include "mbedtls/oid.h"
|
||||
#include "common.h"
|
||||
|
||||
#include "mbedtls/psa_util.h"
|
||||
|
||||
/* For MBEDTLS_CTR_DRBG_MAX_REQUEST, knowing that psa_generate_random()
|
||||
* uses mbedtls_ctr_drbg internally. */
|
||||
#include "mbedtls/ctr_drbg.h"
|
||||
@@ -9479,6 +9481,45 @@ exit:
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
|
||||
void ecc_conversion_functions(int grp_id_arg, int psa_family_arg, int bits_arg)
|
||||
{
|
||||
mbedtls_ecp_group_id grp_id = grp_id_arg;
|
||||
psa_ecc_family_t ecc_family = psa_family_arg;
|
||||
size_t bits = bits_arg;
|
||||
size_t bits_tmp;
|
||||
|
||||
TEST_EQUAL(ecc_family, mbedtls_ecc_group_to_psa(grp_id, &bits_tmp));
|
||||
TEST_EQUAL(bits, bits_tmp);
|
||||
TEST_EQUAL(grp_id, mbedtls_ecc_group_from_psa(ecc_family, bits));
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
|
||||
void ecc_conversion_functions_fail()
|
||||
{
|
||||
size_t bits;
|
||||
|
||||
/* Invalid legacy curve identifiers. */
|
||||
TEST_EQUAL(0, mbedtls_ecc_group_to_psa(MBEDTLS_ECP_DP_MAX, &bits));
|
||||
TEST_EQUAL(0, bits);
|
||||
TEST_EQUAL(0, mbedtls_ecc_group_to_psa(MBEDTLS_ECP_DP_NONE, &bits));
|
||||
TEST_EQUAL(0, bits);
|
||||
|
||||
/* Invalid PSA EC family. */
|
||||
TEST_EQUAL(MBEDTLS_ECP_DP_NONE, mbedtls_ecc_group_from_psa(0, 192));
|
||||
/* Invalid bit-size for a valid EC family. */
|
||||
TEST_EQUAL(MBEDTLS_ECP_DP_NONE, mbedtls_ecc_group_from_psa(PSA_ECC_FAMILY_SECP_R1, 512));
|
||||
|
||||
/* Twisted-Edward curves are not supported yet. */
|
||||
TEST_EQUAL(MBEDTLS_ECP_DP_NONE,
|
||||
mbedtls_ecc_group_from_psa(PSA_ECC_FAMILY_TWISTED_EDWARDS, 255));
|
||||
TEST_EQUAL(MBEDTLS_ECP_DP_NONE,
|
||||
mbedtls_ecc_group_from_psa(PSA_ECC_FAMILY_TWISTED_EDWARDS, 448));
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void key_agreement_output(int alg_arg,
|
||||
int our_key_type_arg, data_t *our_key_data,
|
||||
|
Reference in New Issue
Block a user