summaryrefslogtreecommitdiff
path: root/src/exchange/taler-exchange-httpd_common_deposit.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/exchange/taler-exchange-httpd_common_deposit.c')
-rw-r--r--src/exchange/taler-exchange-httpd_common_deposit.c70
1 files changed, 14 insertions, 56 deletions
diff --git a/src/exchange/taler-exchange-httpd_common_deposit.c b/src/exchange/taler-exchange-httpd_common_deposit.c
index 1e4312996..898e23dd9 100644
--- a/src/exchange/taler-exchange-httpd_common_deposit.c
+++ b/src/exchange/taler-exchange-httpd_common_deposit.c
@@ -68,10 +68,6 @@ TEH_common_purse_deposit_parse_coin (
return res;
}
- if (! coin->cpi.no_age_commitment)
- TALER_age_commitment_hash (&coin->age_commitment,
- &coin->cpi.h_age_commitment);
-
/* check denomination exists and is valid */
{
struct TEH_DenominationKey *dk;
@@ -85,6 +81,12 @@ TEH_common_purse_deposit_parse_coin (
GNUNET_JSON_parse_free (spec);
return (MHD_YES == mret) ? GNUNET_NO : GNUNET_SYSERR;
}
+ if (! coin->cpi.no_age_commitment)
+ {
+ coin->age_commitment.mask = dk->meta.age_mask;
+ TALER_age_commitment_hash (&coin->age_commitment,
+ &coin->cpi.h_age_commitment);
+ }
if (0 > TALER_amount_cmp (&dk->meta.value,
&coin->amount))
{
@@ -133,7 +135,8 @@ TEH_common_purse_deposit_parse_coin (
"PURSE CREATE"))
? GNUNET_NO : GNUNET_SYSERR;
}
- if (dk->denom_pub.cipher != coin->cpi.denom_sig.cipher)
+ if (dk->denom_pub.bsign_pub_key->cipher !=
+ coin->cpi.denom_sig.unblinded_sig->cipher)
{
/* denomination cipher and denomination signature cipher not the same */
GNUNET_JSON_parse_free (spec);
@@ -162,12 +165,12 @@ TEH_common_purse_deposit_parse_coin (
&coin->deposit_fee));
/* check coin signature */
- switch (dk->denom_pub.cipher)
+ switch (dk->denom_pub.bsign_pub_key->cipher)
{
- case TALER_DENOMINATION_RSA:
+ case GNUNET_CRYPTO_BSA_RSA:
TEH_METRICS_num_verifications[TEH_MT_SIGNATURE_RSA]++;
break;
- case TALER_DENOMINATION_CS:
+ case GNUNET_CRYPTO_BSA_CS:
TEH_METRICS_num_verifications[TEH_MT_SIGNATURE_CS]++;
break;
default:
@@ -218,6 +221,9 @@ TEH_common_deposit_check_purse_deposit (
: GNUNET_SYSERR;
}
+ if (0 == min_age)
+ return GNUNET_OK; /* no need to apply age checks */
+
/* Check and verify the age restriction. */
if (coin->no_attest != coin->cpi.no_age_commitment)
{
@@ -260,51 +266,3 @@ TEH_common_purse_deposit_free_coin (struct TEH_PurseDepositedCoin *coin)
if (! coin->cpi.no_age_commitment)
GNUNET_free (coin->age_commitment.keys); /* Only the keys have been allocated */
}
-
-
-#if LEGACY
-
-if (0 >
- TALER_amount_add (&pcc->deposit_total,
- &pcc->deposit_total,
- &coin->amount_minus_fee))
-{
- GNUNET_break (0);
- return TALER_MHD_reply_with_error (connection,
- MHD_HTTP_INTERNAL_SERVER_ERROR,
- TALER_EC_GENERIC_FAILED_COMPUTE_AMOUNT,
- "total deposit contribution");
-}
-
-
-{
- MHD_RESULT mhd_ret = MHD_NO;
- enum GNUNET_DB_QueryStatus qs;
-
- /* make sure coin is 'known' in database */
- for (unsigned int tries = 0; tries<MAX_TRANSACTION_COMMIT_RETRIES; tries++)
- {
- qs = TEH_make_coin_known (&coin->cpi,
- connection,
- &coin->known_coin_id,
- &mhd_ret);
- /* no transaction => no serialization failures should be possible */
- if (GNUNET_DB_STATUS_SOFT_ERROR != qs)
- break;
- }
- if (GNUNET_DB_STATUS_SOFT_ERROR == qs)
- {
- GNUNET_break (0);
- return (MHD_YES ==
- TALER_MHD_reply_with_error (connection,
- MHD_HTTP_INTERNAL_SERVER_ERROR,
- TALER_EC_GENERIC_DB_COMMIT_FAILED,
- "make_coin_known"))
- ? GNUNET_NO : GNUNET_SYSERR;
- }
- if (qs < 0)
- return (MHD_YES == mhd_ret) ? GNUNET_NO : GNUNET_SYSERR;
-}
-return GNUNET_OK;
-}
-#endif