/*
This file is part of GNUnet.
- Copyright (C) 2015 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2015 GNUnet e.V.
- GNUnet is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 3, or (at your
- option) any later version.
+ GNUnet is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Affero General Public License as published
+ by the Free Software Foundation, either version 3 of the License,
+ or (at your option) any later version.
GNUnet is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
+ Affero General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-*/
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ SPDX-License-Identifier: AGPL3.0-or-later
+ */
/**
* @author Bart Polot
#include "gnunet_util_lib.h"
#include <gauger.h>
-struct GNUNET_TIME_Absolute start;
-const int l = 50;
+static struct GNUNET_TIME_Absolute start;
-struct TestSig {
+#define l 500
+
+struct TestSig
+{
struct GNUNET_CRYPTO_EccSignaturePurpose purp;
struct GNUNET_HashCode h;
struct GNUNET_CRYPTO_EddsaSignature sig;
};
+
static void
-log_duration (const char *system, const char *description)
+log_duration (const char *cryptosystem,
+ const char *description)
{
struct GNUNET_TIME_Relative t;
char s[64];
- sprintf (s, "%6s %15s", system, description);
+ sprintf (s, "%6s %15s", cryptosystem, description);
t = GNUNET_TIME_absolute_get_duration (start);
t = GNUNET_TIME_relative_divide (t, l);
- FPRINTF (stdout, "%s: %10s\n", s,
- GNUNET_STRINGS_relative_time_to_string(t, GNUNET_NO));
-
+ fprintf (stdout,
+ "%s: %10s\n",
+ s,
+ GNUNET_STRINGS_relative_time_to_string (t,
+ GNUNET_NO));
GAUGER ("UTIL", s, t.rel_value_us, "us");
}
+
int
main (int argc, char *argv[])
{
struct GNUNET_CRYPTO_EddsaPublicKey dspub[l];
struct TestSig sig[l];
- start = GNUNET_TIME_absolute_get();
+ start = GNUNET_TIME_absolute_get ();
for (i = 0; i < l; i++)
{
sig[i].purp.purpose = 0;
- sig[i].purp.size = htonl (sizeof (struct GNUNET_CRYPTO_EccSignaturePurpose)
- + sizeof (struct GNUNET_HashCode));
+ sig[i].purp.size = htonl (sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose)
+ + sizeof(struct GNUNET_HashCode));
GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_WEAK,
- &sig[i].h, sizeof (&sig[0].h));
+ &sig[i].h,
+ sizeof(sig[i].h));
}
log_duration ("", "Init");
- start = GNUNET_TIME_absolute_get();
+ start = GNUNET_TIME_absolute_get ();
for (i = 0; i < l; i++)
- eddsa[i] = GNUNET_CRYPTO_eddsa_key_create();
+ eddsa[i] = GNUNET_CRYPTO_eddsa_key_create ();
log_duration ("EdDSA", "create key");
- start = GNUNET_TIME_absolute_get();
+ start = GNUNET_TIME_absolute_get ();
for (i = 0; i < l; i++)
GNUNET_CRYPTO_eddsa_key_get_public (eddsa[i], &dspub[i]);
- log_duration ("EdDSA", "get pubilc");
+ log_duration ("EdDSA", "get public");
- start = GNUNET_TIME_absolute_get();
+ start = GNUNET_TIME_absolute_get ();
for (i = 0; i < l; i++)
- GNUNET_CRYPTO_eddsa_sign (eddsa[i], &sig[i].purp, &sig[i].sig);
+ GNUNET_assert (GNUNET_OK ==
+ GNUNET_CRYPTO_eddsa_sign (eddsa[i],
+ &sig[i].purp,
+ &sig[i].sig));
log_duration ("EdDSA", "sign HashCode");
- start = GNUNET_TIME_absolute_get();
+ start = GNUNET_TIME_absolute_get ();
for (i = 0; i < l; i++)
- GNUNET_CRYPTO_eddsa_verify (0, &sig[i].purp, &sig[i].sig, &dspub[i]);
+ GNUNET_assert (GNUNET_OK ==
+ GNUNET_CRYPTO_eddsa_verify (0,
+ &sig[i].purp,
+ &sig[i].sig,
+ &dspub[i]));
log_duration ("EdDSA", "verify HashCode");
- start = GNUNET_TIME_absolute_get();
+ start = GNUNET_TIME_absolute_get ();
for (i = 0; i < l; i++)
- ecdhe[i] = GNUNET_CRYPTO_ecdhe_key_create();
+ ecdhe[i] = GNUNET_CRYPTO_ecdhe_key_create ();
log_duration ("ECDH", "create key");
- start = GNUNET_TIME_absolute_get();
+ start = GNUNET_TIME_absolute_get ();
for (i = 0; i < l; i++)
GNUNET_CRYPTO_ecdhe_key_get_public (ecdhe[i], &dhpub[i]);
log_duration ("ECDH", "get public");
- start = GNUNET_TIME_absolute_get();
- for (i = 0; i < l; i+=2)
+ start = GNUNET_TIME_absolute_get ();
+ for (i = 0; i < l - 1; i += 2)
{
- GNUNET_CRYPTO_ecc_ecdh (ecdhe[i], &dhpub[i+1], &sig[i].h);
- GNUNET_CRYPTO_ecc_ecdh (ecdhe[i+1], &dhpub[i], &sig[i+i].h);
+ GNUNET_CRYPTO_ecc_ecdh (ecdhe[i], &dhpub[i + 1], &sig[i].h);
+ GNUNET_CRYPTO_ecc_ecdh (ecdhe[i + 1], &dhpub[i], &sig[i + 1].h);
}
log_duration ("ECDH", "do DH");
return 0;
}
+
/* end of perf_crypto_asymmetric.c */