[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-exchange] 134/152: TALER_TESTING_cmd_admin_add_incoming_with_ref
From: |
gnunet |
Subject: |
[taler-exchange] 134/152: TALER_TESTING_cmd_admin_add_incoming_with_ref finds reserve_pub if reserve_priv doesn't exist |
Date: |
Sun, 05 Jul 2020 20:48:10 +0200 |
This is an automated email from the git hooks/post-receive script.
grothoff pushed a commit to branch master
in repository exchange.
commit 33e7b1f6627edde22ce547a7fd6f330f6856a53f
Author: Jonathan Buchanan <jonathan.russ.buchanan@gmail.com>
AuthorDate: Tue Jun 16 21:37:17 2020 -0400
TALER_TESTING_cmd_admin_add_incoming_with_ref finds reserve_pub if
reserve_priv doesn't exist
---
src/include/taler_testing_lib.h | 2 +-
.../testing_api_cmd_bank_admin_add_incoming.c | 112 +++++++++++++++------
2 files changed, 82 insertions(+), 32 deletions(-)
diff --git a/src/include/taler_testing_lib.h b/src/include/taler_testing_lib.h
index 53a004c8..0cab44d9 100644
--- a/src/include/taler_testing_lib.h
+++ b/src/include/taler_testing_lib.h
@@ -1089,7 +1089,7 @@ TALER_TESTING_cmd_admin_add_incoming (
* @param payto_debit_account which account sends money.
* @param auth authentication data
* @param ref reference to a command that can offer a reserve
- * private key.
+ * private key or public key.
* @return the command.
*/
struct TALER_TESTING_Command
diff --git a/src/testing/testing_api_cmd_bank_admin_add_incoming.c
b/src/testing/testing_api_cmd_bank_admin_add_incoming.c
index 2399825d..d8b1d7b0 100644
--- a/src/testing/testing_api_cmd_bank_admin_add_incoming.c
+++ b/src/testing/testing_api_cmd_bank_admin_add_incoming.c
@@ -81,6 +81,11 @@ struct AdminAddIncomingState
*/
struct TALER_ReservePrivateKeyP reserve_priv;
+ /**
+ * Whether we know the private key or not.
+ */
+ bool reserve_priv_known;
+
/**
* Reserve public key matching @e reserve_priv.
*/
@@ -271,6 +276,7 @@ admin_add_incoming_run (void *cls,
struct TALER_TESTING_Interpreter *is)
{
struct AdminAddIncomingState *fts = cls;
+ bool have_public = false;
(void) cmd;
/* Use reserve public key as subject */
@@ -278,6 +284,7 @@ admin_add_incoming_run (void *cls,
{
const struct TALER_TESTING_Command *ref;
const struct TALER_ReservePrivateKeyP *reserve_priv;
+ const struct TALER_ReservePublicKeyP *reserve_pub;
ref = TALER_TESTING_interpreter_lookup_command
(is, fts->reserve_reference);
@@ -292,11 +299,23 @@ admin_add_incoming_run (void *cls,
0,
&reserve_priv))
{
- GNUNET_break (0);
- TALER_TESTING_interpreter_fail (is);
- return;
+ if (GNUNET_OK != TALER_TESTING_get_trait_reserve_pub (ref,
+ 0,
+ &reserve_pub))
+ {
+ GNUNET_break (0);
+ TALER_TESTING_interpreter_fail (is);
+ return;
+ }
+ have_public = true;
+ fts->reserve_pub.eddsa_pub = reserve_pub->eddsa_pub;
+ fts->reserve_priv_known = false;
+ }
+ else
+ {
+ fts->reserve_priv.eddsa_priv = reserve_priv->eddsa_priv;
+ fts->reserve_priv_known = true;
}
- fts->reserve_priv.eddsa_priv = reserve_priv->eddsa_priv;
}
else
{
@@ -349,6 +368,7 @@ admin_add_incoming_run (void *cls,
TALER_TESTING_interpreter_fail (is);
return;
}
+ fts->reserve_priv_known = true;
GNUNET_free (keys);
GNUNET_free (section);
GNUNET_CONFIGURATION_destroy (cfg);
@@ -358,10 +378,12 @@ admin_add_incoming_run (void *cls,
/* No referenced reserve, no instance to take priv
* from, no explicit subject given: create new key! */
GNUNET_CRYPTO_eddsa_key_create (&fts->reserve_priv.eddsa_priv);
+ fts->reserve_priv_known = true;
}
}
- GNUNET_CRYPTO_eddsa_key_get_public (&fts->reserve_priv.eddsa_priv,
- &fts->reserve_pub.eddsa_pub);
+ if (! have_public)
+ GNUNET_CRYPTO_eddsa_key_get_public (&fts->reserve_priv.eddsa_priv,
+ &fts->reserve_pub.eddsa_pub);
fts->reserve_history.type = TALER_EXCHANGE_RTT_CREDIT;
fts->reserve_history.amount = fts->amount;
fts->reserve_history.details.in_details.sender_url
@@ -432,30 +454,58 @@ admin_add_incoming_traits (void *cls,
unsigned int index)
{
struct AdminAddIncomingState *fts = cls;
- struct TALER_TESTING_Trait traits[] = {
- TALER_TESTING_make_trait_bank_row (&fts->serial_id),
- TALER_TESTING_make_trait_payto (TALER_TESTING_PT_DEBIT,
- fts->payto_debit_account),
- /* Used as a marker, content does not matter */
- TALER_TESTING_make_trait_payto (TALER_TESTING_PT_CREDIT,
- "payto://void/the-exchange"),
- TALER_TESTING_make_trait_url (TALER_TESTING_UT_EXCHANGE_BANK_ACCOUNT_URL,
- fts->exchange_credit_url),
- TALER_TESTING_make_trait_amount_obj (0, &fts->amount),
- TALER_TESTING_make_trait_absolute_time (0, &fts->timestamp),
- TALER_TESTING_make_trait_reserve_priv (0,
- &fts->reserve_priv),
- TALER_TESTING_make_trait_reserve_pub (0,
- &fts->reserve_pub),
- TALER_TESTING_make_trait_reserve_history (0,
- &fts->reserve_history),
- TALER_TESTING_trait_end ()
- };
-
- return TALER_TESTING_get_trait (traits,
- ret,
- trait,
- index);
+ if (fts->reserve_priv_known)
+ {
+ struct TALER_TESTING_Trait traits[] = {
+ TALER_TESTING_make_trait_bank_row (&fts->serial_id),
+ TALER_TESTING_make_trait_payto (TALER_TESTING_PT_DEBIT,
+ fts->payto_debit_account),
+ /* Used as a marker, content does not matter */
+ TALER_TESTING_make_trait_payto (TALER_TESTING_PT_CREDIT,
+ "payto://void/the-exchange"),
+ TALER_TESTING_make_trait_url (TALER_TESTING_UT_EXCHANGE_BANK_ACCOUNT_URL,
+ fts->exchange_credit_url),
+ TALER_TESTING_make_trait_amount_obj (0, &fts->amount),
+ TALER_TESTING_make_trait_absolute_time (0, &fts->timestamp),
+ TALER_TESTING_make_trait_reserve_priv (0,
+ &fts->reserve_priv),
+ TALER_TESTING_make_trait_reserve_pub (0,
+ &fts->reserve_pub),
+ TALER_TESTING_make_trait_reserve_history (0,
+ &fts->reserve_history),
+ TALER_TESTING_trait_end ()
+ };
+
+ return TALER_TESTING_get_trait (traits,
+ ret,
+ trait,
+ index);
+ }
+ else
+ {
+ struct TALER_TESTING_Trait traits[] = {
+ TALER_TESTING_make_trait_bank_row (&fts->serial_id),
+ TALER_TESTING_make_trait_payto (TALER_TESTING_PT_DEBIT,
+ fts->payto_debit_account),
+ /* Used as a marker, content does not matter */
+ TALER_TESTING_make_trait_payto (TALER_TESTING_PT_CREDIT,
+ "payto://void/the-exchange"),
+ TALER_TESTING_make_trait_url (TALER_TESTING_UT_EXCHANGE_BANK_ACCOUNT_URL,
+ fts->exchange_credit_url),
+ TALER_TESTING_make_trait_amount_obj (0, &fts->amount),
+ TALER_TESTING_make_trait_absolute_time (0, &fts->timestamp),
+ TALER_TESTING_make_trait_reserve_pub (0,
+ &fts->reserve_pub),
+ TALER_TESTING_make_trait_reserve_history (0,
+ &fts->reserve_history),
+ TALER_TESTING_trait_end ()
+ };
+
+ return TALER_TESTING_get_trait (traits,
+ ret,
+ trait,
+ index);
+ }
}
@@ -548,7 +598,7 @@ TALER_TESTING_cmd_admin_add_incoming (const char *label,
* @param payto_debit_account which account sends money
* @param auth authentication data
* @param ref reference to a command that can offer a reserve
- * private key.
+ * private key or public key.
* @return the command.
*/
struct TALER_TESTING_Command
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-exchange] 93/152: update exchange API to return struct instead of lots of individual args for TALER_EXCHANGE_transfers_get() -- simplifies merchant later, (continued)
- [taler-exchange] 93/152: update exchange API to return struct instead of lots of individual args for TALER_EXCHANGE_transfers_get() -- simplifies merchant later, gnunet, 2020/07/05
- [taler-exchange] 139/152: clarify with/without wire fee issue, sanity checks on currencies, gnunet, 2020/07/05
- [taler-exchange] 143/152: bump required version, gnunet, 2020/07/05
- [taler-exchange] 150/152: merge, gnunet, 2020/07/05
- [taler-exchange] 149/152: fix error reporting/handling, gnunet, 2020/07/05
- [taler-exchange] 129/152: update gana, gnunet, 2020/07/05
- [taler-exchange] 148/152: move rewind command to exchange, add proper support for rewinding in batches, modify API to rewind to label, gnunet, 2020/07/05
- [taler-exchange] 145/152: minor typo, gnunet, 2020/07/05
- [taler-exchange] 133/152: synchronize with latest GANA, gnunet, 2020/07/05
- [taler-exchange] 135/152: synchronize with latest GANA, gnunet, 2020/07/05
- [taler-exchange] 134/152: TALER_TESTING_cmd_admin_add_incoming_with_ref finds reserve_pub if reserve_priv doesn't exist,
gnunet <=
- [taler-exchange] 142/152: fix FIXME by exposing deposit permission signing in API instead of doing it inside of the testing logic, gnunet, 2020/07/05
- [taler-exchange] 144/152: response to CB, gnunet, 2020/07/05
- [taler-exchange] 147/152: fix typo, gnunet, 2020/07/05
- [taler-exchange] 100/152: fix status code, gnunet, 2020/07/05
- [taler-exchange] 132/152: add TALER_yna_to_string(), gnunet, 2020/07/05
- [taler-exchange] 152/152: Merge branch 'protocolv8', gnunet, 2020/07/05
- [taler-exchange] 151/152: GNUNET_free_non_null is gone, use GNUNET_free, gnunet, 2020/07/05
- [taler-exchange] 138/152: traits for int64_t and json_t, gnunet, 2020/07/05
- [taler-exchange] 141/152: fix #6236, gnunet, 2020/07/05