diff options
author | Christian Grothoff <christian@grothoff.org> | 2023-09-23 19:26:54 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2023-09-23 19:26:54 +0200 |
commit | 1e10decac5fed8eecbb7e89038a33797b6635dae (patch) | |
tree | c7306665e3cb1eee18644acda081ec462d52504b /core/api-exchange.rst | |
parent | 8396608cef6e93faee52cf1d98d890d7c2bedf9e (diff) | |
download | docs-1e10decac5fed8eecbb7e89038a33797b6635dae.tar.gz docs-1e10decac5fed8eecbb7e89038a33797b6635dae.tar.bz2 docs-1e10decac5fed8eecbb7e89038a33797b6635dae.zip |
remove obsolete ungrouped denom stuff, fix XOR mess
Diffstat (limited to 'core/api-exchange.rst')
-rw-r--r-- | core/api-exchange.rst | 83 |
1 files changed, 12 insertions, 71 deletions
diff --git a/core/api-exchange.rst b/core/api-exchange.rst index 89dcdbe6..f241181b 100644 --- a/core/api-exchange.rst +++ b/core/api-exchange.rst @@ -176,18 +176,20 @@ possibly by using HTTPS. // Currency must match ``currency``. wallet_balance_limit_without_kyc?: Amount[]; - // Denominations offered by this exchange. - // DEPRECATED: Will eventually be replaced by the - // differently structured "denominations" field. - denoms: Denom[]; - // Denominations offered by this exchange denominations: DenomGroup[]; - // Compact EdDSA `signature` (binary-only) over the XOR of all - // .hash fields (in binary) in the list "denominations". - // Signature of `TALER_ExchangeKeySetPS` - denominations_sig: EddsaSignature; + // Compact EdDSA `signature` (binary-only) over the + // contatentation of all of the master_sigs (in reverse + // chronological order by group) in the arrays under + // "denominations". Signature of `TALER_ExchangeKeySetPS` + exchange_sig: EddsaSignature; + + // Public EdDSA key of the exchange that was used to generate the signature. + // Should match one of the exchange's signing keys from ``signkeys``. It is given + // explicitly as the client might otherwise be confused by clock skew as to + // which signing key was used for the ``exchange_sig``. + exchange_pub: EddsaPublicKey; // Denominations for which the exchange currently offers/requests recoup. recoup: Recoup[]; @@ -213,25 +215,6 @@ possibly by using HTTPS. // The signature has purpose TALER_SIGNATURE_MASTER_EXTENSIONS. extensions_sig?: EddsaSignature; - // Compact EdDSA `signature` (binary-only) over the SHA-512 hash of the - // concatenation of all SHA-512 hashes of the RSA denomination public keys - // in ``denoms`` in the same order as they were in ``denoms``. Note that for - // hashing, the binary format of the RSA public keys is used, and not their - // `base32 encoding <base32>`. Wallets cannot do much with this signature by itself; - // it is only useful when multiple clients need to establish that the exchange - // is sabotaging end-user anonymity by giving disjoint denomination keys to - // different users. If an exchange were to do this, this signature allows the - // clients to demonstrate to the public that the exchange is dishonest. - // Signature of `TALER_ExchangeKeySetPS` - // DEPRICATED: Will eventually replaced by "denominations_sig" - eddsa_sig: EddsaSignature; - - // Public EdDSA key of the exchange that was used to generate the signature. - // Should match one of the exchange's signing keys from ``/keys``. It is given - // explicitly as the client might otherwise be confused by clock skew as to - // which signing key was used. - eddsa_pub: EddsaPublicKey; - } .. ts:def:: GlobalFees @@ -281,7 +264,6 @@ possibly by using HTTPS. } - .. ts:def:: AgeMask // Binary representation of the age groups. @@ -385,7 +367,7 @@ possibly by using HTTPS. // When is it no longer possible to withdraw coins // of this denomination? stamp_expire_withdraw: Timestamp; - + // When is it no longer possible to deposit coins // of this denomination? stamp_expire_deposit: Timestamp; @@ -405,47 +387,6 @@ possibly by using HTTPS. lost?: boolean; } - .. ts:def:: Denom - - interface Denom { - // How much are coins of this denomination worth? - value: Amount; - - // When does the denomination key become valid? - stamp_start: Timestamp; - - // When is it no longer possible to withdraw coins - // of this denomination? - stamp_expire_withdraw: Timestamp; - - // When is it no longer possible to deposit coins - // of this denomination? - stamp_expire_deposit: Timestamp; - - // Timestamp indicating by when legal disputes relating to these coins must - // be settled, as the exchange will afterwards destroy its evidence relating to - // transactions involving this coin. - stamp_expire_legal: Timestamp; - - // Public key for the denomination. - denom_pub: DenominationKey; - - // Fee charged by the exchange for withdrawing a coin of this denomination. - fee_withdraw: Amount; - - // Fee charged by the exchange for depositing a coin of this denomination. - fee_deposit: Amount; - - // Fee charged by the exchange for refreshing a coin of this denomination. - fee_refresh: Amount; - - // Fee charged by the exchange for refunding a coin of this denomination. - fee_refund: Amount; - - // Signature of `TALER_DenominationKeyValidityPS`. - master_sig: EddsaSignature; - } - .. ts:def:: DenominationKey type DenominationKey = |