|
@@ -133,7 +133,7 @@ static void init_timer(void)
|
|
|
fprintf(stderr, "Clock Skew: %lu\n", (unsigned long)skew);
|
|
|
}
|
|
|
|
|
|
-static int time_keysched(void)
|
|
|
+static void time_keysched(void)
|
|
|
{
|
|
|
unsigned long x, y1;
|
|
|
ulong64 t1, c1;
|
|
@@ -165,12 +165,10 @@ static int time_keysched(void)
|
|
|
#undef DO1
|
|
|
}
|
|
|
tally_results(0);
|
|
|
-
|
|
|
- return 0;
|
|
|
}
|
|
|
|
|
|
#ifdef LTC_ECB_MODE
|
|
|
-static int time_cipher_ecb(void)
|
|
|
+static void time_cipher_ecb(void)
|
|
|
{
|
|
|
unsigned long x, y1;
|
|
|
ulong64 t1, t2, c1, c2, a1, a2;
|
|
@@ -237,15 +235,13 @@ static int time_cipher_ecb(void)
|
|
|
#undef DO1
|
|
|
}
|
|
|
tally_results(1);
|
|
|
-
|
|
|
- return 0;
|
|
|
}
|
|
|
#else
|
|
|
-static int time_cipher_ecb(void) { fprintf(stderr, "NO ECB\n"); return 0; }
|
|
|
+static void time_cipher_ecb(void) { fprintf(stderr, "NO ECB\n"); return 0; }
|
|
|
#endif
|
|
|
|
|
|
#ifdef LTC_CBC_MODE
|
|
|
-static int time_cipher_cbc(void)
|
|
|
+static void time_cipher_cbc(void)
|
|
|
{
|
|
|
unsigned long x, y1;
|
|
|
ulong64 t1, t2, c1, c2, a1, a2;
|
|
@@ -312,15 +308,13 @@ static int time_cipher_cbc(void)
|
|
|
#undef DO1
|
|
|
}
|
|
|
tally_results(1);
|
|
|
-
|
|
|
- return 0;
|
|
|
}
|
|
|
#else
|
|
|
-static int time_cipher_cbc(void) { fprintf(stderr, "NO CBC\n"); return 0; }
|
|
|
+static void time_cipher_cbc(void) { fprintf(stderr, "NO CBC\n"); return 0; }
|
|
|
#endif
|
|
|
|
|
|
#ifdef LTC_CTR_MODE
|
|
|
-static int time_cipher_ctr(void)
|
|
|
+static void time_cipher_ctr(void)
|
|
|
{
|
|
|
unsigned long x, y1;
|
|
|
ulong64 t1, t2, c1, c2, a1, a2;
|
|
@@ -387,15 +381,13 @@ static int time_cipher_ctr(void)
|
|
|
#undef DO1
|
|
|
}
|
|
|
tally_results(1);
|
|
|
-
|
|
|
- return 0;
|
|
|
}
|
|
|
#else
|
|
|
-static int time_cipher_ctr(void) { fprintf(stderr, "NO CTR\n"); return 0; }
|
|
|
+static void time_cipher_ctr(void) { fprintf(stderr, "NO CTR\n"); return 0; }
|
|
|
#endif
|
|
|
|
|
|
#ifdef LTC_LRW_MODE
|
|
|
-static int time_cipher_lrw(void)
|
|
|
+static void time_cipher_lrw(void)
|
|
|
{
|
|
|
unsigned long x, y1;
|
|
|
ulong64 t1, t2, c1, c2, a1, a2;
|
|
@@ -464,15 +456,13 @@ static int time_cipher_lrw(void)
|
|
|
#undef DO1
|
|
|
}
|
|
|
tally_results(1);
|
|
|
-
|
|
|
- return 0;
|
|
|
}
|
|
|
#else
|
|
|
-static int time_cipher_lrw(void) { fprintf(stderr, "NO LRW\n"); return 0; }
|
|
|
+static void time_cipher_lrw(void) { fprintf(stderr, "NO LRW\n"); return 0; }
|
|
|
#endif
|
|
|
|
|
|
|
|
|
-static int time_hash(void)
|
|
|
+static void time_hash(void)
|
|
|
{
|
|
|
unsigned long x, y1, len;
|
|
|
ulong64 t1, t2, c1, c2;
|
|
@@ -519,8 +509,6 @@ static int time_hash(void)
|
|
|
#undef DO1
|
|
|
}
|
|
|
tally_results(2);
|
|
|
-
|
|
|
- return 0;
|
|
|
}
|
|
|
|
|
|
/*#warning you need an mp_rand!!!*/
|
|
@@ -1399,9 +1387,36 @@ static void time_encmacs(void)
|
|
|
time_encmacs_(32);
|
|
|
}
|
|
|
|
|
|
-int main(void)
|
|
|
+#define LTC_TEST_FN(f) { f, #f }
|
|
|
+int main(int argc, char **argv)
|
|
|
{
|
|
|
int err;
|
|
|
+
|
|
|
+const struct
|
|
|
+{
|
|
|
+ void (*fn)(void);
|
|
|
+ const char* name;
|
|
|
+} test_functions[] = {
|
|
|
+ LTC_TEST_FN(time_keysched),
|
|
|
+ LTC_TEST_FN(time_cipher_ecb),
|
|
|
+ LTC_TEST_FN(time_cipher_cbc),
|
|
|
+ LTC_TEST_FN(time_cipher_ctr),
|
|
|
+ LTC_TEST_FN(time_cipher_lrw),
|
|
|
+ LTC_TEST_FN(time_hash),
|
|
|
+ LTC_TEST_FN(time_macs),
|
|
|
+ LTC_TEST_FN(time_encmacs),
|
|
|
+ LTC_TEST_FN(time_prng),
|
|
|
+ LTC_TEST_FN(time_mult),
|
|
|
+ LTC_TEST_FN(time_sqr),
|
|
|
+ LTC_TEST_FN(time_rsa),
|
|
|
+ LTC_TEST_FN(time_dsa),
|
|
|
+ LTC_TEST_FN(time_ecc),
|
|
|
+ LTC_TEST_FN(time_dh),
|
|
|
+ LTC_TEST_FN(time_katja)
|
|
|
+};
|
|
|
+char *single_test = NULL;
|
|
|
+unsigned int i;
|
|
|
+
|
|
|
init_timer();
|
|
|
register_all_ciphers();
|
|
|
register_all_hashes();
|
|
@@ -1423,22 +1438,16 @@ if ((err = rng_make_prng(128, find_prng("yarrow"), &yarrow_prng, NULL)) != CRYPT
|
|
|
exit(EXIT_FAILURE);
|
|
|
}
|
|
|
|
|
|
-time_keysched();
|
|
|
-time_cipher_ecb();
|
|
|
-time_cipher_cbc();
|
|
|
-time_cipher_ctr();
|
|
|
-time_cipher_lrw();
|
|
|
-time_hash();
|
|
|
-time_macs();
|
|
|
-time_encmacs();
|
|
|
-time_prng();
|
|
|
-time_mult();
|
|
|
-time_sqr();
|
|
|
-time_rsa();
|
|
|
-time_dsa();
|
|
|
-time_ecc();
|
|
|
-time_katja();
|
|
|
-time_dh();
|
|
|
+/* single test name from commandline */
|
|
|
+if (argc > 1) single_test = argv[1];
|
|
|
+
|
|
|
+for (i = 0; i < sizeof(test_functions)/sizeof(test_functions[0]); ++i) {
|
|
|
+ if (single_test && strstr(test_functions[i].name, single_test) == NULL) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ test_functions[i].fn();
|
|
|
+}
|
|
|
+
|
|
|
return EXIT_SUCCESS;
|
|
|
|
|
|
}
|