aboutsummaryrefslogtreecommitdiff
path: root/src/util/test_crypto_ecdh_eddsa.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2018-05-17 12:26:30 +0200
committerChristian Grothoff <christian@grothoff.org>2018-05-17 12:26:30 +0200
commitdd8289771b35e5ea36ebdcbfd5b09b599bd59c67 (patch)
treee79e565302867ab16d9ed8560793919094288716 /src/util/test_crypto_ecdh_eddsa.c
parent3175cde841a8a7836fcf74a3e1b804c71a3aa153 (diff)
downloadgnunet-dd8289771b35e5ea36ebdcbfd5b09b599bd59c67.tar.gz
gnunet-dd8289771b35e5ea36ebdcbfd5b09b599bd59c67.zip
work-around for crypto bug (to be documented more)
Diffstat (limited to 'src/util/test_crypto_ecdh_eddsa.c')
-rw-r--r--src/util/test_crypto_ecdh_eddsa.c44
1 files changed, 24 insertions, 20 deletions
diff --git a/src/util/test_crypto_ecdh_eddsa.c b/src/util/test_crypto_ecdh_eddsa.c
index 246cec27f..356c64bf1 100644
--- a/src/util/test_crypto_ecdh_eddsa.c
+++ b/src/util/test_crypto_ecdh_eddsa.c
@@ -36,31 +36,35 @@ test_ecdh()
36 struct GNUNET_CRYPTO_EcdhePrivateKey *priv_ecdh; 36 struct GNUNET_CRYPTO_EcdhePrivateKey *priv_ecdh;
37 struct GNUNET_CRYPTO_EddsaPublicKey id1; 37 struct GNUNET_CRYPTO_EddsaPublicKey id1;
38 struct GNUNET_CRYPTO_EcdhePublicKey id2; 38 struct GNUNET_CRYPTO_EcdhePublicKey id2;
39 struct GNUNET_HashCode dh[3]; 39 struct GNUNET_HashCode dh[2];
40 40
41 /* Generate keys */ 41 /* Generate keys */
42 priv_dsa = GNUNET_CRYPTO_eddsa_key_create (); 42 priv_dsa = GNUNET_CRYPTO_eddsa_key_create ();
43 priv_ecdh = GNUNET_CRYPTO_ecdhe_key_create ();
44 /* Extract public keys */
45 GNUNET_CRYPTO_eddsa_key_get_public (priv_dsa, 43 GNUNET_CRYPTO_eddsa_key_get_public (priv_dsa,
46 &id1); 44 &id1);
47 GNUNET_CRYPTO_ecdhe_key_get_public (priv_ecdh, 45 for (unsigned int j=0;j<10;j++)
48 &id2); 46 {
49 /* Do ECDH */ 47 fprintf (stderr, ",");
50 GNUNET_assert (GNUNET_OK == 48 priv_ecdh = GNUNET_CRYPTO_ecdhe_key_create ();
51 GNUNET_CRYPTO_eddsa_ecdh (priv_dsa, 49 /* Extract public keys */
52 &id2, 50 GNUNET_CRYPTO_ecdhe_key_get_public (priv_ecdh,
53 &dh[0])); 51 &id2);
54 GNUNET_assert (GNUNET_OK == 52 /* Do ECDH */
55 GNUNET_CRYPTO_ecdh_eddsa (priv_ecdh, 53 GNUNET_assert (GNUNET_OK ==
56 &id1, 54 GNUNET_CRYPTO_eddsa_ecdh (priv_dsa,
57 &dh[1])); 55 &id2,
58 /* Check that both DH results are equal. */ 56 &dh[0]));
59 GNUNET_assert (0 == memcmp (&dh[0], 57 GNUNET_assert (GNUNET_OK ==
60 &dh[1], 58 GNUNET_CRYPTO_ecdh_eddsa (priv_ecdh,
61 sizeof (struct GNUNET_HashCode))); 59 &id1,
60 &dh[1]));
61 /* Check that both DH results are equal. */
62 GNUNET_assert (0 == memcmp (&dh[0],
63 &dh[1],
64 sizeof (struct GNUNET_HashCode)));
65 GNUNET_free (priv_ecdh);
66 }
62 GNUNET_free (priv_dsa); 67 GNUNET_free (priv_dsa);
63 GNUNET_free (priv_ecdh);
64 return 0; 68 return 0;
65} 69}
66 70
@@ -78,7 +82,7 @@ main (int argc, char *argv[])
78 if (getenv ("GNUNET_GCRYPT_DEBUG")) 82 if (getenv ("GNUNET_GCRYPT_DEBUG"))
79 gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1u, 0); 83 gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1u, 0);
80 GNUNET_log_setup ("test-crypto-ecdh-eddsa", "WARNING", NULL); 84 GNUNET_log_setup ("test-crypto-ecdh-eddsa", "WARNING", NULL);
81 for (unsigned int i=0;i<10000;i++) 85 for (unsigned int i=0;i<100;i++)
82 { 86 {
83 fprintf (stderr, 87 fprintf (stderr,
84 "."); 88 ".");