aboutsummaryrefslogtreecommitdiff
path: root/src/nse/perf_kdf.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nse/perf_kdf.c')
-rw-r--r--src/nse/perf_kdf.c50
1 files changed, 25 insertions, 25 deletions
diff --git a/src/nse/perf_kdf.c b/src/nse/perf_kdf.c
index 5178f178b..bf4dbe0b2 100644
--- a/src/nse/perf_kdf.c
+++ b/src/nse/perf_kdf.c
@@ -11,12 +11,12 @@
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Affero General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU Affero General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>. 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 17
18 SPDX-License-Identifier: AGPL3.0-or-later 18 SPDX-License-Identifier: AGPL3.0-or-later
19*/ 19 */
20 20
21/** 21/**
22 * @author Christian Grothoff 22 * @author Christian Grothoff
@@ -38,47 +38,47 @@
38 * @param result where to write the resulting hash 38 * @param result where to write the resulting hash
39 */ 39 */
40static void 40static void
41pow_hash (const void *buf, 41pow_hash(const void *buf,
42 size_t buf_len, 42 size_t buf_len,
43 struct GNUNET_HashCode *result) 43 struct GNUNET_HashCode *result)
44{ 44{
45 GNUNET_break (0 == 45 GNUNET_break(0 ==
46 gcry_kdf_derive (buf, buf_len, 46 gcry_kdf_derive(buf, buf_len,
47 GCRY_KDF_SCRYPT, 47 GCRY_KDF_SCRYPT,
48 1 /* subalgo */, 48 1 /* subalgo */,
49 "gnunet-proof-of-work", strlen ("gnunet-proof-of-work"), 49 "gnunet-proof-of-work", strlen("gnunet-proof-of-work"),
50 2 /* iterations; keep cost of individual op small */, 50 2 /* iterations; keep cost of individual op small */,
51 sizeof (struct GNUNET_HashCode), result)); 51 sizeof(struct GNUNET_HashCode), result));
52} 52}
53 53
54 54
55static void 55static void
56perfHash () 56perfHash()
57{ 57{
58 struct GNUNET_HashCode hc; 58 struct GNUNET_HashCode hc;
59 unsigned int i; 59 unsigned int i;
60 char buf[64]; 60 char buf[64];
61 61
62 memset (buf, 1, sizeof (buf)); 62 memset(buf, 1, sizeof(buf));
63 for (i = 0; i < 1024; i++) 63 for (i = 0; i < 1024; i++)
64 pow_hash (buf, sizeof (buf), &hc); 64 pow_hash(buf, sizeof(buf), &hc);
65} 65}
66 66
67 67
68int 68int
69main (int argc, char *argv[]) 69main(int argc, char *argv[])
70{ 70{
71 struct GNUNET_TIME_Absolute start; 71 struct GNUNET_TIME_Absolute start;
72 72
73 start = GNUNET_TIME_absolute_get (); 73 start = GNUNET_TIME_absolute_get();
74 perfHash (); 74 perfHash();
75 printf ("Hash perf took %s\n", 75 printf("Hash perf took %s\n",
76 GNUNET_STRINGS_relative_time_to_string (GNUNET_TIME_absolute_get_duration (start), 76 GNUNET_STRINGS_relative_time_to_string(GNUNET_TIME_absolute_get_duration(start),
77 GNUNET_YES)); 77 GNUNET_YES));
78 GAUGER ("NSE", "Proof-of-work hashing", 78 GAUGER("NSE", "Proof-of-work hashing",
79 1024.0 / (1.0 + 79 1024.0 / (1.0 +
80 GNUNET_TIME_absolute_get_duration 80 GNUNET_TIME_absolute_get_duration
81 (start).rel_value_us / 1000.0), "hashes/ms"); 81 (start).rel_value_us / 1000.0), "hashes/ms");
82 return 0; 82 return 0;
83} 83}
84 84