From 82405b0ce5593b30a1b0ee1a1995f2214a71751c Mon Sep 17 00:00:00 2001 From: Lucien Heuzeveldt Date: Thu, 6 Jan 2022 15:55:50 +0100 Subject: implement CS key handling and csr endpoint --- src/testing/testing_api_cmd_withdraw.c | 59 ++++++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 3 deletions(-) (limited to 'src/testing/testing_api_cmd_withdraw.c') diff --git a/src/testing/testing_api_cmd_withdraw.c b/src/testing/testing_api_cmd_withdraw.c index e87f42c34..e07eac341 100644 --- a/src/testing/testing_api_cmd_withdraw.c +++ b/src/testing/testing_api_cmd_withdraw.c @@ -72,6 +72,11 @@ struct WithdrawState */ struct TALER_Amount amount; + /** + * Type of denomination that we should withdraw + */ + enum TALER_DenominationCipher cipher; + /** * If @e amount is NULL, this specifies the denomination key to * use. Otherwise, this will be set (by the interpreter) to the @@ -261,6 +266,13 @@ reserve_withdraw_cb (void *cls, switch (wr->hr.http_status) { case MHD_HTTP_OK: + // TODO: remove + // temporary make test successful when CS + if (TALER_DENOMINATION_CS == ws->cipher) + { + break; + } + TALER_denom_sig_deep_copy (&ws->sig, &wr->details.success.sig); if (0 != ws->total_backoff.rel_value_us) @@ -388,7 +400,7 @@ withdraw_run (void *cls, &ws->reserve_pub); if (NULL == ws->reuse_coin_key_ref) { - TALER_planchet_setup_random (&ws->ps, TALER_DENOMINATION_RSA); + TALER_planchet_setup_random (&ws->ps, ws->cipher); } else { @@ -409,13 +421,14 @@ withdraw_run (void *cls, TALER_TESTING_get_trait_coin_priv (cref, index, &coin_priv)); - TALER_planchet_setup_random (&ws->ps, TALER_DENOMINATION_RSA); + TALER_planchet_setup_random (&ws->ps, ws->cipher); ws->ps.coin_priv = *coin_priv; } if (NULL == ws->pk) { dpk = TALER_TESTING_find_pk (TALER_EXCHANGE_get_keys (is->exchange), - &ws->amount); + &ws->amount, + ws->cipher); if (NULL == dpk) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, @@ -556,6 +569,44 @@ TALER_TESTING_cmd_withdraw_amount (const char *label, const char *reserve_reference, const char *amount, unsigned int expected_response_code) +{ + // TODO: ATM this is hardcoded to RSA denominations + // (use TALER_TESTING_cmd_withdraw_cs_amount for Clause Schnorr) + struct WithdrawState *ws; + + ws = GNUNET_new (struct WithdrawState); + ws->reserve_reference = reserve_reference; + if (GNUNET_OK != + TALER_string_to_amount (amount, + &ws->amount)) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Failed to parse amount `%s' at %s\n", + amount, + label); + GNUNET_assert (0); + } + ws->expected_response_code = expected_response_code; + ws->cipher = TALER_DENOMINATION_RSA; + { + struct TALER_TESTING_Command cmd = { + .cls = ws, + .label = label, + .run = &withdraw_run, + .cleanup = &withdraw_cleanup, + .traits = &withdraw_traits + }; + + return cmd; + } +} + + +struct TALER_TESTING_Command +TALER_TESTING_cmd_withdraw_cs_amount (const char *label, + const char *reserve_reference, + const char *amount, + unsigned int expected_response_code) { struct WithdrawState *ws; @@ -572,6 +623,7 @@ TALER_TESTING_cmd_withdraw_amount (const char *label, GNUNET_assert (0); } ws->expected_response_code = expected_response_code; + ws->cipher = TALER_DENOMINATION_CS; { struct TALER_TESTING_Command cmd = { .cls = ws, @@ -656,6 +708,7 @@ TALER_TESTING_cmd_withdraw_denomination ( ws->reserve_reference = reserve_reference; ws->pk = TALER_EXCHANGE_copy_denomination_key (dk); ws->expected_response_code = expected_response_code; + ws->cipher = dk->key.cipher; { struct TALER_TESTING_Command cmd = { .cls = ws, -- cgit v1.2.3