mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-10-30 19:20:40 -04:00 
			
		
		
		
	Adapt PK test suite to use new interface
This commit is contained in:
		
							parent
							
								
									15f81fa21c
								
							
						
					
					
						commit
						d71dc159a6
					
				| @ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Hanno Becker
						Hanno Becker