brutally fixing types in src/include/, creating plenty of FTBFS issues

This commit is contained in:
Christian Grothoff 2021-10-22 22:04:35 +02:00
parent dbb812414b
commit 55632b1fbf
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC
9 changed files with 343 additions and 155 deletions

View File

@ -59,10 +59,10 @@ typedef void
* #GNUNET_NO to stop processing further rows * #GNUNET_NO to stop processing further rows
* #GNUNET_SYSERR or other values on error. * #GNUNET_SYSERR or other values on error.
*/ */
typedef int typedef enum GNUNET_GenericReturnValue
(*TALER_AUDITORDB_HistoricDenominationRevenueDataCallback)( (*TALER_AUDITORDB_HistoricDenominationRevenueDataCallback)(
void *cls, void *cls,
const struct GNUNET_HashCode *denom_pub_hash, const struct TALER_DenominationHash *denom_pub_hash,
struct GNUNET_TIME_Absolute revenue_timestamp, struct GNUNET_TIME_Absolute revenue_timestamp,
const struct TALER_Amount *revenue_balance, const struct TALER_Amount *revenue_balance,
const struct TALER_Amount *loss_balance); const struct TALER_Amount *loss_balance);
@ -81,7 +81,7 @@ typedef int
* #GNUNET_NO to stop processing further rows * #GNUNET_NO to stop processing further rows
* #GNUNET_SYSERR or other values on error. * #GNUNET_SYSERR or other values on error.
*/ */
typedef int typedef enum GNUNET_GenericReturnValue
(*TALER_AUDITORDB_HistoricReserveRevenueDataCallback)( (*TALER_AUDITORDB_HistoricReserveRevenueDataCallback)(
void *cls, void *cls,
struct GNUNET_TIME_Absolute start_time, struct GNUNET_TIME_Absolute start_time,
@ -171,7 +171,6 @@ struct TALER_AUDITORDB_ProgressPointDepositConfirmation
*/ */
uint64_t last_deposit_confirmation_serial_id; uint64_t last_deposit_confirmation_serial_id;
}; };
@ -275,12 +274,12 @@ struct TALER_AUDITORDB_DepositConfirmation
/** /**
* Hash over the contract for which this deposit is made. * Hash over the contract for which this deposit is made.
*/ */
struct GNUNET_HashCode h_contract_terms; struct TALER_PrivateContractHash h_contract_terms;
/** /**
* Hash over the wiring information of the merchant. * Hash over the wiring information of the merchant.
*/ */
struct GNUNET_HashCode h_wire; struct TALER_MerchantWireHash h_wire;
/** /**
* Time when this deposit confirmation was generated by the exchange. * Time when this deposit confirmation was generated by the exchange.
@ -349,7 +348,7 @@ struct TALER_AUDITORDB_DepositConfirmation
* @param dc the deposit confirmation itself * @param dc the deposit confirmation itself
* @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop iterating * @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop iterating
*/ */
typedef int typedef enum GNUNET_GenericReturnValue
(*TALER_AUDITORDB_DepositConfirmationCallback)( (*TALER_AUDITORDB_DepositConfirmationCallback)(
void *cls, void *cls,
uint64_t serial_id, uint64_t serial_id,
@ -453,7 +452,7 @@ struct TALER_AUDITORDB_Plugin
* @return #GNUNET_OK on success, * @return #GNUNET_OK on success,
* #GNUNET_SYSERR on DB errors * #GNUNET_SYSERR on DB errors
*/ */
int enum GNUNET_GenericReturnValue
(*gc)(void *cls); (*gc)(void *cls);
@ -1040,7 +1039,8 @@ struct TALER_AUDITORDB_Plugin
*/ */
enum GNUNET_DB_QueryStatus enum GNUNET_DB_QueryStatus
(*insert_denomination_balance)(void *cls, (*insert_denomination_balance)(void *cls,
const struct GNUNET_HashCode *denom_pub_hash, const struct
TALER_DenominationHash *denom_pub_hash,
const struct TALER_Amount *denom_balance, const struct TALER_Amount *denom_balance,
const struct TALER_Amount *denom_loss, const struct TALER_Amount *denom_loss,
const struct TALER_Amount *denom_risk, const struct TALER_Amount *denom_risk,
@ -1063,7 +1063,8 @@ struct TALER_AUDITORDB_Plugin
*/ */
enum GNUNET_DB_QueryStatus enum GNUNET_DB_QueryStatus
(*update_denomination_balance)(void *cls, (*update_denomination_balance)(void *cls,
const struct GNUNET_HashCode *denom_pub_hash, const struct
TALER_DenominationHash *denom_pub_hash,
const struct TALER_Amount *denom_balance, const struct TALER_Amount *denom_balance,
const struct TALER_Amount *denom_loss, const struct TALER_Amount *denom_loss,
const struct TALER_Amount *denom_risk, const struct TALER_Amount *denom_risk,
@ -1085,7 +1086,8 @@ struct TALER_AUDITORDB_Plugin
*/ */
enum GNUNET_DB_QueryStatus enum GNUNET_DB_QueryStatus
(*get_denomination_balance)(void *cls, (*get_denomination_balance)(void *cls,
const struct GNUNET_HashCode *denom_pub_hash, const struct
TALER_DenominationHash *denom_pub_hash,
struct TALER_Amount *denom_balance, struct TALER_Amount *denom_balance,
struct TALER_Amount *denom_loss, struct TALER_Amount *denom_loss,
struct TALER_Amount *denom_risk, struct TALER_Amount *denom_risk,
@ -1102,7 +1104,8 @@ struct TALER_AUDITORDB_Plugin
*/ */
enum GNUNET_DB_QueryStatus enum GNUNET_DB_QueryStatus
(*del_denomination_balance)(void *cls, (*del_denomination_balance)(void *cls,
const struct GNUNET_HashCode *denom_pub_hash); const struct
TALER_DenominationHash *denom_pub_hash);
/** /**
@ -1206,7 +1209,7 @@ struct TALER_AUDITORDB_Plugin
(*insert_historic_denom_revenue)( (*insert_historic_denom_revenue)(
void *cls, void *cls,
const struct TALER_MasterPublicKeyP *master_pub, const struct TALER_MasterPublicKeyP *master_pub,
const struct GNUNET_HashCode *denom_pub_hash, const struct TALER_DenominationHash *denom_pub_hash,
struct GNUNET_TIME_Absolute revenue_timestamp, struct GNUNET_TIME_Absolute revenue_timestamp,
const struct TALER_Amount *revenue_balance, const struct TALER_Amount *revenue_balance,
const struct TALER_Amount *recoup_loss_balance); const struct TALER_Amount *recoup_loss_balance);

View File

@ -1,6 +1,6 @@
/* /*
This file is part of TALER This file is part of TALER
Copyright (C) 2014-2020 Taler Systems SA Copyright (C) 2014-2021 Taler Systems SA
TALER is free software; you can redistribute it and/or modify it under the TALER is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software terms of the GNU General Public License as published by the Free Software
@ -366,8 +366,85 @@ struct TALER_ClaimTokenP
struct TALER_WireSalt struct TALER_WireSalt
{ {
/** /**
* Actual salt value. * Actual 128-bit salt value.
* FIXME: #7032: change to 16 byte value! */
uint32_t salt[4];
};
/**
* Hash used to represent a denomination public key
* and associated age restrictions (if any).
*/
struct TALER_DenominationHash
{
/**
* Actual hash value.
*/
struct GNUNET_HashCode data;
};
/**
* Hash used to represent the private part
* of a contract between merchant and consumer.
*/
struct TALER_PrivateContractHash
{
/**
* Actual hash value.
*/
struct GNUNET_HashCode data;
};
/**
* Hash used to represent the "public" extensions to
* a contract that is shared with the exchange.
*/
struct TALER_ExtensionContractHash
{
/**
* Actual hash value.
*/
struct GNUNET_HashCode data;
};
/**
* Hash used to represent the salted hash of a
* merchant's bank account.
*/
struct TALER_MerchantWireHash
{
/**
* Actual hash value.
*/
struct GNUNET_HashCode data;
};
/**
* Hash used to represent the unsalted hash of a
* payto:// URI representing a bank account.
*/
struct TALER_PaytoHash
{
/**
* Actual hash value.
*/
struct GNUNET_HashCode data;
};
/**
* Hash used to represent a commitment to a blinded
* coin, i.e. the hash of the envelope.
*/
struct TALER_BlindedCoinHash
{
/**
* Actual hash value.
*/ */
struct GNUNET_HashCode data; struct GNUNET_HashCode data;
}; };
@ -376,15 +453,48 @@ struct TALER_WireSalt
GNUNET_NETWORK_STRUCT_END GNUNET_NETWORK_STRUCT_END
/**
* Types of public keys used for denominations in Taler.
*/
enum TALER_DenominationCipher
{
/**
* RSA blind signature.
*/
TALER_DENOMINATION_RSA = 0,
/**
* Clause-Schnorr blind signature.
*/
// TALER_DENOMINATION_CS = 1
};
/** /**
* @brief Type of (unblinded) coin signatures for Taler. * @brief Type of (unblinded) coin signatures for Taler.
*/ */
struct TALER_DenominationSignature struct TALER_DenominationSignature
{ {
/** /**
* Taler uses RSA for blinding. * Type of the signature.
*/
enum TALER_DenominationCipher cipher;
/**
* Details, depending on @e cipher.
*/
union
{
/**
* If we use #TALER_DENOMINATION_RSA in @a cipher.
*/ */
struct GNUNET_CRYPTO_RsaSignature *rsa_signature; struct GNUNET_CRYPTO_RsaSignature *rsa_signature;
} details;
}; };
@ -393,10 +503,29 @@ struct TALER_DenominationSignature
*/ */
struct TALER_DenominationPublicKey struct TALER_DenominationPublicKey
{ {
/** /**
* Taler uses RSA for signing coins. * Type of the public key.
*/
enum TALER_DenominationCipher cipher;
/**
* Age restriction mask used for the key.
*/
uint32_t age_mask;
/**
* Details, depending on @e cipher.
*/
union
{
/**
* If we use #TALER_DENOMINATION_RSA in @a cipher.
*/ */
struct GNUNET_CRYPTO_RsaPublicKey *rsa_public_key; struct GNUNET_CRYPTO_RsaPublicKey *rsa_public_key;
} details;
}; };
@ -405,11 +534,24 @@ struct TALER_DenominationPublicKey
*/ */
struct TALER_DenominationPrivateKey struct TALER_DenominationPrivateKey
{ {
/** /**
* Taler uses RSA for signing coins. * Type of the public key.
*/
enum TALER_DenominationCipher cipher;
/**
* Details, depending on @e cipher.
*/
union
{
/**
* If we use #TALER_DENOMINATION_RSA in @a cipher.
*/ */
struct GNUNET_CRYPTO_RsaPrivateKey *rsa_private_key; struct GNUNET_CRYPTO_RsaPrivateKey *rsa_private_key;
}; };
};
/** /**
@ -428,7 +570,7 @@ struct TALER_CoinPublicInfo
* Hash of the public key representing the denomination of the coin that is * Hash of the public key representing the denomination of the coin that is
* being deposited. * being deposited.
*/ */
struct GNUNET_HashCode denom_pub_hash; struct TALER_DenominationHash denom_pub_hash;
/** /**
* (Unblinded) signature over @e coin_pub with @e denom_pub, * (Unblinded) signature over @e coin_pub with @e denom_pub,
@ -467,6 +609,30 @@ struct TALER_TrackTransferDetails
}; };
/**
* Compute the hash of the given @a denom_pub.
*
* @param denom_pub public key to hash
* @param[out] denom_hash resulting hash value
*/
void
TALER_denom_pub_hash (const struct TALER_DenominationPublicKey *denom_pub,
struct TALER_DenominationHash *denom_hash);
/**
* Obtain denomination public key from a denomination private key.
*
* @param denom_priv private key to convert
* @param age_mask age mask to use
* @param[out] denom_pub where to return the public key
*/
void
TALER_denom_priv_to_pub (const struct TALER_DenominationPrivateKey *denom_priv,
uint32_t age_mask,
struct TALER_DenominationPublicKey *denom_pub);
/** /**
* Check if a coin is valid; that is, whether the denomination key exists, * Check if a coin is valid; that is, whether the denomination key exists,
* is not expired, and the signature is correct. * is not expired, and the signature is correct.
@ -520,7 +686,7 @@ struct TALER_PlanchetDetail
/** /**
* Hash of the denomination public key. * Hash of the denomination public key.
*/ */
struct GNUNET_HashCode denom_pub_hash; struct TALER_DenominationHash denom_pub_hash;
/** /**
* Blinded coin (see GNUNET_CRYPTO_rsa_blind()). Note: is malloc()'ed! * Blinded coin (see GNUNET_CRYPTO_rsa_blind()). Note: is malloc()'ed!
@ -845,7 +1011,7 @@ typedef void
const char *section_name, const char *section_name,
struct GNUNET_TIME_Absolute start_time, struct GNUNET_TIME_Absolute start_time,
struct GNUNET_TIME_Relative validity_duration, struct GNUNET_TIME_Relative validity_duration,
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_DenominationPublicKey *denom_pub, const struct TALER_DenominationPublicKey *denom_pub,
const struct TALER_SecurityModulePublicKeyP *sm_pub, const struct TALER_SecurityModulePublicKeyP *sm_pub,
const struct TALER_SecurityModuleSignatureP *sm_sig); const struct TALER_SecurityModuleSignatureP *sm_sig);
@ -900,7 +1066,7 @@ TALER_CRYPTO_helper_denom_poll (struct TALER_CRYPTO_DenominationHelper *dh);
struct TALER_DenominationSignature struct TALER_DenominationSignature
TALER_CRYPTO_helper_denom_sign ( TALER_CRYPTO_helper_denom_sign (
struct TALER_CRYPTO_DenominationHelper *dh, struct TALER_CRYPTO_DenominationHelper *dh,
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
const void *msg, const void *msg,
size_t msg_size, size_t msg_size,
enum TALER_ErrorCode *ec); enum TALER_ErrorCode *ec);
@ -924,7 +1090,7 @@ TALER_CRYPTO_helper_denom_sign (
void void
TALER_CRYPTO_helper_denom_revoke ( TALER_CRYPTO_helper_denom_revoke (
struct TALER_CRYPTO_DenominationHelper *dh, struct TALER_CRYPTO_DenominationHelper *dh,
const struct GNUNET_HashCode *h_denom_pub); const struct TALER_DenominationHash *h_denom_pub);
/** /**
@ -1090,7 +1256,7 @@ TALER_CRYPTO_helper_esign_disconnect (
* @param[out] coin_sig resulting signature * @param[out] coin_sig resulting signature
*/ */
void void
TALER_wallet_link_sign (const struct GNUNET_HashCode *h_denom_pub, TALER_wallet_link_sign (const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_TransferPublicKeyP *transfer_pub, const struct TALER_TransferPublicKeyP *transfer_pub,
const void *coin_ev, const void *coin_ev,
size_t coin_ev_size, size_t coin_ev_size,
@ -1111,7 +1277,7 @@ TALER_wallet_link_sign (const struct GNUNET_HashCode *h_denom_pub,
*/ */
enum GNUNET_GenericReturnValue enum GNUNET_GenericReturnValue
TALER_wallet_link_verify ( TALER_wallet_link_verify (
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_TransferPublicKeyP *transfer_pub, const struct TALER_TransferPublicKeyP *transfer_pub,
const void *coin_ev, const void *coin_ev,
size_t coin_ev_size, size_t coin_ev_size,
@ -1200,7 +1366,7 @@ TALER_exchange_offline_auditor_del_verify (
*/ */
void void
TALER_exchange_offline_denomination_revoke_sign ( TALER_exchange_offline_denomination_revoke_sign (
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_MasterPrivateKeyP *master_priv, const struct TALER_MasterPrivateKeyP *master_priv,
struct TALER_MasterSignatureP *master_sig); struct TALER_MasterSignatureP *master_sig);
@ -1215,7 +1381,7 @@ TALER_exchange_offline_denomination_revoke_sign (
*/ */
enum GNUNET_GenericReturnValue enum GNUNET_GenericReturnValue
TALER_exchange_offline_denomination_revoke_verify ( TALER_exchange_offline_denomination_revoke_verify (
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_MasterPublicKeyP *master_pub, const struct TALER_MasterPublicKeyP *master_pub,
const struct TALER_MasterSignatureP *master_sig); const struct TALER_MasterSignatureP *master_sig);
@ -1308,7 +1474,7 @@ TALER_exchange_offline_signkey_validity_verify (
*/ */
void void
TALER_exchange_offline_denom_validity_sign ( TALER_exchange_offline_denom_validity_sign (
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
struct GNUNET_TIME_Absolute stamp_start, struct GNUNET_TIME_Absolute stamp_start,
struct GNUNET_TIME_Absolute stamp_expire_withdraw, struct GNUNET_TIME_Absolute stamp_expire_withdraw,
struct GNUNET_TIME_Absolute stamp_expire_deposit, struct GNUNET_TIME_Absolute stamp_expire_deposit,
@ -1341,7 +1507,7 @@ TALER_exchange_offline_denom_validity_sign (
*/ */
enum GNUNET_GenericReturnValue enum GNUNET_GenericReturnValue
TALER_exchange_offline_denom_validity_verify ( TALER_exchange_offline_denom_validity_verify (
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
struct GNUNET_TIME_Absolute stamp_start, struct GNUNET_TIME_Absolute stamp_start,
struct GNUNET_TIME_Absolute stamp_expire_withdraw, struct GNUNET_TIME_Absolute stamp_expire_withdraw,
struct GNUNET_TIME_Absolute stamp_expire_deposit, struct GNUNET_TIME_Absolute stamp_expire_deposit,
@ -1393,9 +1559,9 @@ TALER_exchange_secmod_eddsa_verify (
/** /**
* Create security module RSA signature. * Create security module denomination signature.
* *
* @param h_denom_pub hash of the public key to validate * @param h_denom_pub hash of the public key to sign
* @param section_name name of the section in the configuration * @param section_name name of the section in the configuration
* @param start_sign starting point of validity for signing * @param start_sign starting point of validity for signing
* @param duration how long will the key be in use * @param duration how long will the key be in use
@ -1403,8 +1569,8 @@ TALER_exchange_secmod_eddsa_verify (
* @param[out] secm_sig where to write the signature * @param[out] secm_sig where to write the signature
*/ */
void void
TALER_exchange_secmod_rsa_sign ( TALER_exchange_secmod_denom_sign (
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
const char *section_name, const char *section_name,
struct GNUNET_TIME_Absolute start_sign, struct GNUNET_TIME_Absolute start_sign,
struct GNUNET_TIME_Relative duration, struct GNUNET_TIME_Relative duration,
@ -1413,7 +1579,7 @@ TALER_exchange_secmod_rsa_sign (
/** /**
* Verify security module RSA signature. * Verify security module denomination signature.
* *
* @param h_denom_pub hash of the public key to validate * @param h_denom_pub hash of the public key to validate
* @param section_name name of the section in the configuration * @param section_name name of the section in the configuration
@ -1424,8 +1590,8 @@ TALER_exchange_secmod_rsa_sign (
* @return #GNUNET_OK if the signature is valid * @return #GNUNET_OK if the signature is valid
*/ */
enum GNUNET_GenericReturnValue enum GNUNET_GenericReturnValue
TALER_exchange_secmod_rsa_verify ( TALER_exchange_secmod_denom_verify (
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
const char *section_name, const char *section_name,
struct GNUNET_TIME_Absolute start_sign, struct GNUNET_TIME_Absolute start_sign,
struct GNUNET_TIME_Relative duration, struct GNUNET_TIME_Relative duration,
@ -1454,7 +1620,7 @@ TALER_exchange_secmod_rsa_verify (
void void
TALER_auditor_denom_validity_sign ( TALER_auditor_denom_validity_sign (
const char *auditor_url, const char *auditor_url,
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_MasterPublicKeyP *master_pub, const struct TALER_MasterPublicKeyP *master_pub,
struct GNUNET_TIME_Absolute stamp_start, struct GNUNET_TIME_Absolute stamp_start,
struct GNUNET_TIME_Absolute stamp_expire_withdraw, struct GNUNET_TIME_Absolute stamp_expire_withdraw,
@ -1491,7 +1657,7 @@ TALER_auditor_denom_validity_sign (
enum GNUNET_GenericReturnValue enum GNUNET_GenericReturnValue
TALER_auditor_denom_validity_verify ( TALER_auditor_denom_validity_verify (
const char *auditor_url, const char *auditor_url,
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_MasterPublicKeyP *master_pub, const struct TALER_MasterPublicKeyP *master_pub,
struct GNUNET_TIME_Absolute stamp_start, struct GNUNET_TIME_Absolute stamp_start,
struct GNUNET_TIME_Absolute stamp_expire_withdraw, struct GNUNET_TIME_Absolute stamp_expire_withdraw,
@ -1629,7 +1795,7 @@ TALER_exchange_offline_wire_del_verify (
*/ */
void void
TALER_exchange_wire_signature_hash (const char *payto_uri, TALER_exchange_wire_signature_hash (const char *payto_uri,
struct GNUNET_HashCode *hc); struct TALER_PaytoHash *hc);
/** /**
@ -1673,7 +1839,7 @@ TALER_exchange_wire_signature_make (
void void
TALER_merchant_wire_signature_hash (const char *payto_uri, TALER_merchant_wire_signature_hash (const char *payto_uri,
const struct TALER_WireSalt *salt, const struct TALER_WireSalt *salt,
struct GNUNET_HashCode *hc); struct TALER_MerchantWireHash *hc);
/** /**

View File

@ -97,7 +97,7 @@ struct TALER_EXCHANGE_DenomPublicKey
/** /**
* The hash of the public key. * The hash of the public key.
*/ */
struct GNUNET_HashCode h_key; struct TALER_DenominationHash h_key;
/** /**
* Exchange's master signature over this denomination record. * Exchange's master signature over this denomination record.
@ -619,7 +619,7 @@ TALER_EXCHANGE_destroy_denomination_key (
const struct TALER_EXCHANGE_DenomPublicKey * const struct TALER_EXCHANGE_DenomPublicKey *
TALER_EXCHANGE_get_denomination_key_by_hash ( TALER_EXCHANGE_get_denomination_key_by_hash (
const struct TALER_EXCHANGE_Keys *keys, const struct TALER_EXCHANGE_Keys *keys,
const struct GNUNET_HashCode *hc); const struct TALER_DenominationHash *hc);
/** /**
@ -772,6 +772,7 @@ TALER_EXCHANGE_wire_cancel (struct TALER_EXCHANGE_WireHandle *wh);
* @param deposit_fee the deposit fee we expect to pay * @param deposit_fee the deposit fee we expect to pay
* @param h_wire hash of the merchants account details * @param h_wire hash of the merchants account details
* @param h_contract_terms hash of the contact of the merchant with the customer (further details are never disclosed to the exchange) * @param h_contract_terms hash of the contact of the merchant with the customer (further details are never disclosed to the exchange)
* @param h_extensions hash over the extensions
* @param h_denom_pub hash of the coin denomination's public key * @param h_denom_pub hash of the coin denomination's public key
* @param coin_priv coins private key * @param coin_priv coins private key
* @param wallet_timestamp timestamp when the contract was finalized, must not be too far in the future * @param wallet_timestamp timestamp when the contract was finalized, must not be too far in the future
@ -783,9 +784,10 @@ void
TALER_EXCHANGE_deposit_permission_sign ( TALER_EXCHANGE_deposit_permission_sign (
const struct TALER_Amount *amount, const struct TALER_Amount *amount,
const struct TALER_Amount *deposit_fee, const struct TALER_Amount *deposit_fee,
const struct GNUNET_HashCode *h_wire, const struct TALER_MerchantWireHash *h_wire,
const struct GNUNET_HashCode *h_contract_terms, const struct TALER_PrivateContractHash *h_contract_terms,
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_ExtensionContractHash *h_extensions,
const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_CoinSpendPrivateKeyP *coin_priv, const struct TALER_CoinSpendPrivateKeyP *coin_priv,
struct GNUNET_TIME_Absolute wallet_timestamp, struct GNUNET_TIME_Absolute wallet_timestamp,
const struct TALER_MerchantPublicKeyP *merchant_pub, const struct TALER_MerchantPublicKeyP *merchant_pub,
@ -889,6 +891,7 @@ typedef void
* forced to settle in the past or upon very short notice, but of course a well-behaved exchange will limit aggregation based on the advice received) * forced to settle in the past or upon very short notice, but of course a well-behaved exchange will limit aggregation based on the advice received)
* @param wire_details the merchants account details, in a format supported by the exchange * @param wire_details the merchants account details, in a format supported by the exchange
* @param h_contract_terms hash of the contact of the merchant with the customer (further details are never disclosed to the exchange) * @param h_contract_terms hash of the contact of the merchant with the customer (further details are never disclosed to the exchange)
* @param extension_details extension-specific details about the deposit relevant to the exchange
* @param coin_pub coins public key * @param coin_pub coins public key
* @param denom_pub denomination key with which the coin is signed * @param denom_pub denomination key with which the coin is signed
* @param denom_sig exchanges unblinded signature of the coin * @param denom_sig exchanges unblinded signature of the coin
@ -903,11 +906,13 @@ typedef void
* signatures fail to verify). In this case, the callback is not called. * signatures fail to verify). In this case, the callback is not called.
*/ */
struct TALER_EXCHANGE_DepositHandle * struct TALER_EXCHANGE_DepositHandle *
TALER_EXCHANGE_deposit (struct TALER_EXCHANGE_Handle *exchange, TALER_EXCHANGE_deposit (
struct TALER_EXCHANGE_Handle *exchange,
const struct TALER_Amount *amount, const struct TALER_Amount *amount,
struct GNUNET_TIME_Absolute wire_deadline, struct GNUNET_TIME_Absolute wire_deadline,
json_t *wire_details, const json_t *wire_details,
const struct GNUNET_HashCode *h_contract_terms, const struct TALER_PrivateContractHash *h_contract_terms,
const json_t *extension_details,
const struct TALER_CoinSpendPublicKeyP *coin_pub, const struct TALER_CoinSpendPublicKeyP *coin_pub,
const struct TALER_DenominationSignature *denom_sig, const struct TALER_DenominationSignature *denom_sig,
const struct TALER_DenominationPublicKey *denom_pub, const struct TALER_DenominationPublicKey *denom_pub,
@ -996,7 +1001,7 @@ typedef void
struct TALER_EXCHANGE_RefundHandle * struct TALER_EXCHANGE_RefundHandle *
TALER_EXCHANGE_refund (struct TALER_EXCHANGE_Handle *exchange, TALER_EXCHANGE_refund (struct TALER_EXCHANGE_Handle *exchange,
const struct TALER_Amount *amount, const struct TALER_Amount *amount,
const struct GNUNET_HashCode *h_contract_terms, const struct TALER_PrivateContractHash *h_contract_terms,
const struct TALER_CoinSpendPublicKeyP *coin_pub, const struct TALER_CoinSpendPublicKeyP *coin_pub,
uint64_t rtransaction_id, uint64_t rtransaction_id,
const struct TALER_MerchantPrivateKeyP *merchant_priv, const struct TALER_MerchantPrivateKeyP *merchant_priv,
@ -1712,7 +1717,7 @@ struct TALER_EXCHANGE_TransferData
/** /**
* hash of the wire transfer address the transfer went to * hash of the wire transfer address the transfer went to
*/ */
struct GNUNET_HashCode h_wire; struct TALER_MerchantWireHash h_wire;
/** /**
* time when the exchange claims to have performed the wire transfer * time when the exchange claims to have performed the wire transfer
@ -1912,8 +1917,8 @@ struct TALER_EXCHANGE_DepositGetHandle *
TALER_EXCHANGE_deposits_get ( TALER_EXCHANGE_deposits_get (
struct TALER_EXCHANGE_Handle *exchange, struct TALER_EXCHANGE_Handle *exchange,
const struct TALER_MerchantPrivateKeyP *merchant_priv, const struct TALER_MerchantPrivateKeyP *merchant_priv,
const struct GNUNET_HashCode *h_wire, const struct TALER_MerchantWireHash *h_wire,
const struct GNUNET_HashCode *h_contract_terms, const struct TALER_PrivateContractHash *h_contract_terms,
const struct TALER_CoinSpendPublicKeyP *coin_pub, const struct TALER_CoinSpendPublicKeyP *coin_pub,
TALER_EXCHANGE_DepositGetCallback cb, TALER_EXCHANGE_DepositGetCallback cb,
void *cb_cls); void *cb_cls);
@ -1948,7 +1953,7 @@ TALER_EXCHANGE_verify_coin_history (
const char *currency, const char *currency,
const struct TALER_CoinSpendPublicKeyP *coin_pub, const struct TALER_CoinSpendPublicKeyP *coin_pub,
json_t *history, json_t *history,
struct GNUNET_HashCode *h_denom_pub, struct TALER_DenominationHash *h_denom_pub,
struct TALER_Amount *total); struct TALER_Amount *total);
@ -2146,7 +2151,7 @@ typedef void
struct TALER_EXCHANGE_KycCheckHandle * struct TALER_EXCHANGE_KycCheckHandle *
TALER_EXCHANGE_kyc_check (struct TALER_EXCHANGE_Handle *eh, TALER_EXCHANGE_kyc_check (struct TALER_EXCHANGE_Handle *eh,
uint64_t payment_target, uint64_t payment_target,
const struct GNUNET_HashCode *h_payto, const struct TALER_PaytoHash *h_payto,
struct GNUNET_TIME_Relative timeout, struct GNUNET_TIME_Relative timeout,
TALER_EXCHANGE_KycStatusCallback cb, TALER_EXCHANGE_KycStatusCallback cb,
void *cb_cls); void *cb_cls);
@ -2452,7 +2457,7 @@ struct TALER_EXCHANGE_DenominationKeySignature
/** /**
* The hash of the denomination's public key * The hash of the denomination's public key
*/ */
struct GNUNET_HashCode h_denom_pub; struct TALER_DenominationHash h_denom_pub;
/** /**
* Signature over this denomination key by the exchange's master signature. * Signature over this denomination key by the exchange's master signature.
@ -2570,7 +2575,7 @@ struct TALER_EXCHANGE_ManagementRevokeDenominationKeyHandle *
TALER_EXCHANGE_management_revoke_denomination_key ( TALER_EXCHANGE_management_revoke_denomination_key (
struct GNUNET_CURL_Context *ctx, struct GNUNET_CURL_Context *ctx,
const char *url, const char *url,
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_MasterSignatureP *master_sig, const struct TALER_MasterSignatureP *master_sig,
TALER_EXCHANGE_ManagementRevokeDenominationKeyCallback cb, TALER_EXCHANGE_ManagementRevokeDenominationKeyCallback cb,
void *cb_cls); void *cb_cls);
@ -2942,7 +2947,7 @@ struct TALER_EXCHANGE_AuditorAddDenominationHandle *
TALER_EXCHANGE_add_auditor_denomination ( TALER_EXCHANGE_add_auditor_denomination (
struct GNUNET_CURL_Context *ctx, struct GNUNET_CURL_Context *ctx,
const char *url, const char *url,
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_AuditorPublicKeyP *auditor_pub, const struct TALER_AuditorPublicKeyP *auditor_pub,
const struct TALER_AuditorSignatureP *auditor_sig, const struct TALER_AuditorSignatureP *auditor_sig,
TALER_EXCHANGE_AuditorAddDenominationCallback cb, TALER_EXCHANGE_AuditorAddDenominationCallback cb,

View File

@ -228,7 +228,7 @@ struct TALER_EXCHANGEDB_TableData
struct struct
{ {
struct GNUNET_HashCode h_blind_ev; struct TALER_BlindedCoinHash h_blind_ev;
struct TALER_DenominationSignature denom_sig; struct TALER_DenominationSignature denom_sig;
struct TALER_ReserveSignatureP reserve_sig; struct TALER_ReserveSignatureP reserve_sig;
struct GNUNET_TIME_Absolute execution_date; struct GNUNET_TIME_Absolute execution_date;
@ -309,10 +309,11 @@ struct TALER_EXCHANGEDB_TableData
struct GNUNET_TIME_Absolute refund_deadline; struct GNUNET_TIME_Absolute refund_deadline;
struct GNUNET_TIME_Absolute wire_deadline; struct GNUNET_TIME_Absolute wire_deadline;
struct TALER_MerchantPublicKeyP merchant_pub; struct TALER_MerchantPublicKeyP merchant_pub;
struct GNUNET_HashCode h_contract_terms; struct TALER_PrivateContractHash h_contract_terms;
// h_wire omitted, to be recomputed! // h_wire omitted, to be recomputed!
struct TALER_CoinSpendSignatureP coin_sig; struct TALER_CoinSpendSignatureP coin_sig;
json_t *wire; json_t *wire;
json_t *extensions;
bool tiny; bool tiny;
bool done; bool done;
uint64_t known_coin_id; uint64_t known_coin_id;
@ -618,7 +619,7 @@ typedef void
(*TALER_EXCHANGEDB_DenominationsCallback)( (*TALER_EXCHANGEDB_DenominationsCallback)(
void *cls, void *cls,
const struct TALER_DenominationPublicKey *denom_pub, const struct TALER_DenominationPublicKey *denom_pub,
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta, const struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta,
const struct TALER_MasterSignatureP *master_sig, const struct TALER_MasterSignatureP *master_sig,
bool recoup_possible); bool recoup_possible);
@ -670,7 +671,7 @@ typedef void
(*TALER_EXCHANGEDB_AuditorDenominationsCallback)( (*TALER_EXCHANGEDB_AuditorDenominationsCallback)(
void *cls, void *cls,
const struct TALER_AuditorPublicKeyP *auditor_pub, const struct TALER_AuditorPublicKeyP *auditor_pub,
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_AuditorSignatureP *auditor_sig); const struct TALER_AuditorSignatureP *auditor_sig);
@ -690,7 +691,7 @@ struct TALER_EXCHANGEDB_CollectableBlindcoin
/** /**
* Hash of the denomination key (which coin was generated). * Hash of the denomination key (which coin was generated).
*/ */
struct GNUNET_HashCode denom_pub_hash; struct TALER_DenominationHash denom_pub_hash;
/** /**
* Value of the coin being exchangeed (matching the denomination key) * Value of the coin being exchangeed (matching the denomination key)
@ -723,7 +724,7 @@ struct TALER_EXCHANGEDB_CollectableBlindcoin
* Hash over the blinded message, needed to verify * Hash over the blinded message, needed to verify
* the @e reserve_sig. * the @e reserve_sig.
*/ */
struct GNUNET_HashCode h_coin_envelope; struct TALER_BlindedCoinHash h_coin_envelope;
/** /**
* Signature confirming the withdrawal, matching @e reserve_pub, * Signature confirming the withdrawal, matching @e reserve_pub,
@ -797,7 +798,7 @@ struct TALER_EXCHANGEDB_RecoupListEntry
/** /**
* Hash of the public denomination key used to sign the coin. * Hash of the public denomination key used to sign the coin.
*/ */
struct GNUNET_HashCode h_denom_pub; struct TALER_DenominationHash h_denom_pub;
/** /**
* Public key of the reserve the coin was paid back into. * Public key of the reserve the coin was paid back into.
@ -977,7 +978,7 @@ struct TALER_EXCHANGEDB_Deposit
* Hash over the proposal data between merchant and customer * Hash over the proposal data between merchant and customer
* (remains unknown to the Exchange). * (remains unknown to the Exchange).
*/ */
struct GNUNET_HashCode h_contract_terms; struct TALER_PrivateContractHash h_contract_terms;
/** /**
* Hash of the (canonical) representation of @e wire, used * Hash of the (canonical) representation of @e wire, used
@ -985,7 +986,7 @@ struct TALER_EXCHANGEDB_Deposit
* the exchange from the detailed wire data provided by the * the exchange from the detailed wire data provided by the
* merchant. * merchant.
*/ */
struct GNUNET_HashCode h_wire; struct TALER_MerchantWireHash h_wire;
/** /**
* Detailed information about the receiver for executing the transaction. * Detailed information about the receiver for executing the transaction.
@ -993,6 +994,12 @@ struct TALER_EXCHANGEDB_Deposit
*/ */
json_t *receiver_wire_account; json_t *receiver_wire_account;
/**
* Additional details for extensions relevant for this
* deposit operation.
*/
json_t *extension_details;
/** /**
* Time when this request was generated. Used, for example, to * Time when this request was generated. Used, for example, to
* assess when (roughly) the income was achieved for tax purposes. * assess when (roughly) the income was achieved for tax purposes.
@ -1062,7 +1069,7 @@ struct TALER_EXCHANGEDB_DepositListEntry
* Hash over the proposa data between merchant and customer * Hash over the proposa data between merchant and customer
* (remains unknown to the Exchange). * (remains unknown to the Exchange).
*/ */
struct GNUNET_HashCode h_contract_terms; struct TALER_PrivateContractHash h_contract_terms;
/** /**
* Hash of the (canonical) representation of @e wire, used * Hash of the (canonical) representation of @e wire, used
@ -1070,12 +1077,12 @@ struct TALER_EXCHANGEDB_DepositListEntry
* the exchange from the detailed wire data provided by the * the exchange from the detailed wire data provided by the
* merchant. * merchant.
*/ */
struct GNUNET_HashCode h_wire; struct TALER_MerchantWireHash h_wire;
/** /**
* Hash of the public denomination key used to sign the coin. * Hash of the public denomination key used to sign the coin.
*/ */
struct GNUNET_HashCode h_denom_pub; struct TALER_DenominationHash h_denom_pub;
/** /**
* Detailed information about the receiver for executing the transaction. * Detailed information about the receiver for executing the transaction.
@ -1152,7 +1159,7 @@ struct TALER_EXCHANGEDB_RefundListEntry
* Hash over the proposal data between merchant and customer * Hash over the proposal data between merchant and customer
* (remains unknown to the Exchange). * (remains unknown to the Exchange).
*/ */
struct GNUNET_HashCode h_contract_terms; struct TALER_PrivateContractHash h_contract_terms;
/** /**
* Merchant-generated REFUND transaction ID to detect duplicate * Merchant-generated REFUND transaction ID to detect duplicate
@ -1258,7 +1265,7 @@ struct TALER_EXCHANGEDB_MeltListEntry
/** /**
* Hash of the public denomination key used to sign the coin. * Hash of the public denomination key used to sign the coin.
*/ */
struct GNUNET_HashCode h_denom_pub; struct TALER_DenominationHash h_denom_pub;
/** /**
* How much value is being melted? This amount includes the fees, * How much value is being melted? This amount includes the fees,
@ -1462,7 +1469,7 @@ typedef enum GNUNET_DB_QueryStatus
const struct TALER_CoinSpendPublicKeyP *coin_pub, const struct TALER_CoinSpendPublicKeyP *coin_pub,
const struct TALER_Amount *amount_with_fee, const struct TALER_Amount *amount_with_fee,
const struct TALER_Amount *deposit_fee, const struct TALER_Amount *deposit_fee,
const struct GNUNET_HashCode *h_contract_terms); const struct TALER_PrivateContractHash *h_contract_terms);
/** /**
@ -1489,7 +1496,7 @@ typedef enum GNUNET_DB_QueryStatus
const struct TALER_CoinSpendPublicKeyP *coin_pub, const struct TALER_CoinSpendPublicKeyP *coin_pub,
const struct TALER_Amount *amount_with_fee, const struct TALER_Amount *amount_with_fee,
const struct TALER_Amount *deposit_fee, const struct TALER_Amount *deposit_fee,
const struct GNUNET_HashCode *h_contract_terms, const struct TALER_PrivateContractHash *h_contract_terms,
const json_t *receiver_wire_account); const json_t *receiver_wire_account);
@ -1544,7 +1551,7 @@ typedef enum GNUNET_GenericReturnValue
const struct TALER_CoinSpendPublicKeyP *coin_pub, const struct TALER_CoinSpendPublicKeyP *coin_pub,
const struct TALER_CoinSpendSignatureP *coin_sig, const struct TALER_CoinSpendSignatureP *coin_sig,
const struct TALER_Amount *amount_with_fee, const struct TALER_Amount *amount_with_fee,
const struct GNUNET_HashCode *h_contract_terms, const struct TALER_PrivateContractHash *h_contract_terms,
struct GNUNET_TIME_Absolute refund_deadline, struct GNUNET_TIME_Absolute refund_deadline,
struct GNUNET_TIME_Absolute wire_deadline, struct GNUNET_TIME_Absolute wire_deadline,
const json_t *receiver_wire_account, const json_t *receiver_wire_account,
@ -1735,7 +1742,7 @@ typedef enum GNUNET_GenericReturnValue
const struct TALER_CoinSpendPublicKeyP *coin_pub, const struct TALER_CoinSpendPublicKeyP *coin_pub,
const struct TALER_MerchantPublicKeyP *merchant_pub, const struct TALER_MerchantPublicKeyP *merchant_pub,
const struct TALER_MerchantSignatureP *merchant_sig, const struct TALER_MerchantSignatureP *merchant_sig,
const struct GNUNET_HashCode *h_contract_terms, const struct TALER_PrivateContractHash *h_contract_terms,
uint64_t rtransaction_id, uint64_t rtransaction_id,
const struct TALER_Amount *amount_with_fee); const struct TALER_Amount *amount_with_fee);
@ -1816,7 +1823,7 @@ typedef enum GNUNET_GenericReturnValue
(*TALER_EXCHANGEDB_WithdrawCallback)( (*TALER_EXCHANGEDB_WithdrawCallback)(
void *cls, void *cls,
uint64_t rowid, uint64_t rowid,
const struct GNUNET_HashCode *h_blind_ev, const struct TALER_BlindedCoinHash *h_blind_ev,
const struct TALER_DenominationPublicKey *denom_pub, const struct TALER_DenominationPublicKey *denom_pub,
const struct TALER_ReservePublicKeyP *reserve_pub, const struct TALER_ReservePublicKeyP *reserve_pub,
const struct TALER_ReserveSignatureP *reserve_sig, const struct TALER_ReserveSignatureP *reserve_sig,
@ -1860,10 +1867,10 @@ typedef void
void *cls, void *cls,
uint64_t rowid, uint64_t rowid,
const struct TALER_MerchantPublicKeyP *merchant_pub, const struct TALER_MerchantPublicKeyP *merchant_pub,
const struct GNUNET_HashCode *h_wire, const struct TALER_MerchantWireHash *h_wire,
const json_t *account_details, const json_t *account_details,
struct GNUNET_TIME_Absolute exec_time, struct GNUNET_TIME_Absolute exec_time,
const struct GNUNET_HashCode *h_contract_terms, const struct TALER_PrivateContractHash *h_contract_terms,
const struct TALER_DenominationPublicKey *denom_pub, const struct TALER_DenominationPublicKey *denom_pub,
const struct TALER_CoinSpendPublicKeyP *coin_pub, const struct TALER_CoinSpendPublicKeyP *coin_pub,
const struct TALER_Amount *coin_value, const struct TALER_Amount *coin_value,
@ -1962,7 +1969,7 @@ typedef enum GNUNET_GenericReturnValue
struct GNUNET_TIME_Absolute timestamp, struct GNUNET_TIME_Absolute timestamp,
const struct TALER_Amount *amount, const struct TALER_Amount *amount,
const struct TALER_CoinSpendPublicKeyP *old_coin_pub, const struct TALER_CoinSpendPublicKeyP *old_coin_pub,
const struct GNUNET_HashCode *old_denom_pub_hash, const struct TLAER_DenominationHash *old_denom_pub_hash,
const struct TALER_CoinPublicInfo *coin, const struct TALER_CoinPublicInfo *coin,
const struct TALER_DenominationPublicKey *denom_pub, const struct TALER_DenominationPublicKey *denom_pub,
const struct TALER_CoinSpendSignatureP *coin_sig, const struct TALER_CoinSpendSignatureP *coin_sig,
@ -2045,7 +2052,7 @@ typedef void
const struct TALER_CoinPublicInfo *coin, const struct TALER_CoinPublicInfo *coin,
const struct TALER_CoinSpendSignatureP *coin_sig, const struct TALER_CoinSpendSignatureP *coin_sig,
const struct TALER_DenominationBlindingKeyP *coin_blind, const struct TALER_DenominationBlindingKeyP *coin_blind,
const struct GNUNET_HashCode *h_blinded_ev, const struct TALER_BlindedCoinHash *h_blinded_ev,
const struct TALER_Amount *amount); const struct TALER_Amount *amount);
@ -2260,7 +2267,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus enum GNUNET_DB_QueryStatus
(*get_denomination_info)( (*get_denomination_info)(
void *cls, void *cls,
const struct GNUNET_HashCode *denom_pub_hash, const struct TALER_DenominationHash *denom_pub_hash,
struct TALER_EXCHANGEDB_DenominationKeyInformationP *issue); struct TALER_EXCHANGEDB_DenominationKeyInformationP *issue);
@ -2400,7 +2407,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus enum GNUNET_DB_QueryStatus
(*select_kyc_status)(void *cls, (*select_kyc_status)(void *cls,
uint64_t payment_target_uuid, uint64_t payment_target_uuid,
struct GNUNET_HashCode *h_payto, struct TALER_PaytoHash *h_payto,
struct TALER_EXCHANGEDB_KycStatus *kyc); struct TALER_EXCHANGEDB_KycStatus *kyc);
@ -2472,7 +2479,7 @@ struct TALER_EXCHANGEDB_Plugin
*/ */
enum GNUNET_DB_QueryStatus enum GNUNET_DB_QueryStatus
(*get_withdraw_info)(void *cls, (*get_withdraw_info)(void *cls,
const struct GNUNET_HashCode *h_blind, const struct TALER_BlindedCoinHash *h_blind,
struct TALER_EXCHANGEDB_CollectableBlindcoin *collectable); struct TALER_EXCHANGEDB_CollectableBlindcoin *collectable);
@ -2547,7 +2554,7 @@ struct TALER_EXCHANGEDB_Plugin
*/ */
long long long long
(*count_known_coins) (void *cls, (*count_known_coins) (void *cls,
const struct GNUNET_HashCode *denom_pub_hash); const struct TALER_DenominationHash *denom_pub_hash);
/** /**
@ -2612,7 +2619,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus enum GNUNET_DB_QueryStatus
(*get_coin_denomination)(void *cls, (*get_coin_denomination)(void *cls,
const struct TALER_CoinSpendPublicKeyP *coin_pub, const struct TALER_CoinSpendPublicKeyP *coin_pub,
struct GNUNET_HashCode *denom_hash); struct TALER_DenominationHash *denom_hash);
/** /**
@ -2676,7 +2683,7 @@ struct TALER_EXCHANGEDB_Plugin
(*select_refunds_by_coin)(void *cls, (*select_refunds_by_coin)(void *cls,
const struct TALER_CoinSpendPublicKeyP *coin_pub, const struct TALER_CoinSpendPublicKeyP *coin_pub,
const struct TALER_MerchantPublicKeyP *merchant_pub, const struct TALER_MerchantPublicKeyP *merchant_pub,
const struct GNUNET_HashCode *h_contract, const struct TALER_PrivateContractHash *h_contract,
TALER_EXCHANGEDB_RefundCoinCallback cb, TALER_EXCHANGEDB_RefundCoinCallback cb,
void *cb_cls); void *cb_cls);
@ -2712,8 +2719,8 @@ struct TALER_EXCHANGEDB_Plugin
(*test_deposit_done)(void *cls, (*test_deposit_done)(void *cls,
const struct TALER_CoinSpendPublicKeyP *coin_pub, const struct TALER_CoinSpendPublicKeyP *coin_pub,
const struct TALER_MerchantPublicKeyP *merchant_pub, const struct TALER_MerchantPublicKeyP *merchant_pub,
const struct GNUNET_HashCode *h_contract_terms, const struct TALER_PrivateContractHash *h_contract_terms,
const struct GNUNET_HashCode *h_wire); const struct TALER_MerchantWireHash *h_wire);
/** /**
@ -2778,7 +2785,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus enum GNUNET_DB_QueryStatus
(*iterate_matching_deposits)( (*iterate_matching_deposits)(
void *cls, void *cls,
const struct GNUNET_HashCode *h_wire, const struct TALER_MerchantWireHash *h_wire,
const struct TALER_MerchantPublicKeyP *merchant_pub, const struct TALER_MerchantPublicKeyP *merchant_pub,
TALER_EXCHANGEDB_MatchingDepositIterator deposit_cb, TALER_EXCHANGEDB_MatchingDepositIterator deposit_cb,
void *deposit_cb_cls, void *deposit_cb_cls,
@ -2959,8 +2966,8 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus enum GNUNET_DB_QueryStatus
(*lookup_transfer_by_deposit)( (*lookup_transfer_by_deposit)(
void *cls, void *cls,
const struct GNUNET_HashCode *h_contract_terms, const struct TALER_PrivateContractHash *h_contract_terms,
const struct GNUNET_HashCode *h_wire, const struct TALER_MerchantWireHash *h_wire,
const struct TALER_CoinSpendPublicKeyP *coin_pub, const struct TALER_CoinSpendPublicKeyP *coin_pub,
const struct TALER_MerchantPublicKeyP *merchant_pub, const struct TALER_MerchantPublicKeyP *merchant_pub,
bool *pending, bool *pending,
@ -3173,7 +3180,7 @@ struct TALER_EXCHANGEDB_Plugin
* @return #GNUNET_OK on success, * @return #GNUNET_OK on success,
* #GNUNET_SYSERR on DB errors * #GNUNET_SYSERR on DB errors
*/ */
int enum GNUNET_GenericReturnValue
(*gc)(void *cls); (*gc)(void *cls);
@ -3395,7 +3402,7 @@ struct TALER_EXCHANGEDB_Plugin
const struct TALER_CoinSpendSignatureP *coin_sig, const struct TALER_CoinSpendSignatureP *coin_sig,
const struct TALER_DenominationBlindingKeyP *coin_blind, const struct TALER_DenominationBlindingKeyP *coin_blind,
const struct TALER_Amount *amount, const struct TALER_Amount *amount,
const struct GNUNET_HashCode *h_blind_ev, const struct TALER_BlindedCoinHash *h_blind_ev,
struct GNUNET_TIME_Absolute timestamp); struct GNUNET_TIME_Absolute timestamp);
@ -3420,7 +3427,7 @@ struct TALER_EXCHANGEDB_Plugin
const struct TALER_CoinSpendSignatureP *coin_sig, const struct TALER_CoinSpendSignatureP *coin_sig,
const struct TALER_DenominationBlindingKeyP *coin_blind, const struct TALER_DenominationBlindingKeyP *coin_blind,
const struct TALER_Amount *amount, const struct TALER_Amount *amount,
const struct GNUNET_HashCode *h_blind_ev, const struct TALER_BlindedCoinHash *h_blind_ev,
struct GNUNET_TIME_Absolute timestamp); struct GNUNET_TIME_Absolute timestamp);
@ -3435,7 +3442,7 @@ struct TALER_EXCHANGEDB_Plugin
*/ */
enum GNUNET_DB_QueryStatus enum GNUNET_DB_QueryStatus
(*get_reserve_by_h_blind)(void *cls, (*get_reserve_by_h_blind)(void *cls,
const struct GNUNET_HashCode *h_blind_ev, const struct TALER_BlindedCoinHash *h_blind_ev,
struct TALER_ReservePublicKeyP *reserve_pub); struct TALER_ReservePublicKeyP *reserve_pub);
@ -3450,7 +3457,7 @@ struct TALER_EXCHANGEDB_Plugin
*/ */
enum GNUNET_DB_QueryStatus enum GNUNET_DB_QueryStatus
(*get_old_coin_by_h_blind)(void *cls, (*get_old_coin_by_h_blind)(void *cls,
const struct GNUNET_HashCode *h_blind_ev, const struct TALER_BlindedCoinHash *h_blind_ev,
struct TALER_CoinSpendPublicKeyP *old_coin_pub); struct TALER_CoinSpendPublicKeyP *old_coin_pub);
@ -3466,7 +3473,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus enum GNUNET_DB_QueryStatus
(*insert_denomination_revocation)( (*insert_denomination_revocation)(
void *cls, void *cls,
const struct GNUNET_HashCode *denom_pub_hash, const struct TALER_DenominationHash *denom_pub_hash,
const struct TALER_MasterSignatureP *master_sig); const struct TALER_MasterSignatureP *master_sig);
@ -3482,7 +3489,8 @@ struct TALER_EXCHANGEDB_Plugin
*/ */
enum GNUNET_DB_QueryStatus enum GNUNET_DB_QueryStatus
(*get_denomination_revocation)(void *cls, (*get_denomination_revocation)(void *cls,
const struct GNUNET_HashCode *denom_pub_hash, const struct
TALER_DenominationHash *denom_pub_hash,
struct TALER_MasterSignatureP *master_sig, struct TALER_MasterSignatureP *master_sig,
uint64_t *rowid); uint64_t *rowid);
@ -3699,7 +3707,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus enum GNUNET_DB_QueryStatus
(*lookup_denomination_key)( (*lookup_denomination_key)(
void *cls, void *cls,
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta); struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta);
@ -3716,7 +3724,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus enum GNUNET_DB_QueryStatus
(*add_denomination_key)( (*add_denomination_key)(
void *cls, void *cls,
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_DenominationPublicKey *denom_pub, const struct TALER_DenominationPublicKey *denom_pub,
const struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta, const struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta,
const struct TALER_MasterSignatureP *master_sig); const struct TALER_MasterSignatureP *master_sig);
@ -3767,7 +3775,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus enum GNUNET_DB_QueryStatus
(*insert_auditor_denom_sig)( (*insert_auditor_denom_sig)(
void *cls, void *cls,
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_AuditorPublicKeyP *auditor_pub, const struct TALER_AuditorPublicKeyP *auditor_pub,
const struct TALER_AuditorSignatureP *auditor_sig); const struct TALER_AuditorSignatureP *auditor_sig);
@ -3784,7 +3792,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus enum GNUNET_DB_QueryStatus
(*select_auditor_denom_sig)( (*select_auditor_denom_sig)(
void *cls, void *cls,
const struct GNUNET_HashCode *h_denom_pub, const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_AuditorPublicKeyP *auditor_pub, const struct TALER_AuditorPublicKeyP *auditor_pub,
struct TALER_AuditorSignatureP *auditor_sig); struct TALER_AuditorSignatureP *auditor_sig);

View File

@ -332,7 +332,7 @@ struct TALER_DenominationKeyAnnouncementPS
/** /**
* Hash of the denomination public key. * Hash of the denomination public key.
*/ */
struct GNUNET_HashCode h_denom_pub; struct TALER_DenominationHash h_denom_pub;
/** /**
* Hash of the section name in the configuration of this denomination. * Hash of the section name in the configuration of this denomination.
@ -398,7 +398,7 @@ struct TALER_LinkDataPS
/** /**
* Hash of the denomination public key of the new coin. * Hash of the denomination public key of the new coin.
*/ */
struct GNUNET_HashCode h_denom_pub; struct TALER_DenominationHash h_denom_pub;
/** /**
* Transfer public key (for which the private key was not revealed) * Transfer public key (for which the private key was not revealed)
@ -408,7 +408,7 @@ struct TALER_LinkDataPS
/** /**
* Hash of the blinded new coin. * Hash of the blinded new coin.
*/ */
struct GNUNET_HashCode coin_envelope_hash; struct TALER_BlindedCoinHash coin_envelope_hash;
}; };
@ -443,12 +443,12 @@ struct TALER_WithdrawRequestPS
/** /**
* Hash of the denomination public key for the coin that is withdrawn. * Hash of the denomination public key for the coin that is withdrawn.
*/ */
struct GNUNET_HashCode h_denomination_pub GNUNET_PACKED; struct TALER_DenominationHash h_denomination_pub GNUNET_PACKED;
/** /**
* Hash of the (blinded) message to be signed by the Exchange. * Hash of the (blinded) message to be signed by the Exchange.
*/ */
struct GNUNET_HashCode h_coin_envelope GNUNET_PACKED; struct TALER_BlindedCoinHash h_coin_envelope GNUNET_PACKED;
}; };
@ -467,17 +467,22 @@ struct TALER_DepositRequestPS
/** /**
* Hash over the contract for which this deposit is made. * Hash over the contract for which this deposit is made.
*/ */
struct GNUNET_HashCode h_contract_terms GNUNET_PACKED; struct TALER_PrivateContractHash h_contract_terms GNUNET_PACKED;
/**
* Hash over extension attributes shared with the exchange.
*/
struct TALER_ExtensionContractHash h_extensions GNUNET_PACKED;
/** /**
* Hash over the wiring information of the merchant. * Hash over the wiring information of the merchant.
*/ */
struct GNUNET_HashCode h_wire GNUNET_PACKED; struct TALER_MerchantWireHash h_wire GNUNET_PACKED;
/** /**
* Hash over the denomination public key used to sign the coin. * Hash over the denomination public key used to sign the coin.
*/ */
struct GNUNET_HashCode h_denom_pub GNUNET_PACKED; struct TALER_DenominationHash h_denom_pub GNUNET_PACKED;
/** /**
* Time when this request was generated. Used, for example, to * Time when this request was generated. Used, for example, to
@ -550,12 +555,12 @@ struct TALER_DepositConfirmationPS
/** /**
* Hash over the contract for which this deposit is made. * Hash over the contract for which this deposit is made.
*/ */
struct GNUNET_HashCode h_contract_terms GNUNET_PACKED; struct TALER_PrivateContractHash h_contract_terms GNUNET_PACKED;
/** /**
* Hash over the wiring information of the merchant. * Hash over the wiring information of the merchant.
*/ */
struct GNUNET_HashCode h_wire GNUNET_PACKED; struct TALER_MerchantWireHash h_wire GNUNET_PACKED;
/** /**
* Time when this confirmation was generated / when the exchange received * Time when this confirmation was generated / when the exchange received
@ -609,7 +614,7 @@ struct TALER_RefundRequestPS
* Hash over the proposal data to identify the contract * Hash over the proposal data to identify the contract
* which is being refunded. * which is being refunded.
*/ */
struct GNUNET_HashCode h_contract_terms GNUNET_PACKED; struct TALER_PrivateContractHash h_contract_terms GNUNET_PACKED;
/** /**
* The coin's public key. This is the value that must have been * The coin's public key. This is the value that must have been
@ -651,7 +656,7 @@ struct TALER_RefundConfirmationPS
* Hash over the proposal data to identify the contract * Hash over the proposal data to identify the contract
* which is being refunded. * which is being refunded.
*/ */
struct GNUNET_HashCode h_contract_terms GNUNET_PACKED; struct TALER_PrivateContractHash h_contract_terms GNUNET_PACKED;
/** /**
* The coin's public key. This is the value that must have been * The coin's public key. This is the value that must have been
@ -698,7 +703,7 @@ struct TALER_RefreshMeltCoinAffirmationPS
/** /**
* Hash over the denomination public key used to sign the coin. * Hash over the denomination public key used to sign the coin.
*/ */
struct GNUNET_HashCode h_denom_pub GNUNET_PACKED; struct TALER_DenominationHash h_denom_pub GNUNET_PACKED;
/** /**
* How much of the value of the coin should be melted? This amount * How much of the value of the coin should be melted? This amount
@ -845,7 +850,7 @@ struct TALER_ExchangeAccountSetupSuccessPS
* Hash over the payto for which the signature was * Hash over the payto for which the signature was
* made. * made.
*/ */
struct GNUNET_HashCode h_payto; struct TALER_PaytoHash h_payto;
/** /**
* When was the signature made. * When was the signature made.
@ -931,7 +936,7 @@ struct TALER_MasterAddWirePS
/** /**
* Hash over the exchange's payto URI. * Hash over the exchange's payto URI.
*/ */
struct GNUNET_HashCode h_wire GNUNET_PACKED; struct TALER_PaytoHash h_payto GNUNET_PACKED;
}; };
@ -956,7 +961,7 @@ struct TALER_MasterDelWirePS
/** /**
* Hash over the exchange's payto URI. * Hash over the exchange's payto URI.
*/ */
struct GNUNET_HashCode h_wire GNUNET_PACKED; struct TALER_PaytoHash h_payto GNUNET_PACKED;
}; };
@ -1053,7 +1058,7 @@ struct TALER_DenominationKeyValidityPS
* Hash code of the denomination public key. (Used to avoid having * Hash code of the denomination public key. (Used to avoid having
* the variable-size RSA key in this struct.) * the variable-size RSA key in this struct.)
*/ */
struct GNUNET_HashCode denom_hash GNUNET_PACKED; struct TALER_DenominationHash denom_hash GNUNET_PACKED;
}; };
@ -1155,7 +1160,7 @@ struct TALER_ExchangeKeyValidityPS
* Hash code of the denomination public key. (Used to avoid having * Hash code of the denomination public key. (Used to avoid having
* the variable-size RSA key in this struct.) * the variable-size RSA key in this struct.)
*/ */
struct GNUNET_HashCode denom_hash GNUNET_PACKED; struct TALER_DenominationHash denom_hash GNUNET_PACKED;
}; };
@ -1176,7 +1181,7 @@ struct TALER_MasterWireDetailsPS
* Hash over the account holder's payto:// URL and * Hash over the account holder's payto:// URL and
* the salt, as done by #TALER_exchange_wire_signature_hash(). * the salt, as done by #TALER_exchange_wire_signature_hash().
*/ */
struct GNUNET_HashCode h_wire_details GNUNET_PACKED; struct TALER_MerchantWireHash h_wire_details GNUNET_PACKED;
}; };
@ -1236,7 +1241,7 @@ struct TALER_MasterDenominationKeyRevocationPS
/** /**
* Hash of the denomination key. * Hash of the denomination key.
*/ */
struct GNUNET_HashCode h_denom_pub; struct TALER_DenominationHash h_denom_pub;
}; };
@ -1273,12 +1278,12 @@ struct TALER_DepositTrackPS
/** /**
* Hash over the proposal data of the contract for which this deposit is made. * Hash over the proposal data of the contract for which this deposit is made.
*/ */
struct GNUNET_HashCode h_contract_terms GNUNET_PACKED; struct TALER_PrivateContractHash h_contract_terms GNUNET_PACKED;
/** /**
* Hash over the wiring information of the merchant. * Hash over the wiring information of the merchant.
*/ */
struct GNUNET_HashCode h_wire GNUNET_PACKED; struct TALER_MerchantWireHash h_wire GNUNET_PACKED;
/** /**
* The Merchant's public key. The deposit inquiry request is to be * The Merchant's public key. The deposit inquiry request is to be
@ -1305,7 +1310,7 @@ struct TALER_WireDepositDetailP
/** /**
* Hash of the contract * Hash of the contract
*/ */
struct GNUNET_HashCode h_contract_terms; struct TALER_PrivateContractHash h_contract_terms;
/** /**
* Time when the wire transfer was performed by the exchange. * Time when the wire transfer was performed by the exchange.
@ -1360,7 +1365,7 @@ struct TALER_WireDepositDataPS
/** /**
* Hash of wire details of the merchant. * Hash of wire details of the merchant.
*/ */
struct GNUNET_HashCode h_wire; struct TALER_MerchantWireHash h_wire;
/** /**
* Hash of the individual deposits that were aggregated, * Hash of the individual deposits that were aggregated,
@ -1403,7 +1408,7 @@ struct TALER_PaymentResponsePS
/** /**
* Hash of the proposal data associated with this confirmation * Hash of the proposal data associated with this confirmation
*/ */
struct GNUNET_HashCode h_contract_terms; struct TALER_PrivateContractHash h_contract_terms;
}; };
@ -1422,12 +1427,12 @@ struct TALER_ConfirmWirePS
/** /**
* Hash over the wiring information of the merchant. * Hash over the wiring information of the merchant.
*/ */
struct GNUNET_HashCode h_wire GNUNET_PACKED; struct TALER_MerchantWireHash h_wire GNUNET_PACKED;
/** /**
* Hash over the contract for which this deposit is made. * Hash over the contract for which this deposit is made.
*/ */
struct GNUNET_HashCode h_contract_terms GNUNET_PACKED; struct TALER_PrivateContractHash h_contract_terms GNUNET_PACKED;
/** /**
* Raw value (binary encoding) of the wire transfer subject. * Raw value (binary encoding) of the wire transfer subject.
@ -1476,7 +1481,7 @@ struct TALER_RecoupRequestPS
/** /**
* Hash of the (revoked) denomination public key of the coin. * Hash of the (revoked) denomination public key of the coin.
*/ */
struct GNUNET_HashCode h_denom_pub; struct TALER_DenominationHash h_denom_pub;
/** /**
* Blinding factor that was used to withdraw the coin. * Blinding factor that was used to withdraw the coin.
@ -1582,7 +1587,7 @@ struct TALER_DenominationUnknownAffirmationPS
/** /**
* Hash of the public denomination key we do not know. * Hash of the public denomination key we do not know.
*/ */
struct GNUNET_HashCode h_denom_pub; struct TALER_DenominationHash h_denom_pub;
}; };
@ -1612,7 +1617,7 @@ struct TALER_DenominationExpiredAffirmationPS
/** /**
* Hash of the public denomination key we do not know. * Hash of the public denomination key we do not know.
*/ */
struct GNUNET_HashCode h_denom_pub; struct TALER_DenominationHash h_denom_pub;
}; };
@ -1652,7 +1657,7 @@ struct TALER_ReserveCloseConfirmationPS
/** /**
* Hash of the receiver's bank account. * Hash of the receiver's bank account.
*/ */
struct GNUNET_HashCode h_wire; struct TALER_PaytoHash h_wire;
/** /**
* Wire transfer subject. * Wire transfer subject.

View File

@ -233,7 +233,7 @@ TALER_language_matches (const char *language_pattern,
* #GNUNET_NO if the MHD connection is using http, * #GNUNET_NO if the MHD connection is using http,
* #GNUNET_SYSERR if the connection type couldn't be determined * #GNUNET_SYSERR if the connection type couldn't be determined
*/ */
int enum GNUNET_GenericReturnValue
TALER_mhd_is_https (struct MHD_Connection *connection); TALER_mhd_is_https (struct MHD_Connection *connection);

View File

@ -69,6 +69,7 @@ libtalerutil_la_SOURCES = \
crypto_helper_denom.c \ crypto_helper_denom.c \
crypto_helper_esign.c \ crypto_helper_esign.c \
crypto_wire.c \ crypto_wire.c \
denom.c \
getopt.c \ getopt.c \
lang.c \ lang.c \
iban.c \ iban.c \

View File

@ -31,7 +31,7 @@
* #GNUNET_NO if the MHD connection is using http, * #GNUNET_NO if the MHD connection is using http,
* #GNUNET_SYSERR if the connection type couldn't be determined * #GNUNET_SYSERR if the connection type couldn't be determined
*/ */
int enum GNUNET_GenericReturnValue
TALER_mhd_is_https (struct MHD_Connection *connection) TALER_mhd_is_https (struct MHD_Connection *connection)
{ {
const union MHD_ConnectionInfo *ci; const union MHD_ConnectionInfo *ci;

View File

@ -70,7 +70,7 @@ TALER_exchange_secmod_eddsa_verify (
void void
TALER_exchange_secmod_rsa_sign ( TALER_exchange_secmod_denom_sign (
const struct GNUNET_HashCode *h_denom_pub, const struct GNUNET_HashCode *h_denom_pub,
const char *section_name, const char *section_name,
struct GNUNET_TIME_Absolute start_sign, struct GNUNET_TIME_Absolute start_sign,
@ -97,7 +97,7 @@ TALER_exchange_secmod_rsa_sign (
enum GNUNET_GenericReturnValue enum GNUNET_GenericReturnValue
TALER_exchange_secmod_rsa_verify ( TALER_exchange_secmod_denom_verify (
const struct GNUNET_HashCode *h_denom_pub, const struct GNUNET_HashCode *h_denom_pub,
const char *section_name, const char *section_name,
struct GNUNET_TIME_Absolute start_sign, struct GNUNET_TIME_Absolute start_sign,