From 755cb5c76a53a8fd04408bcc080b1796e77162f5 Mon Sep 17 00:00:00 2001 From: Martin Schanzenbach Date: Tue, 26 May 2020 11:49:50 +0200 Subject: remove argon2 dependency. Use limited libsodium argon2id function for GNS and NSE --- src/util/Makefile.am | 1 - src/util/crypto_pow.c | 25 +++++++++++++------------ src/util/gnunet-scrypt.c | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) (limited to 'src/util') diff --git a/src/util/Makefile.am b/src/util/Makefile.am index f3373fc38..83b3b9c3d 100644 --- a/src/util/Makefile.am +++ b/src/util/Makefile.am @@ -131,7 +131,6 @@ libgnunetutil_la_LIBADD = \ $(LIBIDN) $(LIBIDN2) \ $(Z_LIBS) \ -lunistring \ - -largon2 \ -lsodium \ $(XLIB) \ $(PTHREAD) diff --git a/src/util/crypto_pow.c b/src/util/crypto_pow.c index 6176afc33..cfa0676d0 100644 --- a/src/util/crypto_pow.c +++ b/src/util/crypto_pow.c @@ -25,14 +25,14 @@ */ #include "platform.h" #include "gnunet_crypto_lib.h" -#include +#include /** * Calculate the 'proof-of-work' hash (an expensive hash). * We're using a non-standard formula to avoid issues with * ASICs appearing (see #3795). * - * @param salt salt for the hash + * @param salt salt for the hash. Must be crypto_pwhash_argon2id_SALTBYTES long. * @param buf data to hash * @param buf_len number of bytes in @a buf * @param result where to write the resulting hash @@ -43,16 +43,17 @@ GNUNET_CRYPTO_pow_hash (const char *salt, size_t buf_len, struct GNUNET_HashCode *result) { - GNUNET_break (ARGON2_OK == - argon2id_hash_raw (3, /* iterations */ - 1024, /* memory (1 MiB) */ - 1, /* threads */ - buf, - buf_len, - salt, - strlen (salt), - result, - sizeof (struct GNUNET_HashCode))); + GNUNET_assert (strlen (salt) == crypto_pwhash_argon2id_SALTBYTES); + /* Threads hardcoded at 1 in libsodium */ + GNUNET_break (0 == + crypto_pwhash_argon2id ((unsigned char *) result, + sizeof (struct GNUNET_HashCode), + buf, + buf_len, + (unsigned char*) salt, + 3, /* iterations */ + 1024 * 1024, /* memory (1 MiB) */ + crypto_pwhash_argon2id_ALG_ARGON2ID13)); } diff --git a/src/util/gnunet-scrypt.c b/src/util/gnunet-scrypt.c index 9bb766595..7d13ce469 100644 --- a/src/util/gnunet-scrypt.c +++ b/src/util/gnunet-scrypt.c @@ -117,7 +117,7 @@ find_proof (void *cls) while ((counter != UINT64_MAX) && (i < ROUND_SIZE)) { GNUNET_memcpy (buf, &counter, sizeof(uint64_t)); - GNUNET_CRYPTO_pow_hash ("gnunet-nse-proof-of-work", + GNUNET_CRYPTO_pow_hash ("gnunet-nse-proof", buf, sizeof(buf), &result); -- cgit v1.2.3