int main (int argc, char *argv[]) { struct GNUNET_CRYPTO_EccDlogContext *edc; if (! gcry_check_version ("1.6.0")) { FPRINTF (stderr, _ ("libgcrypt has not the expected version (version %s is required).\n"), "1.6.0"); return 0; } if (getenv ("GNUNET_GCRYPT_DEBUG")) gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1u , 0); GNUNET_log_setup ("test-crypto-ecc-dlog", "WARNING", NULL); edc = GNUNET_CRYPTO_ecc_dlog_prepare (MAX_FACT, MAX_MEM); test_dlog (edc); test_math (edc); GNUNET_CRYPTO_ecc_dlog_release (edc); return 0; }
int main (int argc, char *argv[]) { struct GNUNET_CRYPTO_EccDlogContext *edc; struct GNUNET_TIME_Absolute start; struct GNUNET_TIME_Relative delta; if (! gcry_check_version ("1.6.0")) { FPRINTF (stderr, _ ("libgcrypt has not the expected version (version %s is required).\n"), "1.6.0"); return 0; } if (getenv ("GNUNET_GCRYPT_DEBUG")) gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1u , 0); GNUNET_log_setup ("perf-crypto-ecc-dlog", "WARNING", NULL); start = GNUNET_TIME_absolute_get (); edc = GNUNET_CRYPTO_ecc_dlog_prepare (MAX_FACT, MAX_MEM); printf ("DLOG precomputation 1M/1K took %s\n", GNUNET_STRINGS_relative_time_to_string (GNUNET_TIME_absolute_get_duration (start), GNUNET_YES)); GAUGER ("UTIL", "ECC DLOG initialization", GNUNET_TIME_absolute_get_duration (start).rel_value_us / 1000LL, "ms/op"); start = GNUNET_TIME_absolute_get (); /* first do a baseline run without the DLOG */ test_dlog (edc, GNUNET_NO); delta = GNUNET_TIME_absolute_get_duration (start); start = GNUNET_TIME_absolute_get (); test_dlog (edc, GNUNET_YES); delta = GNUNET_TIME_relative_subtract (GNUNET_TIME_absolute_get_duration (start), delta); printf ("%u DLOG calculations took %s\n", TEST_ITER, GNUNET_STRINGS_relative_time_to_string (delta, GNUNET_YES)); GAUGER ("UTIL", "ECC DLOG operations", delta.rel_value_us / 1000LL / TEST_ITER, "ms/op"); GNUNET_CRYPTO_ecc_dlog_release (edc); return 0; }
/** * Initialization of the program and message handlers * * @param cls closure * @param c configuration to use * @param service the initialized service */ static void run (void *cls, const struct GNUNET_CONFIGURATION_Handle *c, struct GNUNET_SERVICE_Handle *service) { static const struct GNUNET_CADET_MessageHandler cadet_handlers[] = { { &handle_alices_computation_request, GNUNET_MESSAGE_TYPE_SCALARPRODUCT_ECC_SESSION_INITIALIZATION, sizeof (struct EccServiceRequestMessage) }, { &handle_alices_cryptodata_message, GNUNET_MESSAGE_TYPE_SCALARPRODUCT_ECC_ALICE_CRYPTODATA, 0}, { NULL, 0, 0} }; cfg = c; /* We don't really do DLOG, so we can setup with very minimal resources */ edc = GNUNET_CRYPTO_ecc_dlog_prepare (4 /* max value */, 2 /* RAM */); client_sessions = GNUNET_CONTAINER_multihashmap_create (128, GNUNET_YES); cadet_sessions = GNUNET_CONTAINER_multihashmap_create (128, GNUNET_YES); my_cadet = GNUNET_CADET_connect (cfg, NULL, &cb_channel_destruction, cadet_handlers); GNUNET_SCHEDULER_add_shutdown (&shutdown_task, NULL); if (NULL == my_cadet) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("Connect to CADET failed\n")); GNUNET_SCHEDULER_shutdown (); return; } }