summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/exchange/taler-exchange-httpd_kyc-check.c68
-rw-r--r--src/exchangedb/plugin_exchangedb_postgres.c8
-rw-r--r--src/testing/test_kyc_api.c2
-rw-r--r--src/testing/testing_api_cmd_bank_admin_add_incoming.c1
-rw-r--r--src/testing/testing_api_cmd_kyc_check_get.c3
-rw-r--r--src/testing/testing_api_cmd_kyc_proof.c3
6 files changed, 46 insertions, 39 deletions
diff --git a/src/exchange/taler-exchange-httpd_kyc-check.c b/src/exchange/taler-exchange-httpd_kyc-check.c
index ba9186866..de6ac42fd 100644
--- a/src/exchange/taler-exchange-httpd_kyc-check.c
+++ b/src/exchange/taler-exchange-httpd_kyc-check.c
@@ -60,11 +60,6 @@ struct KycPoller
struct GNUNET_DB_EventHandler *eh;
/**
- * UUID found based on @e h_payto.
- */
- uint64_t payment_target_uuid;
-
- /**
* UUID being checked.
*/
uint64_t auth_payment_target_uuid;
@@ -81,6 +76,11 @@ struct KycPoller
struct TALER_PaytoHashP h_payto;
/**
+ * Payto URL as a string, as given to us by t
+ */
+ const char *hps;
+
+ /**
* When will this request time out?
*/
struct GNUNET_TIME_Absolute timeout;
@@ -183,9 +183,6 @@ kyc_check (void *cls,
"inselect_wallet_status");
return qs;
}
- // FIXME: avoid duplicating this...
- kyp->payment_target_uuid = kyp->kyc.payment_target_uuid;
-
return qs;
}
@@ -293,32 +290,28 @@ TEH_handler_kyc_check (
tms));
}
}
+ kyp->hps = MHD_lookup_connection_value (rc->connection,
+ MHD_GET_ARGUMENT_KIND,
+ "h_payto");
+ if (NULL == kyp->hps)
{
- const char *hps;
-
- hps = MHD_lookup_connection_value (rc->connection,
- MHD_GET_ARGUMENT_KIND,
+ GNUNET_break_op (0);
+ return TALER_MHD_reply_with_error (rc->connection,
+ MHD_HTTP_BAD_REQUEST,
+ TALER_EC_GENERIC_PARAMETER_MISSING,
+ "h_payto");
+ }
+ if (GNUNET_OK !=
+ GNUNET_STRINGS_string_to_data (kyp->hps,
+ strlen (kyp->hps),
+ &kyp->h_payto,
+ sizeof (kyp->h_payto)))
+ {
+ GNUNET_break_op (0);
+ return TALER_MHD_reply_with_error (rc->connection,
+ MHD_HTTP_BAD_REQUEST,
+ TALER_EC_GENERIC_PARAMETER_MALFORMED,
"h_payto");
- if (NULL == hps)
- {
- GNUNET_break_op (0);
- return TALER_MHD_reply_with_error (rc->connection,
- MHD_HTTP_BAD_REQUEST,
- TALER_EC_GENERIC_PARAMETER_MISSING,
- "h_payto");
- }
- if (GNUNET_OK !=
- GNUNET_STRINGS_string_to_data (hps,
- strlen (hps),
- &kyp->h_payto,
- sizeof (kyp->h_payto)))
- {
- GNUNET_break_op (0);
- return TALER_MHD_reply_with_error (rc->connection,
- MHD_HTTP_BAD_REQUEST,
- TALER_EC_GENERIC_PARAMETER_MALFORMED,
- "h_payto");
- }
}
}
@@ -360,8 +353,13 @@ TEH_handler_kyc_check (
return res;
if (kyp->auth_payment_target_uuid !=
- kyp->payment_target_uuid)
+ kyp->kyc.payment_target_uuid)
{
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ "Account %llu provided, but payto %s is for %llu\n",
+ (unsigned long long) kyp->auth_payment_target_uuid,
+ kyp->hps,
+ (unsigned long long) kyp->kyc.payment_target_uuid);
GNUNET_break_op (0);
return TALER_MHD_reply_with_error (rc->connection,
MHD_HTTP_UNAUTHORIZED,
@@ -391,9 +389,9 @@ TEH_handler_kyc_check (
GNUNET_assert (TEH_KYC_OAUTH2 == TEH_kyc_config.mode);
GNUNET_asprintf (&redirect_uri,
- "%s/kyc-proof/%llu",
+ "%s/kyc-proof/%s",
TEH_base_url,
- (unsigned long long) kyp->payment_target_uuid);
+ kyp->hps);
redirect_uri_encoded = TALER_urlencode (redirect_uri);
GNUNET_free (redirect_uri);
GNUNET_asprintf (&url,
diff --git a/src/exchangedb/plugin_exchangedb_postgres.c b/src/exchangedb/plugin_exchangedb_postgres.c
index 53fd10e37..bdb15c4e5 100644
--- a/src/exchangedb/plugin_exchangedb_postgres.c
+++ b/src/exchangedb/plugin_exchangedb_postgres.c
@@ -3970,7 +3970,7 @@ postgres_select_kyc_status (void *cls,
{
struct PostgresClosure *pg = cls;
struct GNUNET_PQ_QueryParam params[] = {
- GNUNET_PQ_query_param_auto_from_type (&h_payto),
+ GNUNET_PQ_query_param_auto_from_type (h_payto),
GNUNET_PQ_query_param_end
};
struct GNUNET_PQ_ResultSpec rs[] = {
@@ -9668,8 +9668,10 @@ postgres_get_denomination_revocation (
GNUNET_PQ_query_param_end
};
struct GNUNET_PQ_ResultSpec rs[] = {
- GNUNET_PQ_result_spec_auto_from_type ("master_sig", master_sig),
- GNUNET_PQ_result_spec_uint64 ("denom_revocations_serial_id", rowid),
+ GNUNET_PQ_result_spec_auto_from_type ("master_sig",
+ master_sig),
+ GNUNET_PQ_result_spec_uint64 ("denom_revocations_serial_id",
+ rowid),
GNUNET_PQ_result_spec_end
};
diff --git a/src/testing/test_kyc_api.c b/src/testing/test_kyc_api.c
index ca87edd83..3a8286462 100644
--- a/src/testing/test_kyc_api.c
+++ b/src/testing/test_kyc_api.c
@@ -125,7 +125,7 @@ run (void *cls,
0, /* age restriction off */
MHD_HTTP_ACCEPTED),
TALER_TESTING_cmd_proof_kyc ("proof-kyc",
- "withdraw-coin-1-lacking-kyc",
+ "create-reserve-1",
"pass",
"state",
MHD_HTTP_SEE_OTHER),
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 64e010efa..5b1d8b8a9 100644
--- a/src/testing/testing_api_cmd_bank_admin_add_incoming.c
+++ b/src/testing/testing_api_cmd_bank_admin_add_incoming.c
@@ -427,6 +427,7 @@ admin_add_incoming_traits (void *cls,
struct TALER_TESTING_Trait traits[] = {
TALER_TESTING_make_trait_bank_row (&fts->serial_id),
TALER_TESTING_make_trait_debit_payto_uri (&fts->payto_debit_account),
+ TALER_TESTING_make_trait_payto_uri (&fts->payto_debit_account),
/* Used as a marker, content does not matter */
TALER_TESTING_make_trait_credit_payto_uri (&void_uri),
TALER_TESTING_make_trait_exchange_bank_account_url (
diff --git a/src/testing/testing_api_cmd_kyc_check_get.c b/src/testing/testing_api_cmd_kyc_check_get.c
index ffd5664a0..03b2321d1 100644
--- a/src/testing/testing_api_cmd_kyc_check_get.c
+++ b/src/testing/testing_api_cmd_kyc_check_get.c
@@ -157,6 +157,9 @@ check_kyc_run (void *cls,
TALER_TESTING_interpreter_fail (kcg->is);
return;
}
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ "Running KYC check for payto URI: %s\n",
+ *payto_uri);
TALER_payto_hash (*payto_uri,
&h_payto);
kcg->kwh = TALER_EXCHANGE_kyc_check (is->exchange,
diff --git a/src/testing/testing_api_cmd_kyc_proof.c b/src/testing/testing_api_cmd_kyc_proof.c
index 05c1e7cb0..3ee06972e 100644
--- a/src/testing/testing_api_cmd_kyc_proof.c
+++ b/src/testing/testing_api_cmd_kyc_proof.c
@@ -153,6 +153,9 @@ proof_kyc_run (void *cls,
TALER_TESTING_interpreter_fail (kps->is);
return;
}
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ "Triggering KYC proof for %s\n",
+ *payto_uri);
TALER_payto_hash (*payto_uri,
&h_payto);
kps->kph = TALER_EXCHANGE_kyc_proof (is->exchange,