diff options
author | Florian Dold <florian.dold@gmail.com> | 2014-02-03 21:25:53 +0000 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2014-02-03 21:25:53 +0000 |
commit | 8a3563b5c242b60aa4b7d2b9a3c3607ef8dcbadb (patch) | |
tree | f4b85c248403ba6783db017930b2258f3e61e18a /src/secretsharing/gnunet-secretsharing-profiler.c | |
parent | 694581b42a78419c1c8ffc31ee873484ff93d79b (diff) | |
download | gnunet-8a3563b5c242b60aa4b7d2b9a3c3607ef8dcbadb.tar.gz gnunet-8a3563b5c242b60aa4b7d2b9a3c3607ef8dcbadb.zip |
- consensus and secretsharing have both start time and deadline
Diffstat (limited to 'src/secretsharing/gnunet-secretsharing-profiler.c')
-rw-r--r-- | src/secretsharing/gnunet-secretsharing-profiler.c | 36 |
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; | |||
49 | static struct GNUNET_TIME_Relative timeout; | 49 | static struct GNUNET_TIME_Relative timeout; |
50 | 50 | ||
51 | /** | 51 | /** |
52 | * When should dkg communication start? | ||
53 | */ | ||
54 | static struct GNUNET_TIME_Relative delay; | ||
55 | |||
56 | /** | ||
52 | * Handles for secretsharing sessions. | 57 | * Handles for secretsharing sessions. |
53 | */ | 58 | */ |
54 | static struct GNUNET_SECRETSHARING_Session **session_handles; | 59 | static struct GNUNET_SECRETSHARING_Session **session_handles; |
@@ -85,9 +90,18 @@ static struct GNUNET_HashCode session_id; | |||
85 | 90 | ||
86 | static int verbose; | 91 | static int verbose; |
87 | 92 | ||
88 | struct GNUNET_SECRETSHARING_Plaintext reference_plaintext; | 93 | static struct GNUNET_SECRETSHARING_Plaintext reference_plaintext; |
94 | |||
95 | static struct GNUNET_SECRETSHARING_Ciphertext ciphertext; | ||
96 | |||
97 | static struct GNUNET_TIME_Absolute dkg_start; | ||
98 | |||
99 | static struct GNUNET_TIME_Absolute dkg_deadline; | ||
89 | 100 | ||
90 | struct GNUNET_SECRETSHARING_Ciphertext ciphertext; | 101 | |
102 | static struct GNUNET_TIME_Absolute decrypt_start; | ||
103 | |||
104 | static 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); |