commit 66be441df4e6ad63924d4aba08bd81d66098f53c
parent ac19cf5dc38d9d6b0866177edb5b757166a201c6
Author: Özgür Kesim <oec@kesim.org>
Date: Sat, 29 Nov 2025 11:51:47 +0100
[exchange] WIP: refresh for vDOLDPLUS
Diffstat:
2 files changed, 23 insertions(+), 27 deletions(-)
diff --git a/core/api-common.rst b/core/api-common.rst
@@ -1447,21 +1447,22 @@ within the
struct TALER_RefreshCommitmentP {
/**
- * Starting with vDOLDPLUS this is defined as:
+ * @since vDOLDPLUS
* Hash over:
- * 1. kappa hashes of tranfer public keys: H(T_1),...,H(T_κ)
+ * 1. kappa*n tranfer public keys: T[1,1],⋯,T[1,n],T[2,1],⋯,T[κ,n]
* 2. hash over all pairs of R-values (for CS) if present, skipped otherwise
- * 3. list of denomination hashes, in order
+ * 3. n denomination hashes, in order
* 4. amount with fee
- * 5. kappa list of n planchets, depths first: [0..n),[0..n),[0..n)
+ * 5. kappa*n planchets, depths first: [0..n),[0..n),[0..n)
*
- * Before vDOLDPLUS this was defined as:
+ * @since v27
+ * @deprecated vDOLDPLUS
* Hash over:
* 1. refresh_seed (v27)
- * 2. the hash over all pairs of R-values if present, skipped otherwise
- * 3. list denomination hashes, in order
+ * 2. hash over all pairs of R-values if present, skipped otherwise
+ * 3. n denomination hashes, in order
* 4. amount with fee
- * 5. kappa list of n planchets, depths first: [0..n),[0..n),[0..n)
+ * 5. kappa * n planchets, depths first: [0..n),[0..n),[0..n)
*/
struct GNUNET_HashCode session_hash;
};
@@ -1935,13 +1936,6 @@ within the
struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
};
-.. _TALER_RefreshCommitmentP:
-.. sourcecode:: c
-
- struct TALER_RefreshCommitmentP {
- struct GNUNET_HashCode session_hash;
- };
-
.. _TALER_PurseRequestSignaturePS:
.. sourcecode:: c
diff --git a/core/api-exchange.rst b/core/api-exchange.rst
@@ -2052,21 +2052,22 @@ These endpoints are called by the client
.. ts:def:: RevealMeltRequest
interface RevealMeltRequest {
- // The commitment from the ``/melt/`` step,
- // i.e. the SHA512 value of
- // 1. refresh_seed
- // 2. blinding_seed, if applicable, skip otherwise
- // 4. amount with fee (NBO)
- // 5. kappa*n blinded planchet hashes (which include denomination information),
- // depths first: [0..n)[0..n)[0..n)
+ // The refresh commitment from the ``/melt/`` step,
+ // see `TALER_RefreshCommitmentP`.
rc: HashCode;
+ // @since v27
+ // @deprecated vDOLDPLUS
// The disclosed kappa-1 signatures by the old coin's private key,
// over Hash1a("Refresh", Cp, r, i), where Cp is the melted coin's public key,
// r is the public refresh nonce from the metling step and i runs over the
// _disclosed_ kappa-1 indices.
- signatures: CoinSignature[kappa-1];
+ signatures?: CoinSignature[kappa-1];
+ // TODO[oec]: Add the transfer secrets
+ transfer_secrets: string[kappa-1];
+
+ // TODO[oec]: Is this the right place?
// IFF the denomination of the old coin had support for age restriction,
// the client MUST provide the original age commitment, i. e. the
// vector of public keys, or omitted otherwise.
@@ -3416,9 +3417,10 @@ by anyone except the wallet itself.
// + sum over all withdraw fees for the fresh coins
value_with_fee: Amount;
- // NOTE: This value was only used since v27 and before vDOLDPLUS!
- // Seed from which the nonces for the n*κ coin candidates are derived
- // from.
+ // @since v27
+ // @deprecated vDOLDPLUS
+ //
+ // Seed from which the nonces for the n*κ coin candidates are derived from.
refresh_seed?: HashCode;
// Master seed for the Clause-Schnorr R-value
@@ -3436,7 +3438,7 @@ by anyone except the wallet itself.
// each matching the respective entries in ``denoms_h``.
coin_evs: CoinEnvelope[kappa][];
- // NOTE: This value is required starting from vDOLDPLUS.
+ // @since vDOLDPLUS
// ``kappa`` arrays of ``n`` entries of transwer public keys each.
// These are ephemeral ECDHE keys.
transfer_pubs: EddsaPublicKey[kappa][];