diff options
author | Christian Grothoff <christian@grothoff.org> | 2018-05-17 12:26:30 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2018-05-17 12:26:30 +0200 |
commit | dd8289771b35e5ea36ebdcbfd5b09b599bd59c67 (patch) | |
tree | e79e565302867ab16d9ed8560793919094288716 /src/util/test_crypto_ecdh_eddsa.c | |
parent | 3175cde841a8a7836fcf74a3e1b804c71a3aa153 (diff) | |
download | gnunet-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.c | 44 |
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 | "."); |