diff options
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/auditor_api_deposit_confirmation.c | 49 | ||||
| -rw-r--r-- | src/lib/exchange_api_common.c | 44 | ||||
| -rw-r--r-- | src/lib/exchange_api_deposit.c | 6 | ||||
| -rw-r--r-- | src/lib/exchange_api_deposits_get.c | 26 | ||||
| -rw-r--r-- | src/lib/exchange_api_handle.c | 31 | ||||
| -rw-r--r-- | src/lib/exchange_api_refresh_common.c | 31 | ||||
| -rw-r--r-- | src/lib/exchange_api_refreshes_reveal.c | 19 | ||||
| -rw-r--r-- | src/lib/exchange_api_transfers_get.c | 22 | ||||
| -rw-r--r-- | src/lib/exchange_api_withdraw.c | 40 | 
9 files changed, 121 insertions, 147 deletions
diff --git a/src/lib/auditor_api_deposit_confirmation.c b/src/lib/auditor_api_deposit_confirmation.c index 0aa9ff73..e0135bb4 100644 --- a/src/lib/auditor_api_deposit_confirmation.c +++ b/src/lib/auditor_api_deposit_confirmation.c @@ -261,32 +261,24 @@ verify_signatures (const struct GNUNET_HashCode *h_wire,   *         signatures fail to verify).  In this case, the callback is not called.   */  struct TALER_AUDITOR_DepositConfirmationHandle * -TALER_AUDITOR_deposit_confirmation (struct TALER_AUDITOR_Handle *auditor, -                                    const struct GNUNET_HashCode *h_wire, -                                    const struct -                                    GNUNET_HashCode *h_contract_terms, -                                    struct GNUNET_TIME_Absolute timestamp, -                                    struct GNUNET_TIME_Absolute refund_deadline, -                                    const struct -                                    TALER_Amount *amount_without_fee, -                                    const struct -                                    TALER_CoinSpendPublicKeyP *coin_pub, -                                    const struct -                                    TALER_MerchantPublicKeyP *merchant_pub, -                                    const struct -                                    TALER_ExchangePublicKeyP *exchange_pub, -                                    const struct -                                    TALER_ExchangeSignatureP *exchange_sig, -                                    const struct -                                    TALER_MasterPublicKeyP *master_pub, -                                    struct GNUNET_TIME_Absolute ep_start, -                                    struct GNUNET_TIME_Absolute ep_expire, -                                    struct GNUNET_TIME_Absolute ep_end, -                                    const struct -                                    TALER_MasterSignatureP *master_sig, -                                    TALER_AUDITOR_DepositConfirmationResultCallback -                                    cb, -                                    void *cb_cls) +TALER_AUDITOR_deposit_confirmation ( +  struct TALER_AUDITOR_Handle *auditor, +  const struct GNUNET_HashCode *h_wire, +  const struct GNUNET_HashCode *h_contract_terms, +  struct GNUNET_TIME_Absolute timestamp, +  struct GNUNET_TIME_Absolute refund_deadline, +  const struct TALER_Amount *amount_without_fee, +  const struct TALER_CoinSpendPublicKeyP *coin_pub, +  const struct TALER_MerchantPublicKeyP *merchant_pub, +  const struct TALER_ExchangePublicKeyP *exchange_pub, +  const struct TALER_ExchangeSignatureP *exchange_sig, +  const struct TALER_MasterPublicKeyP *master_pub, +  struct GNUNET_TIME_Absolute ep_start, +  struct GNUNET_TIME_Absolute ep_expire, +  struct GNUNET_TIME_Absolute ep_end, +  const struct TALER_MasterSignatureP *master_sig, +  TALER_AUDITOR_DepositConfirmationResultCallback cb, +  void *cb_cls)  {    struct TALER_AUDITOR_DepositConfirmationHandle *dh;    struct GNUNET_CURL_Context *ctx; @@ -398,9 +390,8 @@ TALER_AUDITOR_deposit_confirmation (struct TALER_AUDITOR_Handle *auditor,   * @param deposit_confirmation the deposit-confirmation permission request handle   */  void -TALER_AUDITOR_deposit_confirmation_cancel (struct -                                           TALER_AUDITOR_DepositConfirmationHandle -                                           *deposit_confirmation) +TALER_AUDITOR_deposit_confirmation_cancel ( +  struct TALER_AUDITOR_DepositConfirmationHandle *deposit_confirmation)  {    if (NULL != deposit_confirmation->job)    { diff --git a/src/lib/exchange_api_common.c b/src/lib/exchange_api_common.c index fd3927f8..70d1432f 100644 --- a/src/lib/exchange_api_common.c +++ b/src/lib/exchange_api_common.c @@ -43,15 +43,14 @@   *         #GNUNET_SYSERR if there was a protocol violation in @a history   */  int -TALER_EXCHANGE_parse_reserve_history (struct TALER_EXCHANGE_Handle *exchange, -                                      const json_t *history, -                                      const struct -                                      TALER_ReservePublicKeyP *reserve_pub, -                                      const char *currency, -                                      struct TALER_Amount *balance, -                                      unsigned int history_length, -                                      struct TALER_EXCHANGE_ReserveHistory * -                                      rhistory) +TALER_EXCHANGE_parse_reserve_history ( +  struct TALER_EXCHANGE_Handle *exchange, +  const json_t *history, +  const struct TALER_ReservePublicKeyP *reserve_pub, +  const char *currency, +  struct TALER_Amount *balance, +  unsigned int history_length, +  struct TALER_EXCHANGE_ReserveHistory *rhistory)  {    struct GNUNET_HashCode uuid[history_length];    unsigned int uuid_off; @@ -417,9 +416,9 @@ TALER_EXCHANGE_parse_reserve_history (struct TALER_EXCHANGE_Handle *exchange,   * @param len number of entries in @a rhistory   */  void -TALER_EXCHANGE_free_reserve_history (struct -                                     TALER_EXCHANGE_ReserveHistory *rhistory, -                                     unsigned int len) +TALER_EXCHANGE_free_reserve_history ( +  struct TALER_EXCHANGE_ReserveHistory *rhistory, +  unsigned int len)  {    for (unsigned int i = 0; i<len; i++)    { @@ -452,13 +451,12 @@ TALER_EXCHANGE_free_reserve_history (struct   * @return #GNUNET_OK if @a history is valid, #GNUNET_SYSERR if not   */  int -TALER_EXCHANGE_verify_coin_history (const struct -                                    TALER_EXCHANGE_DenomPublicKey *dk, -                                    const char *currency, -                                    const struct -                                    TALER_CoinSpendPublicKeyP *coin_pub, -                                    json_t *history, -                                    struct TALER_Amount *total) +TALER_EXCHANGE_verify_coin_history ( +  const struct TALER_EXCHANGE_DenomPublicKey *dk, +  const char *currency, +  const struct TALER_CoinSpendPublicKeyP *coin_pub, +  json_t *history, +  struct TALER_Amount *total)  {    size_t len;    struct TALER_Amount rtotal; @@ -797,11 +795,9 @@ TALER_EXCHANGE_verify_coin_history (const struct   * @return NULL on error (@a exchange_pub not known)   */  const struct TALER_EXCHANGE_SigningPublicKey * -TALER_EXCHANGE_get_signing_key_info (const struct -                                     TALER_EXCHANGE_Keys *keys, -                                     const struct -                                     TALER_ExchangePublicKeyP * -                                     exchange_pub) +TALER_EXCHANGE_get_signing_key_info ( +  const struct TALER_EXCHANGE_Keys *keys, +  const struct TALER_ExchangePublicKeyP *exchange_pub)  {    for (unsigned int i = 0; i<keys->num_sign_keys; i++)    { diff --git a/src/lib/exchange_api_deposit.c b/src/lib/exchange_api_deposit.c index a47790f9..3fb36d24 100644 --- a/src/lib/exchange_api_deposit.c +++ b/src/lib/exchange_api_deposit.c @@ -241,9 +241,9 @@ verify_deposit_signature_ok (struct TALER_EXCHANGE_DepositHandle *dh,   * @return #GNUNET_OK if the signature(s) is valid, #GNUNET_SYSERR if not   */  static int -verify_deposit_signature_forbidden (const struct -                                    TALER_EXCHANGE_DepositHandle *dh, -                                    const json_t *json) +verify_deposit_signature_forbidden ( +  const struct TALER_EXCHANGE_DepositHandle *dh, +  const json_t *json)  {    json_t *history;    struct TALER_Amount total; diff --git a/src/lib/exchange_api_deposits_get.c b/src/lib/exchange_api_deposits_get.c index 02025013..0ab926ea 100644 --- a/src/lib/exchange_api_deposits_get.c +++ b/src/lib/exchange_api_deposits_get.c @@ -88,10 +88,10 @@ struct TALER_EXCHANGE_DepositGetHandle   * @return #GNUNET_OK if the signature is valid, #GNUNET_SYSERR if not   */  static int -verify_deposit_wtid_signature_ok (const struct -                                  TALER_EXCHANGE_DepositGetHandle *dwh, -                                  const json_t *json, -                                  struct TALER_ExchangePublicKeyP *exchange_pub) +verify_deposit_wtid_signature_ok ( +  const struct TALER_EXCHANGE_DepositGetHandle *dwh, +  const json_t *json, +  struct TALER_ExchangePublicKeyP *exchange_pub)  {    struct TALER_ExchangeSignatureP exchange_sig;    const struct TALER_EXCHANGE_Keys *key_state; @@ -277,16 +277,14 @@ handle_deposit_wtid_finished (void *cls,   * @return handle to abort request   */  struct TALER_EXCHANGE_DepositGetHandle * -TALER_EXCHANGE_deposits_get (struct TALER_EXCHANGE_Handle *exchange, -                             const struct -                             TALER_MerchantPrivateKeyP *merchant_priv, -                             const struct GNUNET_HashCode *h_wire, -                             const struct -                             GNUNET_HashCode *h_contract_terms, -                             const struct -                             TALER_CoinSpendPublicKeyP *coin_pub, -                             TALER_EXCHANGE_DepositGetCallback cb, -                             void *cb_cls) +TALER_EXCHANGE_deposits_get ( +  struct TALER_EXCHANGE_Handle *exchange, +  const struct TALER_MerchantPrivateKeyP *merchant_priv, +  const struct GNUNET_HashCode *h_wire, +  const struct GNUNET_HashCode *h_contract_terms, +  const struct TALER_CoinSpendPublicKeyP *coin_pub, +  TALER_EXCHANGE_DepositGetCallback cb, +  void *cb_cls)  {    struct TALER_DepositTrackPS dtp;    struct TALER_MerchantSignatureP merchant_sig; diff --git a/src/lib/exchange_api_handle.c b/src/lib/exchange_api_handle.c index e2d0ea37..c058f96d 100644 --- a/src/lib/exchange_api_handle.c +++ b/src/lib/exchange_api_handle.c @@ -665,8 +665,8 @@ parse_json_auditor (struct TALER_EXCHANGE_AuditorInformation *auditor,   * @param compat protocol compatibility information   */  static void -auditor_version_cb -  (void *cls, +auditor_version_cb ( +  void *cls,    const struct TALER_AUDITOR_VersionInformation *vi,    enum TALER_AUDITOR_VersionCompatibility compat)  { @@ -1635,8 +1635,7 @@ deserialize_data (struct TALER_EXCHANGE_Handle *exchange,   *         otherwise JSON object owned by the caller   */  json_t * -TALER_EXCHANGE_serialize_data -  (struct TALER_EXCHANGE_Handle *exchange) +TALER_EXCHANGE_serialize_data (struct TALER_EXCHANGE_Handle *exchange)  {    const struct TALER_EXCHANGE_Keys *kd = &exchange->key_data;    struct GNUNET_TIME_Absolute now; @@ -1886,8 +1885,8 @@ TALER_EXCHANGE_serialize_data   * @return the exchange handle; NULL upon error   */  struct TALER_EXCHANGE_Handle * -TALER_EXCHANGE_connect -  (struct GNUNET_CURL_Context *ctx, +TALER_EXCHANGE_connect ( +  struct GNUNET_CURL_Context *ctx,    const char *url,    TALER_EXCHANGE_CertificationCallback cert_cb,    void *cert_cb_cls, @@ -2126,9 +2125,9 @@ TALER_EXCHANGE_get_base_url (const struct TALER_EXCHANGE_Handle *exchange)   * not found   */  const struct TALER_EXCHANGE_DenomPublicKey * -TALER_EXCHANGE_get_denomination_key (const struct TALER_EXCHANGE_Keys *keys, -                                     const struct -                                     TALER_DenominationPublicKey *pk) +TALER_EXCHANGE_get_denomination_key ( +  const struct TALER_EXCHANGE_Keys *keys, +  const struct TALER_DenominationPublicKey *pk)  {    for (unsigned int i = 0; i<keys->num_denom_keys; i++)      if (0 == GNUNET_CRYPTO_rsa_public_key_cmp (pk->rsa_public_key, @@ -2146,8 +2145,8 @@ TALER_EXCHANGE_get_denomination_key (const struct TALER_EXCHANGE_Keys *keys,   * @returns a copy, must be freed with #TALER_EXCHANGE_destroy_denomination_key   */  struct TALER_EXCHANGE_DenomPublicKey * -TALER_EXCHANGE_copy_denomination_key (const struct -                                      TALER_EXCHANGE_DenomPublicKey *key) +TALER_EXCHANGE_copy_denomination_key ( +  const struct TALER_EXCHANGE_DenomPublicKey *key)  {    struct TALER_EXCHANGE_DenomPublicKey *copy; @@ -2167,8 +2166,8 @@ TALER_EXCHANGE_copy_denomination_key (const struct   * @param key key to destroy.   */  void -TALER_EXCHANGE_destroy_denomination_key (struct -                                         TALER_EXCHANGE_DenomPublicKey *key) +TALER_EXCHANGE_destroy_denomination_key ( +  struct TALER_EXCHANGE_DenomPublicKey *key)  {    GNUNET_CRYPTO_rsa_public_key_free (key->key.rsa_public_key);;    GNUNET_free (key); @@ -2183,9 +2182,9 @@ TALER_EXCHANGE_destroy_denomination_key (struct   * @return details about the given denomination key   */  const struct TALER_EXCHANGE_DenomPublicKey * -TALER_EXCHANGE_get_denomination_key_by_hash (const struct -                                             TALER_EXCHANGE_Keys *keys, -                                             const struct GNUNET_HashCode *hc) +TALER_EXCHANGE_get_denomination_key_by_hash ( +  const struct TALER_EXCHANGE_Keys *keys, +  const struct GNUNET_HashCode *hc)  {    for (unsigned int i = 0; i<keys->num_denom_keys; i++)      if (0 == GNUNET_memcmp (hc, diff --git a/src/lib/exchange_api_refresh_common.c b/src/lib/exchange_api_refresh_common.c index b2eec291..f0468dc8 100644 --- a/src/lib/exchange_api_refresh_common.c +++ b/src/lib/exchange_api_refresh_common.c @@ -88,10 +88,9 @@ serialize_melted_coin (const struct MeltedCoin *mc,                         size_t off)  {    struct MeltedCoinP mcp; -  unsigned int i; -  char *pbuf; +  void *pbuf;    size_t pbuf_size; -  char *sbuf; +  void *sbuf;    size_t sbuf_size;    sbuf_size = GNUNET_CRYPTO_rsa_signature_encode (mc->sig.rsa_signature, @@ -117,7 +116,7 @@ serialize_melted_coin (const struct MeltedCoin *mc,                       &mc->fee_melt);    TALER_amount_hton (&mcp.original_value,                       &mc->original_value); -  for (i = 0; i<TALER_CNC_KAPPA; i++) +  for (unsigned int i = 0; i<TALER_CNC_KAPPA; i++)      mcp.transfer_priv[i] = mc->transfer_priv[i];    mcp.expire_deposit = GNUNET_TIME_absolute_hton (mc->expire_deposit);    mcp.pbuf_size = htons ((uint16_t) pbuf_size); @@ -153,7 +152,6 @@ deserialize_melted_coin (struct MeltedCoin *mc,                           int *ok)  {    struct MeltedCoinP mcp; -  unsigned int i;    size_t pbuf_size;    size_t sbuf_size;    size_t off; @@ -199,7 +197,7 @@ deserialize_melted_coin (struct MeltedCoin *mc,                       &mcp.fee_melt);    TALER_amount_ntoh (&mc->original_value,                       &mcp.original_value); -  for (i = 0; i<TALER_CNC_KAPPA; i++) +  for (unsigned int i = 0; i<TALER_CNC_KAPPA; i++)      mc->transfer_priv[i] = mcp.transfer_priv[i];    mc->expire_deposit = GNUNET_TIME_absolute_ntoh (mcp.expire_deposit);    return off; @@ -221,7 +219,7 @@ serialize_denomination_key (const struct TALER_DenominationPublicKey *dk,                              char *buf,                              size_t off)  { -  char *pbuf; +  void *pbuf;    size_t pbuf_size;    uint32_t be; @@ -498,17 +496,14 @@ TALER_EXCHANGE_deserialize_melt_data_ (const char *buf,   *         Non-null results should be freed using GNUNET_free().   */  char * -TALER_EXCHANGE_refresh_prepare (const struct -                                TALER_CoinSpendPrivateKeyP *melt_priv, -                                const struct TALER_Amount *melt_amount, -                                const struct -                                TALER_DenominationSignature *melt_sig, -                                const struct -                                TALER_EXCHANGE_DenomPublicKey *melt_pk, -                                unsigned int fresh_pks_len, -                                const struct -                                TALER_EXCHANGE_DenomPublicKey *fresh_pks, -                                size_t *res_size) +TALER_EXCHANGE_refresh_prepare ( +  const struct TALER_CoinSpendPrivateKeyP *melt_priv, +  const struct TALER_Amount *melt_amount, +  const struct TALER_DenominationSignature *melt_sig, +  const struct TALER_EXCHANGE_DenomPublicKey *melt_pk, +  unsigned int fresh_pks_len, +  const struct TALER_EXCHANGE_DenomPublicKey *fresh_pks, +  size_t *res_size)  {    struct MeltData md;    char *buf; diff --git a/src/lib/exchange_api_refreshes_reveal.c b/src/lib/exchange_api_refreshes_reveal.c index 25b937b9..8ac7d4a9 100644 --- a/src/lib/exchange_api_refreshes_reveal.c +++ b/src/lib/exchange_api_refreshes_reveal.c @@ -294,13 +294,13 @@ handle_refresh_reveal_finished (void *cls,   *         In this case, neither callback will be called.   */  struct TALER_EXCHANGE_RefreshesRevealHandle * -TALER_EXCHANGE_refreshes_reveal (struct TALER_EXCHANGE_Handle *exchange, -                                 size_t refresh_data_length, -                                 const char *refresh_data, -                                 uint32_t noreveal_index, -                                 TALER_EXCHANGE_RefreshesRevealCallback -                                 reveal_cb, -                                 void *reveal_cb_cls) +TALER_EXCHANGE_refreshes_reveal ( +  struct TALER_EXCHANGE_Handle *exchange, +  size_t refresh_data_length, +  const char *refresh_data, +  uint32_t noreveal_index, +  TALER_EXCHANGE_RefreshesRevealCallback reveal_cb, +  void *reveal_cb_cls)  {    struct TALER_EXCHANGE_RefreshesRevealHandle *rrh;    json_t *transfer_privs; @@ -494,9 +494,8 @@ TALER_EXCHANGE_refreshes_reveal (struct TALER_EXCHANGE_Handle *exchange,   * @param rrh the refresh reval handle   */  void -TALER_EXCHANGE_refreshes_reveal_cancel (struct -                                        TALER_EXCHANGE_RefreshesRevealHandle * -                                        rrh) +TALER_EXCHANGE_refreshes_reveal_cancel ( +  struct TALER_EXCHANGE_RefreshesRevealHandle *rrh)  {    if (NULL != rrh->job)    { diff --git a/src/lib/exchange_api_transfers_get.c b/src/lib/exchange_api_transfers_get.c index 589a809e..6d61e1d0 100644 --- a/src/lib/exchange_api_transfers_get.c +++ b/src/lib/exchange_api_transfers_get.c @@ -80,9 +80,9 @@ struct TALER_EXCHANGE_TransfersGetHandle   *         #GNUNET_SYSERR if the response was bogus   */  static int -check_transfers_get_response_ok (struct -                                 TALER_EXCHANGE_TransfersGetHandle *wdh, -                                 const json_t *json) +check_transfers_get_response_ok ( +  struct TALER_EXCHANGE_TransfersGetHandle *wdh, +  const json_t *json)  {    json_t *details_j;    struct GNUNET_HashCode h_wire; @@ -326,11 +326,11 @@ handle_transfers_get_finished (void *cls,   * @return handle to cancel operation   */  struct TALER_EXCHANGE_TransfersGetHandle * -TALER_EXCHANGE_transfers_get (struct TALER_EXCHANGE_Handle *exchange, -                              const struct -                              TALER_WireTransferIdentifierRawP *wtid, -                              TALER_EXCHANGE_TransfersGetCallback cb, -                              void *cb_cls) +TALER_EXCHANGE_transfers_get ( +  struct TALER_EXCHANGE_Handle *exchange, +  const struct TALER_WireTransferIdentifierRawP *wtid, +  TALER_EXCHANGE_TransfersGetCallback cb, +  void *cb_cls)  {    struct TALER_EXCHANGE_TransfersGetHandle *wdh;    struct GNUNET_CURL_Context *ctx; @@ -391,8 +391,8 @@ TALER_EXCHANGE_transfers_get (struct TALER_EXCHANGE_Handle *exchange,   * @param wdh the wire deposits request handle   */  void -TALER_EXCHANGE_transfers_get_cancel (struct -                                     TALER_EXCHANGE_TransfersGetHandle *wdh) +TALER_EXCHANGE_transfers_get_cancel ( +  struct TALER_EXCHANGE_TransfersGetHandle *wdh)  {    if (NULL != wdh->job)    { @@ -404,4 +404,4 @@ TALER_EXCHANGE_transfers_get_cancel (struct  } -/* end of exchange_api_wire_deposits.c */ +/* end of exchange_api_transfers_get.c */ diff --git a/src/lib/exchange_api_withdraw.c b/src/lib/exchange_api_withdraw.c index 85f64523..d909693c 100644 --- a/src/lib/exchange_api_withdraw.c +++ b/src/lib/exchange_api_withdraw.c @@ -164,9 +164,9 @@ reserve_withdraw_ok (struct TALER_EXCHANGE_WithdrawHandle *wh,   * @return #GNUNET_OK on success, #GNUNET_SYSERR on errors   */  static int -reserve_withdraw_payment_required (struct -                                   TALER_EXCHANGE_WithdrawHandle *wh, -                                   const json_t *json) +reserve_withdraw_payment_required ( +  struct TALER_EXCHANGE_WithdrawHandle *wh, +  const json_t *json)  {    struct TALER_Amount balance;    struct TALER_Amount balance_from_history; @@ -472,14 +472,13 @@ reserve_withdraw_internal (struct TALER_EXCHANGE_Handle *exchange,   *         In this case, the callback is not called.   */  struct TALER_EXCHANGE_WithdrawHandle * -TALER_EXCHANGE_withdraw (struct TALER_EXCHANGE_Handle *exchange, -                         const struct TALER_EXCHANGE_DenomPublicKey *pk, -                         const struct -                         TALER_ReservePrivateKeyP *reserve_priv, -                         const struct TALER_PlanchetSecretsP *ps, -                         TALER_EXCHANGE_WithdrawCallback -                         res_cb, -                         void *res_cb_cls) +TALER_EXCHANGE_withdraw ( +  struct TALER_EXCHANGE_Handle *exchange, +  const struct TALER_EXCHANGE_DenomPublicKey *pk, +  const struct TALER_ReservePrivateKeyP *reserve_priv, +  const struct TALER_PlanchetSecretsP *ps, +  TALER_EXCHANGE_WithdrawCallback res_cb, +  void *res_cb_cls)  {    struct TALER_Amount amount_with_fee;    struct TALER_ReserveSignatureP reserve_sig; @@ -556,17 +555,14 @@ TALER_EXCHANGE_withdraw (struct TALER_EXCHANGE_Handle *exchange,   *         In this case, the callback is not called.   */  struct TALER_EXCHANGE_WithdrawHandle * -TALER_EXCHANGE_withdraw2 (struct TALER_EXCHANGE_Handle *exchange, -                          const struct -                          TALER_EXCHANGE_DenomPublicKey *pk, -                          const struct -                          TALER_ReserveSignatureP *reserve_sig, -                          const struct -                          TALER_ReservePublicKeyP *reserve_pub, -                          const struct TALER_PlanchetSecretsP *ps, -                          TALER_EXCHANGE_WithdrawCallback -                          res_cb, -                          void *res_cb_cls) +TALER_EXCHANGE_withdraw2 ( +  struct TALER_EXCHANGE_Handle *exchange, +  const struct TALER_EXCHANGE_DenomPublicKey *pk, +  const struct TALER_ReserveSignatureP *reserve_sig, +  const struct TALER_ReservePublicKeyP *reserve_pub, +  const struct TALER_PlanchetSecretsP *ps, +  TALER_EXCHANGE_WithdrawCallback res_cb, +  void *res_cb_cls)  {    struct TALER_EXCHANGE_WithdrawHandle *wh;    struct TALER_PlanchetDetail pd;  | 
