aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/exchange_api_link.c11
-rw-r--r--src/lib/exchange_api_melt.c31
-rw-r--r--src/lib/exchange_api_refresh_common.h2
3 files changed, 23 insertions, 21 deletions
diff --git a/src/lib/exchange_api_link.c b/src/lib/exchange_api_link.c
index e241f5438..0a99679c3 100644
--- a/src/lib/exchange_api_link.c
+++ b/src/lib/exchange_api_link.c
@@ -94,6 +94,7 @@ parse_link_coin (const struct TALER_EXCHANGE_LinkHandle *lh,
struct TALER_BlindedDenominationSignature bsig;
struct TALER_DenominationPublicKey rpub;
struct TALER_CoinSpendSignatureP link_sig;
+ union TALER_DenominationBlindingKeyP bks;
struct GNUNET_JSON_Specification spec[] = {
TALER_JSON_spec_denom_pub ("denom_pub",
&rpub),
@@ -104,7 +105,6 @@ parse_link_coin (const struct TALER_EXCHANGE_LinkHandle *lh,
GNUNET_JSON_spec_end ()
};
struct TALER_TransferSecretP secret;
- struct TALER_PlanchetSecretsP fc;
/* parse reply */
if (GNUNET_OK !=
@@ -120,19 +120,19 @@ parse_link_coin (const struct TALER_EXCHANGE_LinkHandle *lh,
&secret);
TALER_planchet_setup_refresh (&secret,
coin_num,
- &fc);
+ coin_priv,
+ &bks);
/* extract coin and signature */
if (GNUNET_OK !=
TALER_denom_sig_unblind (sig,
&bsig,
- &fc.blinding_key,
+ &bks,
&rpub))
{
GNUNET_break_op (0);
return GNUNET_SYSERR;
}
- *coin_priv = fc.coin_priv;
/* verify link_sig */
{
struct TALER_ExchangeWithdrawValues alg_values;
@@ -148,7 +148,8 @@ parse_link_coin (const struct TALER_EXCHANGE_LinkHandle *lh,
if (GNUNET_OK !=
TALER_planchet_prepare (&rpub,
&alg_values,
- &fc,
+ &bks,
+ coin_priv,
&c_hash,
&pd))
{
diff --git a/src/lib/exchange_api_melt.c b/src/lib/exchange_api_melt.c
index dc9a400d6..a123248aa 100644
--- a/src/lib/exchange_api_melt.c
+++ b/src/lib/exchange_api_melt.c
@@ -162,7 +162,7 @@ verify_melt_signature_ok (struct TALER_EXCHANGE_MeltHandle *mh,
confirm.purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_MELT);
confirm.purpose.size
= htonl (sizeof (struct TALER_RefreshMeltConfirmationPS));
- confirm.rc = mh->md->rc;
+ confirm.rc = mh->md.rc;
confirm.noreveal_index = htonl (*noreveal_index);
if (GNUNET_OK !=
GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_EXCHANGE_CONFIRM_MELT,
@@ -253,7 +253,7 @@ verify_melt_signature_spend_conflict (struct TALER_EXCHANGE_MeltHandle *mh,
}
/* Find out which coin was deemed problematic by the exchange */
- mc = &mh->md->melted_coin;
+ mc = &mh->md.melted_coin;
/* verify coin history */
memset (&h_denom_pub,
0,
@@ -476,25 +476,25 @@ start_melt (struct TALER_EXCHANGE_MeltHandle *mh)
}
TALER_denom_pub_hash (&mh->md.melted_coin.pub_key,
&h_denom_pub);
- TALER_wallet_melt_sign (&md->melted_coin.melt_amount_with_fee,
- &md->melted_coin.fee_melt,
- &md->rc,
+ TALER_wallet_melt_sign (&mh->md.melted_coin.melt_amount_with_fee,
+ &mh->md.melted_coin.fee_melt,
+ &mh->md.rc,
&h_denom_pub,
- &md->melted_coin.coin_priv,
+ &mh->md.melted_coin.coin_priv,
&confirm_sig);
- GNUNET_CRYPTO_eddsa_key_get_public (&md->melted_coin.coin_priv.eddsa_priv,
+ GNUNET_CRYPTO_eddsa_key_get_public (&mh->md.melted_coin.coin_priv.eddsa_priv,
&coin_pub.eddsa_pub);
melt_obj = GNUNET_JSON_PACK (
GNUNET_JSON_pack_data_auto ("denom_pub_hash",
&h_denom_pub),
TALER_JSON_pack_denom_sig ("denom_sig",
- &md->melted_coin.sig),
+ &mh->md.melted_coin.sig),
GNUNET_JSON_pack_data_auto ("confirm_sig",
&confirm_sig),
TALER_JSON_pack_amount ("value_with_fee",
- &md->melted_coin.melt_amount_with_fee),
+ &mh->md.melted_coin.melt_amount_with_fee),
GNUNET_JSON_pack_data_auto ("rc",
- &md->rc));
+ &mh->md.rc));
{
char pub_str[sizeof (struct TALER_CoinSpendPublicKeyP) * 2];
char *end;
@@ -577,16 +577,18 @@ csr_cb (void *cls,
struct TALER_EXCHANGE_MeltHandle *mh = cls;
unsigned int nks_off = 0;
- for (unsigned int i = 0; i<rd->fresh_pks_len; i++)
+ for (unsigned int i = 0; i<mh->rd->fresh_pks_len; i++)
{
- const struct TALER_EXCHANGE_DenomPublicKey *fresh_pk = &rd->fresh_pks[i];
+ const struct TALER_EXCHANGE_DenomPublicKey *fresh_pk =
+ &mh->rd->fresh_pks[i];
struct TALER_ExchangeWithdrawValues *wv = &mh->alg_values[i];
- switch (fresh_pk->cipher)
+ switch (fresh_pk->key.cipher)
{
case TALER_DENOMINATION_INVALID:
GNUNET_break (0);
- fail_mh (mh).
+ // FIXME:
+ // fail_mh (mh).
return;
case TALER_DENOMINATION_RSA:
GNUNET_assert (TALER_DENOMINATION_RSA == wv->cipher);
@@ -614,7 +616,6 @@ TALER_EXCHANGE_melt (struct TALER_EXCHANGE_Handle *exchange,
const struct TALER_EXCHANGE_RefreshData *rd,
TALER_EXCHANGE_MeltCallback melt_cb,
void *melt_cb_cls)
-s
{
const struct TALER_EXCHANGE_NonceKey *nks[GNUNET_NZL (rd->refresh_pks_len)];
unsigned int nks_off = 0;
diff --git a/src/lib/exchange_api_refresh_common.h b/src/lib/exchange_api_refresh_common.h
index 653d48866..94c4f3234 100644
--- a/src/lib/exchange_api_refresh_common.h
+++ b/src/lib/exchange_api_refresh_common.h
@@ -127,7 +127,7 @@ struct MeltData
enum GNUNET_GenericReturnValue
TALER_EXCHANGE_get_melt_data_ (
const struct TALER_PlanchetSecretsP *ps,
- const struct struct TALER_EXCHANGE_RefreshData *rd,
+ const struct TALER_EXCHANGE_RefreshData *rd,
const struct TALER_ExchangeWithdrawValues *alg_values,
struct MeltData *md);