summaryrefslogtreecommitdiff
path: root/core/api-exchange.rst
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2023-09-23 19:26:54 +0200
committerChristian Grothoff <christian@grothoff.org>2023-09-23 19:26:54 +0200
commit1e10decac5fed8eecbb7e89038a33797b6635dae (patch)
treec7306665e3cb1eee18644acda081ec462d52504b /core/api-exchange.rst
parent8396608cef6e93faee52cf1d98d890d7c2bedf9e (diff)
downloaddocs-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.rst83
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 =