gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-anastasis] branch master updated: major work on test_iban


From: gnunet
Subject: [taler-anastasis] branch master updated: major work on test_iban
Date: Wed, 13 Apr 2022 10:53:38 +0200

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 49aebae  major work on test_iban
49aebae is described below

commit 49aebaedc3d200c8c9ce306f8e3ea5bdc4449a50
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Wed Apr 13 10:53:36 2022 +0200

    major work on test_iban
---
 .../anastasis_authorization_plugin_iban.c          | 30 ++++++----
 src/cli/test_free_reducer.conf                     |  2 +-
 src/cli/test_iban.sh                               | 67 ++++++++++++++++++----
 src/restclient/anastasis_api_truth_challenge.c     |  3 +
 4 files changed, 80 insertions(+), 22 deletions(-)

diff --git a/src/authorization/anastasis_authorization_plugin_iban.c 
b/src/authorization/anastasis_authorization_plugin_iban.c
index 3887ecd..b48aa56 100644
--- a/src/authorization/anastasis_authorization_plugin_iban.c
+++ b/src/authorization/anastasis_authorization_plugin_iban.c
@@ -450,16 +450,24 @@ iban_challenge (struct ANASTASIS_AUTHORIZATION_State *as,
       resp = TALER_MHD_MAKE_JSON_PACK (
         GNUNET_JSON_pack_string ("challenge_type",
                                  "IBAN_WIRE"),
-        GNUNET_JSON_pack_uint64 ("answer_code",
-                                 as->code),
-        TALER_JSON_pack_amount ("challenge_amount",
-                                &ctx->expected_amount),
-        GNUNET_JSON_pack_string ("credit_iban",
-                                 ctx->business_iban),
-        GNUNET_JSON_pack_string ("business_name",
-                                 ctx->business_name),
-        GNUNET_JSON_pack_string ("wire_transfer_subject",
-                                 subject));
+        GNUNET_JSON_pack_object_steal (
+          "wire_details",
+          GNUNET_JSON_PACK (
+            GNUNET_JSON_pack_uint64 (
+              "answer_code",
+              as->code),
+            TALER_JSON_pack_amount (
+              "challenge_amount",
+              &ctx->expected_amount),
+            GNUNET_JSON_pack_string (
+              "credit_iban",
+              ctx->business_iban),
+            GNUNET_JSON_pack_string (
+              "business_name",
+              ctx->business_name),
+            GNUNET_JSON_pack_string (
+              "wire_transfer_subject",
+              subject))));
     }
     else
     {
@@ -485,7 +493,7 @@ iban_challenge (struct ANASTASIS_AUTHORIZATION_State *as,
                                              "text/plain"));
     }
     mres = MHD_queue_response (connection,
-                               MHD_HTTP_ACCEPTED,
+                               MHD_HTTP_OK,
                                resp);
     MHD_destroy_response (resp);
     if (MHD_YES != mres)
diff --git a/src/cli/test_free_reducer.conf b/src/cli/test_free_reducer.conf
index 74954cd..8308537 100644
--- a/src/cli/test_free_reducer.conf
+++ b/src/cli/test_free_reducer.conf
@@ -11,7 +11,7 @@ UPLOAD_LIMIT_MB = 1
 ANNUAL_POLICY_UPLOAD_LIMIT = 128
 INSURANCE = EUR:0
 PORT = 8086
-SERVER_SALT = BUfO1KGOKYIFlFQg
+PROVIDER_SALT = BUfO1KGOKYIFlFQg
 BUSINESS_NAME = "Data loss Inc."
 
 [stasis]
diff --git a/src/cli/test_iban.sh b/src/cli/test_iban.sh
index 923256b..a5e33f4 100755
--- a/src/cli/test_iban.sh
+++ b/src/cli/test_iban.sh
@@ -327,6 +327,19 @@ anastasis-reducer -a \
   )" \
   add_authentication < $B2FILE > $B1FILE 2>> test_reducer.err
 echo -n "."
+
+# "91GPWWR" encodes "Hans"
+anastasis-reducer -a \
+  '{"authentication_method": {
+    "type": "question",
+    "instructions": "What is your name?",
+    "challenge": "91GPWWR"
+    } }' \
+  add_authentication < $B1FILE > $B2FILE 2>> test_reducer.err
+echo -n "."
+
+mv $B2FILE $B1FILE
+
 # Finished adding authentication methods
 anastasis-reducer \
     next < $B1FILE > $B2FILE 2>> test_reducer.err
@@ -372,9 +385,13 @@ then
 fi
 echo " OK"
 
-echo -n "Selecting default secret"
-mv $R2FILE $R1FILE
-anastasis-reducer next < $R1FILE > $R2FILE 2>> test_reducer.err
+echo -n "Adding provider (to ensure it is loaded)"
+anastasis-reducer -a '{"provider_url" : "http://localhost:8086/"; }' 
add_provider < $R2FILE > $R1FILE
+echo " OK"
+
+echo -n "Selecting secret to recover"
+anastasis-reducer  -a '{"attribute_mask": 0, "providers" : [ { "version": 0, 
"url" : "http://localhost:8086/"; } ] }' \
+  select_version < $R1FILE > $R2FILE 2>> test_reducer.err
 
 STATE=`jq -r -e .recovery_state < $R2FILE`
 if test "$STATE" != "CHALLENGE_SELECTING"
@@ -385,7 +402,22 @@ echo " OK"
 
 echo -n "Running challenge selection logic ..."
 
-NAME_UUID=`jq -r -e .recovery_information.challenges[0].uuid < $R2FILE`
+UUID0=`jq -r -e .recovery_information.challenges[0].uuid < $R2FILE`
+UUID1=`jq -r -e .recovery_information.challenges[1].uuid < $R2FILE`
+UUID0Q=`jq -r -e .recovery_information.challenges[0].instructions < $R2FILE`
+UUID1Q=`jq -r -e .recovery_information.challenges[1].instructions < $R2FILE`
+
+if test "$UUID1Q" = 'What is your name?'
+then
+    NAME_UUID=$UUID1
+    IBAN_UUID=$UUID0
+else
+    NAME_UUID=$UUID0
+    IBAN_UUID=$UUID1
+fi
+
+echo "OK"
+echo -n "Solving first challenge ..."
 anastasis-reducer -a \
   "$(jq -n '
     {
@@ -395,15 +427,30 @@ anastasis-reducer -a \
   )" \
   select_challenge < $R2FILE > $R1FILE 2>> test_reducer.err
 
+anastasis-reducer -a '{"answer": "Hans"}' \
+  solve_challenge < $R1FILE > $R2FILE
+
+echo "OK"
+echo -n "Solving IBAN challenge ..."
+
+anastasis-reducer -a \
+  "$(jq -n '
+    {
+        uuid: $UUID
+    }' \
+    --arg UUID "$IBAN_UUID"
+  )" \
+  select_challenge < $R2FILE > $R1FILE 2>> test_reducer.err
 echo "OK"
 
-METHOD=`jq -r -e .challenge_feedback.\"$NAME_UUID\".method < $R1FILE`
-if test "$METHOD" != "iban"
+
+METHOD=`jq -r -e .challenge_feedback.\"$IBAN_UUID\".state < $R1FILE`
+if test "$METHOD" != "iban-instructions"
 then
-    exit_fail "Expected method to be 'iban', got ${METHOD}"
+    exit_fail "Expected method to be 'iban-instructions', got ${METHOD}"
 fi
 
-ACC=`jq -r -e .challenge_feedback.\"$NAME_UUID\".details.credit_iban < $R1FILE`
+ACC=`jq -r -e .challenge_feedback.\"$IBAN_UUID\".target_iban < $R1FILE`
 if test "$ACC" != ${IBAN_CREDIT}
 then
     exit_fail "Expected account to be ${IBAN_CREDIT}, got ${ACC}"
@@ -413,8 +460,8 @@ anastasis-reducer \
   back < $R1FILE > $R2FILE 2>> test_reducer.err
 
 
-AMOUNT=`jq -r -e .challenge_feedback.\"$NAME_UUID\".details.challenge_amount < 
$R1FILE`
-SUBJECT=`jq -r -e 
.challenge_feedback.\"$NAME_UUID\".details.wire_transfer_subject < $R1FILE`
+AMOUNT=`jq -r -e .challenge_feedback.\"$IBAN_UUID\".challenge_amount < $R1FILE`
+SUBJECT=`jq -r -e .challenge_feedback.\"$IBAN_UUID\".wire_transfer_subject < 
$R1FILE`
 
 echo -n "Performing authorization wire transfer ..."
 wire_transfer_to_anastasis "${AMOUNT}" "${SUBJECT}"
diff --git a/src/restclient/anastasis_api_truth_challenge.c 
b/src/restclient/anastasis_api_truth_challenge.c
index 606bcfb..aa9119c 100644
--- a/src/restclient/anastasis_api_truth_challenge.c
+++ b/src/restclient/anastasis_api_truth_challenge.c
@@ -219,6 +219,9 @@ handle_truth_challenge_finished (void *cls,
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                   "Unexpected challenge type `%s'\n",
                   ct);
+      json_dumpf (j,
+                  stderr,
+                  JSON_INDENT (2));
       tcd.http_status = 0;
       tcd.ec = TALER_EC_GENERIC_REPLY_MALFORMED;
       break;

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]