aboutsummaryrefslogtreecommitdiff
path: root/src/secretsharing/gnunet-secretsharing-profiler.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/secretsharing/gnunet-secretsharing-profiler.c')
-rw-r--r--src/secretsharing/gnunet-secretsharing-profiler.c36
1 files changed, 31 insertions, 5 deletions
diff --git a/src/secretsharing/gnunet-secretsharing-profiler.c b/src/secretsharing/gnunet-secretsharing-profiler.c
index b718e8a27..712203c33 100644
--- a/src/secretsharing/gnunet-secretsharing-profiler.c
+++ b/src/secretsharing/gnunet-secretsharing-profiler.c
@@ -49,6 +49,11 @@ static unsigned int decrypt = GNUNET_NO;
49static struct GNUNET_TIME_Relative timeout; 49static struct GNUNET_TIME_Relative timeout;
50 50
51/** 51/**
52 * When should dkg communication start?
53 */
54static struct GNUNET_TIME_Relative delay;
55
56/**
52 * Handles for secretsharing sessions. 57 * Handles for secretsharing sessions.
53 */ 58 */
54static struct GNUNET_SECRETSHARING_Session **session_handles; 59static struct GNUNET_SECRETSHARING_Session **session_handles;
@@ -85,9 +90,18 @@ static struct GNUNET_HashCode session_id;
85 90
86static int verbose; 91static int verbose;
87 92
88struct GNUNET_SECRETSHARING_Plaintext reference_plaintext; 93static struct GNUNET_SECRETSHARING_Plaintext reference_plaintext;
94
95static struct GNUNET_SECRETSHARING_Ciphertext ciphertext;
96
97static struct GNUNET_TIME_Absolute dkg_start;
98
99static struct GNUNET_TIME_Absolute dkg_deadline;
89 100
90struct GNUNET_SECRETSHARING_Ciphertext ciphertext; 101
102static struct GNUNET_TIME_Absolute decrypt_start;
103
104static struct GNUNET_TIME_Absolute decrypt_deadline;
91 105
92 106
93/** 107/**
@@ -236,7 +250,7 @@ decrypt_connect_adapter (void *cls,
236 "decrypt connect adapter, %d peers\n", 250 "decrypt connect adapter, %d peers\n",
237 num_peers); 251 num_peers);
238 *hp = GNUNET_SECRETSHARING_decrypt (cfg, shares[n], &ciphertext, 252 *hp = GNUNET_SECRETSHARING_decrypt (cfg, shares[n], &ciphertext,
239 GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_MINUTES), 253 decrypt_start, decrypt_deadline,
240 decrypt_cb, 254 decrypt_cb,
241 hp); 255 hp);
242 256
@@ -315,6 +329,10 @@ secret_ready_cb (void *cls,
315 return; 329 return;
316 } 330 }
317 331
332 decrypt_start = GNUNET_TIME_absolute_add (GNUNET_TIME_absolute_get (), delay);
333 decrypt_deadline = GNUNET_TIME_absolute_add (decrypt_start, timeout);
334
335
318 // compute g^42 336 // compute g^42
319 GNUNET_SECRETSHARING_plaintext_generate_i (&reference_plaintext, 42); 337 GNUNET_SECRETSHARING_plaintext_generate_i (&reference_plaintext, 42);
320 GNUNET_SECRETSHARING_encrypt (&common_pubkey, &reference_plaintext, &ciphertext); 338 GNUNET_SECRETSHARING_encrypt (&common_pubkey, &reference_plaintext, &ciphertext);
@@ -350,7 +368,8 @@ session_connect_adapter (void *cls,
350 num_peers, 368 num_peers,
351 peer_ids, 369 peer_ids,
352 &session_id, 370 &session_id,
353 GNUNET_TIME_relative_to_absolute (timeout), 371 dkg_start,
372 dkg_deadline,
354 threshold, 373 threshold,
355 &secret_ready_cb, sp); 374 &secret_ready_cb, sp);
356 return *sp; 375 return *sp;
@@ -471,6 +490,9 @@ run (void *cls, char *const *args, const char *cfgfile,
471 char *topology; 490 char *topology;
472 int topology_cmp_result; 491 int topology_cmp_result;
473 492
493 dkg_start = GNUNET_TIME_absolute_add (GNUNET_TIME_absolute_get (), delay);
494 dkg_deadline = GNUNET_TIME_absolute_add (dkg_start, timeout);
495
474 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_string (cfg, "testbed", "OVERLAY_TOPOLOGY", &topology)) 496 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_string (cfg, "testbed", "OVERLAY_TOPOLOGY", &topology))
475 { 497 {
476 fprintf (stderr, 498 fprintf (stderr,
@@ -513,6 +535,9 @@ main (int argc, char **argv)
513 { 'n', "num-peers", NULL, 535 { 'n', "num-peers", NULL,
514 gettext_noop ("number of peers in consensus"), 536 gettext_noop ("number of peers in consensus"),
515 GNUNET_YES, &GNUNET_GETOPT_set_uint, &num_peers }, 537 GNUNET_YES, &GNUNET_GETOPT_set_uint, &num_peers },
538 { 'D', "delay", NULL,
539 gettext_noop ("dkg start delay"),
540 GNUNET_YES, &GNUNET_GETOPT_set_relative_time, &delay },
516 { 't', "timeout", NULL, 541 { 't', "timeout", NULL,
517 gettext_noop ("dkg timeout"), 542 gettext_noop ("dkg timeout"),
518 GNUNET_YES, &GNUNET_GETOPT_set_relative_time, &timeout }, 543 GNUNET_YES, &GNUNET_GETOPT_set_relative_time, &timeout },
@@ -527,7 +552,8 @@ main (int argc, char **argv)
527 GNUNET_NO, &GNUNET_GETOPT_set_one, &verbose }, 552 GNUNET_NO, &GNUNET_GETOPT_set_one, &verbose },
528 GNUNET_GETOPT_OPTION_END 553 GNUNET_GETOPT_OPTION_END
529 }; 554 };
530 timeout = GNUNET_TIME_UNIT_SECONDS; 555 delay = GNUNET_TIME_UNIT_ZERO;
556 timeout = GNUNET_TIME_UNIT_MINUTES;
531 GNUNET_PROGRAM_run2 (argc, argv, "gnunet-secretsharing-profiler", 557 GNUNET_PROGRAM_run2 (argc, argv, "gnunet-secretsharing-profiler",
532 "help", 558 "help",
533 options, &run, NULL, GNUNET_YES); 559 options, &run, NULL, GNUNET_YES);