taler-docs

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

commit e618178f186995aa111a607ffe262541f2acd7f6
parent 05efcd94f0657f46b9eb086a8b959e459c18c683
Author: Christian Grothoff <grothoff@gnunet.org>
Date:   Tue,  3 Oct 2023 15:29:28 +0200

editing

Diffstat:
Mcore/api-donau.rst | 135+++----------------------------------------------------------------------------
1 file changed, 4 insertions(+), 131 deletions(-)

diff --git a/core/api-donau.rst b/core/api-donau.rst @@ -254,29 +254,12 @@ should cache. // given here (like on gas stations). currency_fraction_digits: Integer; - // EdDSA master public key of the donau, used to sign entries - // in ``denoms`` and ``signkeys``. - master_public_key: EddsaPublicKey; - // Donation Units offered by this donau donation_units: DonationUnitKeyGroup[]; - // The date when the denomination keys were last updated. - list_issue_date: Timestamp; - // The Donau's signing keys. signkeys: SignKey[]; - // Compact EdDSA `signature` (binary-only) over the list "donation units". - // Signature of `TALER_DonauKeySetPS` - exchange_sig: EddsaSignature; - - // Public EdDSA key of the Donau that was used to generate the exchange_sig. - // Should match one of the Donau'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. - exchange_pub: EddsaPublicKey; - } .. ts:def:: DonauDonationUnitKeyGroup @@ -309,32 +292,17 @@ should cache. // Common attributes for all denomination groups interface DonauDonationUnitKeyGroupCommon { - // How much are receipts of this denomination worth? + // How much was donated based on this donation receipt. value: Amount; - // XOR of all the SHA-512 hash values of the denominations' public keys - // in this group. Note that for hashing, the binary format of the - // public keys is used, and not their base32 encoding. - hash: HashCode; } .. ts:def:: DonauDonationUnitKeyCommon interface DonauDonationUnitKeyCommon { - // Signature of `TALER_DonauDonationUnitKeyValidityPS`. - master_sig: EddsaSignature; - - // When does the denomination key become valid? - stamp_start: Timestamp; - // When is it no longer possible to deposit receipts - // of this denomination? - stamp_expire_withdraw: Timestamp; - - // Timestamp indicating by when legal disputes relating to these receipts must - // be settled, as the Donau will afterwards destroy its evidence relating to - // transactions involving this receipt. - stamp_expire_legal: Timestamp; + // For which year is this denomination unit key valid. + year: Integer; // Set to 'true' if the Donau somehow "lost" the private key. The donation unit was not // revoked, but still cannot be used to withdraw receipts at this time (theoretically, @@ -343,31 +311,6 @@ should cache. lost?: boolean; } - .. ts:def:: DonauDonationUnit - - interface DonauDonationUnit { - // How much are donation receipts of this denomination worth? - value: Amount; - - // When does the denomination key become valid? - stamp_start: Timestamp; - - // When is it no longer possible to deposit receipts - // of this denomination? - stamp_expire_withdraw: Timestamp; - - // Timestamp indicating by when legal disputes relating to these receipts must - // be settled, as the donau will afterwards destroy its evidence relating to - // transactions involving this receipt. - stamp_expire_legal: Timestamp; - - // Public key for the denomination. - denom_pub: DonauDonationUnitKey; - - // Signature of `TALER_DonauDonationUnitKeyValidityPS`. - master_sig: EddsaSignature; - } - .. ts:def:: DonauDonationUnitKey type DonauDonationUnitKey = @@ -402,20 +345,8 @@ should cache. key: EddsaPublicKey; // Initial validity date for the signing key. - stamp_start: Timestamp; + year: Integer; - // Date when the donau will stop using the signing key, allowed to overlap - // slightly with the next signing key's validity to allow for clock skew. - stamp_expire: Timestamp; - - // Date when all signatures made by the signing key expire and should - // henceforth no longer be considered valid in legal disputes. - stamp_end: Timestamp; - - // Signature over ``key`` and ``stamp_expire`` by the donau master key. - // Signature of `TALER_DonauSigningKeyValidityPS`. - // Must have purpose ``TALER_SIGNATURE_MASTER_SIGNING_KEY_VALIDITY``. - master_sig: EddsaSignature; } @@ -425,64 +356,6 @@ should cache. allowing customers to prove that they received an inconsistent list. - - - - Provide master signatures for future public keys to be used by the Donau. - Only to be used by the Donau's offline key management team. Not useful - for anyone else. - - **Request:** The request body must be a `MasterSignatures` object. - - **Response:** - - :http:statuscode:`204 No content`: - The request was successfully processed. - :http:statuscode:`403 Forbidden`: - A provided signature is invalid. - :http:statuscode:`404 Not found`: - One of the keys for which a signature was provided is unknown to the Donau. - - **Details:** - - .. ts:def:: MasterSignatures - - interface MasterSignatures { - - // Provided master signatures for future denomination keys. - denom_sigs: DonationUnitSignature[]; - - // Provided master signatures for future online signing keys. - signkey_sigs: SignKeySignature[]; - - } - - .. ts:def:: DonationUnitSignature - - interface DonationUnitSignature { - - // Hash of the public key of the donation unit key. - h_denom_pub: HashCode; - - // Signature over `TALER_DonationUnitKeyValidityPS`. - // Must have purpose ``TALER_SIGNATURE_MASTER_DENOMINATION_KEY_VALIDITY`` - master_sig: EddsaSignature; - - } - - .. ts:def:: SignKeySignature - - interface SignKeySignature { - // The actual donau's EdDSA signing public key. - key: EddsaPublicKey; - - // Signature by the donau master key over - // `TALER_DonauSigningKeyValidityPS`. - // Must have purpose ``TALER_SIGNATURE_MASTER_SIGNING_KEY_VALIDITY``. - master_sig: EddsaSignature; - - } - .. _donau_attest: ----------------------------------------