Fix undetected errors in benchmark

dhm_calc_secret() was exiting early, leading to wrong results
This commit is contained in:
Manuel Pégourié-Gonnard 2013-09-07 12:27:35 +02:00
parent 337b29c334
commit 1a2012459b

View file

@ -92,7 +92,7 @@ int main( int argc, char *argv[] )
#else #else
int main( int argc, char *argv[] ) int main( int argc, char *argv[] )
{ {
int keysize; int ret, keysize;
unsigned long i, j, tsc; unsigned long i, j, tsc;
unsigned char tmp[64]; unsigned char tmp[64];
#if defined(POLARSSL_ARC4_C) #if defined(POLARSSL_ARC4_C)
@ -431,25 +431,33 @@ int main( int argc, char *argv[] )
fflush( stdout ); fflush( stdout );
set_alarm( 3 ); set_alarm( 3 );
for( i = 1; ! alarmed; i++ ) ret = 0;
for( i = 1; ! alarmed && ! ret ; i++ )
{ {
buf[0] = 0; buf[0] = 0;
rsa_public( &rsa, buf, buf ); ret = rsa_public( &rsa, buf, buf );
} }
printf( "%9lu public/s\n", i / 3 ); if( ret != 0 )
printf( "FAILED\n" );
else
printf( "%9lu public/s\n", i / 3 );
printf( HEADER_FORMAT, "RSA-1024" ); printf( HEADER_FORMAT, "RSA-1024" );
fflush( stdout ); fflush( stdout );
set_alarm( 3 ); set_alarm( 3 );
for( i = 1; ! alarmed; i++ ) ret = 0;
for( i = 1; ! alarmed && ! ret ; i++ )
{ {
buf[0] = 0; buf[0] = 0;
rsa_private( &rsa, myrand, NULL, buf, buf ); ret = rsa_private( &rsa, myrand, NULL, buf, buf );
} }
printf( "%9lu private/s\n", i / 3 ); if( ret != 0 )
printf( "FAILED\n" );
else
printf( "%9lu private/s\n", i / 3 );
rsa_free( &rsa ); rsa_free( &rsa );
@ -460,25 +468,33 @@ int main( int argc, char *argv[] )
fflush( stdout ); fflush( stdout );
set_alarm( 3 ); set_alarm( 3 );
for( i = 1; ! alarmed; i++ ) ret = 0;
for( i = 1; ! alarmed && ! ret ; i++ )
{ {
buf[0] = 0; buf[0] = 0;
rsa_public( &rsa, buf, buf ); ret = rsa_public( &rsa, buf, buf );
} }
printf( "%9lu public/s\n", i / 3 ); if( ret != 0 )
printf( "FAILED\n" );
else
printf( "%9lu public/s\n", i / 3 );
printf( HEADER_FORMAT, "RSA-2048" ); printf( HEADER_FORMAT, "RSA-2048" );
fflush( stdout ); fflush( stdout );
set_alarm( 3 ); set_alarm( 3 );
for( i = 1; ! alarmed; i++ ) ret = 0;
for( i = 1; ! alarmed && ! ret ; i++ )
{ {
buf[0] = 0; buf[0] = 0;
rsa_private( &rsa, myrand, NULL, buf, buf ); ret = rsa_private( &rsa, myrand, NULL, buf, buf );
} }
printf( "%9lu private/s\n", i / 3 ); if( ret != 0 )
printf( "FAILED\n" );
else
printf( "%9lu private/s\n", i / 3 );
rsa_free( &rsa ); rsa_free( &rsa );
@ -489,25 +505,33 @@ int main( int argc, char *argv[] )
fflush( stdout ); fflush( stdout );
set_alarm( 3 ); set_alarm( 3 );
for( i = 1; ! alarmed; i++ ) ret = 0;
for( i = 1; ! alarmed && ! ret ; i++ )
{ {
buf[0] = 0; buf[0] = 0;
rsa_public( &rsa, buf, buf ); ret = rsa_public( &rsa, buf, buf );
} }
printf( "%9lu public/s\n", i / 3 ); if( ret != 0 )
printf( "FAILED\n" );
else
printf( "%9lu public/s\n", i / 3 );
printf( HEADER_FORMAT, "RSA-4096" ); printf( HEADER_FORMAT, "RSA-4096" );
fflush( stdout ); fflush( stdout );
set_alarm( 3 ); set_alarm( 3 );
for( i = 1; ! alarmed; i++ ) ret = 0;
for( i = 1; ! alarmed && ! ret ; i++ )
{ {
buf[0] = 0; buf[0] = 0;
rsa_private( &rsa, myrand, NULL, buf, buf ); ret = rsa_private( &rsa, myrand, NULL, buf, buf );
} }
printf( "%9lu private/s\n", i / 3 ); if( ret != 0 )
printf( "FAILED\n" );
else
printf( "%9lu private/s\n", i / 3 );
rsa_free( &rsa ); rsa_free( &rsa );
#endif #endif
@ -525,13 +549,18 @@ int main( int argc, char *argv[] )
fflush( stdout ); fflush( stdout );
set_alarm( 3 ); set_alarm( 3 );
for( i = 1; ! alarmed; i++ ) ret = 0;
for( i = 1; ! alarmed && ! ret ; i++ )
{ {
dhm_make_public( &dhm, dhm.len, buf, dhm.len, myrand, NULL ); olen = sizeof( buf );
dhm_calc_secret( &dhm, buf, &olen, NULL, NULL ); ret |= dhm_make_public( &dhm, dhm.len, buf, dhm.len, myrand, NULL );
ret |= dhm_calc_secret( &dhm, buf, &olen, NULL, NULL );
} }
printf( "%9lu handshake/s\n", i / 3 ); if( ret != 0 )
printf( "FAILED\n" );
else
printf( "%9lu handshake/s\n", i / 3 );
dhm_free( &dhm ); dhm_free( &dhm );
@ -547,13 +576,18 @@ int main( int argc, char *argv[] )
fflush( stdout ); fflush( stdout );
set_alarm( 3 ); set_alarm( 3 );
for( i = 1; ! alarmed; i++ ) ret = 0;
for( i = 1; ! alarmed && ! ret ; i++ )
{ {
dhm_make_public( &dhm, dhm.len, buf, dhm.len, myrand, NULL ); olen = sizeof( buf );
dhm_calc_secret( &dhm, buf, &olen, NULL, NULL ); ret |= dhm_make_public( &dhm, dhm.len, buf, dhm.len, myrand, NULL );
ret |= dhm_calc_secret( &dhm, buf, &olen, NULL, NULL );
} }
printf( "%9lu handshake/s\n", i / 3 ); if( ret != 0 )
printf( "FAILED\n" );
else
printf( "%9lu handshake/s\n", i / 3 );
dhm_free( &dhm ); dhm_free( &dhm );
memset( &dhm, 0, sizeof( dhm_context ) ); memset( &dhm, 0, sizeof( dhm_context ) );
@ -568,13 +602,18 @@ int main( int argc, char *argv[] )
fflush( stdout ); fflush( stdout );
set_alarm( 3 ); set_alarm( 3 );
for( i = 1; ! alarmed; i++ ) ret = 0;
for( i = 1; ! alarmed && ! ret ; i++ )
{ {
dhm_make_public( &dhm, dhm.len, buf, dhm.len, myrand, NULL ); olen = sizeof( buf );
dhm_calc_secret( &dhm, buf, &olen, NULL, NULL ); ret |= dhm_make_public( &dhm, dhm.len, buf, dhm.len, myrand, NULL );
ret |= dhm_calc_secret( &dhm, buf, &olen, NULL, NULL );
} }
printf( "%9lu handshake/s\n", i / 3 ); if( ret != 0 )
printf( "FAILED\n" );
else
printf( "%9lu handshake/s\n", i / 3 );
dhm_free( &dhm ); dhm_free( &dhm );
#endif #endif