taler-docs

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

commit dde52d29ba199601a6e8be6ee7f753004cb87307
parent 6335ad3b2f2c24d37b7c3f341babc42b9c36f017
Author: Özgür Kesim <oec-taler@kesim.org>
Date:   Sat, 12 Apr 2025 12:11:00 +0200

[dd:pq-refresh] define TALER_PQMeltCommitmentP

Diffstat:
Mdesign-documents/062-pq-refresh.rst | 35++++++++++++++++++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)

diff --git a/design-documents/062-pq-refresh.rst b/design-documents/062-pq-refresh.rst @@ -169,7 +169,7 @@ Modified melt request structure: // matching the respective entries in ``denoms_h``. coin_evs: PQEnvelope[][kappa]; - // Signature by the `coin <coin-priv>` over `TALER_MeltCommitmentPS`. + // Signature by the `coin <coin-priv>` over `TALER_PQMeltCommitmentPS`. confirm_sig: EddsaSignature; } @@ -184,6 +184,39 @@ The new `PQEnvelope` is defined as follows: m: CoinEnvelope; } +The new ``TALER_PQMeltCommitmentPS`` is defined as follows: + +.. _TALER_PQMeltCommitmentPS: +.. sourcecode:: c + + struct TALER_PQMeltCommitmentPS { + /** + * 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 m, depths first + */ + struct GNUNET_HashCode h_m; + /** + * hash over of the required n*kappa transfer public keys, depths first. + */ + struct GNUNET_HashCode h_X; + }; + + + Security Analysis ================= 1. **Quantum Resistance**: