donau

Donation authority for GNU Taler (experimental)
Log | Files | Refs | Submodules | README | LICENSE

commit 7f4ab7ee7d43f7f58f2f84be4ec3ecf886b2e676
parent 5f9a75598b30916c14dfab509047ce30bd60cd0f
Author: Matyja Lukas Adam <lukas.matyja@students.bfh.ch>
Date:   Sun, 24 Sep 2023 23:27:11 +0200

some deletions to the headers

Diffstat:
Msrc/include/taler_donau_service.h | 1073+++++++++++--------------------------------------------------------------------
1 file changed, 147 insertions(+), 926 deletions(-)

diff --git a/src/include/taler_donau_service.h b/src/include/taler_donau_service.h @@ -66,43 +66,43 @@ struct TALER_DONAU_SigningPublicKey /** - * @brief Public information about a donau's denomination key + * @brief Public information about a donau's BDR key */ -struct TALER_DONAU_DenomPublicKey +struct TALER_DONAU_BDRPublicKey { /** * The public key */ - struct TALER_DenominationPublicKey key; + struct TALER_BDRPublicKey key; /** * The hash of the public key. */ - struct TALER_DenominationHashP h_key; + struct TALER_BDRHashP h_key; /** - * Donau's master signature over this denomination record. + * Donau's master signature over this BDR record. */ struct TALER_MasterSignatureP master_sig; /** - * Timestamp indicating when the denomination key becomes valid + * Timestamp indicating when the BDR key becomes valid */ struct GNUNET_TIME_Timestamp valid_from; /** - * Timestamp indicating when the denomination key can’t be used anymore to + * Timestamp indicating when the BDR key can’t be used anymore to * withdraw new coins. */ struct GNUNET_TIME_Timestamp withdraw_valid_until; /** - * Timestamp indicating when coins of this denomination become invalid. + * Timestamp indicating when coins of this BDR become invalid. */ struct GNUNET_TIME_Timestamp expire_deposit; /** - * When do signatures with this denomination key become invalid? + * When do signatures with this BDR key become invalid? * After this point, these signatures cannot be used in (legal) * disputes anymore, as the Exchange is then allowed to destroy its side * of the evidence. @e expire_legal is expected to be significantly @@ -111,87 +111,25 @@ struct TALER_DONAU_DenomPublicKey struct GNUNET_TIME_Timestamp expire_legal; /** - * The value of this denomination + * The value of this BDR */ struct TALER_Amount value; /** - * The applicable fees for this denomination - */ - struct TALER_DenomFeeSet fees; - - /** - * Set to true if the private denomination key has been + * Set to true if the private BDR key has been * lost by the donau and thus the key cannot be * used for withdrawing at this time. */ bool lost; /** - * Set to true if this denomination key has been + * Set to true if this BDR key has been * revoked by the donau. */ bool revoked; }; - -/** - * Information we track per denomination audited by the auditor. - */ -struct TALER_DONAU_AuditorDenominationInfo -{ - - /** - * Signature by the auditor affirming that it is monitoring this - * denomination. - */ - struct TALER_AuditorSignatureP auditor_sig; - - /** - * Offsets into the key's main `denom_keys` array identifying the - * denomination being audited by this auditor. - */ - unsigned int denom_key_offset; - -}; - - -/** - * @brief Information we get from the donau about auditors. - */ -struct TALER_DONAU_AuditorInformation -{ - /** - * Public key of the auditing institution. Wallets and merchants - * are expected to be configured with a set of public keys of - * auditors that they deem acceptable. These public keys are - * the roots of the Taler PKI. - */ - struct TALER_AuditorPublicKeyP auditor_pub; - - /** - * URL of the auditing institution. Signed by the auditor's public - * key, this URL is a place where applications can direct users for - * additional information about the auditor. In the future, there - * should also be an auditor API for automated submission about - * claims of misbehaving donau providers. - */ - char *auditor_url; - - /** - * Array of length @a num_denom_keys with the denomination - * keys audited by this auditor. - */ - struct TALER_DONAU_AuditorDenominationInfo *denom_keys; - - /** - * Number of denomination keys audited by this auditor. - */ - unsigned int num_denom_keys; -}; - - /** * @brief Information about keys from the donau. */ @@ -214,19 +152,9 @@ struct TALER_DONAU_Keys struct TALER_DONAU_SigningPublicKey *sign_keys; /** - * Array of the donau's denomination keys. - */ - struct TALER_DONAU_DenomPublicKey *denom_keys; - - /** - * Array of the keys of the auditors of the donau. - */ - struct TALER_DONAU_AuditorInformation *auditors; - - /** - * Array with the global fees of the donau. + * Array of the donau's BDR keys. */ - struct TALER_DONAU_GlobalFee *global_fees; + struct TALER_DONAU_BDRPublicKey *BDR_keys; /** * Configuration data for extensions. @@ -261,29 +189,11 @@ struct TALER_DONAU_Keys char *asset_type; /** - * Array of amounts a wallet is allowed to hold from - * this donau before it must undergo further KYC checks. - */ - struct TALER_Amount *wallet_balance_limit_without_kyc; - - /** * Array of accounts of the donau. */ struct TALER_DONAU_WireAccount *accounts; /** - * Array of wire fees by wire method. - */ - struct TALER_DONAU_WireFeesByMethod *fees; - - /** - * How long after a reserve went idle will the donau close it? - * This is an approximate number, not cryptographically signed by - * the donau (advisory-only, may change anytime). - */ - struct GNUNET_TIME_Relative reserve_closing_delay; - - /** * Timestamp indicating the /keys generation. */ struct GNUNET_TIME_Timestamp list_issue_date; @@ -295,36 +205,16 @@ struct TALER_DONAU_Keys /** * Timestamp indicating the creation time of the last - * denomination key in /keys. + * BDR key in /keys. * Used to fetch /keys incrementally. */ - struct GNUNET_TIME_Timestamp last_denom_issue_date; - - /** - * If age restriction is enabled on the donau, we get an non-zero age_mask - */ - struct TALER_AgeMask age_mask; - - /** - * Absolute STEFAN parameter. - */ - struct TALER_Amount stefan_abs; - - /** - * Logarithmic STEFAN parameter. - */ - struct TALER_Amount stefan_log; - - /** - * Linear STEFAN parameter. - */ - struct TALER_Amount stefan_lin; + struct GNUNET_TIME_Timestamp last_BDR_issue_date; /** * Default number of fractional digits to render * amounts with. */ - uint32_t currency_fraction_digits; + // uint32_t currency_fraction_digits; /** * Length of @e accounts array. @@ -332,45 +222,19 @@ struct TALER_DONAU_Keys unsigned int accounts_len; /** - * Length of @e fees array. - */ - unsigned int fees_len; - - /** - * Length of the @e wallet_balance_limit_without_kyc - * array. - */ - unsigned int wblwk_length; - - /** - * Length of the @e global_fees array. - */ - unsigned int num_global_fees; - - /** * Length of the @e sign_keys array (number of valid entries). */ unsigned int num_sign_keys; /** - * Length of the @e denom_keys array. - */ - unsigned int num_denom_keys; - - /** - * Length of the @e auditors array. - */ - unsigned int num_auditors; - - /** - * Actual length of the @e auditors array (size of allocation). + * Length of the @e BDR_keys array. */ - unsigned int auditors_size; + unsigned int num_BDR_keys; /** - * Actual length of the @e denom_keys array (size of allocation). + * Actual length of the @e BDR_keys array (size of allocation). */ - unsigned int denom_keys_size; + unsigned int BDR_keys_size; /** * Reference counter for this structure. @@ -381,7 +245,7 @@ struct TALER_DONAU_Keys /** * Set to true if rewards are allowed at this donau. */ - bool rewards_allowed; + //bool rewards_allowed; }; @@ -514,7 +378,7 @@ struct TALER_DONAU_KeysResponse /** - * Function called with information about who is auditing + * Function called with information about * a particular donau and what keys the donau is using. * The ownership over the @a keys object is passed to * the callee, thus it is given explicitly and not @@ -628,54 +492,54 @@ TALER_DONAU_test_signing_key ( /** - * Obtain the denomination key details from the donau. + * Obtain the BDR key details from the donau. * * @param keys the donau's key set - * @param pk public key of the denomination to lookup - * @return details about the given denomination key, NULL if the key is not + * @param pk public key of the BDR to lookup + * @return details about the given BDR key, NULL if the key is not * found */ -const struct TALER_DONAU_DenomPublicKey * -TALER_DONAU_get_denomination_key ( +const struct TALER_DONAU_BDRPublicKey * +TALER_DONAU_get_BDR_key ( const struct TALER_DONAU_Keys *keys, - const struct TALER_DenominationPublicKey *pk); + const struct TALER_BDRPublicKey *pk); /** - * Create a copy of a denomination public key. + * Create a copy of a BDR public key. * * @param key key to copy - * @returns a copy, must be freed with #TALER_DONAU_destroy_denomination_key() + * @returns a copy, must be freed with #TALER_DONAU_destroy_BDR_key() * @deprecated */ -struct TALER_DONAU_DenomPublicKey * -TALER_DONAU_copy_denomination_key ( - const struct TALER_DONAU_DenomPublicKey *key); +struct TALER_DONAU_BDRPublicKey * +TALER_DONAU_copy_BDR_key ( + const struct TALER_DONAU_BDRPublicKey *key); /** - * Destroy a denomination public key. - * Should only be called with keys created by #TALER_DONAU_copy_denomination_key(). + * Destroy a BDR public key. + * Should only be called with keys created by #TALER_DONAU_copy_BDR_key(). * * @param key key to destroy. * @deprecated */ void -TALER_DONAU_destroy_denomination_key ( - struct TALER_DONAU_DenomPublicKey *key); +TALER_DONAU_destroy_BDR_key ( + struct TALER_DONAU_BDRPublicKey *key); /** - * Obtain the denomination key details from the donau. + * Obtain the BDR key details from the donau. * * @param keys the donau's key set - * @param hc hash of the public key of the denomination to lookup - * @return details about the given denomination key + * @param hc hash of the public key of the BDR to lookup + * @return details about the given BDR key */ -const struct TALER_DONAU_DenomPublicKey * -TALER_DONAU_get_denomination_key_by_hash ( +const struct TALER_DONAU_BDRPublicKey * +TALER_DONAU_get_BDR_key_by_hash ( const struct TALER_DONAU_Keys *keys, - const struct TALER_DenominationHashP *hc); + const struct TALER_BDRHashP *hc); /** @@ -724,26 +588,21 @@ TALER_DONAU_free_accounts ( struct TALER_DONAU_WireAccount was[static was_len]); -/* ********************* /coins/$COIN_PUB/deposit *********************** */ +/* ********************* collect donation receipts/request signature for QR-Code *********************** */ /** - * Information needed for a coin to be deposited. + * Information needed for a BDR to be signed. */ -struct TALER_DONAU_CoinDepositDetail +struct TALER_DONAU_BDRDetail { /** - * The amount to be deposited. + * The amount to be signed. */ struct TALER_Amount amount; /** - * Hash over the age commitment of the coin. - */ - struct TALER_AgeCommitmentHash h_age_commitment; - - /** * The coin’s public key. */ struct TALER_CoinSpendPublicKeyP coin_pub; @@ -757,12 +616,12 @@ struct TALER_DONAU_CoinDepositDetail /** * Exchange’s unblinded signature of the coin. */ - struct TALER_DenominationSignature denom_sig; + struct TALER_BDRSignature BDR_sig; /** * Hash of the public key of the coin. */ - struct TALER_DenominationHashP h_denom_pub; + struct TALER_BDRHashP h_BDR_pub; }; @@ -972,236 +831,7 @@ TALER_DONAU_batch_deposit_cancel ( struct TALER_DONAU_BatchDepositHandle *deposit); -/* ********************* /coins/$COIN_PUB/refund *********************** */ - -/** - * @brief A Refund Handle - */ -struct TALER_DONAU_RefundHandle; - -/** - * Response from the /refund API. - */ -struct TALER_DONAU_RefundResponse -{ - /** - * HTTP response data - */ - struct TALER_DONAU_HttpResponse hr; - - /** - * Response details depending on the HTTP status code. - */ - union - { - /** - * Details on #MHD_HTTP_OK. - */ - struct - { - /** - * Exchange key used to sign. - */ - struct TALER_ExchangePublicKeyP donau_pub; - - /** - * The actual signature - */ - struct TALER_ExchangeSignatureP donau_sig; - } ok; - } details; -}; - - -/** - * Callbacks of this type are used to serve the result of submitting a - * refund request to an donau. - * - * @param cls closure - * @param rr refund response - */ -typedef void -(*TALER_DONAU_RefundCallback) ( - void *cls, - const struct TALER_DONAU_RefundResponse *rr); - -/** - * Submit a refund request to the donau and get the donau's response. - * This API is used by a merchant. Note that while we return the response - * verbatim to the caller for further processing, we do already verify that - * the response is well-formed (i.e. that signatures included in the response - * are all valid). If the donau's reply is not well-formed, we return an - * HTTP status code of zero to @a cb. - * - * The @a donau must be ready to operate (i.e. have - * finished processing the /keys reply). If this check fails, we do - * NOT initiate the transaction with the donau and instead return NULL. - * - * @param ctx curl context - * @param url donau base URL - * @param keys donau keys - * @param amount the amount to be refunded; must be larger than the refund fee - * (as that fee is still being subtracted), and smaller than the amount - * (with deposit fee) of the original deposit contribution of this coin - * @param h_contract_terms hash of the contact of the merchant with the customer that is being refunded - * @param coin_pub coin’s public key of the coin from the original deposit operation - * @param rtransaction_id transaction id for the transaction between merchant and customer (of refunding operation); - * this is needed as we may first do a partial refund and later a full refund. If both - * refunds are also over the same amount, we need the @a rtransaction_id to make the disjoint - * refund requests different (as requests are idempotent and otherwise the 2nd refund might not work). - * @param merchant_priv the private key of the merchant, used to generate signature for refund request - * @param cb the callback to call when a reply for this request is available - * @param cb_cls closure for the above callback - * @return a handle for this request; NULL if the inputs are invalid (i.e. - * signatures fail to verify). In this case, the callback is not called. - */ -struct TALER_DONAU_RefundHandle * -TALER_DONAU_refund ( - struct GNUNET_CURL_Context *ctx, - const char *url, - struct TALER_DONAU_Keys *keys, - const struct TALER_Amount *amount, - const struct TALER_PrivateContractHashP *h_contract_terms, - const struct TALER_CoinSpendPublicKeyP *coin_pub, - uint64_t rtransaction_id, - const struct TALER_MerchantPrivateKeyP *merchant_priv, - TALER_DONAU_RefundCallback cb, - void *cb_cls); - - -/** - * Cancel a refund permission request. This function cannot be used - * on a request handle if a response is already served for it. If - * this function is called, the refund may or may not have happened. - * However, it is fine to try to refund the coin a second time. - * - * @param refund the refund request handle - */ -void -TALER_DONAU_refund_cancel (struct TALER_DONAU_RefundHandle *refund); - - -/* ********************* POST /csr-melt *********************** */ - - -/** - * @brief A /csr-melt Handle - */ -struct TALER_DONAU_CsRMeltHandle; - - -/** - * Details about a response for a CS R request. - */ -struct TALER_DONAU_CsRMeltResponse -{ - /** - * HTTP response data. - */ - struct TALER_DONAU_HttpResponse hr; - - /** - * Details about the response. - */ - union - { - /** - * Details if the status is #MHD_HTTP_OK. - */ - struct - { - /** - * Length of the @e alg_values array. - */ - unsigned int alg_values_len; - - /** - * Values contributed by the donau for the - * respective coin's withdraw operation. - */ - const struct TALER_ExchangeWithdrawValues *alg_values; - } ok; - - /** - * Details if the status is #MHD_HTTP_GONE. - */ - struct - { - /* TODO: returning full details is not implemented */ - } gone; - - } details; -}; - - -/** - * Callbacks of this type are used to serve the result of submitting a - * CS R request to a donau. - * - * @param cls closure - * @param csrr response details - */ -typedef void -(*TALER_DONAU_CsRMeltCallback) ( - void *cls, - const struct TALER_DONAU_CsRMeltResponse *csrr); - - -/** - * Information we pass per coin to a /csr-melt request. - */ -struct TALER_DONAU_NonceKey -{ - /** - * Which denomination key is the /csr-melt request for? - */ - const struct TALER_DONAU_DenomPublicKey *pk; - - /** - * What is number to derive the client nonce for the - * fresh coin? - */ - uint32_t cnc_num; -}; - - -/** - * Get a set of CS R values using a /csr-melt request. - * - * @param ctx curl context - * @param url donau base URL - * @param rms master key used for the derivation of the CS values - * @param nks_len length of the @a nks array - * @param nks array of denominations and nonces - * @param res_cb the callback to call when the final result for this request is available - * @param res_cb_cls closure for the above callback - * @return handle for the operation on success, NULL on error, i.e. - * if the inputs are invalid (i.e. denomination key not with this donau). - * In this case, the callback is not called. - */ -struct TALER_DONAU_CsRMeltHandle * -TALER_DONAU_csr_melt ( - struct GNUNET_CURL_Context *ctx, - const char *url, - const struct TALER_RefreshMasterSecretP *rms, - unsigned int nks_len, - struct TALER_DONAU_NonceKey nks[static nks_len], - TALER_DONAU_CsRMeltCallback res_cb, - void *res_cb_cls); - - -/** - * - * Cancel a CS R melt request. This function cannot be used - * on a request handle if a response is already served for it. - * - * @param csrh the withdraw handle - */ -void -TALER_DONAU_csr_melt_cancel (struct TALER_DONAU_CsRMeltHandle *csrh); - - -/* ********************* POST /csr-withdraw *********************** */ +/* ********************* POST /csr singing BDR *********************** */ /** @@ -1267,19 +897,19 @@ typedef void * * @param curl_ctx The curl context to use for the requests * @param donau_url Base-URL to the excnange - * @param pk Which denomination key is the /csr request for + * @param pk Which BDR key is the /csr request for * @param nonce client nonce for the request * @param res_cb the callback to call when the final result for this request is available * @param res_cb_cls closure for the above callback * @return handle for the operation on success, NULL on error, i.e. - * if the inputs are invalid (i.e. denomination key not with this donau). + * if the inputs are invalid (i.e. BDR key not with this donau). * In this case, the callback is not called. */ struct TALER_DONAU_CsRWithdrawHandle * TALER_DONAU_csr_withdraw ( struct GNUNET_CURL_Context *curl_ctx, const char *donau_url, - const struct TALER_DONAU_DenomPublicKey *pk, + const struct TALER_DONAU_BDRPublicKey *pk, const struct TALER_CsNonce *nonce, TALER_DONAU_CsRWithdrawCallback res_cb, void *res_cb_cls); @@ -1996,9 +1626,9 @@ struct TALER_DONAU_WithdrawHandle; struct TALER_DONAU_WithdrawCoinInput { /** - * Denomination of the coin. + * BDR of the coin. */ - const struct TALER_DONAU_DenomPublicKey *pk; + const struct TALER_DONAU_BDRPublicKey *pk; /** * Master key material for the coin. @@ -2028,12 +1658,12 @@ struct TALER_DONAU_PrivateCoinDetails * Value used to blind the key for the signature. * Needed for recoup operations. */ - union TALER_DenominationBlindingKeyP bks; + union TALER_BDRBlindingKeyP bks; /** * Signature over the coin. */ - struct TALER_DenominationSignature sig; + struct TALER_BDRSignature sig; /** * Values contributed from the donau during the @@ -2132,7 +1762,7 @@ typedef void * @param res_cb the callback to call when the final result for this request is available * @param res_cb_cls closure for @a res_cb * @return NULL - * if the inputs are invalid (i.e. denomination key not with this donau). + * if the inputs are invalid (i.e. BDR key not with this donau). * In this case, the callback is not called. */ struct TALER_DONAU_WithdrawHandle * @@ -2264,7 +1894,7 @@ typedef void * @param res_cb the callback to call when the final result for this request is available * @param res_cb_cls closure for @a res_cb * @return NULL - * if the inputs are invalid (i.e. denomination key not with this donau). + * if the inputs are invalid (i.e. BDR key not with this donau). * In this case, the callback is not called. */ struct TALER_DONAU_BatchWithdrawHandle * @@ -2313,7 +1943,7 @@ struct TALER_DONAU_Withdraw2Response /** * blind signature over the coin */ - struct TALER_BlindedDenominationSignature blind_sig; + struct TALER_BlindedBDRSignature blind_sig; } ok; } details; @@ -2360,7 +1990,7 @@ struct TALER_DONAU_Withdraw2Handle; * @param res_cb the callback to call when the final result for this request is available * @param res_cb_cls closure for @a res_cb * @return NULL - * if the inputs are invalid (i.e. denomination key not with this donau). + * if the inputs are invalid (i.e. BDR key not with this donau). * In this case, the callback is not called. */ struct TALER_DONAU_Withdraw2Handle * @@ -2407,7 +2037,7 @@ struct TALER_DONAU_BatchWithdraw2Response /** * array of blind signatures over the coins. */ - const struct TALER_BlindedDenominationSignature *blind_sigs; + const struct TALER_BlindedBDRSignature *blind_sigs; /** * length of @e blind_sigs @@ -2462,7 +2092,7 @@ struct TALER_DONAU_BatchWithdraw2Handle; * @param res_cb the callback to call when the final result for this request is available * @param res_cb_cls closure for @a res_cb * @return NULL - * if the inputs are invalid (i.e. denomination key not with this donau). + * if the inputs are invalid (i.e. BDR key not with this donau). * In this case, the callback is not called. */ struct TALER_DONAU_BatchWithdraw2Handle * @@ -2502,10 +2132,10 @@ struct TALER_DONAU_AgeWithdrawCoinInput struct TALER_PlanchetMasterSecretP secrets[TALER_CNC_KAPPA]; /** - * The denomination of the coin. Must support age restriction, i.e + * The BDR of the coin. Must support age restriction, i.e * its .keys.age_mask MUST not be 0 */ - struct TALER_DONAU_DenomPublicKey *denom_pub; + struct TALER_DONAU_BDRPublicKey *BDR_pub; }; @@ -2529,7 +2159,7 @@ struct TALER_DONAU_AgeWithdrawCoinPrivateDetails * Value used to blind the key for the signature. * Needed for recoup operations. */ - union TALER_DenominationBlindingKeyP blinding_key; + union TALER_BDRBlindingKeyP blinding_key; /** * The age commitment, proof for the coin, derived from the @@ -2632,7 +2262,7 @@ typedef void * * @param curl_ctx The curl context * @param donau_url The base url of the donau - * @param keys The denomination keys from the donau + * @param keys The BDR keys from the donau * @param reserve_priv The pivate key to the reserve * @param num_coins The number of elements in @e coin_inputs * @param coin_inputs The input for the coins to withdraw @@ -2666,415 +2296,6 @@ TALER_DONAU_age_withdraw_cancel ( struct TALER_DONAU_AgeWithdrawHandle *awh); -/**++++++ age-withdraw with pre-blinded planchets ***************************/ - -/** - * @brief Information needed to withdraw (and reveal) age restricted coins. - */ -struct TALER_DONAU_AgeWithdrawBlindedInput -{ - /** - * The denomination of the coin. Must support age restriction, i.e - * its .keys.age_mask MUST not be 0 - */ - const struct TALER_DONAU_DenomPublicKey *denom_pub; - - /** - * Blinded Planchets - */ - struct TALER_PlanchetDetail planchet_details[TALER_CNC_KAPPA]; -}; - -/** - * Response from an age-withdraw request with pre-blinded planchets - */ -struct TALER_DONAU_AgeWithdrawBlindedResponse -{ - /** - * HTTP response data - */ - struct TALER_DONAU_HttpResponse hr; - - /** - * Response details depending on the HTTP status. - */ - union - { - /** - * Details if HTTP status is #MHD_HTTP_OK. - */ - struct - { - /** - * Index that should not be revealed during the age-withdraw reveal phase. - * The struct TALER_PlanchetMasterSecretP * from the request - * with this index are the ones to keep. - */ - uint8_t noreveal_index; - - /** - * The commitment of the call to age-withdraw, needed for the subsequent - * call to /age-withdraw/$ACH/reveal. - */ - struct TALER_AgeWithdrawCommitmentHashP h_commitment; - - /** - * Key used by the donau to sign the response. - */ - struct TALER_ExchangePublicKeyP donau_pub; - - } ok; - } details; - -}; - - -/** - * Callbacks of this type are used to serve the result of submitting an - * age-withdraw request to a donau with pre-blinded planchets - * without the (un)blinding factor. - * - * @param cls closure - * @param awbr response data - */ -typedef void -(*TALER_DONAU_AgeWithdrawBlindedCallback) ( - void *cls, - const struct TALER_DONAU_AgeWithdrawBlindedResponse *awbr); - - -/** - * @brief A /reserves/$RESERVE_PUB/age-withdraw Handle, 2nd variant with - * pre-blinded planchets. - * - * This variant does not do the blinding/unblinding and only - * fetches the blind signatures on the already blinded planchets. - * Used internally by the `struct TALER_DONAU_BatchWithdrawHandle` - * implementation as well as for the reward logic of merchants. - */ -struct TALER_DONAU_AgeWithdrawBlindedHandle; - -/** - * Withdraw age-restricted coins from the donau using a - * /reserves/$RESERVE_PUB/age-withdraw request. This API is typically used - * by a merchant to withdraw a reward where the planchets are pre-blinded and - * the blinding factor is unknown to the merchant. - * - * Note that to ensure that no money is lost in case of hardware - * failures, the caller must have committed (most of) the arguments to - * disk before calling, and be ready to repeat the request with the - * same arguments in case of failures. - * - * @param curl_ctx The curl context to use - * @param donau_url The base-URL of the donau - * @param keys The /keys material from the donau - * @param max_age The maximum age that the coins are committed to. - * @param num_input number of entries in the @a blinded_input array - * @param blinded_input array of planchet details of the planchet to withdraw - * @param reserve_priv private key of the reserve to withdraw from - * @param res_cb the callback to call when the final result for this request is available - * @param res_cb_cls closure for @a res_cb - * @return NULL - * if the inputs are invalid (i.e. denomination key not with this donau). - * In this case, the callback is not called. - */ -struct TALER_DONAU_AgeWithdrawBlindedHandle * -TALER_DONAU_age_withdraw_blinded ( - struct GNUNET_CURL_Context *curl_ctx, - struct TALER_DONAU_Keys *keys, - const char *donau_url, - const struct TALER_ReservePrivateKeyP *reserve_priv, - uint8_t max_age, - unsigned int num_input, - const struct TALER_DONAU_AgeWithdrawBlindedInput blinded_input[static - num_input], - TALER_DONAU_AgeWithdrawBlindedCallback res_cb, - void *res_cb_cls); - - -/** - * Cancel an age-withdraw request. This function cannot be used - * on a request handle if a response is already served for it. - * - * @param awbh the age-withdraw handle - */ -void -TALER_DONAU_age_withdraw_blinded_cancel ( - struct TALER_DONAU_AgeWithdrawBlindedHandle *awbh); - - -/* ********************* /age-withdraw/$ACH/reveal ************************ */ - -/** - * @brief A handle to a /age-withdraw/$ACH/reveal request - */ -struct TALER_DONAU_AgeWithdrawRevealHandle; - -/** - * The response from a /age-withdraw/$ACH/reveal request - */ -struct TALER_DONAU_AgeWithdrawRevealResponse -{ - /** - * HTTP response data. - */ - struct TALER_DONAU_HttpResponse hr; - - /** - * Details about the response - */ - union - { - /** - * Details if the status is #MHD_HTTP_OK. - */ - struct - { - /** - * Number of signatures returned. - */ - unsigned int num_sigs; - - /** - * Array of @e num_coins blinded denomination signatures, giving each - * coin its value and validity. The array give these coins in the same - * order (and should have the same length) in which the original - * age-withdraw request specified the respective denomination keys. - */ - const struct TALER_BlindedDenominationSignature *blinded_denom_sigs; - - } ok; - } details; - -}; - -typedef void -(*TALER_DONAU_AgeWithdrawRevealCallback)( - void *cls, - const struct TALER_DONAU_AgeWithdrawRevealResponse *awr); - -/** - * Submit an age-withdraw-reveal request to the donau and get the donau's - * response. - * - * This API is typically used by a wallet. Note that to ensure that - * no money is lost in case of hardware failures, the provided - * argument @a rd should be committed to persistent storage - * prior to calling this function. - * - * @param curl_ctx The curl context - * @param donau_url The base url of the donau - * @param num_coins The number of elements in @e coin_inputs and @e alg_values - * @param coin_inputs The input for the coins to withdraw, same as in the previous call to /age-withdraw - * @param noreveal_index The index into each of the kappa coin candidates, that should not be revealed to the donau - * @param h_commitment The commmitment from the previous call to /age-withdraw - * @param reserve_pub The public key of the reserve the original call to /age-withdraw was made to - * @param res_cb A callback for the result, maybe NULL - * @param res_cb_cls A closure for @e res_cb, maybe NULL - * @return a handle for this request; NULL if the argument was invalid. - * In this case, the callback will not be called. - */ -struct TALER_DONAU_AgeWithdrawRevealHandle * -TALER_DONAU_age_withdraw_reveal ( - struct GNUNET_CURL_Context *curl_ctx, - const char *donau_url, - size_t num_coins, - const struct TALER_DONAU_AgeWithdrawCoinInput coin_inputs[static - num_coins], - uint8_t noreveal_index, - const struct TALER_AgeWithdrawCommitmentHashP *h_commitment, - const struct TALER_ReservePublicKeyP *reserve_pub, - TALER_DONAU_AgeWithdrawRevealCallback res_cb, - void *res_cb_cls); - - -/** - * @brief Cancel an age-withdraw-reveal request - * - * @param awrh Handle to an age-withdraw-reqveal request - */ -void -TALER_DONAU_age_withdraw_reveal_cancel ( - struct TALER_DONAU_AgeWithdrawRevealHandle *awrh); - - -/* ********************* /refresh/melt+reveal ***************************** */ - - -/** - * Information needed to melt (partially spent) coins to obtain fresh coins - * that are unlinkable to the original coin(s). Note that melting more than - * one coin in a single request will make those coins linkable, so we only melt - * one coin at a time. - */ -struct TALER_DONAU_RefreshData -{ - /** - * private key of the coin to melt - */ - struct TALER_CoinSpendPrivateKeyP melt_priv; - - /* - * age commitment and proof and its hash that went into the original coin, - * might be NULL. - */ - const struct TALER_AgeCommitmentProof *melt_age_commitment_proof; - const struct TALER_AgeCommitmentHash *melt_h_age_commitment; - - /** - * amount specifying how much the coin will contribute to the melt - * (including fee) - */ - struct TALER_Amount melt_amount; - - /** - * signatures affirming the validity of the public keys corresponding to the - * @e melt_priv private key - */ - struct TALER_DenominationSignature melt_sig; - - /** - * denomination key information record corresponding to the @e melt_sig - * validity of the keys - */ - struct TALER_DONAU_DenomPublicKey melt_pk; - - /** - * array of @e pks_len denominations of fresh coins to create - */ - const struct TALER_DONAU_DenomPublicKey *fresh_pks; - - /** - * length of the @e pks array - */ - unsigned int fresh_pks_len; -}; - - -/* ********************* /coins/$COIN_PUB/melt ***************************** */ - -/** - * @brief A /coins/$COIN_PUB/melt Handle - */ -struct TALER_DONAU_MeltHandle; - - -/** - * Information we obtain per coin during melting. - */ -struct TALER_DONAU_MeltBlindingDetail -{ - /** - * Exchange values contributed to the refresh operation - */ - struct TALER_ExchangeWithdrawValues alg_value; - -}; - - -/** - * Response returned to a /melt request. - */ -struct TALER_DONAU_MeltResponse -{ - /** - * Full HTTP response details. - */ - struct TALER_DONAU_HttpResponse hr; - - /** - * Parsed response details, variant depending on the - * @e hr.http_status. - */ - union - { - /** - * Results for status #MHD_HTTP_OK. - */ - struct - { - - /** - * Information returned per coin. - */ - const struct TALER_DONAU_MeltBlindingDetail *mbds; - - /** - * Key used by the donau to sign the response. - */ - struct TALER_ExchangePublicKeyP sign_key; - - /** - * Length of the @a mbds array with the donau values - * and blinding keys we are using. - */ - unsigned int num_mbds; - - /** - * Gamma value chosen by the donau. - */ - uint32_t noreveal_index; - } ok; - - } details; -}; - - -/** - * Callbacks of this type are used to notify the application about the result - * of the /coins/$COIN_PUB/melt stage. If successful, the @a noreveal_index - * should be committed to disk prior to proceeding - * #TALER_DONAU_refreshes_reveal(). - * - * @param cls closure - * @param mr response details - */ -typedef void -(*TALER_DONAU_MeltCallback) ( - void *cls, - const struct TALER_DONAU_MeltResponse *mr); - - -/** - * Submit a melt request to the donau and get the donau's - * response. - * - * This API is typically used by a wallet. Note that to ensure that - * no money is lost in case of hardware failures, the provided - * argument @a rd should be committed to persistent storage - * prior to calling this function. - * - * @param ctx curl context - * @param url donau base URL - * @param keys donau keys - * @param rms the fresh secret that defines the refresh operation - * @param rd the refresh data specifying the characteristics of the operation - * @param melt_cb the callback to call with the result - * @param melt_cb_cls closure for @a melt_cb - * @return a handle for this request; NULL if the argument was invalid. - * In this case, neither callback will be called. - */ -struct TALER_DONAU_MeltHandle * -TALER_DONAU_melt ( - struct GNUNET_CURL_Context *ctx, - const char *url, - struct TALER_DONAU_Keys *keys, - const struct TALER_RefreshMasterSecretP *rms, - const struct TALER_DONAU_RefreshData *rd, - TALER_DONAU_MeltCallback melt_cb, - void *melt_cb_cls); - - -/** - * Cancel a melt request. This function cannot be used - * on a request handle if the callback was already invoked. - * - * @param mh the melt handle - */ -void -TALER_DONAU_melt_cancel (struct TALER_DONAU_MeltHandle *mh); - - /* ********************* /refreshes/$RCH/reveal ***************************** */ @@ -3102,12 +2323,12 @@ struct TALER_DONAU_RevealedCoinInfo /** * Blinding keys used to blind the fresh coin. */ - union TALER_DenominationBlindingKeyP bks; + union TALER_BDRBlindingKeyP bks; /** * Signature affirming the validity of the coin. */ - struct TALER_DenominationSignature sig; + struct TALER_BDRSignature sig; }; @@ -3137,7 +2358,7 @@ struct TALER_DONAU_RevealResult * Array of @e num_coins values about the coins obtained via the refresh * operation. The array give the coins in the same order (and should * have the same length) in which the original melt request specified the - * respective denomination keys. + * respective BDR keys. */ const struct TALER_DONAU_RevealedCoinInfo *coins; @@ -3254,12 +2475,12 @@ struct TALER_DONAU_LinkedCoinInfo /** * Signature affirming the validity of the coin. */ - struct TALER_DenominationSignature sig; + struct TALER_BDRSignature sig; /** - * Denomination public key of the coin. + * BDR public key of the coin. */ - struct TALER_DenominationPublicKey pub; + struct TALER_BDRPublicKey pub; }; @@ -3643,7 +2864,7 @@ TALER_DONAU_deposits_get_cancel ( */ enum GNUNET_GenericReturnValue TALER_DONAU_verify_coin_history ( - const struct TALER_DONAU_DenomPublicKey *dk, + const struct TALER_DONAU_BDRPublicKey *dk, const struct TALER_CoinSpendPublicKeyP *coin_pub, const json_t *history, struct TALER_Amount *total); @@ -3747,20 +2968,20 @@ typedef void /** * Ask the donau to pay back a coin due to the donau triggering - * the emergency recoup protocol for a given denomination. The value + * the emergency recoup protocol for a given BDR. The value * of the coin will be refunded to the original customer (without fees). * * @param ctx curl context * @param url donau base URL * @param keys donau keys * @param pk kind of coin to pay back - * @param denom_sig signature over the coin by the donau using @a pk + * @param BDR_sig signature over the coin by the donau using @a pk * @param donau_vals contribution from the donau on the withdraw * @param ps secret internals of the original planchet * @param recoup_cb the callback to call when the final result for this request is available * @param recoup_cb_cls closure for @a recoup_cb * @return NULL - * if the inputs are invalid (i.e. denomination key not with this donau). + * if the inputs are invalid (i.e. BDR key not with this donau). * In this case, the callback is not called. */ struct TALER_DONAU_RecoupHandle * @@ -3768,8 +2989,8 @@ TALER_DONAU_recoup ( struct GNUNET_CURL_Context *ctx, const char *url, struct TALER_DONAU_Keys *keys, - const struct TALER_DONAU_DenomPublicKey *pk, - const struct TALER_DenominationSignature *denom_sig, + const struct TALER_DONAU_BDRPublicKey *pk, + const struct TALER_BDRSignature *BDR_sig, const struct TALER_ExchangeWithdrawValues *donau_vals, const struct TALER_PlanchetMasterSecretP *ps, TALER_DONAU_RecoupResultCallback recoup_cb, @@ -3841,7 +3062,7 @@ typedef void /** * Ask the donau to pay back a coin due to the donau triggering - * the emergency recoup protocol for a given denomination. The value + * the emergency recoup protocol for a given BDR. The value * of the coin will be refunded to the original coin that the * revoked coin was refreshed from. The original coin is then * considered a zombie. @@ -3850,7 +3071,7 @@ typedef void * @param url donau base URL * @param keys donau keys * @param pk kind of coin to pay back - * @param denom_sig signature over the coin by the donau using @a pk + * @param BDR_sig signature over the coin by the donau using @a pk * @param donau_vals contribution from the donau on the withdraw * @param rms melt secret of the refreshing operation * @param ps coin-specific secrets derived for this coin during the refreshing operation @@ -3858,7 +3079,7 @@ typedef void * @param recoup_cb the callback to call when the final result for this request is available * @param recoup_cb_cls closure for @a recoup_cb * @return NULL - * if the inputs are invalid (i.e. denomination key not with this donau). + * if the inputs are invalid (i.e. BDR key not with this donau). * In this case, the callback is not called. */ struct TALER_DONAU_RecoupRefreshHandle * @@ -3866,8 +3087,8 @@ TALER_DONAU_recoup_refresh ( struct GNUNET_CURL_Context *ctx, const char *url, struct TALER_DONAU_Keys *keys, - const struct TALER_DONAU_DenomPublicKey *pk, - const struct TALER_DenominationSignature *denom_sig, + const struct TALER_DONAU_BDRPublicKey *pk, + const struct TALER_BDRSignature *BDR_sig, const struct TALER_ExchangeWithdrawValues *donau_vals, const struct TALER_RefreshMasterSecretP *rms, const struct TALER_PlanchetMasterSecretP *ps, @@ -3924,38 +3145,38 @@ struct TALER_DONAU_FutureSigningPublicKey /** - * @brief Public information about a future donau's denomination key + * @brief Public information about a future donau's BDR key */ -struct TALER_DONAU_FutureDenomPublicKey +struct TALER_DONAU_FutureBDRPublicKey { /** * The public key */ - struct TALER_DenominationPublicKey key; + struct TALER_BDRPublicKey key; /** * Signature by the security module affirming it owns this key. */ - struct TALER_SecurityModuleSignatureP denom_secmod_sig; + struct TALER_SecurityModuleSignatureP BDR_secmod_sig; /** - * Timestamp indicating when the denomination key becomes valid + * Timestamp indicating when the BDR key becomes valid */ struct GNUNET_TIME_Timestamp valid_from; /** - * Timestamp indicating when the denomination key can’t be used anymore to + * Timestamp indicating when the BDR key can’t be used anymore to * withdraw new coins. */ struct GNUNET_TIME_Timestamp withdraw_valid_until; /** - * Timestamp indicating when coins of this denomination become invalid. + * Timestamp indicating when coins of this BDR become invalid. */ struct GNUNET_TIME_Timestamp expire_deposit; /** - * When do signatures with this denomination key become invalid? + * When do signatures with this BDR key become invalid? * After this point, these signatures cannot be used in (legal) * disputes anymore, as the Exchange is then allowed to destroy its side * of the evidence. @e expire_legal is expected to be significantly @@ -3964,27 +3185,27 @@ struct TALER_DONAU_FutureDenomPublicKey struct GNUNET_TIME_Timestamp expire_legal; /** - * The value of this denomination + * The value of this BDR */ struct TALER_Amount value; /** - * The applicable fee for withdrawing a coin of this denomination + * The applicable fee for withdrawing a coin of this BDR */ struct TALER_Amount fee_withdraw; /** - * The applicable fee to spend a coin of this denomination + * The applicable fee to spend a coin of this BDR */ struct TALER_Amount fee_deposit; /** - * The applicable fee to melt/refresh a coin of this denomination + * The applicable fee to melt/refresh a coin of this BDR */ struct TALER_Amount fee_refresh; /** - * The applicable fee to refund a coin of this denomination + * The applicable fee to refund a coin of this BDR */ struct TALER_Amount fee_refund; @@ -4003,9 +3224,9 @@ struct TALER_DONAU_FutureKeys struct TALER_DONAU_FutureSigningPublicKey *sign_keys; /** - * Array of the donau's denomination keys. + * Array of the donau's BDR keys. */ - struct TALER_DONAU_FutureDenomPublicKey *denom_keys; + struct TALER_DONAU_FutureBDRPublicKey *BDR_keys; /** * Public key of the signkey security module. @@ -4013,14 +3234,14 @@ struct TALER_DONAU_FutureKeys struct TALER_SecurityModulePublicKeyP signkey_secmod_public_key; /** - * Public key of the RSA denomination security module. + * Public key of the RSA BDR security module. */ - struct TALER_SecurityModulePublicKeyP denom_secmod_public_key; + struct TALER_SecurityModulePublicKeyP BDR_secmod_public_key; /** - * Public key of the CS denomination security module. + * Public key of the CS BDR security module. */ - struct TALER_SecurityModulePublicKeyP denom_secmod_cs_public_key; + struct TALER_SecurityModulePublicKeyP BDR_secmod_cs_public_key; /** * Offline master public key used by this donau. @@ -4033,9 +3254,9 @@ struct TALER_DONAU_FutureKeys unsigned int num_sign_keys; /** - * Length of the @e denom_keys array. + * Length of the @e BDR_keys array. */ - unsigned int num_denom_keys; + unsigned int num_BDR_keys; }; @@ -4138,17 +3359,17 @@ struct TALER_DONAU_SigningKeySignature /** - * @brief Public information about a signature on an donau's denomination key + * @brief Public information about a signature on an donau's BDR key */ -struct TALER_DONAU_DenominationKeySignature +struct TALER_DONAU_BDRKeySignature { /** - * The hash of the denomination's public key + * The hash of the BDR's public key */ - struct TALER_DenominationHashP h_denom_pub; + struct TALER_BDRHashP h_BDR_pub; /** - * Signature over this denomination key by the donau's master signature. + * Signature over this BDR key by the donau's master signature. * Of purpose #TALER_SIGNATURE_MASTER_DENOMINATION_KEY_VALIDITY. */ struct TALER_MasterSignatureP master_sig; @@ -4168,9 +3389,9 @@ struct TALER_DONAU_ManagementPostKeysData struct TALER_DONAU_SigningKeySignature *sign_sigs; /** - * Array of the master signatures for the donau's denomination keys. + * Array of the master signatures for the donau's BDR keys. */ - struct TALER_DONAU_DenominationKeySignature *denom_sigs; + struct TALER_DONAU_BDRKeySignature *BDR_sigs; /** * Length of the @e sign_keys array (number of valid entries). @@ -4178,9 +3399,9 @@ struct TALER_DONAU_ManagementPostKeysData unsigned int num_sign_sigs; /** - * Length of the @e denom_keys array. + * Length of the @e BDR_keys array. */ - unsigned int num_denom_sigs; + unsigned int num_BDR_sigs; }; @@ -4388,9 +3609,9 @@ TALER_DONAU_management_drain_profits_cancel ( /** - * Response from a POST /management/denominations/$DENOM/revoke request. + * Response from a POST /management/BDRs/$DENOM/revoke request. */ -struct TALER_DONAU_ManagementRevokeDenominationResponse +struct TALER_DONAU_ManagementRevokeBDRResponse { /** * HTTP response data @@ -4407,46 +3628,46 @@ struct TALER_DONAU_ManagementRevokeDenominationResponse * @param hr HTTP response data */ typedef void -(*TALER_DONAU_ManagementRevokeDenominationKeyCallback) ( +(*TALER_DONAU_ManagementRevokeBDRKeyCallback) ( void *cls, - const struct TALER_DONAU_ManagementRevokeDenominationResponse *hr); + const struct TALER_DONAU_ManagementRevokeBDRResponse *hr); /** - * @brief Handle for a POST /management/denominations/$H_DENOM_PUB/revoke request. + * @brief Handle for a POST /management/BDRs/$H_DENOM_PUB/revoke request. */ -struct TALER_DONAU_ManagementRevokeDenominationKeyHandle; +struct TALER_DONAU_ManagementRevokeBDRKeyHandle; /** - * Inform the donau that a denomination key was revoked. + * Inform the donau that a BDR key was revoked. * * @param ctx the context * @param url HTTP base URL for the donau - * @param h_denom_pub hash of the denomination public key that was revoked + * @param h_BDR_pub hash of the BDR public key that was revoked * @param master_sig signature affirming the revocation * @param cb function to call with the donau's result * @param cb_cls closure for @a cb * @return the request handle; NULL upon error */ -struct TALER_DONAU_ManagementRevokeDenominationKeyHandle * -TALER_DONAU_management_revoke_denomination_key ( +struct TALER_DONAU_ManagementRevokeBDRKeyHandle * +TALER_DONAU_management_revoke_BDR_key ( struct GNUNET_CURL_Context *ctx, const char *url, - const struct TALER_DenominationHashP *h_denom_pub, + const struct TALER_BDRHashP *h_BDR_pub, const struct TALER_MasterSignatureP *master_sig, - TALER_DONAU_ManagementRevokeDenominationKeyCallback cb, + TALER_DONAU_ManagementRevokeBDRKeyCallback cb, void *cb_cls); /** - * Cancel #TALER_DONAU_management_revoke_denomination_key() operation. + * Cancel #TALER_DONAU_management_revoke_BDR_key() operation. * * @param rh handle of the operation to cancel */ void -TALER_DONAU_management_revoke_denomination_key_cancel ( - struct TALER_DONAU_ManagementRevokeDenominationKeyHandle *rh); +TALER_DONAU_management_revoke_BDR_key_cancel ( + struct TALER_DONAU_ManagementRevokeBDRKeyHandle *rh); /** @@ -5402,9 +4623,9 @@ TALER_DONAU_management_set_global_fees_cancel ( /** - * Response when adding denomination signature by auditor. + * Response when adding BDR signature by auditor. */ -struct TALER_DONAU_AuditorAddDenominationResponse +struct TALER_DONAU_AuditorAddBDRResponse { /** * HTTP response data. @@ -5421,23 +4642,23 @@ struct TALER_DONAU_AuditorAddDenominationResponse * @param adr HTTP response data */ typedef void -(*TALER_DONAU_AuditorAddDenominationCallback) ( +(*TALER_DONAU_AuditorAddBDRCallback) ( void *cls, - const struct TALER_DONAU_AuditorAddDenominationResponse *adr); + const struct TALER_DONAU_AuditorAddBDRResponse *adr); /** * @brief Handle for a POST /auditor/$AUDITOR_PUB/$H_DENOM_PUB request. */ -struct TALER_DONAU_AuditorAddDenominationHandle; +struct TALER_DONAU_AuditorAddBDRHandle; /** - * Provide auditor signatures for a denomination to the donau. + * Provide auditor signatures for a BDR to the donau. * * @param ctx the context * @param url HTTP base URL for the donau - * @param h_denom_pub hash of the public key of the denomination + * @param h_BDR_pub hash of the public key of the BDR * @param auditor_pub public key of the auditor * @param auditor_sig signature of the auditor, of * purpose #TALER_SIGNATURE_AUDITOR_DONAU_KEYS @@ -5445,25 +4666,25 @@ struct TALER_DONAU_AuditorAddDenominationHandle; * @param cb_cls closure for @a cb * @return the request handle; NULL upon error */ -struct TALER_DONAU_AuditorAddDenominationHandle * -TALER_DONAU_add_auditor_denomination ( +struct TALER_DONAU_AuditorAddBDRHandle * +TALER_DONAU_add_auditor_BDR ( struct GNUNET_CURL_Context *ctx, const char *url, - const struct TALER_DenominationHashP *h_denom_pub, + const struct TALER_BDRHashP *h_BDR_pub, const struct TALER_AuditorPublicKeyP *auditor_pub, const struct TALER_AuditorSignatureP *auditor_sig, - TALER_DONAU_AuditorAddDenominationCallback cb, + TALER_DONAU_AuditorAddBDRCallback cb, void *cb_cls); /** - * Cancel #TALER_DONAU_add_auditor_denomination() operation. + * Cancel #TALER_DONAU_add_auditor_BDR() operation. * * @param ah handle of the operation to cancel */ void -TALER_DONAU_add_auditor_denomination_cancel ( - struct TALER_DONAU_AuditorAddDenominationHandle *ah); +TALER_DONAU_add_auditor_BDR_cancel ( + struct TALER_DONAU_AuditorAddBDRHandle *ah); /* ********************* W2W API ****************** */ @@ -5740,12 +4961,12 @@ struct TALER_DONAU_PurseDeposit /** * Signature proving the validity of the coin. */ - struct TALER_DenominationSignature denom_sig; + struct TALER_BDRSignature BDR_sig; /** - * Hash of the denomination's public key. + * Hash of the BDR's public key. */ - struct TALER_DenominationHashP h_denom_pub; + struct TALER_BDRHashP h_BDR_pub; /** * Amount of the coin to transfer into the purse.