[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-anastasis] branch master updated: backup enter_secret test passes
From: |
gnunet |
Subject: |
[taler-anastasis] branch master updated: backup enter_secret test passes |
Date: |
Mon, 01 Mar 2021 15:42:12 +0100 |
This is an automated email from the git hooks/post-receive script.
grothoff pushed a commit to branch master
in repository anastasis.
The following commit(s) were added to refs/heads/master by this push:
new 2e3a22c backup enter_secret test passes
2e3a22c is described below
commit 2e3a22c024a444513f7c176f524eeeb5d899070d
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Mon Mar 1 15:42:10 2021 +0100
backup enter_secret test passes
---
src/cli/Makefile.am | 4 +--
src/cli/test_anastasis_reducer_enter_secret.sh | 40 ++++++++++++---------
src/reducer/anastasis_api_backup_redux.c | 48 ++++++++++++++++++++++++--
3 files changed, 71 insertions(+), 21 deletions(-)
diff --git a/src/cli/Makefile.am b/src/cli/Makefile.am
index d1751e7..3726517 100644
--- a/src/cli/Makefile.am
+++ b/src/cli/Makefile.am
@@ -16,8 +16,8 @@ check_SCRIPTS = \
test_anastasis_reducer_backup_enter_user_attributes.sh \
test_anastasis_reducer_add_authentication.sh \
test_anastasis_reducer_done_authentication.sh \
- test_anastasis_reducer_done_policy_review.sh
-# test_anastasis_reducer_enter_secret.sh
+ test_anastasis_reducer_done_policy_review.sh \
+ test_anastasis_reducer_enter_secret.sh
# test_anastasis_reducer_recovery_enter_user_attributes.sh
diff --git a/src/cli/test_anastasis_reducer_enter_secret.sh
b/src/cli/test_anastasis_reducer_enter_secret.sh
index f965fc0..5b4d5ac 100755
--- a/src/cli/test_anastasis_reducer_enter_secret.sh
+++ b/src/cli/test_anastasis_reducer_enter_secret.sh
@@ -158,7 +158,7 @@ taler-auditor-httpd -L INFO -c $CONF 2>
taler-auditor-httpd.log &
echo " OK"
echo -n "Launching anastasis services ..."
-PREFIX=valgrind
+PREFIX="" #valgrind
$PREFIX anastasis-httpd -c $CONF_1 2> anastasis-httpd_1.log &
$PREFIX anastasis-httpd -c $CONF_2 2> anastasis-httpd_2.log &
$PREFIX anastasis-httpd -c $CONF_3 2> anastasis-httpd_3.log &
@@ -270,7 +270,7 @@ curl -H "Content-Type: application/json" -X POST -d
'{"payto_uris":["payto://x-t
echo " DONE"
-echo -e $COLOR$BOLD"Test enter secret in a backup state ..."$NORM$NOCOLOR
+echo -en $COLOR$BOLD"Test enter secret in a backup state ..."$NORM$NOCOLOR
$PREFIX anastasis-reducer -a \
'{"secret": "veryhardtoguesssecret",
@@ -290,12 +290,14 @@ then
fi
echo " OK"
-echo -e $COLOR$BOLD"Current state of policy uploads:"$NORM$NOCOLOR
-POLICY_UPLOADS=`jq -r -e .policy_payment_requests < $TFILE`
-echo $POLICY_UPLOADS
+#echo -e $COLOR$BOLD"Current state of policy uploads:"$NORM$NOCOLOR
+#POLICY_UPLOADS=`jq -r -e .policy_payment_requests < $TFILE`
+#echo $POLICY_UPLOADS
#Pay
-echo " "
-echo -e $COLOR$BOLD"Withdrawing amount to wallet .,.."$NORM$NOCOLOR
+
+echo -en $COLOR$BOLD"Withdrawing amount to wallet ..."$NORM$NOCOLOR
+
+rm $WALLET_DB
taler-wallet-cli --no-throttle --wallet-db=$WALLET_DB api
'withdrawTestBalance' \
"$(jq -n '
{
@@ -305,35 +307,41 @@ taler-wallet-cli --no-throttle --wallet-db=$WALLET_DB api
'withdrawTestBalance'
}' \
--arg BANK_URL "$BANK_URL" \
--arg EXCHANGE_URL "$EXCHANGE_URL"
- )"
-taler-wallet-cli --wallet-db=$WALLET_DB run-until-done
+ )" 2> /dev/null >/dev/null
+taler-wallet-cli --wallet-db=$WALLET_DB run-until-done 2>/dev/null >/dev/null
echo " OK"
-echo -e $COLOR$BOLD"Parsing policy uploads for payment-uri ..."$NORM$NOCOLOR
+
+echo -en $COLOR$BOLD"Making payments for policy uploads ... "$NORM$NOCOLOR
OBJECT_SIZE=`jq -r -e '.policy_payment_requests | length' < $TFILE`
for ((INDEX=0; INDEX < $OBJECT_SIZE; INDEX++))
do
PAY_URI=`jq --argjson INDEX $INDEX -r -e
'.policy_payment_requests[$INDEX].payto' < $TFILE`
# run wallet CLI
- echo -n "."
- taler-wallet-cli --wallet-db=$WALLET_DB handle-uri $PAY_URI -y
+ echo -n "$INDEX"
+ taler-wallet-cli --wallet-db=$WALLET_DB handle-uri $PAY_URI -y 2>/dev/null
>/dev/null
+ echo -n ","
done
echo " OK"
echo -e $COLOR$BOLD"Running wallet run-pending..."$NORM$NOCOLOR
-taler-wallet-cli --wallet-db=$WALLET_DB run-pending
+taler-wallet-cli --wallet-db=$WALLET_DB run-pending 2>/dev/null >/dev/null
echo -e $COLOR$BOLD"Payments done"$NORM$NOCOLOR
-bash
-
-echo -e $COLOR$BOLD"Try to upload again ..."$NORM$NOCOLOR
+echo -en $COLOR$BOLD"Try to upload again ..."$NORM$NOCOLOR
$PREFIX anastasis-reducer pay $TFILE $UFILE
+echo " OK"
+
+echo -n "Final checks ..."
+
STATE=`jq -r -e .backup_state < $UFILE`
if test "$STATE" != "BACKUP_FINISHED"
then
exit_fail "Expected new state to be BACKUP_FINISHED, got $STATE"
fi
+jq -r -e .core_secret < $UFILE > /dev/null && exit_fail "'core_secret' was not
cleared upon success"
+
echo " OK"
exit 0
diff --git a/src/reducer/anastasis_api_backup_redux.c
b/src/reducer/anastasis_api_backup_redux.c
index 4619623..bb5d4f7 100644
--- a/src/reducer/anastasis_api_backup_redux.c
+++ b/src/reducer/anastasis_api_backup_redux.c
@@ -1358,6 +1358,10 @@ secret_share_result_cb (void *cls,
switch (sr->ss)
{
case ANASTASIS_SHARE_STATUS_SUCCESS:
+ /* Just to be safe, delete the "core_secret" so that it is not
+ accidentally preserved anywhere */
+ (void) json_object_del (uc->state,
+ "core_secret");
set_state (uc->state,
ANASTASIS_BACKUP_STATE_BACKUP_FINISHED);
uc->cb (uc->cb_cls,
@@ -1511,10 +1515,37 @@ share_secret (struct UploadContext *uc)
{
const json_t *jmethod = json_array_get (jmethods,
j);
- const json_t *jtruth = json_object_get (jmethod,
- "truth");
+ json_t *jtruth = NULL;
+ uint32_t truth_index;
+ const char *provider_url;
+ struct GNUNET_JSON_Specification ispec[] = {
+ GNUNET_JSON_spec_mark_optional (
+ GNUNET_JSON_spec_json ("truth",
+ &jtruth)),
+ GNUNET_JSON_spec_string ("provider",
+ &provider_url),
+ GNUNET_JSON_spec_uint32 ("authentication_method",
+ &truth_index),
+ GNUNET_JSON_spec_end ()
+ };
GNUNET_break (NULL != jmethod);
+ if (GNUNET_OK !=
+ GNUNET_JSON_parse (jmethod,
+ ispec,
+ NULL, NULL))
+ {
+ GNUNET_break (0);
+ for (unsigned int k = 0; k<j; k++)
+ ANASTASIS_truth_free (truths[k]);
+ ANASTASIS_redux_fail_ (uc->cb,
+ uc->cb_cls,
+ TALER_EC_ANASTASIS_REDUCER_STATE_INVALID,
+ "'truth' failed to decode");
+ GNUNET_JSON_parse_free (spec);
+ upload_cancel_cb (uc);
+ return;
+ }
if (NULL != jtruth)
{
/* Get truth by deserializing from state */
@@ -1528,6 +1559,7 @@ share_secret (struct UploadContext *uc)
uc->cb_cls,
TALER_EC_ANASTASIS_REDUCER_STATE_INVALID,
"'truth' failed to decode");
+ GNUNET_JSON_parse_free (ispec);
GNUNET_JSON_parse_free (spec);
upload_cancel_cb (uc);
return;
@@ -1542,7 +1574,9 @@ share_secret (struct UploadContext *uc)
tue = tue->next)
{
GNUNET_break (NULL != tue->t);
- if (tue->am_idx == j)
+ if ( (tue->am_idx == truth_index) &&
+ (0 == strcmp (provider_url,
+ tue->provider_url)) )
{
/* Duplicate truth object */
json_t *jt = ANASTASIS_truth_to_json (tue->t);
@@ -1564,11 +1598,13 @@ share_secret (struct UploadContext *uc)
uc->cb_cls,
TALER_EC_ANASTASIS_REDUCER_STATE_INVALID,
"'truth' failed to decode");
+ GNUNET_JSON_parse_free (ispec);
GNUNET_JSON_parse_free (spec);
upload_cancel_cb (uc);
return;
}
}
+ GNUNET_JSON_parse_free (ispec);
ctruths[j] = truths[j];
}
p = ANASTASIS_policy_create (ctruths,
@@ -2258,6 +2294,9 @@ pay_truths_backup (json_t *state,
ANASTASIS_ActionCallback cb,
void *cb_cls)
{
+ /* Clear 'payments' if it exists */
+ (void) json_object_del (state,
+ "payments");
return upload (state,
cb,
cb_cls);
@@ -2280,6 +2319,9 @@ pay_policies_backup (json_t *state,
ANASTASIS_ActionCallback cb,
void *cb_cls)
{
+ /* Clear 'policy_payment_requests' if it exists */
+ (void) json_object_del (state,
+ "policy_payment_requests");
return upload (state,
cb,
cb_cls);
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-anastasis] branch master updated: backup enter_secret test passes,
gnunet <=