taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

commit 2c37eb1c43c7d6e07db2643ad977b6d732098114
parent 7ca305587f4d887b6e08eb7d5b81037997152416
Author: Özgür Kesim <oec-taler@kesim.org>
Date:   Mon, 14 Jul 2025 12:58:00 +0200

[exchange] complete recoup request object for withdraw-case

Diffstat:
Mcore/api-exchange.rst | 41+++++++++++++++++++++++++++++++++++------
1 file changed, 35 insertions(+), 6 deletions(-)

diff --git a/core/api-exchange.rst b/core/api-exchange.rst @@ -1497,10 +1497,6 @@ Bachelor thesis of Gian Demarmels and Lucien Heuzeveldt, `Adding Schnorr’s Blind Signature in Taler <https://www.taler.net/papers/cs-thesis.pdf>`_, for details. - - for ``/csr-withdraw`` and ``/csr-melt``. - - .. http:post:: /blinding-prepare Obtain exchange-side input values in preparation for a @@ -3517,12 +3513,31 @@ became minted, and proof ownership of the coin itself. .. ts:def:: RecoupCoinData + // This is either + // a) the hash code of a blinded coin envelope (not to be recouped) + // b) the disclosed coin details, in order to recoup it. type RecoupCoinData = - | HashCode - | RecoupDisclosedCoinDetails + | BlindedEnvelopeHash + | RecoupDisclosedCoinDetails + + .. ts:def:: BlindedEnvelopeHash + + // This is the SHA512 hash code of a blinded coin envelope, + // including the corresponding denomination's hash. + // It is the output of the TALER_coin_ev_hash function + // from libtalerutil. + type BlindedEnvelopeHash = HashCode; + .. ts:def:: RecoupDisclosedCoinDetails + // This object provides all necessary coin data + // in order to call TALER_denom_blind and retrieve + // a blinded coin planchet, from which we can + // calculate the blinded coin envelope hash. + // It also contains the denomination's signature + // for the (unblinded) coin's public key, + // and the coin's signature to authorize the recoup request. interface RecoupDisclosedCoinDetails { // The coin's public key coin_pub: CoinPublicKey; @@ -3531,6 +3546,20 @@ became minted, and proof ownership of the coin itself. // that was used during withdraw coin_blinding_key_secret: DenominationBlindingKeySecret; + // The coin's commitment for age restriction, + // if the denomination had age restriction support. + age_commitment_h?: AgeCommitmentHash; + + // The blinding nonce that went into this coin's + // blinded envelope + cs_session_nonce?: HashCode; + + // In case of Clause-Schnorr denomination, + // the blinding values that were provided + // for this coin, by the exchange, as response + // to a call to /blinding-prepare. + cs_r_pubs?: CSRPublicPair; + // Unblinded signature of the coins' public key, // signed by the denomination key. denom_pub_sig: DenominationSignature;