Add tests of using cipher in bad state cases
- cipher setup after import key failure. - cipher setup after set key policy but no key material creation.
This commit is contained in:
parent
3455009116
commit
ce50007f90
2 changed files with 58 additions and 0 deletions
|
@ -47,6 +47,9 @@ export_invalid_slot:(psa_key_slot_t)(-1):PSA_ERROR_INVALID_ARGUMENT
|
|||
PSA export a slot where there was some activity but no key material creation
|
||||
export_with_no_key_activity
|
||||
|
||||
PSA setup cipher where there was some activity on key but no key material creation
|
||||
cipher_with_no_key_activity
|
||||
|
||||
PSA export a slot after a failed import of a AES key
|
||||
depends_on:MBEDTLS_AES_C
|
||||
export_after_import_failure:"0123456789abcdef":PSA_KEY_TYPE_AES:PSA_ERROR_INVALID_ARGUMENT
|
||||
|
@ -59,6 +62,10 @@ PSA export a slot after a failed import of an EC keypair: public key
|
|||
depends_on:MBEDTLS_PK_PARSE_C:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED
|
||||
export_after_import_failure:"3059301306072a8648ce3d020106082a8648ce3d03010703420004dea5e45d0ea37fc566232a508f4ad20ea13d47e4bf5fa4d54a57a0ba012042087097496efc583fed8b24a5b9be9a51de063f5a00a8b698a16fd7f29b5485f320":PSA_KEY_TYPE_ECC_KEYPAIR(PSA_ECC_CURVE_SECP384R1):PSA_ERROR_INVALID_ARGUMENT
|
||||
|
||||
PSA setup cipher after a failed import of a AES key
|
||||
depends_on:MBEDTLS_AES_C
|
||||
cipher_after_import_failure:"0123456789abcdef":PSA_KEY_TYPE_AES:PSA_ERROR_INVALID_ARGUMENT
|
||||
|
||||
PSA export RSA public key from a slot where there was an import followed by destroy.
|
||||
depends_on:MBEDTLS_PK_PARSE_C:MBEDTLS_RSA_C
|
||||
export_after_destroy_key:"30819f300d06092a864886f70d010101050003818d0030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_KEY_TYPE_RSA_PUBLIC_KEY
|
||||
|
|
|
@ -1075,6 +1075,30 @@ exit:
|
|||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void cipher_with_no_key_activity( )
|
||||
{
|
||||
int slot = 1;
|
||||
psa_status_t status;
|
||||
psa_key_policy_t policy;
|
||||
psa_cipher_operation_t operation;
|
||||
int exercise_alg = PSA_ALG_CTR;
|
||||
|
||||
TEST_ASSERT( psa_crypto_init( ) == PSA_SUCCESS );
|
||||
|
||||
psa_key_policy_init( &policy );
|
||||
psa_key_policy_set_usage( &policy, PSA_KEY_USAGE_ENCRYPT, exercise_alg );
|
||||
TEST_ASSERT( psa_set_key_policy( slot, &policy ) == PSA_SUCCESS );
|
||||
|
||||
status = psa_cipher_encrypt_setup( &operation, slot, exercise_alg );
|
||||
TEST_ASSERT( status == PSA_ERROR_EMPTY_SLOT );
|
||||
|
||||
exit:
|
||||
psa_cipher_abort( &operation );
|
||||
mbedtls_psa_crypto_free( );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void export_after_import_failure( data_t *data, int type_arg,
|
||||
int expected_import_status_arg )
|
||||
|
@ -1105,6 +1129,33 @@ exit:
|
|||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void cipher_after_import_failure( data_t *data, int type_arg,
|
||||
int expected_import_status_arg )
|
||||
{
|
||||
int slot = 1;
|
||||
psa_cipher_operation_t operation;
|
||||
psa_key_type_t type = type_arg;
|
||||
psa_status_t status;
|
||||
psa_status_t expected_import_status = expected_import_status_arg;
|
||||
int exercise_alg = PSA_ALG_CTR;
|
||||
|
||||
TEST_ASSERT( psa_crypto_init( ) == PSA_SUCCESS );
|
||||
|
||||
/* Import the key - expect failure */
|
||||
status = psa_import_key( slot, type,
|
||||
data->x, data->len );
|
||||
TEST_ASSERT( status == expected_import_status );
|
||||
|
||||
status = psa_cipher_encrypt_setup( &operation, slot, exercise_alg );
|
||||
TEST_ASSERT( status == PSA_ERROR_EMPTY_SLOT );
|
||||
|
||||
exit:
|
||||
psa_cipher_abort( &operation );
|
||||
mbedtls_psa_crypto_free( );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void export_after_destroy_key( data_t *data, int type_arg )
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue