diff options
author | Florian Dold <florian.dold@gmail.com> | 2014-02-03 15:25:01 +0000 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2014-02-03 15:25:01 +0000 |
commit | 1559917beb213bd0ab794bc7a450851b34117a82 (patch) | |
tree | 085ce32b7738bb3697b8a82579f67912b36bcc02 /src/util/test_crypto_paillier.c | |
parent | da30ec65a28e5ec08dc9b1b7e35927a0571a4164 (diff) | |
download | gnunet-1559917beb213bd0ab794bc7a450851b34117a82.tar.gz gnunet-1559917beb213bd0ab794bc7a450851b34117a82.zip |
- test paillier with random plaintext
Diffstat (limited to 'src/util/test_crypto_paillier.c')
-rw-r--r-- | src/util/test_crypto_paillier.c | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/src/util/test_crypto_paillier.c b/src/util/test_crypto_paillier.c index 2fe7b6de0..b77100642 100644 --- a/src/util/test_crypto_paillier.c +++ b/src/util/test_crypto_paillier.c | |||
@@ -30,7 +30,38 @@ | |||
30 | 30 | ||
31 | 31 | ||
32 | int | 32 | int |
33 | main (int argc, char *argv[]) | 33 | test_crypto () |
34 | { | ||
35 | gcry_mpi_t plaintext; | ||
36 | gcry_mpi_t plaintext_result; | ||
37 | struct GNUNET_CRYPTO_PaillierCiphertext ciphertext; | ||
38 | struct GNUNET_CRYPTO_PaillierPublicKey public_key; | ||
39 | struct GNUNET_CRYPTO_PaillierPrivateKey private_key; | ||
40 | |||
41 | GNUNET_CRYPTO_paillier_create (&public_key, &private_key); | ||
42 | |||
43 | GNUNET_assert (NULL != (plaintext = gcry_mpi_new (0))); | ||
44 | GNUNET_assert (NULL != (plaintext_result = gcry_mpi_new (0))); | ||
45 | |||
46 | gcry_mpi_randomize (plaintext, GNUNET_CRYPTO_PAILLIER_BITS / 2, GCRY_WEAK_RANDOM); | ||
47 | |||
48 | GNUNET_CRYPTO_paillier_encrypt (&public_key, plaintext, &ciphertext); | ||
49 | |||
50 | GNUNET_CRYPTO_paillier_decrypt (&private_key, &public_key, | ||
51 | &ciphertext, plaintext_result); | ||
52 | |||
53 | if (0 != gcry_mpi_cmp (plaintext, plaintext_result)) | ||
54 | { | ||
55 | printf ("paillier failed with plaintext of size %u\n", gcry_mpi_get_nbits (plaintext)); | ||
56 | gcry_log_debugmpi("\n", plaintext); | ||
57 | gcry_log_debugmpi("\n", plaintext_result); | ||
58 | return 1; | ||
59 | } | ||
60 | return 0; | ||
61 | } | ||
62 | |||
63 | int | ||
64 | test_hom() | ||
34 | { | 65 | { |
35 | int ret; | 66 | int ret; |
36 | gcry_mpi_t m1; | 67 | gcry_mpi_t m1; |
@@ -86,4 +117,16 @@ main (int argc, char *argv[]) | |||
86 | return 0; | 117 | return 0; |
87 | } | 118 | } |
88 | 119 | ||
89 | /* end of test_crypto_paillier.c */ \ No newline at end of file | 120 | |
121 | int | ||
122 | main (int argc, char *argv[]) | ||
123 | { | ||
124 | int ret; | ||
125 | ret = test_crypto (); | ||
126 | if (0 != ret) | ||
127 | return ret; | ||
128 | ret = test_hom (); | ||
129 | return ret; | ||
130 | } | ||
131 | |||
132 | /* end of test_crypto_paillier.c */ | ||