commit e24eea3476ced37c4f31ca4b4497bd031c6505f6
parent 746beacf9fd94c3375c70efda76735d00d18d741
Author: Özgür Kesim <oec-taler@kesim.org>
Date: Thu, 6 Feb 2025 13:13:50 +0100
[exchange] added struct TALER_MeltCommitmentPS
Diffstat:
2 files changed, 35 insertions(+), 16 deletions(-)
diff --git a/core/api-common.rst b/core/api-common.rst
@@ -1304,12 +1304,10 @@ within the
.. sourcecode:: c
struct TALER_WithdrawCommitmentP {
-
/**
- * The reserve's public key
+ * The hash of the reserve's public key
*/
- struct TALER_ReservePublicKeyP reserve_pub;
-
+ struct TALER_HashReservePublicKeyP h_reserve_pub;
/**
* The details of the withdraw request
*/
@@ -1439,6 +1437,37 @@ within the
struct TALER_MerchantPublicKeyP merchant;
};
+
+.. _TALER_MeltCommitmentPS:
+.. sourcecode:: c
+
+ struct TALER_MeltCommitmentPS {
+ /**
+ * purpose.purpose = TALER_SIGNATURE_WALLET_COIN_MELT
+ */
+ struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
+ struct TALER_CoinSpendPublicKeyP old_coin_public_key;
+ struct TALER_AgeCommitmentHash old_h_age_commitment;
+ struct TALER_AmountNBO value_with_fee;
+ /**
+ * rms value, or all zeros, if not applicable
+ */
+ struct TALER_RefreshMasterSecretP rms;
+ /**
+ * hash over all entries in denoms_h
+ */
+ struct GNUNET_HashCode h_denoms;
+ /**
+ * hash over all entries in coin_evs, depths first
+ */
+ struct GNUNET_HashCode h_coin_evs;
+ /**
+ * hash over of the required n*kappa transfer public keys, depths first.
+ */
+ struct GNUNET_hashCode h_transfer_pubs;
+ };
+
+
.. _TALER_RefreshMeltCoinAffirmationPS:
.. sourcecode:: c
diff --git a/core/api-exchange.rst b/core/api-exchange.rst
@@ -2091,7 +2091,7 @@ These endpoints are called by the client
corresponding to the ``noreveal_index`` returned by the ``/melt`` step.
``$RCH`` is the hash over the melt commitment from the ``/melt/`` step,
- i.e. the value of ``h_melt_commitment`` from that prior request.
+ i.e. the SHA256 value of the `TALER_MeltCommitmentPS` from that prior request.
The base URL for ``/reveal-melt``-request may differ from the main base URL of
the exchange. Clients SHOULD respect the ``reveal_base_url`` returned for the
@@ -3526,17 +3526,7 @@ the API during normal operation.
// matching the respective entries in ``denoms_h``.
coin_evs: CoinEnvelope[][kappa];
- // The melt commitment, i.e. the running hash over:
- // - the old coin's public key
- // - the hash of the old age commitment
- // - the value_with_fee
- // - rms value, or NULL, if not applicable
- // - each entry in denoms_h
- // - each entry in coin_evs, depths first
- // - each of the required n*kappa transfer public keys, depths first.
- h_melt_commitment: HashCode;
-
- // Signature by the `coin <coin-priv>` over the melt commitment.
+ // Signature by the `coin <coin-priv>` over `TALER_MeltCommitmentPS`.
confirm_sig: EddsaSignature;
}