diff options
author | Christian Grothoff <christian@grothoff.org> | 2023-10-27 23:54:55 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2023-10-27 23:54:55 +0200 |
commit | 192e361811c93327c80af69b0f5280b30ceae682 (patch) | |
tree | 9eefd1c730d1212216a1f68fc1399954ebd0c39d /src/lib | |
parent | 47397c55f764ccd5a00a2626199d2a6772fb7db9 (diff) | |
download | exchange-192e361811c93327c80af69b0f5280b30ceae682.tar.xz |
fixes with respect to new blinding API
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/exchange_api_batch_withdraw.c | 20 | ||||
-rw-r--r-- | src/lib/exchange_api_refresh_common.c | 5 |
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, |