mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-02-10 15:40:30 +00:00
Add driver tests for sign/verify_message
Adopting the tests for sign/verify_hash. The expected ouput data was created with python-ecdsa. Signed-off-by: gabor-mezei-arm <gabor.mezei@arm.com>
This commit is contained in:
parent
2fcb393ebd
commit
816886c8f3
@ -31,6 +31,39 @@ ecdsa_verify_hash:PSA_ERROR_NOT_SUPPORTED:1:"04dea5e45d0ea37fc566232a508f4ad20ea
|
||||
verify_hash using public key through transparent driver: error
|
||||
ecdsa_verify_hash:PSA_ERROR_GENERIC_ERROR:1:"04dea5e45d0ea37fc566232a508f4ad20ea13d47e4bf5fa4d54a57a0ba012042087097496efc583fed8b24a5b9be9a51de063f5a00a8b698a16fd7f29b5485f320":"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b":"6a3399f69421ffe1490377adf2ea1f117d81a63cf5bf22e918d51175eb259151ce95d7c26cc04e25503e2f7a1ec3573e3c2412534bb4a19b3a7811742f49f50f":PSA_ERROR_GENERIC_ERROR
|
||||
|
||||
sign_message through transparent driver: calculate in driver
|
||||
ecdsa_sign_message:PSA_SUCCESS:"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":"616263":"36e5b5a7da1c9c265dc447de3a5a704fcb8c03f7a3749dde48d84c9bf736fc1ed48d8b3660e7d3cbc6b1870730b7ce2a043f69e37ccb340b98d1e65184e03548":0:PSA_SUCCESS
|
||||
|
||||
sign_message through transparent driver: fallback
|
||||
depends_on:MBEDTLS_PSA_BUILTIN_ALG_ECDSA
|
||||
ecdsa_sign_message:PSA_ERROR_NOT_SUPPORTED:"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":"616263":"36e5b5a7da1c9c265dc447de3a5a704fcb8c03f7a3749dde48d84c9bf736fc1ed48d8b3660e7d3cbc6b1870730b7ce2a043f69e37ccb340b98d1e65184e03548":0:PSA_SUCCESS
|
||||
|
||||
sign_message through transparent driver: error
|
||||
ecdsa_sign_message:PSA_ERROR_GENERIC_ERROR:"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":"616263":"36e5b5a7da1c9c265dc447de3a5a704fcb8c03f7a3749dde48d84c9bf736fc1ed48d8b3660e7d3cbc6b1870730b7ce2a043f69e37ccb340b98d1e65184e03548":0:PSA_ERROR_GENERIC_ERROR
|
||||
|
||||
sign_message through transparent driver: fake
|
||||
ecdsa_sign_message:PSA_SUCCESS:"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":"616263":"000102030405060708090A0B0C0D0E0F":1:PSA_SUCCESS
|
||||
|
||||
verify_message using private key through transparent driver: calculate in driver
|
||||
ecdsa_verify_message:PSA_SUCCESS:0:"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":"616263":"36e5b5a7da1c9c265dc447de3a5a704fcb8c03f7a3749dde48d84c9bf736fc1ed48d8b3660e7d3cbc6b1870730b7ce2a043f69e37ccb340b98d1e65184e03548":PSA_SUCCESS
|
||||
|
||||
verify_message using private key through transparent driver: fallback
|
||||
depends_on:MBEDTLS_PSA_BUILTIN_ALG_ECDSA
|
||||
ecdsa_verify_message:PSA_ERROR_NOT_SUPPORTED:0:"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":"616263":"36e5b5a7da1c9c265dc447de3a5a704fcb8c03f7a3749dde48d84c9bf736fc1ed48d8b3660e7d3cbc6b1870730b7ce2a043f69e37ccb340b98d1e65184e03548":PSA_SUCCESS
|
||||
|
||||
verify_message using private key through transparent driver: error
|
||||
ecdsa_verify_message:PSA_ERROR_GENERIC_ERROR:0:"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":"616263":"36e5b5a7da1c9c265dc447de3a5a704fcb8c03f7a3749dde48d84c9bf736fc1ed48d8b3660e7d3cbc6b1870730b7ce2a043f69e37ccb340b98d1e65184e03548":PSA_ERROR_GENERIC_ERROR
|
||||
|
||||
verify_message using public key through transparent driver: calculate in driver
|
||||
ecdsa_verify_message:PSA_SUCCESS:1:"04dea5e45d0ea37fc566232a508f4ad20ea13d47e4bf5fa4d54a57a0ba012042087097496efc583fed8b24a5b9be9a51de063f5a00a8b698a16fd7f29b5485f320":"616263":"36e5b5a7da1c9c265dc447de3a5a704fcb8c03f7a3749dde48d84c9bf736fc1ed48d8b3660e7d3cbc6b1870730b7ce2a043f69e37ccb340b98d1e65184e03548":PSA_SUCCESS
|
||||
|
||||
verify_message using public key through transparent driver: fallback
|
||||
depends_on:MBEDTLS_PSA_BUILTIN_ALG_ECDSA
|
||||
ecdsa_verify_message:PSA_ERROR_NOT_SUPPORTED:1:"04dea5e45d0ea37fc566232a508f4ad20ea13d47e4bf5fa4d54a57a0ba012042087097496efc583fed8b24a5b9be9a51de063f5a00a8b698a16fd7f29b5485f320":"616263":"36e5b5a7da1c9c265dc447de3a5a704fcb8c03f7a3749dde48d84c9bf736fc1ed48d8b3660e7d3cbc6b1870730b7ce2a043f69e37ccb340b98d1e65184e03548":PSA_SUCCESS
|
||||
|
||||
verify_message using public key through transparent driver: error
|
||||
ecdsa_verify_message:PSA_ERROR_GENERIC_ERROR:1:"04dea5e45d0ea37fc566232a508f4ad20ea13d47e4bf5fa4d54a57a0ba012042087097496efc583fed8b24a5b9be9a51de063f5a00a8b698a16fd7f29b5485f320":"616263":"36e5b5a7da1c9c265dc447de3a5a704fcb8c03f7a3749dde48d84c9bf736fc1ed48d8b3660e7d3cbc6b1870730b7ce2a043f69e37ccb340b98d1e65184e03548":PSA_ERROR_GENERIC_ERROR
|
||||
|
||||
generate_key through transparent driver: fake
|
||||
generate_key:PSA_SUCCESS:"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_SUCCESS
|
||||
|
||||
|
@ -121,6 +121,120 @@ exit:
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ECDSA_C:MBEDTLS_ECDSA_DETERMINISTIC:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA256_C */
|
||||
void ecdsa_sign_message( int force_status_arg,
|
||||
data_t *key_input,
|
||||
data_t *data_input,
|
||||
data_t *expected_output,
|
||||
int fake_output,
|
||||
int expected_status_arg )
|
||||
{
|
||||
psa_status_t force_status = force_status_arg;
|
||||
psa_status_t expected_status = expected_status_arg;
|
||||
mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
|
||||
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
|
||||
psa_algorithm_t alg = PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 );
|
||||
uint8_t signature[64];
|
||||
size_t signature_length = 0xdeadbeef;
|
||||
psa_status_t actual_status;
|
||||
mbedtls_test_driver_signature_sign_hooks =
|
||||
mbedtls_test_driver_signature_hooks_init();
|
||||
|
||||
PSA_ASSERT( psa_crypto_init( ) );
|
||||
psa_set_key_type( &attributes,
|
||||
PSA_KEY_TYPE_ECC_KEY_PAIR( PSA_ECC_CURVE_SECP_R1 ) );
|
||||
psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_MESSAGE );
|
||||
psa_set_key_algorithm( &attributes, alg );
|
||||
psa_import_key( &attributes,
|
||||
key_input->x, key_input->len,
|
||||
&key );
|
||||
|
||||
mbedtls_test_driver_signature_sign_hooks.forced_status = force_status;
|
||||
if( fake_output == 1 )
|
||||
{
|
||||
mbedtls_test_driver_signature_sign_hooks.forced_output =
|
||||
expected_output->x;
|
||||
mbedtls_test_driver_signature_sign_hooks.forced_output_length =
|
||||
expected_output->len;
|
||||
}
|
||||
|
||||
actual_status = psa_sign_message( key, alg,
|
||||
data_input->x, data_input->len,
|
||||
signature, sizeof( signature ),
|
||||
&signature_length );
|
||||
TEST_EQUAL( actual_status, expected_status );
|
||||
if( expected_status == PSA_SUCCESS )
|
||||
{
|
||||
ASSERT_COMPARE( signature, signature_length,
|
||||
expected_output->x, expected_output->len );
|
||||
}
|
||||
TEST_EQUAL( mbedtls_test_driver_signature_sign_hooks.hits, 1 );
|
||||
|
||||
exit:
|
||||
psa_reset_key_attributes( &attributes );
|
||||
psa_destroy_key( key );
|
||||
PSA_DONE( );
|
||||
mbedtls_test_driver_signature_sign_hooks =
|
||||
mbedtls_test_driver_signature_hooks_init();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ECDSA_C:MBEDTLS_ECDSA_DETERMINISTIC:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_SHA256_C */
|
||||
void ecdsa_verify_message( int force_status_arg,
|
||||
int register_public_key,
|
||||
data_t *key_input,
|
||||
data_t *data_input,
|
||||
data_t *signature_input,
|
||||
int expected_status_arg )
|
||||
{
|
||||
psa_status_t force_status = force_status_arg;
|
||||
psa_status_t expected_status = expected_status_arg;
|
||||
mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT;
|
||||
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
|
||||
psa_algorithm_t alg = PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 );
|
||||
psa_status_t actual_status;
|
||||
mbedtls_test_driver_signature_verify_hooks =
|
||||
mbedtls_test_driver_signature_hooks_init();
|
||||
|
||||
PSA_ASSERT( psa_crypto_init( ) );
|
||||
if( register_public_key )
|
||||
{
|
||||
psa_set_key_type( &attributes,
|
||||
PSA_KEY_TYPE_ECC_PUBLIC_KEY( PSA_ECC_CURVE_SECP_R1 ) );
|
||||
psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_MESSAGE );
|
||||
psa_set_key_algorithm( &attributes, alg );
|
||||
psa_import_key( &attributes,
|
||||
key_input->x, key_input->len,
|
||||
&key );
|
||||
}
|
||||
else
|
||||
{
|
||||
psa_set_key_type( &attributes,
|
||||
PSA_KEY_TYPE_ECC_KEY_PAIR( PSA_ECC_CURVE_SECP_R1 ) );
|
||||
psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_MESSAGE );
|
||||
psa_set_key_algorithm( &attributes, alg );
|
||||
psa_import_key( &attributes,
|
||||
key_input->x, key_input->len,
|
||||
&key );
|
||||
}
|
||||
|
||||
mbedtls_test_driver_signature_verify_hooks.forced_status = force_status;
|
||||
|
||||
actual_status = psa_verify_message( key, alg,
|
||||
data_input->x, data_input->len,
|
||||
signature_input->x, signature_input->len );
|
||||
TEST_EQUAL( actual_status, expected_status );
|
||||
TEST_EQUAL( mbedtls_test_driver_signature_verify_hooks.hits, 1 );
|
||||
|
||||
exit:
|
||||
psa_reset_key_attributes( &attributes );
|
||||
psa_destroy_key( key );
|
||||
PSA_DONE( );
|
||||
mbedtls_test_driver_signature_verify_hooks =
|
||||
mbedtls_test_driver_signature_hooks_init();
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED */
|
||||
void generate_key( int force_status_arg,
|
||||
data_t *fake_output,
|
||||
|
Loading…
x
Reference in New Issue
Block a user