taler-docs

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

commit 18405edc4344c98b8d30f182c684da2134ffec7f
parent 9017336e6258cbde96e2f425647cd3ae5117e6eb
Author: Özgür Kesim <oec-taler@kesim.org>
Date:   Mon,  7 Apr 2025 14:11:48 +0200

[exchange] update of /blinding-prepare endpoint

Diffstat:
Mcore/api-common.rst | 5+++++
Mcore/api-exchange.rst | 39+++++++++++++++++++++++++++++----------
2 files changed, 34 insertions(+), 10 deletions(-)

diff --git a/core/api-common.rst b/core/api-common.rst @@ -367,6 +367,11 @@ hashed data. See `base32`_. // 32-byte nonce value, must only be used once. type RefreshMasterSeed = string; +.. ts:def:: BlindingMasterSeed + + // 32-byte nonce value, must only be used once. + type BlindingMasterSeed = string; + .. ts:def:: Cs25519Point // 32-byte value representing a point on Curve25519. diff --git a/core/api-exchange.rst b/core/api-exchange.rst @@ -1538,7 +1538,7 @@ Blinding Prepare ~~~~~~~~~~~~~~~~ .. note:: This endpoint is available since v26 of the API and is a substitute - for ``/csr-withdraw``. + for ``/csr-withdraw`` and ``/csr-melt``. .. http:post:: /blinding-prepare @@ -1581,19 +1581,38 @@ Blinding Prepare // Cipher type cipher: "CS"; - // Nonces to be used by the exchange to derive - // its private input from. Must not have ever - // been used before. - nonces: CSNonce[]; + // The request type this blinding is for. + request: "withdraw" | "melt"; - // Hashes of the public keys of the denominations the - // request relates to. The denomination MUST support - // Clause-Schnorr signatures. The array MUST be of - // same length as ``nonces``. - denoms_h: HashCode[]; + // Master seed for the Clause-Schnorr R-value creation. + // MUST not have been used in any prior request of this type. + seed: BlindingMasterSeed; + + // Array of denominations and coin offsets for + // each of the fresh coins with a CS-cipher + // denomination. + // The coin_offset values MUST be strongly increasing. + nks: BlindingDenomNonce[]; + + } + + .. ts:def:: BlindingDenomNonce + + interface BlindingDenomNonce { + // Offset of this coin in the list of + // fresh coins. May not match the array offset + // as the fresh coins may include non-CS + // denominations as well. + coin_offset: Integer; + + // Hash of the public key of the denomination the + // request relates to. Must be a CS denomination type. + denom_pub_hash: HashCode; } + + .. ts:def:: BlindingPrepareResponse type BlindingPrepareResponse = BlindingPrepareResponseCS;