summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2011-12-12 17:29:57 +0100
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2011-12-12 17:29:57 +0100
commit4b0c8268003bc16a374f7ab567bea29d93e2d081 (patch)
treeccf6382530150cc86b851f8daaf60bbaa9159710 /lib
parentbd617810e4338294aa0c6b74da81274bae045f10 (diff)
downloadgnutls-4b0c8268003bc16a374f7ab567bea29d93e2d081.tar.gz
small cleanups.
Diffstat (limited to 'lib')
-rw-r--r--lib/nettle/mpi.c27
1 files changed, 14 insertions, 13 deletions
diff --git a/lib/nettle/mpi.c b/lib/nettle/mpi.c
index 292af1d6c9..322811daf7 100644
--- a/lib/nettle/mpi.c
+++ b/lib/nettle/mpi.c
@@ -415,7 +415,7 @@ wrap_nettle_prime_check (bigint_t pp)
inline static int
gen_group (mpz_t * prime, mpz_t * generator, unsigned int nbits)
{
- mpz_t q, w;
+ mpz_t q, w, r;
unsigned int p_bytes = nbits / 8;
opaque *buffer = NULL;
unsigned int q_bytes, w_bytes, r_bytes, w_bits;
@@ -458,6 +458,7 @@ gen_group (mpz_t * prime, mpz_t * generator, unsigned int nbits)
mpz_init (*generator);
mpz_init (q);
mpz_init (w);
+ mpz_init (r);
/* search for a prime. We are not that unlucky so search
* forever.
@@ -535,7 +536,7 @@ gen_group (mpz_t * prime, mpz_t * generator, unsigned int nbits)
mpz_mul_ui (w, w, 2); /* w = w*2 */
mpz_fdiv_r (w, w, *prime);
-
+
for (;;)
{
ret = _gnutls_rnd (GNUTLS_RND_NONCE, buffer, r_bytes);
@@ -545,11 +546,11 @@ gen_group (mpz_t * prime, mpz_t * generator, unsigned int nbits)
return ret;
}
- nettle_mpz_set_str_256_u (q, r_bytes, buffer);
- mpz_fdiv_r (q, q, *prime);
+ nettle_mpz_set_str_256_u (r, r_bytes, buffer);
+ mpz_fdiv_r (r, r, *prime);
/* check if r^w mod n != 1 mod n */
- mpz_powm (*generator, q, w, *prime);
+ mpz_powm (*generator, r, w, *prime);
if (mpz_cmp_ui (*generator, 1) == 0)
continue;
@@ -559,20 +560,20 @@ gen_group (mpz_t * prime, mpz_t * generator, unsigned int nbits)
_gnutls_debug_log ("Found generator g of %u bits\n",
wrap_nettle_mpi_get_nbits (generator));
- _gnutls_debug_log ("Prime n is of %u bits\n",
+ _gnutls_debug_log ("Prime n is %u bits\n",
wrap_nettle_mpi_get_nbits (prime));
- mpz_clear (q);
- mpz_clear (w);
- gnutls_free (buffer);
-
- return 0;
+ ret = 0;
+ goto exit;
fail:
- mpz_clear (q);
- mpz_clear (w);
mpz_clear (*prime);
mpz_clear (*generator);
+
+exit:
+ mpz_clear (q);
+ mpz_clear (w);
+ mpz_clear (r);
gnutls_free (buffer);
return ret;