aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjospaeth <spaethj@in.tum.de>2020-08-23 18:18:34 +0200
committerjospaeth <spaethj@in.tum.de>2020-08-23 18:18:34 +0200
commit90c4283d66f82a090d1f8e65b097193b53ebd61f (patch)
tree332000c072dc1553ab952f838b19c61587924ad5
parent7cd8a4ba4ca75338e8ad932e70cead8e0faf3cba (diff)
downloadgnunet-90c4283d66f82a090d1f8e65b097193b53ebd61f.tar.gz
gnunet-90c4283d66f82a090d1f8e65b097193b53ebd61f.zip
add verification result for missing shares
-rw-r--r--src/escrow/gnunet-escrow.c8
-rw-r--r--src/escrow/plugin_escrow_gns.c9
-rw-r--r--src/include/gnunet_escrow_lib.h5
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 "
222in 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
59enum GNUNET_ESCROW_Verification_Result 59enum 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 */