mirror of
https://git.suyu.dev/suyu/mbedtls.git
synced 2025-12-24 08:16:33 +01:00
Add pk_verify_ext()
This commit is contained in:
parent
3a6a95d67c
commit
20422e9a3a
5 changed files with 218 additions and 4 deletions
|
|
@ -117,6 +117,71 @@ void pk_rsa_verify_test_vec( char *message_hex_string, int digest,
|
|||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:POLARSSL_RSA_C */
|
||||
void pk_rsa_verify_ext_test_vec( char *message_hex_string, int digest,
|
||||
int mod, int radix_N, char *input_N, int radix_E,
|
||||
char *input_E, char *result_hex_str,
|
||||
int pk_type, int mgf1_hash_id, int salt_len,
|
||||
int result )
|
||||
{
|
||||
unsigned char message_str[1000];
|
||||
unsigned char hash_result[1000];
|
||||
unsigned char result_str[1000];
|
||||
rsa_context *rsa;
|
||||
pk_context pk;
|
||||
pk_rsassa_pss_options pss_opts;
|
||||
void *options;
|
||||
int msg_len;
|
||||
size_t hash_len;
|
||||
|
||||
pk_init( &pk );
|
||||
|
||||
memset( message_str, 0x00, 1000 );
|
||||
memset( hash_result, 0x00, 1000 );
|
||||
memset( result_str, 0x00, 1000 );
|
||||
|
||||
TEST_ASSERT( pk_init_ctx( &pk, pk_info_from_type( POLARSSL_PK_RSA ) ) == 0 );
|
||||
rsa = pk_rsa( pk );
|
||||
|
||||
rsa->len = mod / 8;
|
||||
TEST_ASSERT( mpi_read_string( &rsa->N, radix_N, input_N ) == 0 );
|
||||
TEST_ASSERT( mpi_read_string( &rsa->E, radix_E, input_E ) == 0 );
|
||||
|
||||
msg_len = unhexify( message_str, message_hex_string );
|
||||
unhexify( result_str, result_hex_str );
|
||||
|
||||
if( digest != POLARSSL_MD_NONE )
|
||||
{
|
||||
TEST_ASSERT( md( md_info_from_type( digest ),
|
||||
message_str, msg_len, hash_result ) == 0 );
|
||||
hash_len = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
memcpy( hash_result, message_str, msg_len );
|
||||
hash_len = msg_len;
|
||||
}
|
||||
|
||||
if( mgf1_hash_id < 0 )
|
||||
{
|
||||
options = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
options = &pss_opts;
|
||||
|
||||
pss_opts.mgf1_hash_id = mgf1_hash_id;
|
||||
pss_opts.expected_salt_len = salt_len;
|
||||
}
|
||||
|
||||
TEST_ASSERT( pk_verify_ext( pk_type, options, &pk,
|
||||
digest, hash_result, hash_len,
|
||||
result_str, pk_get_len( &pk ) ) == result );
|
||||
|
||||
pk_free( &pk );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:POLARSSL_ECDSA_C */
|
||||
void pk_ec_test_vec( int type, int id, char *key_str,
|
||||
char *hash_str, char * sig_str, int ret )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue