mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-25 17:15:42 +01:00
Prepare to move exercise_key and friends to their own module
Rename functions to mbedtls_test_psa_xxx if they're going to be exported. Declare functions as static if they're aren't meant to be called directly from test code. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
parent
66e7b903ce
commit
c18e25f6df
@ -103,17 +103,11 @@ static const size_t INVALID_EXPORT_LENGTH = ~0U;
|
||||
#endif
|
||||
|
||||
#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
|
||||
int lifetime_is_dynamic_secure_element( psa_key_lifetime_t lifetime )
|
||||
static int lifetime_is_dynamic_secure_element( psa_key_lifetime_t lifetime )
|
||||
{
|
||||
return( PSA_KEY_LIFETIME_GET_LOCATION( lifetime ) !=
|
||||
PSA_KEY_LOCATION_LOCAL_STORAGE );
|
||||
}
|
||||
#else
|
||||
int lifetime_is_secure_element( psa_key_lifetime_t lifetime )
|
||||
{
|
||||
(void) lifetime;
|
||||
return( 0 );
|
||||
}
|
||||
#endif
|
||||
|
||||
/** Test if a buffer contains a constant byte value.
|
||||
@ -222,7 +216,7 @@ static int construct_fake_rsa_key( unsigned char *buffer,
|
||||
return( len );
|
||||
}
|
||||
|
||||
int check_key_attributes_sanity( mbedtls_svc_key_id_t key )
|
||||
static int check_key_attributes_sanity( mbedtls_svc_key_id_t key )
|
||||
{
|
||||
int ok = 0;
|
||||
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
|
||||
@ -616,12 +610,13 @@ exit:
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
static int setup_key_derivation_wrap( psa_key_derivation_operation_t* operation,
|
||||
mbedtls_svc_key_id_t key,
|
||||
psa_algorithm_t alg,
|
||||
unsigned char* input1, size_t input1_length,
|
||||
unsigned char* input2, size_t input2_length,
|
||||
size_t capacity )
|
||||
int mbedtls_test_psa_setup_key_derivation_wrap(
|
||||
psa_key_derivation_operation_t* operation,
|
||||
mbedtls_svc_key_id_t key,
|
||||
psa_algorithm_t alg,
|
||||
unsigned char* input1, size_t input1_length,
|
||||
unsigned char* input2, size_t input2_length,
|
||||
size_t capacity )
|
||||
{
|
||||
PSA_ASSERT( psa_key_derivation_setup( operation, alg ) );
|
||||
if( PSA_ALG_IS_HKDF( alg ) )
|
||||
@ -679,9 +674,10 @@ static int exercise_key_derivation_key( mbedtls_svc_key_id_t key,
|
||||
|
||||
if( usage & PSA_KEY_USAGE_DERIVE )
|
||||
{
|
||||
if( !setup_key_derivation_wrap( &operation, key, alg,
|
||||
input1, input1_length,
|
||||
input2, input2_length, capacity ) )
|
||||
if( !mbedtls_test_psa_setup_key_derivation_wrap( &operation, key, alg,
|
||||
input1, input1_length,
|
||||
input2, input2_length,
|
||||
capacity ) )
|
||||
goto exit;
|
||||
|
||||
PSA_ASSERT( psa_key_derivation_output_bytes( &operation,
|
||||
@ -698,7 +694,7 @@ exit:
|
||||
|
||||
/* We need two keys to exercise key agreement. Exercise the
|
||||
* private key against its own public key. */
|
||||
static psa_status_t key_agreement_with_self(
|
||||
psa_status_t mbedtls_test_psa_key_agreement_with_self(
|
||||
psa_key_derivation_operation_t *operation,
|
||||
mbedtls_svc_key_id_t key )
|
||||
{
|
||||
@ -738,8 +734,9 @@ exit:
|
||||
|
||||
/* We need two keys to exercise key agreement. Exercise the
|
||||
* private key against its own public key. */
|
||||
static psa_status_t raw_key_agreement_with_self( psa_algorithm_t alg,
|
||||
mbedtls_svc_key_id_t key )
|
||||
psa_status_t mbedtls_test_psa_raw_key_agreement_with_self(
|
||||
psa_algorithm_t alg,
|
||||
mbedtls_svc_key_id_t key )
|
||||
{
|
||||
psa_key_type_t private_key_type;
|
||||
psa_key_type_t public_key_type;
|
||||
@ -788,7 +785,7 @@ static int exercise_raw_key_agreement_key( mbedtls_svc_key_id_t key,
|
||||
{
|
||||
/* We need two keys to exercise key agreement. Exercise the
|
||||
* private key against its own public key. */
|
||||
PSA_ASSERT( raw_key_agreement_with_self( alg, key ) );
|
||||
PSA_ASSERT( mbedtls_test_psa_raw_key_agreement_with_self( alg, key ) );
|
||||
}
|
||||
ok = 1;
|
||||
|
||||
@ -809,7 +806,7 @@ static int exercise_key_agreement_key( mbedtls_svc_key_id_t key,
|
||||
/* We need two keys to exercise key agreement. Exercise the
|
||||
* private key against its own public key. */
|
||||
PSA_ASSERT( psa_key_derivation_setup( &operation, alg ) );
|
||||
PSA_ASSERT( key_agreement_with_self( &operation, key ) );
|
||||
PSA_ASSERT( mbedtls_test_psa_key_agreement_with_self( &operation, key ) );
|
||||
PSA_ASSERT( psa_key_derivation_output_bytes( &operation,
|
||||
output,
|
||||
sizeof( output ) ) );
|
||||
@ -865,8 +862,9 @@ exit:
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
static int exported_key_sanity_check( psa_key_type_t type, size_t bits,
|
||||
uint8_t *exported, size_t exported_length )
|
||||
int mbedtls_test_psa_exported_key_sanity_check(
|
||||
psa_key_type_t type, size_t bits,
|
||||
uint8_t *exported, size_t exported_length )
|
||||
{
|
||||
if( PSA_KEY_TYPE_IS_UNSTRUCTURED( type ) )
|
||||
TEST_EQUAL( exported_length, ( bits + 7 ) / 8 );
|
||||
@ -1049,9 +1047,9 @@ static int exercise_export_key( mbedtls_svc_key_id_t key,
|
||||
PSA_ASSERT( psa_export_key( key,
|
||||
exported, exported_size,
|
||||
&exported_length ) );
|
||||
ok = exported_key_sanity_check( psa_get_key_type( &attributes ),
|
||||
psa_get_key_bits( &attributes ),
|
||||
exported, exported_length );
|
||||
ok = mbedtls_test_psa_exported_key_sanity_check(
|
||||
psa_get_key_type( &attributes ), psa_get_key_bits( &attributes ),
|
||||
exported, exported_length );
|
||||
|
||||
exit:
|
||||
/*
|
||||
@ -1097,9 +1095,9 @@ static int exercise_export_public_key( mbedtls_svc_key_id_t key )
|
||||
PSA_ASSERT( psa_export_public_key( key,
|
||||
exported, exported_size,
|
||||
&exported_length ) );
|
||||
ok = exported_key_sanity_check( public_type,
|
||||
psa_get_key_bits( &attributes ),
|
||||
exported, exported_length );
|
||||
ok = mbedtls_test_psa_exported_key_sanity_check(
|
||||
public_type, psa_get_key_bits( &attributes ),
|
||||
exported, exported_length );
|
||||
|
||||
exit:
|
||||
/*
|
||||
@ -1139,9 +1137,9 @@ exit:
|
||||
* \retval 0 The key failed the smoke tests.
|
||||
* \retval 1 The key passed the smoke tests.
|
||||
*/
|
||||
static int exercise_key( mbedtls_svc_key_id_t key,
|
||||
psa_key_usage_t usage,
|
||||
psa_algorithm_t alg )
|
||||
int mbedtls_test_psa_exercise_key( mbedtls_svc_key_id_t key,
|
||||
psa_key_usage_t usage,
|
||||
psa_algorithm_t alg )
|
||||
{
|
||||
int ok;
|
||||
|
||||
@ -1182,8 +1180,8 @@ static int exercise_key( mbedtls_svc_key_id_t key,
|
||||
return( ok );
|
||||
}
|
||||
|
||||
static psa_key_usage_t usage_to_exercise( psa_key_type_t type,
|
||||
psa_algorithm_t alg )
|
||||
psa_key_usage_t mbedtls_test_psa_usage_to_exercise( psa_key_type_t type,
|
||||
psa_algorithm_t alg )
|
||||
{
|
||||
if( PSA_ALG_IS_MAC( alg ) || PSA_ALG_IS_SIGN( alg ) )
|
||||
{
|
||||
@ -1715,7 +1713,7 @@ void import_and_exercise_key( data_t *data,
|
||||
psa_key_type_t type = type_arg;
|
||||
size_t bits = bits_arg;
|
||||
psa_algorithm_t alg = alg_arg;
|
||||
psa_key_usage_t usage = usage_to_exercise( type, alg );
|
||||
psa_key_usage_t usage = mbedtls_test_psa_usage_to_exercise( type, alg );
|
||||
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
|
||||
psa_key_attributes_t got_attributes = PSA_KEY_ATTRIBUTES_INIT;
|
||||
|
||||
@ -1734,7 +1732,7 @@ void import_and_exercise_key( data_t *data,
|
||||
TEST_EQUAL( psa_get_key_bits( &got_attributes ), bits );
|
||||
|
||||
/* Do something with the key according to its type and permitted usage. */
|
||||
if( ! exercise_key( key, usage, alg ) )
|
||||
if( ! mbedtls_test_psa_exercise_key( key, usage, alg ) )
|
||||
goto exit;
|
||||
|
||||
PSA_ASSERT( psa_destroy_key( key ) );
|
||||
@ -2187,7 +2185,7 @@ void agreement_key_policy( int policy_usage,
|
||||
&key ) );
|
||||
|
||||
PSA_ASSERT( psa_key_derivation_setup( &operation, exercise_alg ) );
|
||||
status = key_agreement_with_self( &operation, key );
|
||||
status = mbedtls_test_psa_key_agreement_with_self( &operation, key );
|
||||
|
||||
TEST_EQUAL( status, expected_status );
|
||||
|
||||
@ -2224,9 +2222,9 @@ void key_policy_alg2( int key_type_arg, data_t *key_data,
|
||||
TEST_EQUAL( psa_get_key_algorithm( &got_attributes ), alg );
|
||||
TEST_EQUAL( psa_get_key_enrollment_algorithm( &got_attributes ), alg2 );
|
||||
|
||||
if( ! exercise_key( key, usage, alg ) )
|
||||
if( ! mbedtls_test_psa_exercise_key( key, usage, alg ) )
|
||||
goto exit;
|
||||
if( ! exercise_key( key, usage, alg2 ) )
|
||||
if( ! mbedtls_test_psa_exercise_key( key, usage, alg2 ) )
|
||||
goto exit;
|
||||
|
||||
exit:
|
||||
@ -2265,7 +2263,7 @@ void raw_agreement_key_policy( int policy_usage,
|
||||
PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len,
|
||||
&key ) );
|
||||
|
||||
status = raw_key_agreement_with_self( exercise_alg, key );
|
||||
status = mbedtls_test_psa_raw_key_agreement_with_self( exercise_alg, key );
|
||||
|
||||
TEST_EQUAL( status, expected_status );
|
||||
|
||||
@ -2348,9 +2346,9 @@ void copy_success( int source_usage_arg,
|
||||
ASSERT_COMPARE( material->x, material->len,
|
||||
export_buffer, length );
|
||||
}
|
||||
if( ! exercise_key( target_key, expected_usage, expected_alg ) )
|
||||
if( ! mbedtls_test_psa_exercise_key( target_key, expected_usage, expected_alg ) )
|
||||
goto exit;
|
||||
if( ! exercise_key( target_key, expected_usage, expected_alg2 ) )
|
||||
if( ! mbedtls_test_psa_exercise_key( target_key, expected_usage, expected_alg2 ) )
|
||||
goto exit;
|
||||
|
||||
PSA_ASSERT( psa_destroy_key( target_key ) );
|
||||
@ -4740,7 +4738,8 @@ void derive_input( int alg_arg,
|
||||
{
|
||||
// When taking a private key as secret input, use key agreement
|
||||
// to add the shared secret to the derivation
|
||||
TEST_EQUAL( key_agreement_with_self( &operation, keys[i] ),
|
||||
TEST_EQUAL( mbedtls_test_psa_key_agreement_with_self(
|
||||
&operation, keys[i] ),
|
||||
expected_statuses[i] );
|
||||
}
|
||||
else
|
||||
@ -4815,10 +4814,10 @@ void test_derive_invalid_key_derivation_state( int alg_arg )
|
||||
&key ) );
|
||||
|
||||
/* valid key derivation */
|
||||
if( !setup_key_derivation_wrap( &operation, key, alg,
|
||||
input1, input1_length,
|
||||
input2, input2_length,
|
||||
capacity ) )
|
||||
if( !mbedtls_test_psa_setup_key_derivation_wrap( &operation, key, alg,
|
||||
input1, input1_length,
|
||||
input2, input2_length,
|
||||
capacity ) )
|
||||
goto exit;
|
||||
|
||||
/* state of operation shouldn't allow additional generation */
|
||||
@ -5007,10 +5006,10 @@ void derive_full( int alg_arg,
|
||||
PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len,
|
||||
&key ) );
|
||||
|
||||
if( !setup_key_derivation_wrap( &operation, key, alg,
|
||||
input1->x, input1->len,
|
||||
input2->x, input2->len,
|
||||
requested_capacity ) )
|
||||
if( !mbedtls_test_psa_setup_key_derivation_wrap( &operation, key, alg,
|
||||
input1->x, input1->len,
|
||||
input2->x, input2->len,
|
||||
requested_capacity ) )
|
||||
goto exit;
|
||||
|
||||
PSA_ASSERT( psa_key_derivation_get_capacity( &operation,
|
||||
@ -5076,9 +5075,10 @@ void derive_key_exercise( int alg_arg,
|
||||
&base_key ) );
|
||||
|
||||
/* Derive a key. */
|
||||
if ( setup_key_derivation_wrap( &operation, base_key, alg,
|
||||
input1->x, input1->len,
|
||||
input2->x, input2->len, capacity ) )
|
||||
if ( mbedtls_test_psa_setup_key_derivation_wrap( &operation, base_key, alg,
|
||||
input1->x, input1->len,
|
||||
input2->x, input2->len,
|
||||
capacity ) )
|
||||
goto exit;
|
||||
|
||||
psa_set_key_usage_flags( &attributes, derived_usage );
|
||||
@ -5094,7 +5094,7 @@ void derive_key_exercise( int alg_arg,
|
||||
TEST_EQUAL( psa_get_key_bits( &got_attributes ), derived_bits );
|
||||
|
||||
/* Exercise the derived key. */
|
||||
if( ! exercise_key( derived_key, derived_usage, derived_alg ) )
|
||||
if( ! mbedtls_test_psa_exercise_key( derived_key, derived_usage, derived_alg ) )
|
||||
goto exit;
|
||||
|
||||
exit:
|
||||
@ -5143,9 +5143,10 @@ void derive_key_export( int alg_arg,
|
||||
&base_key ) );
|
||||
|
||||
/* Derive some material and output it. */
|
||||
if( !setup_key_derivation_wrap( &operation, base_key, alg,
|
||||
input1->x, input1->len,
|
||||
input2->x, input2->len, capacity ) )
|
||||
if( !mbedtls_test_psa_setup_key_derivation_wrap( &operation, base_key, alg,
|
||||
input1->x, input1->len,
|
||||
input2->x, input2->len,
|
||||
capacity ) )
|
||||
goto exit;
|
||||
|
||||
PSA_ASSERT( psa_key_derivation_output_bytes( &operation,
|
||||
@ -5154,9 +5155,10 @@ void derive_key_export( int alg_arg,
|
||||
PSA_ASSERT( psa_key_derivation_abort( &operation ) );
|
||||
|
||||
/* Derive the same output again, but this time store it in key objects. */
|
||||
if( !setup_key_derivation_wrap( &operation, base_key, alg,
|
||||
input1->x, input1->len,
|
||||
input2->x, input2->len, capacity ) )
|
||||
if( !mbedtls_test_psa_setup_key_derivation_wrap( &operation, base_key, alg,
|
||||
input1->x, input1->len,
|
||||
input2->x, input2->len,
|
||||
capacity ) )
|
||||
goto exit;
|
||||
|
||||
psa_set_key_usage_flags( &derived_attributes, PSA_KEY_USAGE_EXPORT );
|
||||
@ -5217,9 +5219,10 @@ void derive_key( int alg_arg,
|
||||
PSA_ASSERT( psa_import_key( &base_attributes, key_data->x, key_data->len,
|
||||
&base_key ) );
|
||||
|
||||
if( !setup_key_derivation_wrap( &operation, base_key, alg,
|
||||
input1->x, input1->len,
|
||||
input2->x, input2->len, SIZE_MAX ) )
|
||||
if( !mbedtls_test_psa_setup_key_derivation_wrap( &operation, base_key, alg,
|
||||
input1->x, input1->len,
|
||||
input2->x, input2->len,
|
||||
SIZE_MAX ) )
|
||||
goto exit;
|
||||
|
||||
psa_set_key_usage_flags( &derived_attributes, PSA_KEY_USAGE_EXPORT );
|
||||
@ -5535,7 +5538,7 @@ void generate_key( int type_arg,
|
||||
TEST_EQUAL( psa_get_key_bits( &got_attributes ), bits );
|
||||
|
||||
/* Do something with the key according to its type and permitted usage. */
|
||||
if( ! exercise_key( key, usage, alg ) )
|
||||
if( ! mbedtls_test_psa_exercise_key( key, usage, alg ) )
|
||||
goto exit;
|
||||
|
||||
exit:
|
||||
@ -5607,7 +5610,7 @@ void generate_key_rsa( int bits_arg,
|
||||
ASSERT_COMPARE( e_read_buffer, e_read_length, e_arg->x, e_arg->len );
|
||||
|
||||
/* Do something with the key according to its type and permitted usage. */
|
||||
if( ! exercise_key( key, usage, alg ) )
|
||||
if( ! mbedtls_test_psa_exercise_key( key, usage, alg ) )
|
||||
goto exit;
|
||||
|
||||
/* Export the key and check the public exponent. */
|
||||
@ -5783,7 +5786,7 @@ void persistent_key_load_key_from_storage( data_t *data,
|
||||
}
|
||||
|
||||
/* Do something with the key according to its type and permitted usage. */
|
||||
if( ! exercise_key( key, usage_flags, alg ) )
|
||||
if( ! mbedtls_test_psa_exercise_key( key, usage_flags, alg ) )
|
||||
goto exit;
|
||||
|
||||
exit:
|
||||
|
Loading…
Reference in New Issue
Block a user