diff options
author | Werner Koch <[email protected]> | 1998-02-09 17:43:42 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 1998-02-09 17:43:42 +0000 |
commit | d6fa02add60c1d9ef6c7c576de3beb0a5debfade (patch) | |
tree | 4d33ad9fa6f8013b274ecb0dfe36cab7b15b47eb /cipher/primegen.c | |
parent | removed aclocal (diff) | |
download | gnupg-d6fa02add60c1d9ef6c7c576de3beb0a5debfade.tar.gz gnupg-d6fa02add60c1d9ef6c7c576de3beb0a5debfade.zip |
release 0.2.3
Diffstat (limited to '')
-rw-r--r-- | cipher/primegen.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/cipher/primegen.c b/cipher/primegen.c index 9d91ae4df..3a2a91f7b 100644 --- a/cipher/primegen.c +++ b/cipher/primegen.c @@ -65,12 +65,12 @@ generate_public_prime( unsigned nbits ) * indeed a strong prime. */ MPI -generate_elg_prime( unsigned pbits, unsigned qbits, MPI g ) +generate_elg_prime( unsigned pbits, unsigned qbits, MPI g, MPI **ret_factors ) { int n; /* number of factors */ int m; /* number of primes in pool */ unsigned fbits; /* length of prime factors */ - MPI *factors; /* curent factors */ + MPI *factors; /* current factors */ MPI *pool; /* pool of primes */ MPI q; /* first prime factor */ MPI prime; /* prime test value */ @@ -167,7 +167,6 @@ generate_elg_prime( unsigned pbits, unsigned qbits, MPI g ) count2 = 0; } while( !(nprime == pbits && check_prime( prime )) ); - if( DBG_CIPHER ) { putc('\n', stderr); log_mpidump( "prime : ", prime ); @@ -180,6 +179,12 @@ generate_elg_prime( unsigned pbits, unsigned qbits, MPI g ) putc('\n', stderr); } + if( ret_factors ) { /* caller wants the factors */ + *ret_factors = m_alloc_clear( (n+1) * sizeof **ret_factors ); + for(i=0; i < n; i++ ) + (*ret_factors)[i] = mpi_copy( factors[i] ); + } + if( g ) { /* create a generator (start with 3)*/ MPI tmp = mpi_alloc( mpi_get_nlimbs(prime) ); MPI b = mpi_alloc( mpi_get_nlimbs(prime) ); |