diff options
author | Christian Fuchs <christian.fuchs@cfuchs.net> | 2014-01-29 14:28:07 +0000 |
---|---|---|
committer | Christian Fuchs <christian.fuchs@cfuchs.net> | 2014-01-29 14:28:07 +0000 |
commit | 1d5ab4f4f4fe1d86a10cd9bd95464dcfbff3da8e (patch) | |
tree | e959ae4772e51f32bd11a8fff1921e4dff1d6cb9 /src/util/crypto_paillier.c | |
parent | ecaa90d24cde249ab9c739713bfc37f6b108b7e7 (diff) | |
download | gnunet-1d5ab4f4f4fe1d86a10cd9bd95464dcfbff3da8e.tar.gz gnunet-1d5ab4f4f4fe1d86a10cd9bd95464dcfbff3da8e.zip |
- re-added testcase for crypto-paillier
- fixed remaining pailier-test bug
- now: achieve world domination or off to new shores
Diffstat (limited to 'src/util/crypto_paillier.c')
-rw-r--r-- | src/util/crypto_paillier.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/util/crypto_paillier.c b/src/util/crypto_paillier.c index e83bcb4bb..8a9ea5040 100644 --- a/src/util/crypto_paillier.c +++ b/src/util/crypto_paillier.c | |||
@@ -45,8 +45,8 @@ GNUNET_CRYPTO_paillier_create (struct GNUNET_CRYPTO_PaillierPublicKey *public_ke | |||
45 | gcry_mpi_t phi; | 45 | gcry_mpi_t phi; |
46 | gcry_mpi_t n; | 46 | gcry_mpi_t n; |
47 | 47 | ||
48 | GNUNET_assert (NULL != (phi = gcry_mpi_new (GNUNET_CRYPTO_PAILLIER_BITS))); | 48 | GNUNET_assert (NULL != (phi = gcry_mpi_new (0))); |
49 | GNUNET_assert (NULL != (n = gcry_mpi_new (GNUNET_CRYPTO_PAILLIER_BITS))); | 49 | GNUNET_assert (NULL != (n = gcry_mpi_new (0))); |
50 | 50 | ||
51 | p = q = NULL; | 51 | p = q = NULL; |
52 | 52 | ||
@@ -113,15 +113,14 @@ GNUNET_CRYPTO_paillier_encrypt (const struct GNUNET_CRYPTO_PaillierPublicKey *pu | |||
113 | GNUNET_assert (NULL != (tmp1 = gcry_mpi_set_ui(NULL, 1))); | 113 | GNUNET_assert (NULL != (tmp1 = gcry_mpi_set_ui(NULL, 1))); |
114 | GNUNET_assert (NULL != (tmp2 = gcry_mpi_set_ui(NULL, 2))); | 114 | GNUNET_assert (NULL != (tmp2 = gcry_mpi_set_ui(NULL, 2))); |
115 | gcry_mpi_mul_2exp(tmp1,tmp1,GNUNET_CRYPTO_PAILLIER_BITS); | 115 | gcry_mpi_mul_2exp(tmp1,tmp1,GNUNET_CRYPTO_PAILLIER_BITS); |
116 | for (possible_opts = 0; gcry_mpi_cmp(tmp1,m) > 0; possible_opts++){ | 116 | |
117 | gcry_mpi_div(tmp1, NULL, tmp1, tmp2 ,0); | 117 | for (possible_opts = -1; gcry_mpi_cmp(tmp1, m) > 0; possible_opts++){ |
118 | gcry_mpi_div(tmp1, NULL, tmp1, tmp2, 0); | ||
118 | } | 119 | } |
119 | gcry_mpi_release(tmp1); | 120 | gcry_mpi_release(tmp1); |
120 | gcry_mpi_release(tmp2); | 121 | gcry_mpi_release(tmp2); |
121 | if (0 >= possible_opts) | 122 | if (possible_opts < 1) |
122 | { | ||
123 | return -1; | 123 | return -1; |
124 | } | ||
125 | else | 124 | else |
126 | // reduce by one to guarantee the final homomorphic operation | 125 | // reduce by one to guarantee the final homomorphic operation |
127 | ciphertext->remaining_ops = htonl(possible_opts); | 126 | ciphertext->remaining_ops = htonl(possible_opts); |