void benchmark_cipher(int debug_level) { int size = 16; gnutls_global_set_log_function(tls_log_func); gnutls_global_set_log_level(debug_level); #ifdef _SC_PAGESIZE page_size = sysconf(_SC_PAGESIZE); #endif printf("Checking cipher-MAC combinations, payload size: %u\n", size * 1024); cipher_bench(GNUTLS_CIPHER_AES_128_GCM, size, 1); cipher_bench(GNUTLS_CIPHER_AES_128_CCM, size, 1); cipher_bench(GNUTLS_CIPHER_CHACHA20_POLY1305, size, 1); cipher_bench(GNUTLS_CIPHER_NULL, size, 1); cipher_mac_bench(GNUTLS_CIPHER_SALSA20_256, GNUTLS_MAC_SHA1, size); cipher_mac_bench(GNUTLS_CIPHER_AES_128_CBC, GNUTLS_MAC_SHA1, size); cipher_mac_bench(GNUTLS_CIPHER_AES_128_CBC, GNUTLS_MAC_SHA256, size); printf("\nChecking MAC algorithms, payload size: %u\n", size * 1024); mac_bench(GNUTLS_MAC_SHA1, size); mac_bench(GNUTLS_MAC_SHA256, size); mac_bench(GNUTLS_MAC_SHA512, size); printf("\nChecking ciphers, payload size: %u\n", size * 1024); cipher_bench(GNUTLS_CIPHER_3DES_CBC, size, 0); cipher_bench(GNUTLS_CIPHER_AES_128_CBC, size, 0); cipher_bench(GNUTLS_CIPHER_ARCFOUR, size, 0); cipher_bench(GNUTLS_CIPHER_SALSA20_256, size, 0); gnutls_global_deinit(); }
void benchmark_cipher(int debug_level) { int size = 16; gnutls_global_set_log_function(tls_log_func); gnutls_global_set_log_level(debug_level); gnutls_rnd(GNUTLS_RND_NONCE, data, sizeof(data)); printf("Checking cipher-MAC combinations, payload size: %u\n", size * 1024); cipher_mac_bench(GNUTLS_CIPHER_SALSA20_256, GNUTLS_MAC_SHA1, size); cipher_mac_bench(GNUTLS_CIPHER_AES_128_CBC, GNUTLS_MAC_SHA1, size); cipher_mac_bench(GNUTLS_CIPHER_AES_128_CBC, GNUTLS_MAC_SHA256, size); cipher_bench(GNUTLS_CIPHER_AES_128_GCM, size, 1); printf("\nChecking MAC algorithms, payload size: %u\n", size * 1024); mac_bench(GNUTLS_MAC_SHA1, size); mac_bench(GNUTLS_MAC_SHA256, size); mac_bench(GNUTLS_MAC_SHA512, size); printf("\nChecking ciphers, payload size: %u\n", size * 1024); cipher_bench(GNUTLS_CIPHER_3DES_CBC, size, 0); cipher_bench(GNUTLS_CIPHER_AES_128_CBC, size, 0); cipher_bench(GNUTLS_CIPHER_ARCFOUR, size, 0); cipher_bench(GNUTLS_CIPHER_SALSA20_256, size, 0); gnutls_global_deinit(); }
int main (int argc, char **argv) { int debug_level = 0; if (argc > 1) debug_level = 2; signal (SIGALRM, alarm_handler); gnutls_global_set_log_function (tls_log_func); gnutls_global_set_log_level (debug_level); gnutls_global_init (); mac_bench (GNUTLS_MAC_SHA1, 4); mac_bench (GNUTLS_MAC_SHA1, 8); mac_bench (GNUTLS_MAC_SHA1, 16); mac_bench (GNUTLS_MAC_SHA256, 4); mac_bench (GNUTLS_MAC_SHA256, 8); mac_bench (GNUTLS_MAC_SHA256, 16); cipher_bench (GNUTLS_CIPHER_3DES_CBC, 4); cipher_bench (GNUTLS_CIPHER_3DES_CBC, 8); cipher_bench (GNUTLS_CIPHER_3DES_CBC, 16); cipher_bench (GNUTLS_CIPHER_AES_128_CBC, 4); cipher_bench (GNUTLS_CIPHER_AES_128_CBC, 8); cipher_bench (GNUTLS_CIPHER_AES_128_CBC, 16); cipher_bench (GNUTLS_CIPHER_ARCFOUR, 4); cipher_bench (GNUTLS_CIPHER_ARCFOUR, 8); cipher_bench (GNUTLS_CIPHER_ARCFOUR, 16); return 0; }
int main (int argc, char **argv) { int last_argc = -1; int debug = 0; if (argc) { argc--; argv++; } /* We skip this test if we are running under the test suite (no args and srcdir defined) and GCRYPT_NO_BENCHMARKS is set. */ if (!argc && getenv ("srcdir") && getenv ("GCRYPT_NO_BENCHMARKS")) exit (77); if (getenv ("GCRYPT_IN_REGRESSION_TEST")) { in_regression_test = 1; num_measurement_repetitions = 2; } else num_measurement_repetitions = NUM_MEASUREMENT_REPETITIONS; while (argc && last_argc != argc) { last_argc = argc; if (!strcmp (*argv, "--")) { argc--; argv++; break; } else if (!strcmp (*argv, "--help")) { print_help (); exit (0); } else if (!strcmp (*argv, "--verbose")) { verbose++; argc--; argv++; } else if (!strcmp (*argv, "--debug")) { verbose += 2; debug++; argc--; argv++; } else if (!strcmp (*argv, "--csv")) { csv_mode = 1; argc--; argv++; } else if (!strcmp (*argv, "--disable-hwf")) { argc--; argv++; if (argc) { if (gcry_control (GCRYCTL_DISABLE_HWF, *argv, NULL)) fprintf (stderr, PGM ": unknown hardware feature `%s' - option ignored\n", *argv); argc--; argv++; } } else if (!strcmp (*argv, "--cpu-mhz")) { argc--; argv++; if (argc) { cpu_ghz = atof (*argv); cpu_ghz /= 1000; /* Mhz => Ghz */ argc--; argv++; } } else if (!strcmp (*argv, "--repetitions")) { argc--; argv++; if (argc) { num_measurement_repetitions = atof (*argv); if (num_measurement_repetitions < 2) { fprintf (stderr, PGM ": value for --repetitions too small - using %d\n", NUM_MEASUREMENT_REPETITIONS); num_measurement_repetitions = NUM_MEASUREMENT_REPETITIONS; } argc--; argv++; } } } gcry_control (GCRYCTL_SET_VERBOSITY, (int) verbose); if (!gcry_check_version (GCRYPT_VERSION)) { fprintf (stderr, PGM ": version mismatch; pgm=%s, library=%s\n", GCRYPT_VERSION, gcry_check_version (NULL)); exit (1); } if (debug) gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1u, 0); gcry_control (GCRYCTL_DISABLE_SECMEM, 0); gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0); if (in_regression_test) fputs ("Note: " PGM " running in quick regression test mode.\n", stdout); if (!argc) { warm_up_cpu (); hash_bench (NULL, 0); mac_bench (NULL, 0); cipher_bench (NULL, 0); kdf_bench (NULL, 0); } else if (!strcmp (*argv, "hash")) { argc--; argv++; warm_up_cpu (); hash_bench ((argc == 0) ? NULL : argv, argc); } else if (!strcmp (*argv, "mac")) { argc--; argv++; warm_up_cpu (); mac_bench ((argc == 0) ? NULL : argv, argc); } else if (!strcmp (*argv, "cipher")) { argc--; argv++; warm_up_cpu (); cipher_bench ((argc == 0) ? NULL : argv, argc); } else if (!strcmp (*argv, "kdf")) { argc--; argv++; warm_up_cpu (); kdf_bench ((argc == 0) ? NULL : argv, argc); } else { fprintf (stderr, PGM ": unknown argument: %s\n", *argv); print_help (); } return 0; }