aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2022-02-12 12:20:12 +0100
committerChristian Grothoff <christian@grothoff.org>2022-02-12 12:20:12 +0100
commita0d9d59b73a35f3060914372a70fbcc57e66998f (patch)
tree83509667b5c231ffd14f3f6a7aa6d533668dfad3
parent88033aa15e198adc0b1ea466c5b000804147dc6d (diff)
-refactor to address FIXME
-rw-r--r--src/include/taler_crypto_lib.h11
-rw-r--r--src/lib/exchange_api_kyc_wallet.c12
-rw-r--r--src/util/wallet_signatures.c19
3 files changed, 31 insertions, 11 deletions
diff --git a/src/include/taler_crypto_lib.h b/src/include/taler_crypto_lib.h
index d6014259d..959169cfa 100644
--- a/src/include/taler_crypto_lib.h
+++ b/src/include/taler_crypto_lib.h
@@ -2151,6 +2151,17 @@ TALER_exchange_deposit_confirm_verify (
/* ********************* wallet signing ************************** */
+/**
+ * Sign a request by a wallet to perform a KYC check.
+ *
+ * @param reserve_priv key identifying the wallet/account
+ * @param reserve_sig resulting signature
+ */
+void
+TALER_wallet_account_setup_sign (
+ const struct TALER_ReservePrivateKeyP *reserve_priv,
+ struct TALER_ReserveSignatureP *reserve_sig);
+
/**
* Sign a deposit permission. Function for wallets.
diff --git a/src/lib/exchange_api_kyc_wallet.c b/src/lib/exchange_api_kyc_wallet.c
index 4a41fd598..7a78ceb24 100644
--- a/src/lib/exchange_api_kyc_wallet.c
+++ b/src/lib/exchange_api_kyc_wallet.c
@@ -161,19 +161,11 @@ TALER_EXCHANGE_kyc_wallet (struct TALER_EXCHANGE_Handle *exchange,
struct GNUNET_CURL_Context *ctx;
struct TALER_ReservePublicKeyP reserve_pub;
struct TALER_ReserveSignatureP reserve_sig;
- struct GNUNET_CRYPTO_EccSignaturePurpose purpose = {
- .size = htonl (sizeof (purpose)),
- .purpose = htonl (TALER_SIGNATURE_WALLET_ACCOUNT_SETUP)
- };
- /* FIXME: move to util/wallet-signatures.c! */
GNUNET_CRYPTO_eddsa_key_get_public (&reserve_priv->eddsa_priv,
&reserve_pub.eddsa_pub);
-
- GNUNET_assert (GNUNET_OK ==
- GNUNET_CRYPTO_eddsa_sign_ (&reserve_priv->eddsa_priv,
- &purpose,
- &reserve_sig.eddsa_signature));
+ TALER_wallet_account_setup_sign (reserve_priv,
+ &reserve_sig);
req = GNUNET_JSON_PACK (
GNUNET_JSON_pack_data_auto ("reserve_pub",
&reserve_pub),
diff --git a/src/util/wallet_signatures.c b/src/util/wallet_signatures.c
index 1dd2302b4..01f33ae83 100644
--- a/src/util/wallet_signatures.c
+++ b/src/util/wallet_signatures.c
@@ -1,6 +1,6 @@
/*
This file is part of TALER
- Copyright (C) 2021 Taler Systems SA
+ Copyright (C) 2021, 2022 Taler Systems SA
TALER is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
@@ -333,4 +333,21 @@ TALER_wallet_withdraw_verify (
}
+void
+TALER_wallet_account_setup_sign (
+ const struct TALER_ReservePrivateKeyP *reserve_priv,
+ struct TALER_ReserveSignatureP *reserve_sig)
+{
+ struct GNUNET_CRYPTO_EccSignaturePurpose purpose = {
+ .size = htonl (sizeof (purpose)),
+ .purpose = htonl (TALER_SIGNATURE_WALLET_ACCOUNT_SETUP)
+ };
+
+ GNUNET_assert (GNUNET_OK ==
+ GNUNET_CRYPTO_eddsa_sign_ (&reserve_priv->eddsa_priv,
+ &purpose,
+ &reserve_sig->eddsa_signature));
+}
+
+
/* end of wallet_signatures.c */