mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-11-04 04:32:24 -05: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,7 +293,8 @@ 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,
 | 
				
			||||||
 | 
					                                               buf, MBEDTLS_ASN1_CONSTRUCTED |
 | 
				
			||||||
                                               MBEDTLS_ASN1_SEQUENCE ) );
 | 
					                                               MBEDTLS_ASN1_SEQUENCE ) );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
 | 
				
			|||||||
@ -333,12 +333,13 @@ 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 ) );
 | 
				
			||||||
@ -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