diff options
Diffstat (limited to 'cipher')
-rw-r--r-- | cipher/ChangeLog | 16 | ||||
-rw-r--r-- | cipher/Makefile.am | 7 | ||||
-rw-r--r-- | cipher/dsa.c | 6 | ||||
-rw-r--r-- | cipher/elgamal.c | 18 | ||||
-rw-r--r-- | cipher/primegen.c | 6 | ||||
-rw-r--r-- | cipher/rsa.c | 22 |
6 files changed, 48 insertions, 27 deletions
diff --git a/cipher/ChangeLog b/cipher/ChangeLog index d504a16f8..9f7d3b366 100644 --- a/cipher/ChangeLog +++ b/cipher/ChangeLog @@ -1,3 +1,19 @@ +2006-12-11 Werner Koch <[email protected]> + + + * elgamal.c (test_keys): Use new mpi_nlimb_hint_from_nbits + function. This also rounds up the value. + (generate): Use new mpi_nlimb_hint_from_nbits function. + * rsa.c (test_keys): Ditto. + (generate): Ditto. + (rsa_verify): Ditto. + * primegen.c (generate_elg_prime): Ditto. + (gen_prime): Ditto. + * dsa.c (test_keys): Ditto. This also rounds up the value. + + * Makefile.am (AM_CPPFLAGS): Use instead of INCLUDES. define + GNUPG_LIBDIR. + 2006-11-03 Werner Koch <[email protected]> * random.c [HAVE_GETTIMEOFDAY]: Included sys/time.h and not diff --git a/cipher/Makefile.am b/cipher/Makefile.am index 0aef60579..3e12c1f18 100644 --- a/cipher/Makefile.am +++ b/cipher/Makefile.am @@ -19,7 +19,12 @@ ## Process this file with automake to produce Makefile.in -INCLUDES = -I.. -I$(top_srcdir)/include -I$(top_srcdir)/intl +AM_CPPFLAGS = -I.. -I$(top_srcdir)/include -I$(top_srcdir)/intl + +if ! HAVE_DOSISH_SYSTEM +AM_CPPFLAGS += -DGNUPG_LIBDIR="\"$(libdir)/@PACKAGE@\"" +endif + noinst_LIBRARIES = libcipher.a diff --git a/cipher/dsa.c b/cipher/dsa.c index 9745656f4..e32d90564 100644 --- a/cipher/dsa.c +++ b/cipher/dsa.c @@ -138,9 +138,9 @@ static void test_keys( DSA_secret_key *sk, unsigned qbits ) { DSA_public_key pk; - MPI test = mpi_alloc( qbits / BITS_PER_MPI_LIMB ); - MPI out1_a = mpi_alloc( qbits / BITS_PER_MPI_LIMB ); - MPI out1_b = mpi_alloc( qbits / BITS_PER_MPI_LIMB ); + MPI test = mpi_alloc ( mpi_nlimb_hint_from_nbits (qbits) ); + MPI out1_a = mpi_alloc ( mpi_nlimb_hint_from_nbits (qbits) ); + MPI out1_b = mpi_alloc( mpi_nlimb_hint_from_nbits (qbits) ); pk.p = sk->p; pk.q = sk->q; diff --git a/cipher/elgamal.c b/cipher/elgamal.c index 3c37a283e..eb701164d 100644 --- a/cipher/elgamal.c +++ b/cipher/elgamal.c @@ -118,13 +118,13 @@ wiener_map( unsigned int n ) } static void -test_keys( ELG_secret_key *sk, unsigned nbits ) +test_keys( ELG_secret_key *sk, unsigned int nbits ) { ELG_public_key pk; MPI test = mpi_alloc( 0 ); - MPI out1_a = mpi_alloc( nbits / BITS_PER_MPI_LIMB ); - MPI out1_b = mpi_alloc( nbits / BITS_PER_MPI_LIMB ); - MPI out2 = mpi_alloc( nbits / BITS_PER_MPI_LIMB ); + MPI out1_a = mpi_alloc ( mpi_nlimb_hint_from_nbits (nbits) ); + MPI out1_b = mpi_alloc ( mpi_nlimb_hint_from_nbits (nbits) ); + MPI out2 = mpi_alloc ( mpi_nlimb_hint_from_nbits (nbits) ); pk.p = sk->p; pk.g = sk->g; @@ -244,9 +244,9 @@ generate( ELG_secret_key *sk, unsigned int nbits, MPI **ret_factors ) unsigned int xbits; byte *rndbuf; - p_min1 = mpi_alloc( (nbits+BITS_PER_MPI_LIMB-1)/BITS_PER_MPI_LIMB ); - temp = mpi_alloc( (nbits+BITS_PER_MPI_LIMB-1)/BITS_PER_MPI_LIMB ); - qbits = wiener_map( nbits ); + p_min1 = mpi_alloc ( mpi_nlimb_hint_from_nbits (nbits) ); + temp = mpi_alloc ( mpi_nlimb_hint_from_nbits (nbits) ); + qbits = wiener_map ( nbits ); if( qbits & 1 ) /* better have a even one */ qbits++; g = mpi_alloc(1); @@ -271,7 +271,7 @@ generate( ELG_secret_key *sk, unsigned int nbits, MPI **ret_factors ) xbits = qbits * 3 / 2; if( xbits >= nbits ) BUG(); - x = mpi_alloc_secure( xbits/BITS_PER_MPI_LIMB ); + x = mpi_alloc_secure ( mpi_nlimb_hint_from_nbits (xbits) ); if( DBG_CIPHER ) log_debug("choosing a random x of size %u", xbits ); rndbuf = NULL; @@ -296,7 +296,7 @@ generate( ELG_secret_key *sk, unsigned int nbits, MPI **ret_factors ) } while( !( mpi_cmp_ui( x, 0 )>0 && mpi_cmp( x, p_min1 )<0 ) ); xfree(rndbuf); - y = mpi_alloc(nbits/BITS_PER_MPI_LIMB); + y = mpi_alloc ( mpi_nlimb_hint_from_nbits (nbits) ); mpi_powm( y, g, x, p ); if( DBG_CIPHER ) { diff --git a/cipher/primegen.c b/cipher/primegen.c index 0662d39e0..7eccea674 100644 --- a/cipher/primegen.c +++ b/cipher/primegen.c @@ -132,7 +132,7 @@ generate_elg_prime( int mode, unsigned pbits, unsigned qbits, if( DBG_CIPHER ) log_debug("gen prime: pbits=%u qbits=%u fbits=%u/%u n=%d\n", pbits, req_qbits, qbits, fbits, n ); - prime = mpi_alloc( (pbits + BITS_PER_MPI_LIMB - 1) / BITS_PER_MPI_LIMB ); + prime = mpi_alloc ( mpi_nlimb_hint_from_nbits (pbits) ); q = gen_prime( qbits, 0, 0 ); q_factor = mode==1? gen_prime( req_qbits, 0, 0 ) : NULL; @@ -318,8 +318,8 @@ gen_prime( unsigned int nbits, int secret, int randomlevel ) no_of_small_prime_numbers++; } mods = xmalloc( no_of_small_prime_numbers * sizeof *mods ); - /* make nbits fit into MPI implementation */ - nlimbs = (nbits + BITS_PER_MPI_LIMB - 1) / BITS_PER_MPI_LIMB; + /* Make nbits fit into MPI implementation. */ + nlimbs = mpi_nlimb_hint_from_nbits (nbits); val_2 = mpi_alloc_set_ui( 2 ); val_3 = mpi_alloc_set_ui( 3); prime = secret? mpi_alloc_secure( nlimbs ): mpi_alloc( nlimbs ); diff --git a/cipher/rsa.c b/cipher/rsa.c index 0b00e215e..b6d7603da 100644 --- a/cipher/rsa.c +++ b/cipher/rsa.c @@ -62,9 +62,9 @@ static void test_keys( RSA_secret_key *sk, unsigned nbits ) { RSA_public_key pk; - MPI test = mpi_alloc( (nbits+BITS_PER_MPI_LIMB-1)/BITS_PER_MPI_LIMB ); - MPI out1 = mpi_alloc( (nbits+BITS_PER_MPI_LIMB-1)/BITS_PER_MPI_LIMB ); - MPI out2 = mpi_alloc( (nbits+BITS_PER_MPI_LIMB-1)/BITS_PER_MPI_LIMB ); + MPI test = mpi_alloc ( mpi_nlimb_hint_from_nbits (nbits) ); + MPI out1 = mpi_alloc ( mpi_nlimb_hint_from_nbits (nbits) ); + MPI out2 = mpi_alloc ( mpi_nlimb_hint_from_nbits (nbits) ); pk.n = sk->n; pk.e = sk->e; @@ -107,7 +107,7 @@ generate( RSA_secret_key *sk, unsigned nbits ) if ( (nbits&1) ) nbits++; - n = mpi_alloc( (nbits+BITS_PER_MPI_LIMB-1)/BITS_PER_MPI_LIMB ); + n = mpi_alloc ( mpi_nlimb_hint_from_nbits (nbits) ); p = q = NULL; do { @@ -127,9 +127,9 @@ generate( RSA_secret_key *sk, unsigned nbits ) /* calculate Euler totient: phi = (p-1)(q-1) */ t1 = mpi_alloc_secure( mpi_get_nlimbs(p) ); t2 = mpi_alloc_secure( mpi_get_nlimbs(p) ); - phi = mpi_alloc_secure( (nbits+BITS_PER_MPI_LIMB-1)/BITS_PER_MPI_LIMB ); - g = mpi_alloc_secure( (nbits+BITS_PER_MPI_LIMB-1)/BITS_PER_MPI_LIMB ); - f = mpi_alloc_secure( (nbits+BITS_PER_MPI_LIMB-1)/BITS_PER_MPI_LIMB ); + phi = mpi_alloc_secure ( mpi_nlimb_hint_from_nbits (nbits) ); + g = mpi_alloc_secure ( mpi_nlimb_hint_from_nbits (nbits) ); + f = mpi_alloc_secure ( mpi_nlimb_hint_from_nbits (nbits) ); mpi_sub_ui( t1, p, 1 ); mpi_sub_ui( t2, q, 1 ); mpi_mul( phi, t1, t2 ); @@ -147,16 +147,16 @@ generate( RSA_secret_key *sk, unsigned nbits ) This code used 41 until 2006-06-28 when it was changed to use 65537 as the new best practice. See FIPS-186-3. */ - e = mpi_alloc( (32+BITS_PER_MPI_LIMB-1)/BITS_PER_MPI_LIMB ); + e = mpi_alloc ( mpi_nlimb_hint_from_nbits (32) ); mpi_set_ui( e, 65537); while( !mpi_gcd(t1, e, phi) ) /* (while gcd is not 1) */ mpi_add_ui( e, e, 2); /* calculate the secret key d = e^1 mod phi */ - d = mpi_alloc( (nbits+BITS_PER_MPI_LIMB-1)/BITS_PER_MPI_LIMB ); + d = mpi_alloc ( mpi_nlimb_hint_from_nbits (nbits) ); mpi_invm(d, e, f ); /* calculate the inverse of p and q (used for chinese remainder theorem)*/ - u = mpi_alloc( (nbits+BITS_PER_MPI_LIMB-1)/BITS_PER_MPI_LIMB ); + u = mpi_alloc ( mpi_nlimb_hint_from_nbits (nbits) ); mpi_invm(u, p, q ); if( DBG_CIPHER ) { @@ -443,7 +443,7 @@ rsa_verify( int algo, MPI hash, MPI *data, MPI *pkey ) return G10ERR_PUBKEY_ALGO; pk.n = pkey[0]; pk.e = pkey[1]; - result = mpi_alloc( (160+BITS_PER_MPI_LIMB-1)/BITS_PER_MPI_LIMB); + result = mpi_alloc ( mpi_nlimb_hint_from_nbits (160) ); public( result, data[0], &pk ); rc = mpi_cmp( result, hash )? G10ERR_BAD_SIGN:0; mpi_free(result); |