aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÖzgür Kesim <oec-taler@kesim.org>2023-07-20 18:16:54 +0200
committerÖzgür Kesim <oec-taler@kesim.org>2023-07-20 18:16:54 +0200
commitc0657d0519ff7b96f70c1b9c77cff66e59aafdfb (patch)
tree8dc79ca745f4e8f8fee68721db76a7797f4b28bc
parentdb9fb04edcdafd0052a5652084ede7ca75885cef (diff)
downloadexchange-c0657d0519ff7b96f70c1b9c77cff66e59aafdfb.tar.xz
-remove notes from source tree
-rw-r--r--src/lib/notizen.md236
1 files changed, 0 insertions, 236 deletions
diff --git a/src/lib/notizen.md b/src/lib/notizen.md
deleted file mode 100644
index 835fad9e2..000000000
--- a/src/lib/notizen.md
+++ /dev/null
@@ -1,236 +0,0 @@
-# Notes re: planchets and blinding
-
-## `TALER_denom_blind()`
-
-```
-Blind coin for blind signing with @a dk using blinding secret @a coin_bks.
-```
-
-- `@param[out] c_hash resulting hashed coin`
-- `@param[out] blinded_planchet planchet data to initialize`
-
-## `TALER_planchet_prepare()`
-
-Prepare a planchet for withdrawal. Creates and blinds a coin.
-
-- calls `TALER_denom_blind()!`
-- `@param[out] c_hash set to the hash of the public key of the coin (needed later)`
-- `@param[out] pd set to the planchet detail for TALER_MERCHANT_tip_pickup() and other withdraw operations, pd->blinded_planchet.cipher will be set to cipher from @a dk`
-
-
-## `TALER_coin_ev_hash`
-
-Compute the hash of a blinded coin.
-
-- `@param blinded_planchet blinded planchet`
-- `@param denom_hash hash of the denomination publick key`
-- `@param[out] bch where to write the hash, type struct TALER_BlindedCoinHashP`
-
-**Where is this called!?**
-
-```
-taler-exchange-httpd_refreshes_reveal.c
-605: TALER_coin_ev_hash (&rrc->blinded_planchet,
-
-taler-exchange-httpd_recoup.c
-290: TALER_coin_ev_hash (&blinded_planchet,
-
-taler-exchange-httpd_withdraw.c
-581: TALER_coin_ev_hash (&wc.blinded_planchet,
-
-taler-exchange-httpd_age-withdraw_reveal.c
-350: ret = TALER_coin_ev_hash (&detail.blinded_planchet,
-
-taler-exchange-httpd_recoup-refresh.c
-284: TALER_coin_ev_hash (&blinded_planchet,
-
-taler-exchange-httpd_age-withdraw.c
-279: ret = TALER_coin_ev_hash (&awc->coin_evs[c],
-884: TALER_coin_ev_hash (&awc->coin_evs[i],
-
-taler-exchange-httpd_batch-withdraw.c
-832: TALER_coin_ev_hash (&pc->blinded_planchet,
-```
-
-
-## `TALER_coin_pub_hash`
-
-Compute the hash of a coin.
-
-- `@param coin_pub public key of the coin`
-- `@param age_commitment_hash hash of the age commitment vector. NULL, if no age commitment was set`
-- `@param[out] coin_h where to write the hash`
-
-**Where is this called!?**
-
-### In `lib/crypto.c`, function `TALER_test_coin_valid`.
-
-```
-Check if a coin is valid; that is, whether the denomination key
-exists, is not expired, and the signature is correct.
-
-@param coin_public_info the coin public info to check for validity
-@param denom_pub denomination key, must match @a coin_public_info's `denom_pub_hash`
-@return #GNUNET_YES if the coin is valid,
- #GNUNET_NO if it is invalid
- #GNUNET_SYSERR if an internal error occurred
-```
-
-It then calls `TALER_denom_pub_verify` on the result of `TALER_coin_pub_hash` and the signature
-
-
-### In `util/denom.c`, function `TALER_denom_blind`
-
-## `TALER_EXCHANGE_batch_withdraw` vs `TALER_EXCHANGE_batch_withdraw2`
-
-### `TALER_EXCHANGE_batch_withdraw`
-
-```
-/**
- * Withdraw multiple coins from the exchange using a /reserves/$RESERVE_PUB/batch-withdraw
- * request. This API is typically used by a wallet to withdraw many coins from a
- * reserve.
- *
- * Note that to ensure that no money is lost in case of hardware
- * failures, the caller must have committed (most of) the arguments to
- * disk before calling, and be ready to repeat the request with the
- * same arguments in case of failures.
- *
- * @param curl_ctx The curl context to use
- * @param exchange_url The base-URL of the exchange
- * @param keys The /keys material from the exchange
- * @param reserve_priv private key of the reserve to withdraw from
- * @param wci_length number of entries in @a wcis
- * @param wcis inputs that determine the planchets
- * @param res_cb the callback to call when the final result for this request is available
- * @param res_cb_cls closure for @a res_cb
- * @return NULL
- * if the inputs are invalid (i.e. denomination key not with this exchange).
- * In this case, the callback is not called.
- */
-struct TALER_EXCHANGE_BatchWithdrawHandle *
-TALER_EXCHANGE_batch_withdraw (
- struct GNUNET_CURL_Context *curl_ctx,
- const char *exchange_url,
- const struct TALER_EXCHANGE_Keys *keys,
- const struct TALER_ReservePrivateKeyP *reserve_priv,
- unsigned int wci_length,
- const struct TALER_EXCHANGE_WithdrawCoinInput wcis[static wci_length],
- TALER_EXCHANGE_BatchWithdrawCallback res_cb,
- void *res_cb_cls);
-```
-
-### `TALER_EXCHANGE_batch_withdraw2`
-
-```
-/**
- * Withdraw a coin from the exchange using a /reserves/$RESERVE_PUB/batch-withdraw
- * request. This API is typically used by a merchant to withdraw a tip
- * where the blinding factor is unknown to the merchant.
- *
- * Note that to ensure that no money is lost in case of hardware
- * failures, the caller must have committed (most of) the arguments to
- * disk before calling, and be ready to repeat the request with the
- * same arguments in case of failures.
- *
- * @param curl_ctx The curl context to use
- * @param exchange_url The base-URL of the exchange
- * @param keys The /keys material from the exchange
- * @param pds array of planchet details of the planchet to withdraw
- * @param pds_length number of entries in the @a pds array
- * @param reserve_priv private key of the reserve to withdraw from
- * @param res_cb the callback to call when the final result for this request is available
- * @param res_cb_cls closure for @a res_cb
- * @return NULL
- * if the inputs are invalid (i.e. denomination key not with this exchange).
- * In this case, the callback is not called.
- */
-struct TALER_EXCHANGE_BatchWithdraw2Handle *
-TALER_EXCHANGE_batch_withdraw2 (
- struct GNUNET_CURL_Context *curl_ctx,
- const char *exchange_url,
- const struct TALER_EXCHANGE_Keys *keys,
- const struct TALER_ReservePrivateKeyP *reserve_priv,
- unsigned int pds_length,
- const struct TALER_PlanchetDetail pds[static pds_length],
- TALER_EXCHANGE_BatchWithdraw2Callback res_cb,
- void *res_cb_cls);
-```
-
-### Differences
-
-| batch_withdraw | batch_withdraw2 |
-|------------------------------------|------------------------|
-| `TALER_EXCHANGE_WithdrawCoinInput` | `TALER_PlanchetDetail` |
-
-
-```
-struct TALER_EXCHANGE_WithdrawCoinInput
-{
- /**
- * Denomination of the coin.
- */
- const struct TALER_EXCHANGE_DenomPublicKey *pk;
-
- /**
- * Master key material for the coin.
- */
- const struct TALER_PlanchetMasterSecretP *ps;
-
- /**
- * Age commitment for the coin.
- */
- const struct TALER_AgeCommitmentHash *ach;
-
-};
-```
-
-
-```
-struct TALER_PlanchetDetail
-{
- /**
- * Hash of the denomination public key.
- */
- struct TALER_DenominationHashP denom_pub_hash;
-
- /**
- * The blinded planchet
- */
- struct TALER_BlindedPlanchet {
- /**
- * Type of the sign blinded message
- */
- enum TALER_DenominationCipher cipher;
-
- /**
- * Details, depending on @e cipher.
- */
- union
- {
- /**
- * If we use #TALER_DENOMINATION_CS in @a cipher.
- */
- struct TALER_BlindedCsPlanchet cs_blinded_planchet;
-
- /**
- * If we use #TALER_DENOMINATION_RSA in @a cipher.
- */
- struct TALER_BlindedRsaPlanchet rsa_blinded_planchet;
-
- } details;
- } blinded_planchet;
-};
-
-```
-
-
-
-## TODOs
-
-### Update documentation
-
-- [x] batch-withdraw needs error code for AgeRestrictionRequired
-- [x] withdraw needs error code for AgeRestrictionRequired
-
-