aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2023-10-27 23:54:55 +0200
committerChristian Grothoff <christian@grothoff.org>2023-10-27 23:54:55 +0200
commit192e361811c93327c80af69b0f5280b30ceae682 (patch)
tree9eefd1c730d1212216a1f68fc1399954ebd0c39d /src/lib
parent47397c55f764ccd5a00a2626199d2a6772fb7db9 (diff)
downloadexchange-192e361811c93327c80af69b0f5280b30ceae682.tar.xz
fixes with respect to new blinding API
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/exchange_api_batch_withdraw.c20
-rw-r--r--src/lib/exchange_api_refresh_common.c5
2 files changed, 18 insertions, 7 deletions
diff --git a/src/lib/exchange_api_batch_withdraw.c b/src/lib/exchange_api_batch_withdraw.c
index d17a00f1b..cab4734b5 100644
--- a/src/lib/exchange_api_batch_withdraw.c
+++ b/src/lib/exchange_api_batch_withdraw.c
@@ -116,7 +116,6 @@ struct TALER_EXCHANGE_BatchWithdrawHandle
*/
const struct TALER_EXCHANGE_Keys *keys;
-
/**
* Handle for the actual (internal) batch withdraw operation.
*/
@@ -305,7 +304,9 @@ withdraw_cs_stage_two_callback (
switch (csrr->hr.http_status)
{
case MHD_HTTP_OK:
- cd->alg_values = csrr->details.ok.alg_values;
+ cd->alg_values.blinding_inputs
+ = GNUNET_CRYPTO_blinding_input_values_incref (
+ csrr->details.ok.alg_values.blinding_inputs);
TALER_planchet_setup_coin_priv (&cd->ps,
&cd->alg_values,
&cd->priv);
@@ -376,15 +377,18 @@ TALER_EXCHANGE_batch_withdraw (
{
case GNUNET_CRYPTO_BSA_RSA:
{
+ const struct TALER_ExchangeWithdrawValues *alg_values
+ = TALER_denom_ewv_rsa_singleton ();
+
TALER_planchet_setup_coin_priv (&cd->ps,
- &cd->alg_values,
+ alg_values,
&cd->priv);
TALER_planchet_blinding_secret_create (&cd->ps,
- &cd->alg_values,
+ alg_values,
&cd->bks);
if (GNUNET_OK !=
TALER_planchet_prepare (&cd->pk.key,
- NULL,
+ alg_values,
&cd->bks,
NULL,
&cd->priv,
@@ -444,6 +448,12 @@ TALER_EXCHANGE_batch_withdraw_cancel (
TALER_EXCHANGE_csr_withdraw_cancel (cd->csrh);
cd->csrh = NULL;
}
+ if (NULL != cd->alg_values.blinding_inputs)
+ {
+ GNUNET_CRYPTO_blinding_input_values_decref (
+ cd->alg_values.blinding_inputs);
+ cd->alg_values.blinding_inputs = NULL;
+ }
TALER_blinded_planchet_free (&cd->pd.blinded_planchet);
TALER_denom_pub_free (&cd->pk.key);
}
diff --git a/src/lib/exchange_api_refresh_common.c b/src/lib/exchange_api_refresh_common.c
index 57011a6b4..2e92807b3 100644
--- a/src/lib/exchange_api_refresh_common.c
+++ b/src/lib/exchange_api_refresh_common.c
@@ -99,6 +99,9 @@ TALER_EXCHANGE_get_melt_data_ (
{
struct FreshCoinData *fcd = &md->fcds[j];
+ TALER_denom_pub_deep_copy (&fcd->fresh_pk,
+ &rd->fresh_pks[j].key);
+ GNUNET_assert (NULL != fcd->fresh_pk.bsign_pub_key);
switch (fcd->fresh_pk.bsign_pub_key->cipher)
{
case GNUNET_CRYPTO_BSA_INVALID:
@@ -121,8 +124,6 @@ TALER_EXCHANGE_get_melt_data_ (
&nonces[j].cs_nonce);
break;
}
- TALER_denom_pub_deep_copy (&fcd->fresh_pk,
- &rd->fresh_pks[j].key);
if ( (0 >
TALER_amount_add (&total,
&total,