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:
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**: