From ea544ab2cae7f4f969a705d33d10da1a004cbd70 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sat, 30 Nov 2019 22:43:08 +0100 Subject: create crypto_pow, in preparation for #3795 --- src/nse/gnunet-service-nse.c | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) (limited to 'src/nse') diff --git a/src/nse/gnunet-service-nse.c b/src/nse/gnunet-service-nse.c index 3e72be1c5..3f04314a6 100644 --- a/src/nse/gnunet-service-nse.c +++ b/src/nse/gnunet-service-nse.c @@ -487,29 +487,6 @@ get_delay_randomization (uint32_t matching_bits) } -/** - * Calculate the 'proof-of-work' hash (an expensive hash). - * - * @param buf data to hash - * @param buf_len number of bytes in @a buf - * @param result where to write the resulting hash - */ -static void -pow_hash (const void *buf, size_t buf_len, struct GNUNET_HashCode *result) -{ - GNUNET_break ( - 0 == gcry_kdf_derive (buf, - buf_len, - GCRY_KDF_SCRYPT, - 1 /* subalgo */, - "gnunet-proof-of-work", - strlen ("gnunet-proof-of-work"), - 2 /* iterations; keep cost of individual op small */, - sizeof(struct GNUNET_HashCode), - result)); -} - - /** * Get the number of matching bits that the given timestamp has to the given peer ID. * @@ -828,7 +805,7 @@ check_proof_of_work (const struct GNUNET_CRYPTO_EddsaPublicKey *pkey, GNUNET_memcpy (&buf[sizeof(val)], pkey, sizeof(struct GNUNET_CRYPTO_EddsaPublicKey)); - pow_hash (buf, sizeof(buf), &result); + GNUNET_CRYPTO_pow_hash (buf, sizeof(buf), &result); return (count_leading_zeroes (&result) >= nse_work_required) ? GNUNET_YES : GNUNET_NO; } @@ -880,7 +857,7 @@ find_proof (void *cls) while ((counter != UINT64_MAX) && (i < ROUND_SIZE)) { GNUNET_memcpy (buf, &counter, sizeof(uint64_t)); - pow_hash (buf, sizeof(buf), &result); + GNUNET_CRYPTO_pow_hash (buf, sizeof(buf), &result); if (nse_work_required <= count_leading_zeroes (&result)) { my_proof = counter; -- cgit v1.2.3