summaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorMartin Schanzenbach <mschanzenbach@posteo.de>2020-05-26 11:49:50 +0200
committerMartin Schanzenbach <mschanzenbach@posteo.de>2020-05-26 11:49:50 +0200
commit755cb5c76a53a8fd04408bcc080b1796e77162f5 (patch)
treedade5b7c84f74c76d85e226f7fbd0982494a0046 /src/util
parent870c6d65864ff8265c5e4863529df4a44f99e1b1 (diff)
remove argon2 dependency. Use limited libsodium argon2id function for GNS and NSE
Diffstat (limited to 'src/util')
-rw-r--r--src/util/Makefile.am1
-rw-r--r--src/util/crypto_pow.c25
-rw-r--r--src/util/gnunet-scrypt.c2
3 files changed, 14 insertions, 14 deletions
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 <argon2.h>
+#include <sodium.h>
/**
* 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);