aboutsummaryrefslogtreecommitdiff
path: root/src/nse
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2019-11-30 23:08:49 +0100
committerChristian Grothoff <christian@grothoff.org>2019-11-30 23:08:49 +0100
commit7cde88367991dcd1deca2485970c353fec5aff3e (patch)
treec2db008b530ac935a3375d562f80e67e85ba32b0 /src/nse
parentf536489f831c5fd243c22545be12a2cd0f88a84d (diff)
downloadgnunet-7cde88367991dcd1deca2485970c353fec5aff3e.tar.gz
gnunet-7cde88367991dcd1deca2485970c353fec5aff3e.zip
use new POW function consistently, also in revocation
Diffstat (limited to 'src/nse')
-rw-r--r--src/nse/gnunet-service-nse.c10
-rw-r--r--src/nse/perf_kdf.c31
2 files changed, 13 insertions, 28 deletions
diff --git a/src/nse/gnunet-service-nse.c b/src/nse/gnunet-service-nse.c
index 3f04314a6..f4d4e3e2f 100644
--- a/src/nse/gnunet-service-nse.c
+++ b/src/nse/gnunet-service-nse.c
@@ -805,7 +805,10 @@ check_proof_of_work (const struct GNUNET_CRYPTO_EddsaPublicKey *pkey,
805 GNUNET_memcpy (&buf[sizeof(val)], 805 GNUNET_memcpy (&buf[sizeof(val)],
806 pkey, 806 pkey,
807 sizeof(struct GNUNET_CRYPTO_EddsaPublicKey)); 807 sizeof(struct GNUNET_CRYPTO_EddsaPublicKey));
808 GNUNET_CRYPTO_pow_hash (buf, sizeof(buf), &result); 808 GNUNET_CRYPTO_pow_hash ("gnunet-nse-proof-of-work",
809 buf,
810 sizeof(buf),
811 &result);
809 return (count_leading_zeroes (&result) >= nse_work_required) ? GNUNET_YES 812 return (count_leading_zeroes (&result) >= nse_work_required) ? GNUNET_YES
810 : GNUNET_NO; 813 : GNUNET_NO;
811} 814}
@@ -857,7 +860,10 @@ find_proof (void *cls)
857 while ((counter != UINT64_MAX) && (i < ROUND_SIZE)) 860 while ((counter != UINT64_MAX) && (i < ROUND_SIZE))
858 { 861 {
859 GNUNET_memcpy (buf, &counter, sizeof(uint64_t)); 862 GNUNET_memcpy (buf, &counter, sizeof(uint64_t));
860 GNUNET_CRYPTO_pow_hash (buf, sizeof(buf), &result); 863 GNUNET_CRYPTO_pow_hash ("gnunet-nse-proof-of-work",
864 buf,
865 sizeof(buf),
866 &result);
861 if (nse_work_required <= count_leading_zeroes (&result)) 867 if (nse_work_required <= count_leading_zeroes (&result))
862 { 868 {
863 my_proof = counter; 869 my_proof = counter;
diff --git a/src/nse/perf_kdf.c b/src/nse/perf_kdf.c
index ec6dc7ff3..c5975aaf2 100644
--- a/src/nse/perf_kdf.c
+++ b/src/nse/perf_kdf.c
@@ -29,39 +29,18 @@
29#include <gauger.h> 29#include <gauger.h>
30 30
31 31
32/**
33 * Calculate the 'proof-of-work' hash (an expensive hash).
34 *
35 * @param buf data to hash
36 * @param buf_len number of bytes in 'buf'
37 * @param result where to write the resulting hash
38 */
39static void
40pow_hash (const void *buf,
41 size_t buf_len,
42 struct GNUNET_HashCode *result)
43{
44 GNUNET_break (0 ==
45 gcry_kdf_derive (buf, buf_len,
46 GCRY_KDF_SCRYPT,
47 1 /* subalgo */,
48 "gnunet-proof-of-work", strlen (
49 "gnunet-proof-of-work"),
50 2 /* iterations; keep cost of individual op small */,
51 sizeof(struct GNUNET_HashCode), result));
52}
53
54
55static void 32static void
56perfHash () 33perfHash ()
57{ 34{
58 struct GNUNET_HashCode hc; 35 struct GNUNET_HashCode hc;
59 unsigned int i;
60 char buf[64]; 36 char buf[64];
61 37
62 memset (buf, 1, sizeof(buf)); 38 memset (buf, 1, sizeof(buf));
63 for (i = 0; i < 1024; i++) 39 for (unsigned int i = 0; i < 1024; i++)
64 pow_hash (buf, sizeof(buf), &hc); 40 GNUNET_CRYPTO_pow_hash ("gnunet-proof-of-work",
41 buf,
42 sizeof(buf),
43 &hc);
65} 44}
66 45
67 46