aboutsummaryrefslogtreecommitdiff
path: root/src/util/test_crypto_paillier.c
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2014-02-03 15:25:01 +0000
committerFlorian Dold <florian.dold@gmail.com>2014-02-03 15:25:01 +0000
commit1559917beb213bd0ab794bc7a450851b34117a82 (patch)
tree085ce32b7738bb3697b8a82579f67912b36bcc02 /src/util/test_crypto_paillier.c
parentda30ec65a28e5ec08dc9b1b7e35927a0571a4164 (diff)
downloadgnunet-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.c47
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
32int 32int
33main (int argc, char *argv[]) 33test_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
63int
64test_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
121int
122main (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 */