diff options
-rw-r--r-- | tests/ChangeLog | 5 | ||||
-rw-r--r-- | tests/benchmark.c | 45 |
2 files changed, 44 insertions, 6 deletions
diff --git a/tests/ChangeLog b/tests/ChangeLog index 61dd775d..801a5dd7 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,8 @@ +2008-03-12 Werner Koch <wk@g10code.com> + + * benchmark.c (rsa_bench): Add arg NO_BLINDING. + (main): Add option --no-blinding. + 2007-12-05 Werner Koch <wk@g10code.com> * pubkey.c (sample_private_key_1_1,sample_private_key_1_2): New. diff --git a/tests/benchmark.c b/tests/benchmark.c index 4dcd0220..c0fdb4ad 100644 --- a/tests/benchmark.c +++ b/tests/benchmark.c @@ -1,5 +1,5 @@ /* benchmark.c - for libgcrypt - * Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc. + * Copyright (C) 2002, 2004, 2005, 2006, 2008 Free Software Foundation, Inc. * * This file is part of Libgcrypt. * @@ -580,7 +580,7 @@ cipher_bench ( const char *algoname ) static void -rsa_bench (int iterations, int print_header) +rsa_bench (int iterations, int print_header, int no_blinding) { gpg_error_t err; int p_sizes[] = { 1024, 2048, 3072, 4096 }; @@ -627,7 +627,8 @@ rsa_bench (int iterations, int print_header) x = gcry_mpi_new (p_sizes[testno]); gcry_mpi_randomize (x, p_sizes[testno]-8, GCRY_WEAK_RANDOM); - err = gcry_sexp_build (&data, NULL, "(data (flags raw) (value %m))", x); + err = gcry_sexp_build (&data, NULL, + "(data (flags raw) (value %m))", x); gcry_mpi_release (x); if (err) die ("converting data failed: %s\n", gcry_strerror (err)); @@ -658,7 +659,33 @@ rsa_bench (int iterations, int print_header) } } stop_timer (); - printf (" %s\n", elapsed_time ()); + printf (" %s", elapsed_time ()); + + if (no_blinding) + { + fflush (stdout); + x = gcry_mpi_new (p_sizes[testno]); + gcry_mpi_randomize (x, p_sizes[testno]-8, GCRY_WEAK_RANDOM); + err = gcry_sexp_build (&data, NULL, + "(data (flags no-blinding) (value %m))", x); + gcry_mpi_release (x); + if (err) + die ("converting data failed: %s\n", gcry_strerror (err)); + + start_timer (); + for (count=0; count < iterations; count++) + { + gcry_sexp_release (sig); + err = gcry_pk_sign (&sig, data, sec_key); + if (err) + die ("signing failed (%d): %s\n", count, gpg_strerror (err)); + } + stop_timer (); + printf (" %s", elapsed_time ()); + fflush (stdout); + } + + putchar ('\n'); fflush (stdout); gcry_sexp_release (sig); @@ -932,6 +959,7 @@ int main( int argc, char **argv ) { int last_argc = -1; + int no_blinding = 0; if (argc) { argc--; argv++; } @@ -973,6 +1001,11 @@ main( int argc, char **argv ) gcry_control (GCRYCTL_USE_RANDOM_DAEMON, 1); argc--; argv++; } + else if (!strcmp (*argv, "--no-blinding")) + { + no_blinding = 1; + argc--; argv++; + } } gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); @@ -984,7 +1017,7 @@ main( int argc, char **argv ) putchar ('\n'); cipher_bench (NULL); putchar ('\n'); - rsa_bench (100, 1); + rsa_bench (100, 1, no_blinding); dsa_bench (100, 0); ecc_bench (100, 0); putchar ('\n'); @@ -1028,7 +1061,7 @@ main( int argc, char **argv ) else if ( !strcmp (*argv, "rsa")) { gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0); - rsa_bench (100, 1); + rsa_bench (100, 1, no_blinding); } else if ( !strcmp (*argv, "dsa")) { |