summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/api-common.rst27
1 files changed, 25 insertions, 2 deletions
diff --git a/core/api-common.rst b/core/api-common.rst
index 6be51f49..ab7726a1 100644
--- a/core/api-common.rst
+++ b/core/api-common.rst
@@ -424,8 +424,31 @@ Blinded coin
.. ts:def:: CoinEnvelope
- // Blinded coin's `public EdDSA key <eddsa-coin-pub>`, `base32` encoded.
- type CoinEnvelope = string;
+ // The type of a coin's blinded envelope depends on the cipher that is used
+ // for signing with a denomination key.
+ type CoinEnvelope = RSACoinEnvelope | CSCoinEnvelope ;
+
+.. ts:def:: RSACoinEnvelope
+
+ // For denomination signatures based on RSA, the planchet is just a blinded
+ // coin's `public EdDSA key <eddsa-coin-pub>`.
+ interface RSACoinEnvelope {
+ cipher: "RSA" | "RSA+age_restricted";
+ rsa_blinded_planchet: string; // Crockford `Base32` encoded
+ }
+
+.. ts:def:: CSCoinEnvelope
+
+ // For denomination signatures based on Blind Clause-Schnorr, the planchet
+ // consists of the public nonce and two Curve25519 scalars which are two
+ // blinded challenges in the Blinded Clause-Schnorr signature scheme.
+ // See https://taler.net/papers/cs-thesis.pdf for details.
+ interface CSCoinEnvelope {
+ cipher: "CS" | "CS+age_restricted";
+ cs_nonce: string; // Crockford `Base32` encoded
+ cs_blinded_c0: string; // Crockford `Base32` encoded
+ cs_blinded_c1: string; // Crockford `Base32` encoded
+ }
.. ts:def:: DenominationBlindingKeyP