diff options
-rw-r--r-- | src/auditor/taler-auditor-httpd.c | 216 | ||||
-rw-r--r-- | src/bank-lib/bank_api_credit.c | 3 | ||||
-rw-r--r-- | src/kyclogic/kyclogic-kycaid.conf | 6 | ||||
-rw-r--r-- | src/kyclogic/kyclogic-oauth2.conf | 19 | ||||
-rw-r--r-- | src/kyclogic/kyclogic-persona.conf | 12 | ||||
-rw-r--r-- | src/kyclogic/kyclogic_api.c | 21 | ||||
-rw-r--r-- | src/kyclogic/plugin_kyclogic_oauth2.c | 2 | ||||
-rw-r--r-- | src/testing/test_exchange_api.conf | 3 | ||||
-rw-r--r-- | src/testing/test_exchange_api_age_restriction.conf | 1 | ||||
-rw-r--r-- | src/testing/test_kyc_api.c | 27 | ||||
-rw-r--r-- | src/testing/test_kyc_api.conf | 2 | ||||
-rw-r--r-- | src/testing/testing_api_cmd_bank_admin_add_incoming.c | 7 | ||||
-rw-r--r-- | src/testing/testing_api_cmd_bank_history_credit.c | 21 |
13 files changed, 174 insertions, 166 deletions
diff --git a/src/auditor/taler-auditor-httpd.c b/src/auditor/taler-auditor-httpd.c index 1e95ae805..6cf4f0375 100644 --- a/src/auditor/taler-auditor-httpd.c +++ b/src/auditor/taler-auditor-httpd.c @@ -1,6 +1,6 @@ /* This file is part of TALER - Copyright (C) 2014-2021 Taler Systems SA + Copyright (C) 2014-2024 Taler Systems SA TALER is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software @@ -265,7 +265,7 @@ static uint16_t serve_port; */ char *TAH_currency; - +// FIXME: this is done in a very weird way, needs review! char *TMA_auth; #define RFC_8959_PREFIX "secret-token:" @@ -400,18 +400,23 @@ TMH_check_auth (const char *token) return GNUNET_SYSERR; token += strlen (RFC_8959_PREFIX); - GNUNET_STRINGS_string_to_data (token, strlen (token), &tok, sizeof (tok)); - - - GNUNET_STRINGS_string_to_data (TMA_auth, - strlen (TMA_auth), - &salt, - sizeof (salt)); - + if (NULL != TMA_auth) + { + GNUNET_STRINGS_string_to_data (TMA_auth, + strlen (TMA_auth), + &salt, + sizeof (salt)); + } + else + { + memset (&salt, + 0, + sizeof (salt)); + } GNUNET_assert (GNUNET_YES == GNUNET_CRYPTO_kdf (&val, sizeof (val), @@ -451,21 +456,27 @@ handle_mhd_request (void *cls, size_t *upload_data_size, void **con_cls) { - static struct TAH_RequestHandler handlers[] = { /* Our most popular handler (thus first!), used by merchants to probabilistically report us their deposit confirmations. */ - { "/deposit-confirmation", MHD_HTTP_METHOD_PUT, + { + "/deposit-confirmation", + MHD_HTTP_METHOD_PUT, "application/json", NULL, 0, - &TAH_DEPOSIT_CONFIRMATION_handler, MHD_HTTP_OK, true }, - - - { "/monitoring/deposit-confirmation", MHD_HTTP_METHOD_GET, + &TAH_DEPOSIT_CONFIRMATION_handler, + MHD_HTTP_OK, + true + }, + { + "/monitoring/deposit-confirmation", + MHD_HTTP_METHOD_GET, "application/json", NULL, 0, - &TAH_DEPOSIT_CONFIRMATION_handler_get, MHD_HTTP_OK, true }, - + &TAH_DEPOSIT_CONFIRMATION_handler_get, + MHD_HTTP_OK, + true + }, { "/monitoring/deposit-confirmation", MHD_HTTP_METHOD_DELETE, "application/json", NULL, 0, @@ -1107,153 +1118,136 @@ handle_mhd_request (void *cls, if (0 == strcasecmp (method, MHD_HTTP_METHOD_HEAD)) method = MHD_HTTP_METHOD_GET; /* treat HEAD as GET here, MHD will do the rest */ + if (0 == strcasecmp (method, + MHD_HTTP_METHOD_OPTIONS) ) + return TALER_MHD_reply_cors_preflight (connection); for (unsigned int i = 0; NULL != handlers[i].url; i++) { struct TAH_RequestHandler *rh = &handlers[i]; - - if (0 == strcasecmp (method, MHD_HTTP_METHOD_OPTIONS) ) - return TALER_MHD_reply_cors_preflight (connection); - unsigned int argsnr = 3; // arguments, and the url itself, and a terminator that is always null const char *args[argsnr + 1]; - memset (&args,0,sizeof (args)); size_t ulen = strlen (url) + 1; char d[ulen]; + char argurl[ulen + 1 + strlen ("/monitoring")]; unsigned int i = 0; char *sp; bool found = false; bool requiresAuth = true; + memset (&args, + 0, + sizeof (args)); GNUNET_memcpy (d, url, ulen); - args[i++] = strtok_r (d, "/", &sp); - while ( (NULL != args[i - 1]) && (i < argsnr) ) { - args[i++] = strtok_r (NULL, "/", &sp); + args[i++] = strtok_r (NULL, + "/", + &sp); } - // max length url could be - char argurl[ulen + 1 + strlen ("/monitoring")]; - memset (argurl, 0, ulen + 1 + strlen ("/monitoring")); - strcpy (argurl,"/"); - - + memset (argurl, + 0, + sizeof (argurl)); + strcpy (argurl, + "/"); if (args[0] != NULL) { - - strcat (argurl,args[0]); + strcat (argurl, + args[0]); if ( (0 == strcasecmp (argurl, - rh->url)) && ( (NULL == rh->method) || - (0 == strcasecmp (method, - rh->method)) ) ) + rh->url)) && + ( (NULL == rh->method) || + (0 == strcasecmp (method, + rh->method)) ) ) { - found = true; requiresAuth = rh->requiresAuth; - } - } - if (i >= 2 && args[1] != NULL) { - - strcat (argurl,"/"); - strcat (argurl,args[1]); - + strcat (argurl, + "/"); + strcat (argurl, + args[1]); if ( (0 == strcasecmp (argurl, rh->url)) && ( (NULL == rh->method) || (0 == strcasecmp (method, rh->method)) ) ) { - - if ((0 == strcasecmp (method, MHD_HTTP_METHOD_DELETE)) || - (0 == strcasecmp (method, MHD_HTTP_METHOD_PUT)) ) + if ((0 == strcasecmp (method, + MHD_HTTP_METHOD_DELETE)) || + (0 == strcasecmp (method, + MHD_HTTP_METHOD_PUT)) ) { - return TALER_MHD_reply_with_error (connection, MHD_HTTP_METHOD_NOT_ALLOWED, TALER_EC_AUDITOR_GENERIC_METHOD_NOT_ALLOWED, "This method is currently disabled."); } - found = true; requiresAuth = true; - } } - - const char *auth; - - auth = MHD_lookup_connection_value (connection, - MHD_HEADER_KIND, - MHD_HTTP_HEADER_AUTHORIZATION); - - - if (found) + if (! found) + continue; + if (requiresAuth) { + const char *auth; - if (requiresAuth) + auth = MHD_lookup_connection_value (connection, + MHD_HEADER_KIND, + MHD_HTTP_HEADER_AUTHORIZATION); + if (NULL == auth) { - - - if (NULL != auth) - { - - extract_token (&auth); - - if (NULL == auth) - return TALER_MHD_reply_with_error (connection, - MHD_HTTP_UNAUTHORIZED, - TALER_EC_GENERIC_PARAMETER_MALFORMED, - "'" RFC_8959_PREFIX - "' prefix or 'Bearer' missing in 'Authorization' header"); - - if (TMH_check_auth (auth) != 1) - { - - return TALER_MHD_reply_with_error (connection, - MHD_HTTP_UNAUTHORIZED, - TALER_EC_AUDITOR_GENERIC_UNAUTHORIZED, - "Check 'Authorization' header"); - } - - - } - else - { - return TALER_MHD_reply_with_error (connection, - MHD_HTTP_UNAUTHORIZED, - TALER_EC_AUDITOR_GENERIC_UNAUTHORIZED, - "Check 'Authorization' header"); - } - + GNUNET_break_op (0); + return TALER_MHD_reply_with_error (connection, + MHD_HTTP_UNAUTHORIZED, + TALER_EC_AUDITOR_GENERIC_UNAUTHORIZED, + "Check 'Authorization' header"); + } + extract_token (&auth); + if (NULL == auth) + return TALER_MHD_reply_with_error ( + connection, + MHD_HTTP_UNAUTHORIZED, + TALER_EC_GENERIC_PARAMETER_MALFORMED, + "'" RFC_8959_PREFIX + "' prefix or 'Bearer' missing in 'Authorization' header"); + + if (TMH_check_auth (auth) != 1) + { + GNUNET_break_op (0); + return TALER_MHD_reply_with_error ( + connection, + MHD_HTTP_UNAUTHORIZED, + TALER_EC_AUDITOR_GENERIC_UNAUTHORIZED, + "Check 'Authorization' header"); } - - return rh->handler (rh, - connection, - con_cls, - upload_data, - upload_data_size, - args); - } + return rh->handler (rh, + connection, + con_cls, + upload_data, + upload_data_size, + args); } + GNUNET_break_op (0); #define NOT_FOUND \ - "<html><title>404: not found</title><body>auditor endpoints have been moved to /monitoring/...</body></html>" + "<html><title>404: not found</title><body>auditor endpoints have been moved to /monitoring/...</body></html>" return TALER_MHD_reply_static (connection, MHD_HTTP_NOT_FOUND, "text/html", @@ -1445,6 +1439,9 @@ run (void *cls, enum TALER_MHD_GlobalOptions go; int fh; + (void) cls; + (void) args; + (void) cfgfile; { const char *tok; @@ -1455,18 +1452,11 @@ run (void *cls, TMA_auth = GNUNET_strdup (tok); if ( (NULL == TMA_auth) ) { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "No salt defined\n"); - global_ret = EXIT_NOTCONFIGURED; - GNUNET_SCHEDULER_shutdown (); - return; + GNUNET_log (GNUNET_ERROR_TYPE_WARNING, + "TALER_AUDITOR_SALT environment variable not set\n"); } - - } - (void) cls; - (void) args; - (void) cfgfile; go = TALER_MHD_GO_NONE; if (auditor_connection_close) go |= TALER_MHD_GO_FORCE_CONNECTION_CLOSE; @@ -1524,8 +1514,6 @@ run (void *cls, } global_ret = EXIT_SUCCESS; TALER_MHD_daemon_start (mhd); - - } } diff --git a/src/bank-lib/bank_api_credit.c b/src/bank-lib/bank_api_credit.c index ebcdb56cc..29becbfa9 100644 --- a/src/bank-lib/bank_api_credit.c +++ b/src/bank-lib/bank_api_credit.c @@ -152,6 +152,7 @@ parse_account_history (struct TALER_BANK_CreditHistoryHandle *hh, GNUNET_break_op (0); return GNUNET_SYSERR; } + td->type = TALER_BANK_CT_RESERVE; } else if (0 == strcasecmp ("KYCAUTH", type)) @@ -171,6 +172,7 @@ parse_account_history (struct TALER_BANK_CreditHistoryHandle *hh, GNUNET_break_op (0); return GNUNET_SYSERR; } + td->type = TALER_BANK_CT_KYCAUTH; } else if (0 == strcasecmp ("WAD", type)) @@ -192,6 +194,7 @@ parse_account_history (struct TALER_BANK_CreditHistoryHandle *hh, GNUNET_break_op (0); return GNUNET_SYSERR; } + td->type = TALER_BANK_CT_WAD; } else { diff --git a/src/kyclogic/kyclogic-kycaid.conf b/src/kyclogic/kyclogic-kycaid.conf index 753fb689d..6db48083e 100644 --- a/src/kyclogic/kyclogic-kycaid.conf +++ b/src/kyclogic/kyclogic-kycaid.conf @@ -9,10 +9,14 @@ LOGIC = kycaid USER_TYPE = INDIVIDUAL PROVIDED_CHECKS = EXAMPLE_DO_NOT_USE +# Generic converter that does nothing. +CONVERTER = cat + + # How long is the KYC check valid? KYC_KYCAID_VALIDITY = forever -# Program that converts Persona KYC data into the +# Program that converts Kycaid KYC data into the # GNU Taler format. KYC_KYCAID_CONVERTER_HELPER = taler-exchange-kyc-kycaid-converter.sh diff --git a/src/kyclogic/kyclogic-oauth2.conf b/src/kyclogic/kyclogic-oauth2.conf index 57e1fc13a..2f78818a2 100644 --- a/src/kyclogic/kyclogic-oauth2.conf +++ b/src/kyclogic/kyclogic-oauth2.conf @@ -9,6 +9,17 @@ LOGIC = oauth2 USER_TYPE = INDIVIDUAL PROVIDED_CHECKS = EXAMPLE_DO_NOT_USE +# Generic converter. +CONVERTER = cat + +# Converter that converts OAuth2.0 data about the user +# into GNU Taler standardized attribute data. +# +# This is just an example, you need to pick the right converter +# for the provider! +# +KYC_OAUTH2_CONVERTER_HELPER = taler-exchange-kyc-oauth2-converter.sh + # How long is the KYC check valid? KYC_OAUTH2_VALIDITY = forever @@ -25,11 +36,3 @@ KYC_OAUTH2_POST_URL = http://example.com/thank-you # For authentication to the OAuth2.0 service KYC_OAUTH2_CLIENT_ID = testcase KYC_OAUTH2_CLIENT_SECRET = password - -# Mustach template that converts OAuth2.0 data about the user -# into GNU Taler standardized attribute data. -# -# This is just an example, you need to pick the right converter -# for the provider! -# -KYC_OAUTH2_CONVERTER_HELPER = taler-exchange-kyc-oauth2-converter.sh diff --git a/src/kyclogic/kyclogic-persona.conf b/src/kyclogic/kyclogic-persona.conf index 2d52a9ee0..42211406d 100644 --- a/src/kyclogic/kyclogic-persona.conf +++ b/src/kyclogic/kyclogic-persona.conf @@ -20,6 +20,14 @@ LOGIC = persona USER_TYPE = INDIVIDUAL PROVIDED_CHECKS = EXAMPLE_DO_NOT_USE +# Generic converter that does nothing. +CONVERTER = cat + +# Program that converts Persona KYC data into the +# GNU Taler format. +KYC_PERSONA_CONVERTER_HELPER = taler-exchange-kyc-persona-converter.sh + + # How long is the KYC check valid? KYC_PERSONA_VALIDITY = forever @@ -29,10 +37,6 @@ KYC_PERSONA_SUBDOMAIN = taler # Authentication token to use. KYC_PERSONA_AUTH_TOKEN = persona_sandbox_42 -# Program that converts Persona KYC data into the -# GNU Taler format. -KYC_PERSONA_CONVERTER_HELPER = taler-exchange-kyc-persona-converter.sh - # Form to use. KYC_PERSONA_TEMPLATE_ID = itempl_Uj6Xxxxx diff --git a/src/kyclogic/kyclogic_api.c b/src/kyclogic/kyclogic_api.c index bb163f4e4..71075c237 100644 --- a/src/kyclogic/kyclogic_api.c +++ b/src/kyclogic/kyclogic_api.c @@ -35,11 +35,6 @@ struct TALER_KYCLOGIC_KycProvider { /** - * Cost of running this provider's KYC process. - */ - struct TALER_Amount cost; - - /** * Name of the provider. */ char *provider_name; @@ -535,6 +530,8 @@ cleanup: void TALER_KYCLOGIC_rules_free (struct TALER_KYCLOGIC_LegitimizationRuleSet *lrs) { + if (NULL == lrs) + return; for (unsigned int i = 0; i<lrs->num_kyc_rules; i++) { struct TALER_KYCLOGIC_KycRule *rule @@ -1019,25 +1016,12 @@ static enum GNUNET_GenericReturnValue add_provider (const struct GNUNET_CONFIGURATION_Handle *cfg, const char *section) { - struct TALER_Amount cost; char *logic; char *converter; struct TALER_KYCLOGIC_Plugin *lp; struct TALER_KYCLOGIC_ProviderDetails *pd; if (GNUNET_OK != - TALER_config_get_amount (cfg, - section, - "COST", - &cost)) - { - GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR, - section, - "COST", - "amount required"); - return GNUNET_SYSERR; - } - if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_string (cfg, section, "CONVERTER", @@ -1085,7 +1069,6 @@ add_provider (const struct GNUNET_CONFIGURATION_Handle *cfg, struct TALER_KYCLOGIC_KycProvider *kp; kp = GNUNET_new (struct TALER_KYCLOGIC_KycProvider); - kp->cost = cost; kp->provider_name = GNUNET_strdup (§ion[strlen ("kyc-provider-")]); kp->converter_name = converter; diff --git a/src/kyclogic/plugin_kyclogic_oauth2.c b/src/kyclogic/plugin_kyclogic_oauth2.c index 3a1f50bcf..32843f63c 100644 --- a/src/kyclogic/plugin_kyclogic_oauth2.c +++ b/src/kyclogic/plugin_kyclogic_oauth2.c @@ -114,7 +114,7 @@ struct TALER_KYCLOGIC_ProviderDetails /** * Name of the program we use to convert outputs - * from Persona into our JSON inputs. + * from OAuth2 outputs into our JSON inputs. */ char *conversion_binary; diff --git a/src/testing/test_exchange_api.conf b/src/testing/test_exchange_api.conf index 76d96ab93..618427f70 100644 --- a/src/testing/test_exchange_api.conf +++ b/src/testing/test_exchange_api.conf @@ -29,6 +29,7 @@ BASE_URL = "http://localhost:8083/" PORT = 8083 PUBLIC_KEY = 9QZ7CCC5QFMWE9FVF50MGYWV7JR92SFHY5KHT8A1A2VNHM37VCRG TINY_AMOUNT = EUR:0.01 +TALER_AUDITOR_SALT = "salt" [auditordb-postgres] CONFIG = "postgres:///talercheck" @@ -94,7 +95,6 @@ WIRE_GATEWAY_URL = "http://localhost:8082/accounts/2/taler-wire-gateway/" [kyc-provider-test-oauth2] -COST = 0 LOGIC = oauth2 USER_TYPE = INDIVIDUAL PROVIDED_CHECKS = DUMMY @@ -106,6 +106,7 @@ KYC_OAUTH2_CLIENT_ID = taler-exchange KYC_OAUTH2_CLIENT_SECRET = exchange-secret KYC_OAUTH2_POST_URL = http://example.com/ KYC_OAUTH2_CONVERTER_HELPER = taler-exchange-kyc-oauth2-test-converter.sh +CONVERTER = cat [kyc-legitimization-close] OPERATION_TYPE = CLOSE diff --git a/src/testing/test_exchange_api_age_restriction.conf b/src/testing/test_exchange_api_age_restriction.conf index 1345fcb1a..9b931fd1a 100644 --- a/src/testing/test_exchange_api_age_restriction.conf +++ b/src/testing/test_exchange_api_age_restriction.conf @@ -81,6 +81,7 @@ COST = 0 LOGIC = oauth2 USER_TYPE = INDIVIDUAL PROVIDED_CHECKS = DUMMY +CONVERTER = cat KYC_OAUTH2_VALIDITY = forever KYC_OAUTH2_TOKEN_URL = http://localhost:6666/oauth/v2/token KYC_OAUTH2_AUTHORIZE_URL = http://localhost:6666/oauth/v2/login diff --git a/src/testing/test_kyc_api.c b/src/testing/test_kyc_api.c index 0844c5818..2dbd5b28d 100644 --- a/src/testing/test_kyc_api.c +++ b/src/testing/test_kyc_api.c @@ -53,7 +53,8 @@ struct TALER_TESTING_Credentials cred; * @param label label to use for the command. */ #define CMD_EXEC_WIREWATCH(label) \ - TALER_TESTING_cmd_exec_wirewatch2 (label, CONFIG_FILE, "exchange-account-2") + TALER_TESTING_cmd_exec_wirewatch2 (label, CONFIG_FILE, \ + "exchange-account-2") /** * Execute the taler-exchange-aggregator, closer and transfer commands with @@ -62,9 +63,9 @@ struct TALER_TESTING_Credentials cred; * @param label label to use for the command. */ #define CMD_EXEC_AGGREGATOR(label) \ - TALER_TESTING_cmd_sleep (label "-sleep", 1), \ - TALER_TESTING_cmd_exec_aggregator_with_kyc (label, CONFIG_FILE), \ - TALER_TESTING_cmd_exec_transfer (label, CONFIG_FILE) + TALER_TESTING_cmd_sleep (label "-sleep", 1), \ + TALER_TESTING_cmd_exec_aggregator_with_kyc (label, CONFIG_FILE), \ + TALER_TESTING_cmd_exec_transfer (label, CONFIG_FILE) /** * Run wire transfer of funds from some user's account to the @@ -74,9 +75,9 @@ struct TALER_TESTING_Credentials cred; * @param amount amount to transfer, i.e. "EUR:1" */ #define CMD_TRANSFER_TO_EXCHANGE(label,amount) \ - TALER_TESTING_cmd_admin_add_incoming (label, amount, \ - &cred.ba, \ - cred.user42_payto) + TALER_TESTING_cmd_admin_add_incoming (label, amount, \ + &cred.ba, \ + cred.user42_payto) /** * Main function that will tell the interpreter what commands to @@ -417,15 +418,18 @@ run (void *cls, }; struct TALER_TESTING_Command aml[] = { /* Trigger something upon which an AML officer could act */ +#if FIXME TALER_TESTING_cmd_wallet_kyc_get ("wallet-trigger-kyc-for-aml", NULL, "EUR:1000", MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS), +#endif TALER_TESTING_cmd_set_officer ("create-aml-officer-1", NULL, "Peter Falk", true, false), +#if FIXME TALER_TESTING_cmd_check_aml_decisions ("check-decisions-none-normal", "create-aml-officer-1", TALER_AML_NORMAL, @@ -438,6 +442,7 @@ run (void *cls, "create-aml-officer-1", TALER_AML_FROZEN, MHD_HTTP_NO_CONTENT), +#endif TALER_TESTING_cmd_sleep ("sleep-1a", 1), TALER_TESTING_cmd_set_officer ("create-aml-officer-1-disable", @@ -447,6 +452,7 @@ run (void *cls, true), /* Test that we are not allowed to take AML decisions as our AML staff account is on read-only */ +#if FIXME TALER_TESTING_cmd_take_aml_decision ("aml-decide-while-disabled", "create-aml-officer-1", "wallet-trigger-kyc-for-aml", @@ -461,6 +467,7 @@ run (void *cls, "create-aml-officer-1", "aml-decide-while-disabled", MHD_HTTP_NO_CONTENT), +#endif TALER_TESTING_cmd_sleep ("sleep-1b", 1), TALER_TESTING_cmd_set_officer ("create-aml-officer-1-enable", @@ -468,6 +475,7 @@ run (void *cls, "Peter Falk", true, false), +#if FIXME TALER_TESTING_cmd_take_aml_decision ("aml-decide", "create-aml-officer-1", "wallet-trigger-kyc-for-aml", @@ -508,6 +516,7 @@ run (void *cls, MHD_HTTP_NO_CONTENT), TALER_TESTING_cmd_sleep ("sleep-1d", 1), +#endif TALER_TESTING_cmd_set_officer ("create-aml-officer-1-disable", "create-aml-officer-1", "Peter Falk", @@ -515,10 +524,12 @@ run (void *cls, true), /* Test that we are NOT allowed to read AML decisions now that our AML staff account is disabled */ +#if FIXME TALER_TESTING_cmd_check_aml_decision ("check-aml-decision-disabled", "create-aml-officer-1", "aml-decide", MHD_HTTP_FORBIDDEN), +#endif TALER_TESTING_cmd_end () }; @@ -535,6 +546,7 @@ run (void *cls, NULL, true, true), +#if FIXME TALER_TESTING_cmd_batch ("withdraw", withdraw), TALER_TESTING_cmd_batch ("spend", @@ -551,6 +563,7 @@ run (void *cls, push), TALER_TESTING_cmd_batch ("pull", pull), +#endif TALER_TESTING_cmd_batch ("aml", aml), TALER_TESTING_cmd_end () diff --git a/src/testing/test_kyc_api.conf b/src/testing/test_kyc_api.conf index b6bfdb055..10c1817fc 100644 --- a/src/testing/test_kyc_api.conf +++ b/src/testing/test_kyc_api.conf @@ -4,7 +4,6 @@ @INLINE@ test_exchange_api.conf [kyc-provider-test-oauth2] -COST = 0 LOGIC = oauth2 USER_TYPE = INDIVIDUAL PROVIDED_CHECKS = DUMMY @@ -15,6 +14,7 @@ KYC_OAUTH2_INFO_URL = http://localhost:6666/api/user/me KYC_OAUTH2_CLIENT_ID = taler-exchange KYC_OAUTH2_CLIENT_SECRET = exchange-secret KYC_OAUTH2_POST_URL = http://example.com/ +CONVERTER = cat KYC_OAUTH2_CONVERTER_HELPER = taler-exchange-kyc-oauth2-test-converter.sh # "{"full_name":"{{last_name}}, {{first_name}}"}" 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 5c031d0b3..b92f05b21 100644 --- a/src/testing/testing_api_cmd_bank_admin_add_incoming.c +++ b/src/testing/testing_api_cmd_bank_admin_add_incoming.c @@ -35,7 +35,7 @@ * How long do we wait AT MOST when retrying? */ #define MAX_BACKOFF GNUNET_TIME_relative_multiply ( \ - GNUNET_TIME_UNIT_MILLISECONDS, 100) + GNUNET_TIME_UNIT_MILLISECONDS, 100) /** @@ -322,8 +322,9 @@ admin_add_incoming_run (void *cls, const struct TALER_ReservePrivateKeyP *reserve_priv; const struct TALER_ReservePublicKeyP *reserve_pub; - ref = TALER_TESTING_interpreter_lookup_command - (is, fts->reserve_reference); + ref = TALER_TESTING_interpreter_lookup_command ( + is, + fts->reserve_reference); if (NULL == ref) { GNUNET_break (0); diff --git a/src/testing/testing_api_cmd_bank_history_credit.c b/src/testing/testing_api_cmd_bank_history_credit.c index 81b538b2a..e54f8fb07 100644 --- a/src/testing/testing_api_cmd_bank_history_credit.c +++ b/src/testing/testing_api_cmd_bank_history_credit.c @@ -136,7 +136,8 @@ print_expected (struct History *h, "Expected history:\n"); for (unsigned int i = 0; i<h_len; i++) { - const struct TALER_BANK_CreditDetails *cd = &h[i].credit_details; + const struct TALER_BANK_CreditDetails *cd + = &h[i].credit_details; switch (cd->type) { @@ -301,12 +302,18 @@ command_cb (void *cls, GNUNET_array_grow (ic->h, ic->total, ic->pos * 2); - ic->h[ic->pos].url = GNUNET_strdup (debit_account); - ic->h[ic->pos].row_id = *row_id; - ic->h[ic->pos].credit_details.type = TALER_BANK_CT_RESERVE; - ic->h[ic->pos].credit_details.debit_account_uri = ic->h[ic->pos].url; - ic->h[ic->pos].credit_details.amount = *amount; - ic->h[ic->pos].credit_details.details.reserve.reserve_pub = *reserve_pub; + ic->h[ic->pos].url + = GNUNET_strdup (debit_account); + ic->h[ic->pos].row_id + = *row_id; + ic->h[ic->pos].credit_details.type + = TALER_BANK_CT_RESERVE; + ic->h[ic->pos].credit_details.debit_account_uri + = ic->h[ic->pos].url; + ic->h[ic->pos].credit_details.amount + = *amount; + ic->h[ic->pos].credit_details.details.reserve.reserve_pub + = *reserve_pub; ic->pos++; } |