Adapt PK test suite to use new interface
This commit is contained in:
parent
15f81fa21c
commit
d71dc159a6
2 changed files with 26 additions and 24 deletions
|
@ -251,31 +251,36 @@ int mbedtls_pk_write_key_der( mbedtls_pk_context *key, unsigned char *buf, size_
|
||||||
len += ret;
|
len += ret;
|
||||||
|
|
||||||
/* Export Q */
|
/* Export Q */
|
||||||
if ( ( ret = mbedtls_rsa_export( rsa, NULL, NULL, &T, NULL, NULL ) ) != 0 ||
|
if ( ( ret = mbedtls_rsa_export( rsa, NULL, NULL,
|
||||||
|
&T, NULL, NULL ) ) != 0 ||
|
||||||
( ret = mbedtls_asn1_write_mpi( &c, buf, &T ) ) < 0 )
|
( ret = mbedtls_asn1_write_mpi( &c, buf, &T ) ) < 0 )
|
||||||
goto end_of_export;
|
goto end_of_export;
|
||||||
len += ret;
|
len += ret;
|
||||||
|
|
||||||
/* Export P */
|
/* Export P */
|
||||||
if ( ( ret = mbedtls_rsa_export( rsa, NULL, &T, NULL, NULL, NULL ) ) != 0 ||
|
if ( ( ret = mbedtls_rsa_export( rsa, NULL, &T,
|
||||||
|
NULL, NULL, NULL ) ) != 0 ||
|
||||||
( ret = mbedtls_asn1_write_mpi( &c, buf, &T ) ) < 0 )
|
( ret = mbedtls_asn1_write_mpi( &c, buf, &T ) ) < 0 )
|
||||||
goto end_of_export;
|
goto end_of_export;
|
||||||
len += ret;
|
len += ret;
|
||||||
|
|
||||||
/* Export D */
|
/* Export D */
|
||||||
if ( ( ret = mbedtls_rsa_export( rsa, NULL, NULL, NULL, &T, NULL ) ) != 0 ||
|
if ( ( ret = mbedtls_rsa_export( rsa, NULL, NULL,
|
||||||
|
NULL, &T, NULL ) ) != 0 ||
|
||||||
( ret = mbedtls_asn1_write_mpi( &c, buf, &T ) ) < 0 )
|
( ret = mbedtls_asn1_write_mpi( &c, buf, &T ) ) < 0 )
|
||||||
goto end_of_export;
|
goto end_of_export;
|
||||||
len += ret;
|
len += ret;
|
||||||
|
|
||||||
/* Export E */
|
/* Export E */
|
||||||
if ( ( ret = mbedtls_rsa_export( rsa, NULL, NULL, NULL, NULL, &T ) ) != 0 ||
|
if ( ( ret = mbedtls_rsa_export( rsa, NULL, NULL,
|
||||||
|
NULL, NULL, &T ) ) != 0 ||
|
||||||
( ret = mbedtls_asn1_write_mpi( &c, buf, &T ) ) < 0 )
|
( ret = mbedtls_asn1_write_mpi( &c, buf, &T ) ) < 0 )
|
||||||
goto end_of_export;
|
goto end_of_export;
|
||||||
len += ret;
|
len += ret;
|
||||||
|
|
||||||
/* Export N */
|
/* Export N */
|
||||||
if ( ( ret = mbedtls_rsa_export( rsa, &T, NULL, NULL, NULL, NULL ) ) != 0 ||
|
if ( ( ret = mbedtls_rsa_export( rsa, &T, NULL,
|
||||||
|
NULL, NULL, NULL ) ) != 0 ||
|
||||||
( ret = mbedtls_asn1_write_mpi( &c, buf, &T ) ) < 0 )
|
( ret = mbedtls_asn1_write_mpi( &c, buf, &T ) ) < 0 )
|
||||||
goto end_of_export;
|
goto end_of_export;
|
||||||
len += ret;
|
len += ret;
|
||||||
|
@ -288,8 +293,9 @@ int mbedtls_pk_write_key_der( mbedtls_pk_context *key, unsigned char *buf, size_
|
||||||
|
|
||||||
MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_int( &c, buf, 0 ) );
|
MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_int( &c, buf, 0 ) );
|
||||||
MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) );
|
MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) );
|
||||||
MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, buf, MBEDTLS_ASN1_CONSTRUCTED |
|
MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c,
|
||||||
MBEDTLS_ASN1_SEQUENCE ) );
|
buf, MBEDTLS_ASN1_CONSTRUCTED |
|
||||||
|
MBEDTLS_ASN1_SEQUENCE ) );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif /* MBEDTLS_RSA_C */
|
#endif /* MBEDTLS_RSA_C */
|
||||||
|
|
|
@ -333,18 +333,19 @@ void pk_rsa_decrypt_test_vec( char *cipher_hex, int mod,
|
||||||
unsigned char cipher[1000];
|
unsigned char cipher[1000];
|
||||||
size_t clear_len, olen, cipher_len;
|
size_t clear_len, olen, cipher_len;
|
||||||
rnd_pseudo_info rnd_info;
|
rnd_pseudo_info rnd_info;
|
||||||
mbedtls_mpi P1, Q1, H, G;
|
mbedtls_mpi N, P, Q, E;
|
||||||
mbedtls_rsa_context *rsa;
|
mbedtls_rsa_context *rsa;
|
||||||
mbedtls_pk_context pk;
|
mbedtls_pk_context pk;
|
||||||
|
|
||||||
mbedtls_pk_init( &pk );
|
mbedtls_pk_init( &pk );
|
||||||
mbedtls_mpi_init( &P1 ); mbedtls_mpi_init( &Q1 ); mbedtls_mpi_init( &H ); mbedtls_mpi_init( &G );
|
mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P );
|
||||||
|
mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &E );
|
||||||
|
|
||||||
memset( &rnd_info, 0, sizeof( rnd_pseudo_info ) );
|
memset( &rnd_info, 0, sizeof( rnd_pseudo_info ) );
|
||||||
memset( clear, 0, sizeof( clear ) );
|
memset( clear, 0, sizeof( clear ) );
|
||||||
memset( cipher, 0, sizeof( cipher ) );
|
memset( cipher, 0, sizeof( cipher ) );
|
||||||
|
|
||||||
clear_len = unhexify( clear, clear_hex );
|
clear_len = unhexify( clear, clear_hex );
|
||||||
cipher_len = unhexify( cipher, cipher_hex );
|
cipher_len = unhexify( cipher, cipher_hex );
|
||||||
|
|
||||||
/* init pk-rsa context */
|
/* init pk-rsa context */
|
||||||
|
@ -352,21 +353,15 @@ void pk_rsa_decrypt_test_vec( char *cipher_hex, int mod,
|
||||||
rsa = mbedtls_pk_rsa( pk );
|
rsa = mbedtls_pk_rsa( pk );
|
||||||
|
|
||||||
/* load public key */
|
/* load public key */
|
||||||
rsa->len = mod / 8;
|
TEST_ASSERT( mbedtls_mpi_read_string( &N, radix_N, input_N ) == 0 );
|
||||||
TEST_ASSERT( mbedtls_mpi_read_string( &rsa->N, radix_N, input_N ) == 0 );
|
TEST_ASSERT( mbedtls_mpi_read_string( &E, radix_E, input_E ) == 0 );
|
||||||
TEST_ASSERT( mbedtls_mpi_read_string( &rsa->E, radix_E, input_E ) == 0 );
|
|
||||||
|
|
||||||
/* load private key */
|
/* load private key */
|
||||||
TEST_ASSERT( mbedtls_mpi_read_string( &rsa->P, radix_P, input_P ) == 0 );
|
TEST_ASSERT( mbedtls_mpi_read_string( &P, radix_P, input_P ) == 0 );
|
||||||
TEST_ASSERT( mbedtls_mpi_read_string( &rsa->Q, radix_Q, input_Q ) == 0 );
|
TEST_ASSERT( mbedtls_mpi_read_string( &Q, radix_Q, input_Q ) == 0 );
|
||||||
TEST_ASSERT( mbedtls_mpi_sub_int( &P1, &rsa->P, 1 ) == 0 );
|
TEST_ASSERT( mbedtls_rsa_import( rsa, &N, &P, &Q, NULL, &E ) == 0 );
|
||||||
TEST_ASSERT( mbedtls_mpi_sub_int( &Q1, &rsa->Q, 1 ) == 0 );
|
TEST_ASSERT( mbedtls_rsa_get_len( rsa ) == (size_t) ( mod / 8 ) );
|
||||||
TEST_ASSERT( mbedtls_mpi_mul_mpi( &H, &P1, &Q1 ) == 0 );
|
TEST_ASSERT( mbedtls_rsa_complete( rsa, NULL, NULL ) == 0 );
|
||||||
TEST_ASSERT( mbedtls_mpi_gcd( &G, &rsa->E, &H ) == 0 );
|
|
||||||
TEST_ASSERT( mbedtls_mpi_inv_mod( &rsa->D , &rsa->E, &H ) == 0 );
|
|
||||||
TEST_ASSERT( mbedtls_mpi_mod_mpi( &rsa->DP, &rsa->D, &P1 ) == 0 );
|
|
||||||
TEST_ASSERT( mbedtls_mpi_mod_mpi( &rsa->DQ, &rsa->D, &Q1 ) == 0 );
|
|
||||||
TEST_ASSERT( mbedtls_mpi_inv_mod( &rsa->QP, &rsa->Q, &rsa->P ) == 0 );
|
|
||||||
|
|
||||||
/* decryption test */
|
/* decryption test */
|
||||||
memset( output, 0, sizeof( output ) );
|
memset( output, 0, sizeof( output ) );
|
||||||
|
@ -381,7 +376,8 @@ void pk_rsa_decrypt_test_vec( char *cipher_hex, int mod,
|
||||||
}
|
}
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
mbedtls_mpi_free( &P1 ); mbedtls_mpi_free( &Q1 ); mbedtls_mpi_free( &H ); mbedtls_mpi_free( &G );
|
mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P );
|
||||||
|
mbedtls_mpi_free( &Q ); mbedtls_mpi_free( &E );
|
||||||
mbedtls_pk_free( &pk );
|
mbedtls_pk_free( &pk );
|
||||||
}
|
}
|
||||||
/* END_CASE */
|
/* END_CASE */
|
||||||
|
|
Loading…
Reference in a new issue