From a56e2e34bce77d41a6d3a2cbbcb89119b98ef750 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sat, 6 Oct 2018 15:05:06 +0200 Subject: fix #5434 (no more salt in exchange wire replies) --- src/include/taler_crypto_lib.h | 68 +++++++++++++++++++++++++++++++++--------- 1 file changed, 54 insertions(+), 14 deletions(-) (limited to 'src/include/taler_crypto_lib.h') diff --git a/src/include/taler_crypto_lib.h b/src/include/taler_crypto_lib.h index b22c55ce3..f12516177 100644 --- a/src/include/taler_crypto_lib.h +++ b/src/include/taler_crypto_lib.h @@ -738,43 +738,83 @@ TALER_refresh_get_commitment (struct TALER_RefreshCommitmentP *rc, * hash is what is put into the contract. * * @param payto_url bank account - * @param salt salt used to eliminate brute-force inversion * @param hc[out] set to the hash */ void -TALER_wire_signature_hash (const char *payto_url, - const char *salt, - struct GNUNET_HashCode *hc); +TALER_exchange_wire_signature_hash (const char *payto_url, + struct GNUNET_HashCode *hc); + /** * Check the signature in @a wire_s. * * @param payto_url URL that is signed - * @param salt the salt used to salt the @a payto_url when hashing * @param master_pub master public key of the exchange * @param master_sig signature of the exchange * @return #GNUNET_OK if signature is valid */ int -TALER_wire_signature_check (const char *payto_url, - const char *salt, - const struct TALER_MasterPublicKeyP *master_pub, - const struct TALER_MasterSignatureP *master_sig); +TALER_exchange_wire_signature_check (const char *payto_url, + const struct TALER_MasterPublicKeyP *master_pub, + const struct TALER_MasterSignatureP *master_sig); /** * Create a signed wire statement for the given account. * * @param payto_url account specification - * @param salt the salt used to salt the @a payto_url when hashing * @param master_priv private key to sign with * @param master_sig[out] where to write the signature */ void -TALER_wire_signature_make (const char *payto_url, - const char *salt, - const struct TALER_MasterPrivateKeyP *master_priv, - struct TALER_MasterSignatureP *master_sig); +TALER_exchange_wire_signature_make (const char *payto_url, + const struct TALER_MasterPrivateKeyP *master_priv, + struct TALER_MasterSignatureP *master_sig); + + +/** + * Compute the hash of the given wire details. The resulting + * hash is what is put into the contract. + * + * @param payto_url bank account + * @param salt salt used to eliminate brute-force inversion + * @param hc[out] set to the hash + */ +void +TALER_merchant_wire_signature_hash (const char *payto_url, + const char *salt, + struct GNUNET_HashCode *hc); + + +/** + * Check the signature in @a wire_s. + * + * @param payto_url URL that is signed + * @param salt the salt used to salt the @a payto_url when hashing + * @param merch_pub public key of the merchant + * @param merch_sig signature of the merchant + * @return #GNUNET_OK if signature is valid + */ +int +TALER_merchant_wire_signature_check (const char *payto_url, + const char *salt, + const struct TALER_MerchantPublicKeyP *merch_pub, + const struct TALER_MerchantSignatureP *merch_sig); + + +/** + * Create a signed wire statement for the given account. + * + * @param payto_url account specification + * @param salt the salt used to salt the @a payto_url when hashing + * @param merch_priv private key to sign with + * @param merch_sig[out] where to write the signature + */ +void +TALER_merchant_wire_signature_make (const char *payto_url, + const char *salt, + const struct TALER_MerchantPrivateKeyP *merch_priv, + struct TALER_MerchantSignatureP *merch_sig); #endif -- cgit v1.2.3