diff options
author | jospaeth <spaethj@in.tum.de> | 2020-08-23 18:18:34 +0200 |
---|---|---|
committer | jospaeth <spaethj@in.tum.de> | 2020-08-23 18:18:34 +0200 |
commit | 90c4283d66f82a090d1f8e65b097193b53ebd61f (patch) | |
tree | 332000c072dc1553ab952f838b19c61587924ad5 | |
parent | 7cd8a4ba4ca75338e8ad932e70cead8e0faf3cba (diff) | |
download | gnunet-90c4283d66f82a090d1f8e65b097193b53ebd61f.tar.gz gnunet-90c4283d66f82a090d1f8e65b097193b53ebd61f.zip |
add verification result for missing shares
-rw-r--r-- | src/escrow/gnunet-escrow.c | 8 | ||||
-rw-r--r-- | src/escrow/plugin_escrow_gns.c | 9 | ||||
-rw-r--r-- | src/include/gnunet_escrow_lib.h | 5 |
3 files changed, 17 insertions, 5 deletions
diff --git a/src/escrow/gnunet-escrow.c b/src/escrow/gnunet-escrow.c index 0919146d2..5b34ed142 100644 --- a/src/escrow/gnunet-escrow.c +++ b/src/escrow/gnunet-escrow.c | |||
@@ -218,8 +218,8 @@ put_cb (void *cls, | |||
218 | escrowAnchor, | 218 | escrowAnchor, |
219 | method); | 219 | method); |
220 | 220 | ||
221 | fprintf (stdout, "Escrow finished! Please keep the following anchor \ | 221 | fprintf (stdout, "Escrow finished! Please keep the following anchor " |
222 | in order to restore the key later!\n%s\n", anchorString); | 222 | "in order to restore the key later!\n%s\n", anchorString); |
223 | } | 223 | } |
224 | cleanup_task = GNUNET_SCHEDULER_add_now (&do_cleanup, NULL); | 224 | cleanup_task = GNUNET_SCHEDULER_add_now (&do_cleanup, NULL); |
225 | } | 225 | } |
@@ -237,6 +237,10 @@ verify_cb (void *cls, | |||
237 | case GNUNET_ESCROW_VALID: | 237 | case GNUNET_ESCROW_VALID: |
238 | fprintf (stdout, "Escrow is valid!\n"); | 238 | fprintf (stdout, "Escrow is valid!\n"); |
239 | break; | 239 | break; |
240 | case GNUNET_ESCROW_SHARES_MISSING: | ||
241 | fprintf (stdout, "Escrow can be restored, but some shares are missing! " | ||
242 | "Please perform a new escrow.\n"); | ||
243 | break; | ||
240 | case GNUNET_ESCROW_INVALID: | 244 | case GNUNET_ESCROW_INVALID: |
241 | ret = 2; | 245 | ret = 2; |
242 | fprintf (stdout, "Escrow is INvalid! Please perform a new escrow.\n"); | 246 | fprintf (stdout, "Escrow is INvalid! Please perform a new escrow.\n"); |
diff --git a/src/escrow/plugin_escrow_gns.c b/src/escrow/plugin_escrow_gns.c index 4ece88ca9..f9a68728d 100644 --- a/src/escrow/plugin_escrow_gns.c +++ b/src/escrow/plugin_escrow_gns.c | |||
@@ -1400,11 +1400,16 @@ verify_restored_pk (void *cls, | |||
1400 | { | 1400 | { |
1401 | ego_pk = GNUNET_IDENTITY_ego_get_private_key (p_op->ego); | 1401 | ego_pk = GNUNET_IDENTITY_ego_get_private_key (p_op->ego); |
1402 | verificationResult = memcmp (pk, | 1402 | verificationResult = memcmp (pk, |
1403 | ego_pk, | 1403 | ego_pk, |
1404 | sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey)) | 1404 | sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey)) |
1405 | == 0 ? GNUNET_ESCROW_VALID : GNUNET_ESCROW_INVALID; | 1405 | == 0 ? GNUNET_ESCROW_VALID : GNUNET_ESCROW_INVALID; |
1406 | } | 1406 | } |
1407 | 1407 | ||
1408 | // check if all shares could be restored | ||
1409 | if (GNUNET_ESCROW_VALID == verificationResult && | ||
1410 | count_keyshares (p_op->restored_keyshares, p_op->shares) < p_op->shares) | ||
1411 | verificationResult = GNUNET_ESCROW_SHARES_MISSING; | ||
1412 | |||
1408 | p_op->verify_wrap->verificationResult = verificationResult; | 1413 | p_op->verify_wrap->verificationResult = verificationResult; |
1409 | verify_cont (plugin_op_wrap); | 1414 | verify_cont (plugin_op_wrap); |
1410 | } | 1415 | } |
diff --git a/src/include/gnunet_escrow_lib.h b/src/include/gnunet_escrow_lib.h index 069328151..7d9d39dce 100644 --- a/src/include/gnunet_escrow_lib.h +++ b/src/include/gnunet_escrow_lib.h | |||
@@ -59,7 +59,8 @@ enum GNUNET_ESCROW_Key_Escrow_Method | |||
59 | enum GNUNET_ESCROW_Verification_Result | 59 | enum GNUNET_ESCROW_Verification_Result |
60 | { | 60 | { |
61 | GNUNET_ESCROW_VALID, | 61 | GNUNET_ESCROW_VALID, |
62 | GNUNET_ESCROW_INVALID | 62 | GNUNET_ESCROW_INVALID, |
63 | GNUNET_ESCROW_SHARES_MISSING | ||
63 | }; | 64 | }; |
64 | 65 | ||
65 | 66 | ||
@@ -145,6 +146,8 @@ typedef void (*GNUNET_ESCROW_EgoContinuation) ( | |||
145 | * @param cls closure | 146 | * @param cls closure |
146 | * @param verificationResult the result of the verification, i.e. | 147 | * @param verificationResult the result of the verification, i.e. |
147 | * GNUNET_ESCROW_VALID if the escrow could successfully by restored, | 148 | * GNUNET_ESCROW_VALID if the escrow could successfully by restored, |
149 | * GNUNET_ESCROW_SHARES_MISSING if it could be restored, but some of | ||
150 | * the shares are missing | ||
148 | * GNUNET_ESCROW_INVALID otherwise | 151 | * GNUNET_ESCROW_INVALID otherwise |
149 | * @param emsg error message, NULL on success | 152 | * @param emsg error message, NULL on success |
150 | */ | 153 | */ |