]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
Allow user to specify multiple algorithms to nettle-benchmark
authorDmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Tue, 12 Dec 2017 01:01:22 +0000 (04:01 +0300)
committerNiels Möller <nisse@lysator.liu.se>
Sat, 13 Jan 2018 09:12:35 +0000 (10:12 +0100)
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
examples/nettle-benchmark.c

index b73196b0cad2aa1371a9be9df9f9e7c9509a2744..9327881b0c214bda1fcdebca6f2e35c49850effa 100644 (file)
@@ -809,7 +809,7 @@ main(int argc, char **argv)
          break;
 
       case OPT_HELP:
-       printf("Usage: nettle-benchmark [-f clock frequency] [alg]\n");
+       printf("Usage: nettle-benchmark [-f clock frequency] [alg...]\n");
        return EXIT_SUCCESS;
 
       case '?':
@@ -819,8 +819,6 @@ main(int argc, char **argv)
        abort();
     }
 
-  alg = argv[optind];
-
   time_init();
   bench_sha1_compress();
   bench_salsa20_core();
@@ -830,29 +828,36 @@ main(int argc, char **argv)
 
   header();
 
-  if (!alg || strstr ("memxor", alg))
+  do
     {
-      time_memxor();
-      printf("\n");
-    }
-  
-  for (i = 0; hashes[i]; i++)
-    if (!alg || strstr(hashes[i]->name, alg))
-      time_hash(hashes[i]);
+      alg = argv[optind];
+
+      if (!alg || strstr ("memxor", alg))
+       {
+         time_memxor();
+         printf("\n");
+       }
+
+      for (i = 0; hashes[i]; i++)
+       if (!alg || strstr(hashes[i]->name, alg))
+         time_hash(hashes[i]);
+
+      if (!alg || strstr ("umac", alg))
+       time_umac();
 
-  if (!alg || strstr ("umac", alg))
-    time_umac();
+      if (!alg || strstr ("poly1305-aes", alg))
+       time_poly1305_aes();
 
-  if (!alg || strstr ("poly1305-aes", alg))
-    time_poly1305_aes();
+      for (i = 0; ciphers[i]; i++)
+       if (!alg || strstr(ciphers[i]->name, alg))
+         time_cipher(ciphers[i]);
 
-  for (i = 0; ciphers[i]; i++)
-    if (!alg || strstr(ciphers[i]->name, alg))
-      time_cipher(ciphers[i]);
+      for (i = 0; aeads[i]; i++)
+       if (!alg || strstr(aeads[i]->name, alg))
+         time_aead(aeads[i]);
 
-  for (i = 0; aeads[i]; i++)
-    if (!alg || strstr(aeads[i]->name, alg))
-      time_aead(aeads[i]);
+      optind++;
+    } while (alg && argv[optind]);
 
   return 0;
 }