Skip to content

Commit 7c227ae

Browse files
Test key creation with an invalid type (0 and nonzero)
1 parent 41e50d2 commit 7c227ae

File tree

2 files changed

+25
-7
lines changed

2 files changed

+25
-7
lines changed

tests/suites/test_suite_psa_crypto.data

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,12 @@ invalid_handle:1
5252
PSA invalid handle (largest plausible handle)
5353
invalid_handle:-1
5454

55+
PSA import: invalid type (0)
56+
import:"0123":PSA_KEY_TYPE_NONE:0:PSA_ERROR_NOT_SUPPORTED
57+
58+
PSA import: invalid type (PSA_KEY_TYPE_CATEGORY_MASK)
59+
import:"0123":PSA_KEY_TYPE_CATEGORY_MASK:0:PSA_ERROR_NOT_SUPPORTED
60+
5561
PSA import AES: bad key size
5662
depends_on:MBEDTLS_AES_C
5763
import:"0123456789abcdef":PSA_KEY_TYPE_AES:0:PSA_ERROR_INVALID_ARGUMENT
@@ -2083,16 +2089,24 @@ PSA key derivation: TLS 1.2 PRF SHA-256, derive key export, 1+41
20832089
depends_on:MBEDTLS_MD_C:MBEDTLS_SHA256_C:!PSA_PRE_1_0_KEY_DERIVATION
20842090
derive_key_export:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"000102030405060708090a0b0c":"f0f1f2f3f4f5f6f7f8f9":1:41
20852091

2092+
PSA key derivation: invalid type (0)
2093+
depends_on:MBEDTLS_MD_C:MBEDTLS_SHA256_C:!PSA_PRE_1_0_KEY_DERIVATION
2094+
derive_key:PSA_ALG_HKDF(PSA_ALG_SHA_256):"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"000102030405060708090a0b0c":"f0f1f2f3f4f5f6f7f8f9":PSA_KEY_TYPE_NONE:128:PSA_ERROR_NOT_SUPPORTED
2095+
2096+
PSA key derivation: invalid type (PSA_KEY_TYPE_CATEGORY_MASK)
2097+
depends_on:MBEDTLS_MD_C:MBEDTLS_SHA256_C:!PSA_PRE_1_0_KEY_DERIVATION
2098+
derive_key:PSA_ALG_HKDF(PSA_ALG_SHA_256):"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"000102030405060708090a0b0c":"f0f1f2f3f4f5f6f7f8f9":PSA_KEY_TYPE_CATEGORY_MASK:128:PSA_ERROR_NOT_SUPPORTED
2099+
20862100
# This test assumes that PSA_MAX_KEY_BITS (currently 65536-8 bits = 8191 bytes
20872101
# and not expected to be raised any time soon) is less than the maximum
20882102
# output from HKDF-SHA512 (255*64 = 16320 bytes).
20892103
PSA key derivation: largest possible key
20902104
depends_on:MBEDTLS_MD_C:MBEDTLS_SHA512_C:!PSA_PRE_1_0_KEY_DERIVATION
2091-
derive_large_key:PSA_ALG_HKDF(PSA_ALG_SHA_512):"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"000102030405060708090a0b0c":"f0f1f2f3f4f5f6f7f8f9":PSA_MAX_KEY_BITS:PSA_SUCCESS
2105+
derive_key:PSA_ALG_HKDF(PSA_ALG_SHA_512):"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"000102030405060708090a0b0c":"f0f1f2f3f4f5f6f7f8f9":PSA_KEY_TYPE_RAW_DATA:PSA_MAX_KEY_BITS:PSA_SUCCESS
20922106

20932107
PSA key derivation: key too large
20942108
depends_on:MBEDTLS_MD_C:MBEDTLS_SHA512_C:!PSA_PRE_1_0_KEY_DERIVATION
2095-
derive_large_key:PSA_ALG_HKDF(PSA_ALG_SHA_512):"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"000102030405060708090a0b0c":"f0f1f2f3f4f5f6f7f8f9":PSA_MAX_KEY_BITS + 1:PSA_ERROR_NOT_SUPPORTED
2109+
derive_key:PSA_ALG_HKDF(PSA_ALG_SHA_512):"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":"000102030405060708090a0b0c":"f0f1f2f3f4f5f6f7f8f9":PSA_KEY_TYPE_RAW_DATA:PSA_MAX_KEY_BITS + 1:PSA_ERROR_NOT_SUPPORTED
20962110

20972111
PSA key agreement setup: ECDH + HKDF-SHA-256: good
20982112
depends_on:MBEDTLS_PK_PARSE_C:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECDH_C:MBEDTLS_MD_C:MBEDTLS_SHA256_C
@@ -2192,6 +2206,9 @@ generate_random:19
21922206
PSA generate random: 260 bytes
21932207
generate_random:260
21942208

2209+
PSA generate key: bad type (0)
2210+
generate_key:PSA_KEY_TYPE_NONE:128:PSA_KEY_USAGE_EXPORT:0:PSA_ERROR_NOT_SUPPORTED
2211+
21952212
PSA generate key: bad type (PSA_KEY_TYPE_CATEGORY_MASK)
21962213
generate_key:PSA_KEY_TYPE_CATEGORY_MASK:128:PSA_KEY_USAGE_EXPORT:0:PSA_ERROR_NOT_SUPPORTED
21972214

tests/suites/test_suite_psa_crypto.function

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4620,14 +4620,15 @@ exit:
46204620
/* END_CASE */
46214621

46224622
/* BEGIN_CASE */
4623-
void derive_large_key( int alg_arg,
4624-
data_t *key_data, data_t *input1, data_t *input2,
4625-
int bits_arg,
4626-
int expected_status_arg )
4623+
void derive_key( int alg_arg,
4624+
data_t *key_data, data_t *input1, data_t *input2,
4625+
int type_arg, int bits_arg,
4626+
int expected_status_arg )
46274627
{
46284628
psa_key_handle_t base_handle = 0;
46294629
psa_key_handle_t derived_handle = 0;
46304630
psa_algorithm_t alg = alg_arg;
4631+
psa_key_type_t type = type_arg;
46314632
size_t bits = bits_arg;
46324633
psa_status_t expected_status = expected_status_arg;
46334634
psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT;
@@ -4649,7 +4650,7 @@ void derive_large_key( int alg_arg,
46494650

46504651
psa_set_key_usage_flags( &derived_attributes, PSA_KEY_USAGE_EXPORT );
46514652
psa_set_key_algorithm( &derived_attributes, 0 );
4652-
psa_set_key_type( &derived_attributes, PSA_KEY_TYPE_RAW_DATA );
4653+
psa_set_key_type( &derived_attributes, type );
46534654
psa_set_key_bits( &derived_attributes, bits );
46544655
TEST_EQUAL( psa_key_derivation_output_key( &derived_attributes, &operation,
46554656
&derived_handle ),

0 commit comments

Comments
 (0)