summaryrefslogtreecommitdiff
path: root/src/util/crypto_wire.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-10-09 16:11:04 +0200
committerChristian Grothoff <christian@grothoff.org>2021-10-09 16:11:04 +0200
commitd8922f82e5f6853c35a8a282e51471da908bdacf (patch)
tree191edb2430ea64987258dfd423051b4ae1db6c22 /src/util/crypto_wire.c
parent676ccdc06589d4af329d016c04d79d71697092d1 (diff)
downloadexchange-d8922f82e5f6853c35a8a282e51471da908bdacf.tar.gz
exchange-d8922f82e5f6853c35a8a282e51471da908bdacf.tar.bz2
exchange-d8922f82e5f6853c35a8a282e51471da908bdacf.zip
-introduce 'struct TALER_WireSalt'
Diffstat (limited to 'src/util/crypto_wire.c')
-rw-r--r--src/util/crypto_wire.c28
1 files changed, 24 insertions, 4 deletions
diff --git a/src/util/crypto_wire.c b/src/util/crypto_wire.c
index 0d31720a7..ee3215ca6 100644
--- a/src/util/crypto_wire.c
+++ b/src/util/crypto_wire.c
@@ -110,19 +110,39 @@ TALER_exchange_wire_signature_make (
*/
void
TALER_merchant_wire_signature_hash (const char *payto_uri,
- const char *salt,
+ const struct TALER_WireSalt *salt,
struct GNUNET_HashCode *hc)
{
+#if FIXED_7032
+ /* new logic to use once #7032 is being addressed */
GNUNET_assert (GNUNET_YES ==
GNUNET_CRYPTO_kdf (hc,
sizeof (*hc),
salt,
- strlen (salt) + 1,
+ sizeof (*salt),
payto_uri,
strlen (payto_uri) + 1,
"merchant-wire-signature",
strlen ("merchant-wire-signature"),
NULL, 0));
+#else
+ /* compatibility logic to avoid protocol breakage... */
+ char *sstr;
+
+ sstr = GNUNET_STRINGS_data_to_string_alloc (salt,
+ sizeof (*salt));
+ GNUNET_assert (GNUNET_YES ==
+ GNUNET_CRYPTO_kdf (hc,
+ sizeof (*hc),
+ sstr,
+ strlen (sstr) + 1,
+ payto_uri,
+ strlen (payto_uri) + 1,
+ "merchant-wire-signature",
+ strlen ("merchant-wire-signature"),
+ NULL, 0));
+ GNUNET_free (sstr);
+#endif
}
@@ -146,7 +166,7 @@ TALER_merchant_wire_signature_hash (const char *payto_uri,
enum GNUNET_GenericReturnValue
TALER_merchant_wire_signature_check (
const char *payto_uri,
- const char *salt,
+ const struct TALER_WireSalt *salt,
const struct TALER_MerchantPublicKeyP *merch_pub,
const struct TALER_MerchantSignatureP *merch_sig)
{
@@ -176,7 +196,7 @@ TALER_merchant_wire_signature_check (
void
TALER_merchant_wire_signature_make (
const char *payto_uri,
- const char *salt,
+ const struct TALER_WireSalt *salt,
const struct TALER_MerchantPrivateKeyP *merch_priv,
struct TALER_MerchantSignatureP *merch_sig)
{