/*
This file is part of GNUnet.
- (C) 2014 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2014 GNUnet e.V.
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
gcry_mpi_t tmp2;
unsigned int highbit;
- // determine how many operations we could allow, if the other number
- // has the same length.
+ /* determine how many operations we could allow, if the other number
+ has the same length. */
GNUNET_assert (NULL != (tmp1 = gcry_mpi_set_ui (NULL, 1)));
GNUNET_assert (NULL != (tmp2 = gcry_mpi_set_ui (NULL, 2)));
gcry_mpi_mul_2exp (tmp1, tmp1, GNUNET_CRYPTO_PAILLIER_BITS);
- // count number of possible operations
- // this would be nicer with gcry_mpi_get_nbits, however it does not return
- // the BITLENGTH of the given MPI's value, but the bits required
- // to represent the number as MPI.
+ /* count number of possible operations
+ this would be nicer with gcry_mpi_get_nbits, however it does not return
+ the BITLENGTH of the given MPI's value, but the bits required
+ to represent the number as MPI. */
for (possible_opts = -2; gcry_mpi_cmp (tmp1, m) > 0; possible_opts++)
gcry_mpi_div (tmp1, NULL, tmp1, tmp2, 0);
gcry_mpi_release (tmp1);
if (possible_opts < 1)
possible_opts = 0;
- //soft-cap by caller
+ /* soft-cap by caller */
possible_opts = (desired_ops < possible_opts)? desired_ops : possible_opts;
ciphertext->remaining_ops = htonl (possible_opts);
GNUNET_assert (0 != (c = gcry_mpi_new (0)));
gcry_mpi_mul (n_square, n, n);
- // generate r < n (without bias)
+ /* generate r < n (without bias) */
do {
gcry_mpi_randomize (r, highbit + 1, GCRY_STRONG_RANDOM);
}
while (gcry_mpi_cmp (r, n) >= 0);
- // c = (n+1)^m mod n^2
- gcry_mpi_add_ui (c, n, 1); // c = n + 1
- gcry_mpi_powm (c, c, m, n_square); // c = (n+1)^m mod n^2
- // r <- r^n mod n^2
- gcry_mpi_powm (r, r, n, n_square); // r = r^n mod n^2
- // c <- r*c mod n^2
- gcry_mpi_mulm (c, r, c, n_square); // c = r*c mod n^2
+ /* c = (n+1)^m mod n^2 */
+ /* c = n + 1 */
+ gcry_mpi_add_ui (c, n, 1);
+ /* c = (n+1)^m mod n^2 */
+ gcry_mpi_powm (c, c, m, n_square);
+ /* r <- r^n mod n^2 */
+ gcry_mpi_powm (r, r, n, n_square);
+ /* c <- r*c mod n^2 */
+ gcry_mpi_mulm (c, r, c, n_square);
GNUNET_CRYPTO_mpi_print_unsigned (ciphertext->bits,
sizeof ciphertext->bits,
}
/* generate r < n (without bias) */
- GNUNET_assert (0 != (r = gcry_mpi_new (0)));
+ GNUNET_assert (NULL != (r = gcry_mpi_new (0)));
do {
gcry_mpi_randomize (r, highbit + 1, GCRY_STRONG_RANDOM);
}
int32_t o1;
int32_t o2;
- o1 = ntohl (c1->remaining_ops);
- o2 = ntohl (c2->remaining_ops);
+ o1 = (int32_t) ntohl (c1->remaining_ops);
+ o2 = (int32_t) ntohl (c2->remaining_ops);
if ( (0 >= o1) || (0 >= o2) )
+ {
+ GNUNET_break_op (0);
return GNUNET_SYSERR;
+ }
GNUNET_CRYPTO_mpi_scan_unsigned (&a,
c1->bits,