From 9572337aed3ebc5f0654db11c10babc88560c481 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Tue, 1 Dec 2020 21:07:56 +0100 Subject: more management API tests and bugfixes --- src/exchange/taler-exchange-httpd.c | 4 +-- .../taler-exchange-httpd_management_wire.c | 38 +++++++--------------- .../taler-exchange-httpd_management_wire_disable.c | 7 ++-- .../taler-exchange-httpd_management_wire_fees.c | 2 +- 4 files changed, 18 insertions(+), 33 deletions(-) (limited to 'src/exchange') diff --git a/src/exchange/taler-exchange-httpd.c b/src/exchange/taler-exchange-httpd.c index 4896c8d46..fe00bf6d4 100644 --- a/src/exchange/taler-exchange-httpd.c +++ b/src/exchange/taler-exchange-httpd.c @@ -631,12 +631,12 @@ handle_post_management (const struct TEH_RequestHandler *rh, root); } if (0 == strcmp (args[0], - "wire-fees")) + "wire-fee")) { if (NULL != args[1]) { GNUNET_break_op (0); - return r404 (connection, "/management/wire-fees/*"); + return r404 (connection, "/management/wire-fee/*"); } return TEH_handler_management_post_wire_fees (connection, root); diff --git a/src/exchange/taler-exchange-httpd_management_wire.c b/src/exchange/taler-exchange-httpd_management_wire.c index b684a107e..2ec42c3bc 100644 --- a/src/exchange/taler-exchange-httpd_management_wire.c +++ b/src/exchange/taler-exchange-httpd_management_wire.c @@ -175,9 +175,8 @@ TEH_handler_management_denominations_wire ( .start_date = GNUNET_TIME_absolute_hton (awc.validity_start), }; - GNUNET_CRYPTO_hash (awc.payto_uri, - strlen (awc.payto_uri) + 1, - &aw.h_wire); + TALER_exchange_wire_signature_hash (awc.payto_uri, + &aw.h_wire); if (GNUNET_OK != GNUNET_CRYPTO_eddsa_verify ( TALER_SIGNATURE_MASTER_ADD_WIRE, @@ -193,30 +192,17 @@ TEH_handler_management_denominations_wire ( NULL); } } + if (GNUNET_OK != + TALER_exchange_wire_signature_check (awc.payto_uri, + &TEH_master_public_key, + &awc.master_sig_wire)) { - struct TALER_MasterWireDetailsPS wd = { - .purpose.purpose = htonl ( - TALER_SIGNATURE_MASTER_ADD_WIRE), - .purpose.size = htonl (sizeof (wd)), - }; - - GNUNET_CRYPTO_hash (awc.payto_uri, - strlen (awc.payto_uri) + 1, - &wd.h_wire_details); - if (GNUNET_OK != - GNUNET_CRYPTO_eddsa_verify ( - TALER_SIGNATURE_MASTER_WIRE_DETAILS, - &wd, - &awc.master_sig_wire.eddsa_signature, - &TEH_master_public_key.eddsa_pub)) - { - GNUNET_break_op (0); - return TALER_MHD_reply_with_error ( - connection, - MHD_HTTP_FORBIDDEN, - TALER_EC_EXCHANGE_MANAGEMENT_WIRE_DETAILS_SIGNATURE_INVALID, - NULL); - } + GNUNET_break_op (0); + return TALER_MHD_reply_with_error ( + connection, + MHD_HTTP_FORBIDDEN, + TALER_EC_EXCHANGE_MANAGEMENT_WIRE_DETAILS_SIGNATURE_INVALID, + NULL); } qs = TEH_DB_run_transaction (connection, diff --git a/src/exchange/taler-exchange-httpd_management_wire_disable.c b/src/exchange/taler-exchange-httpd_management_wire_disable.c index d869d54d4..af5942a1b 100644 --- a/src/exchange/taler-exchange-httpd_management_wire_disable.c +++ b/src/exchange/taler-exchange-httpd_management_wire_disable.c @@ -139,7 +139,7 @@ TEH_handler_management_denominations_wire_disable ( { struct DelWireContext awc; struct GNUNET_JSON_Specification spec[] = { - GNUNET_JSON_spec_fixed_auto ("master_sig", + GNUNET_JSON_spec_fixed_auto ("master_sig_del", &awc.master_sig), GNUNET_JSON_spec_string ("payto_uri", &awc.payto_uri), @@ -169,9 +169,8 @@ TEH_handler_management_denominations_wire_disable ( .end_date = GNUNET_TIME_absolute_hton (awc.validity_end), }; - GNUNET_CRYPTO_hash (awc.payto_uri, - strlen (awc.payto_uri) + 1, - &aw.h_wire); + TALER_exchange_wire_signature_hash (awc.payto_uri, + &aw.h_wire); if (GNUNET_OK != GNUNET_CRYPTO_eddsa_verify ( TALER_SIGNATURE_MASTER_DEL_WIRE, diff --git a/src/exchange/taler-exchange-httpd_management_wire_fees.c b/src/exchange/taler-exchange-httpd_management_wire_fees.c index 3ec262cf4..58f2c41d7 100644 --- a/src/exchange/taler-exchange-httpd_management_wire_fees.c +++ b/src/exchange/taler-exchange-httpd_management_wire_fees.c @@ -199,7 +199,7 @@ TEH_handler_management_post_wire_fees ( return MHD_YES; /* failure */ } - if (0 != + if (GNUNET_OK != TALER_amount_cmp_currency (&afc.closing_fee, &afc.wire_fee)) { -- cgit v1.2.3