aboutsummaryrefslogtreecommitdiffstats
path: root/cipher
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cipher/ChangeLog6
-rw-r--r--cipher/dsa.c15
-rw-r--r--cipher/elgamal.c15
-rw-r--r--cipher/primegen.c39
4 files changed, 51 insertions, 24 deletions
diff --git a/cipher/ChangeLog b/cipher/ChangeLog
index 30d2ddd22..77a3e4b82 100644
--- a/cipher/ChangeLog
+++ b/cipher/ChangeLog
@@ -1,3 +1,9 @@
+Thu Jul 1 12:47:31 CEST 1999 Werner Koch <[email protected]>
+
+
+ * primegen.c, elgamal.c, dsa.c (progess): New and replaced all
+ fputc with a call to this function.
+
Sat Jun 26 12:15:59 CEST 1999 Werner Koch <[email protected]>
diff --git a/cipher/dsa.c b/cipher/dsa.c
index 14854635c..cbd90ac5f 100644
--- a/cipher/dsa.c
+++ b/cipher/dsa.c
@@ -52,6 +52,13 @@ static void generate( DSA_secret_key *sk, unsigned nbits, MPI **ret_factors );
static void sign(MPI r, MPI s, MPI input, DSA_secret_key *skey);
static int verify(MPI r, MPI s, MPI input, DSA_public_key *pkey);
+static void
+progress( int c )
+{
+ fputc( c, stderr );
+}
+
+
/****************
* Generate a random secret exponent k less than q
*/
@@ -65,7 +72,7 @@ gen_k( MPI q )
log_debug("choosing a random k ");
for(;;) {
if( DBG_CIPHER )
- fputc('.', stderr);
+ progress('.');
{ char *p = get_random_bits( nbits, 1, 1 );
mpi_set_buffer( k, p, (nbits+7)/8, 0 );
m_free(p);
@@ -84,7 +91,7 @@ gen_k( MPI q )
break; /* okay */
}
if( DBG_CIPHER )
- fputc('\n', stderr);
+ progress('\n');
return k;
}
@@ -170,7 +177,7 @@ generate( DSA_secret_key *sk, unsigned nbits, MPI **ret_factors )
rndbuf = NULL;
do {
if( DBG_CIPHER )
- fputc('.', stderr);
+ progress('.');
if( !rndbuf )
rndbuf = get_random_bits( qbits, 2, 1 );
else { /* change only some of the higher bits (= 2 bytes)*/
@@ -190,7 +197,7 @@ generate( DSA_secret_key *sk, unsigned nbits, MPI **ret_factors )
mpi_powm( y, g, x, p );
if( DBG_CIPHER ) {
- fputc('\n', stderr);
+ progress('\n');
log_mpidump("dsa p= ", p );
log_mpidump("dsa q= ", q );
log_mpidump("dsa g= ", g );
diff --git a/cipher/elgamal.c b/cipher/elgamal.c
index 9d9058f97..0e6b992c0 100644
--- a/cipher/elgamal.c
+++ b/cipher/elgamal.c
@@ -57,6 +57,13 @@ static int verify(MPI a, MPI b, MPI input, ELG_public_key *pkey);
static void
+progress( int c )
+{
+ fputc( c, stderr );
+}
+
+
+static void
test_keys( ELG_secret_key *sk, unsigned nbits )
{
ELG_public_key pk;
@@ -108,7 +115,7 @@ gen_k( MPI p )
mpi_sub_ui( p_1, p, 1);
for(;;) {
if( DBG_CIPHER )
- fputc('.', stderr);
+ progress('.');
{ char *pp = get_random_bits( nbits, 1, 1 );
mpi_set_buffer( k, pp, (nbits+7)/8, 0 );
m_free(pp);
@@ -128,7 +135,7 @@ gen_k( MPI p )
break; /* okay, k is relatively prime to (p-1) */
}
if( DBG_CIPHER )
- fputc('\n', stderr);
+ progress('\n');
mpi_free(p_1);
mpi_free(temp);
@@ -179,7 +186,7 @@ generate( ELG_secret_key *sk, unsigned nbits, MPI **ret_factors )
rndbuf = NULL;
do {
if( DBG_CIPHER )
- fputc('.', stderr);
+ progress('.');
if( rndbuf ) { /* change only some of the higher bits */
if( nbits < 16 ) {/* should never happen ... */
m_free(rndbuf);
@@ -202,7 +209,7 @@ generate( ELG_secret_key *sk, unsigned nbits, MPI **ret_factors )
mpi_powm( y, g, x, p );
if( DBG_CIPHER ) {
- fputc('\n', stderr);
+ progress('\n');
log_mpidump("elg p= ", p );
log_mpidump("elg g= ", g );
log_mpidump("elg y= ", y );
diff --git a/cipher/primegen.c b/cipher/primegen.c
index 9019e2839..9bf108531 100644
--- a/cipher/primegen.c
+++ b/cipher/primegen.c
@@ -39,6 +39,13 @@ static int is_prime( MPI n, int steps, int *count );
static void m_out_of_n( char *array, int m, int n );
+static void
+progress( int c )
+{
+ fputc( c, stderr );
+}
+
+
/****************
* Generate a prime number (stored in secure memory)
*/
@@ -48,7 +55,7 @@ generate_secret_prime( unsigned nbits )
MPI prime;
prime = gen_prime( nbits, 1, 2 );
- fputc('\n', stderr);
+ progress('\n');
return prime;
}
@@ -58,7 +65,7 @@ generate_public_prime( unsigned nbits )
MPI prime;
prime = gen_prime( nbits, 0, 2 );
- fputc('\n', stderr);
+ progress('\n');
return prime;
}
@@ -152,7 +159,7 @@ generate_elg_prime( int mode, unsigned pbits, unsigned qbits,
}
if( i == n ) {
m_free(perms); perms = NULL;
- fputc('!', stderr);
+ progress('!');
goto next_try; /* allocate new primes */
}
}
@@ -169,7 +176,7 @@ generate_elg_prime( int mode, unsigned pbits, unsigned qbits,
if( ++count1 > 20 ) {
count1 = 0;
qbits++;
- fputc('>', stderr);
+ progress('>');
q = gen_prime( qbits, 0, 1 );
goto next_try;
}
@@ -180,7 +187,7 @@ generate_elg_prime( int mode, unsigned pbits, unsigned qbits,
if( ++count2 > 20 ) {
count2 = 0;
qbits--;
- fputc('<', stderr);
+ progress('<');
q = gen_prime( qbits, 0, 1 );
goto next_try;
}
@@ -190,7 +197,7 @@ generate_elg_prime( int mode, unsigned pbits, unsigned qbits,
} while( !(nprime == pbits && check_prime( prime, val_2 )) );
if( DBG_CIPHER ) {
- putc('\n', stderr);
+ progress('\n');
log_mpidump( "prime : ", prime );
log_mpidump( "factor q: ", q );
if( mode == 1 )
@@ -202,7 +209,7 @@ generate_elg_prime( int mode, unsigned pbits, unsigned qbits,
fprintf(stderr, ", q0=%u", mpi_get_nbits(q_factor) );
for(i=0; i < n; i++ )
fprintf(stderr, ", p%d=%u", i, mpi_get_nbits(factors[i]) );
- putc('\n', stderr);
+ progress('\n');
}
if( ret_factors ) { /* caller wants the factors */
@@ -237,7 +244,7 @@ generate_elg_prime( int mode, unsigned pbits, unsigned qbits,
mpi_print( stderr, g, 1 );
}
else
- fputc('^', stderr);
+ progress('^');
for(i=0; i < n+2; i++ ) {
/*fputc('~', stderr);*/
mpi_fdiv_q(tmp, pmin1, factors[i] );
@@ -247,7 +254,7 @@ generate_elg_prime( int mode, unsigned pbits, unsigned qbits,
break;
}
if( DBG_CIPHER )
- fputc('\n', stderr);
+ progress('\n');
} while( i < n+2 );
mpi_free(factors[n+1]);
mpi_free(tmp);
@@ -255,7 +262,7 @@ generate_elg_prime( int mode, unsigned pbits, unsigned qbits,
mpi_free(pmin1);
}
if( !DBG_CIPHER )
- putc('\n', stderr);
+ progress('\n');
m_free( factors ); /* (factors are shallow copies) */
for(i=0; i < m; i++ )
@@ -335,7 +342,7 @@ gen_prime( unsigned nbits, int secret, int randomlevel )
/* perform stronger tests */
if( is_prime(ptest, 5, &count2 ) ) {
if( !mpi_test_bit( ptest, nbits-1 ) ) {
- fputc('\n', stderr);
+ progress('\n');
log_debug("overflow in prime generation\n");
break; /* step loop, continue with a new prime */
}
@@ -350,11 +357,11 @@ gen_prime( unsigned nbits, int secret, int randomlevel )
}
}
if( ++dotcount == 10 ) {
- fputc('.', stderr);
+ progress('.');
dotcount = 0;
}
}
- fputc(':', stderr); /* restart with a new random value */
+ progress(':'); /* restart with a new random value */
}
}
@@ -383,7 +390,7 @@ check_prime( MPI prime, MPI val_2 )
mpi_free( pminus1 );
if( mpi_cmp_ui( result, 1 ) ) { /* if composite */
mpi_free( result );
- fputc('.', stderr);
+ progress('.');
return 0;
}
mpi_free( result );
@@ -392,7 +399,7 @@ check_prime( MPI prime, MPI val_2 )
/* perform stronger tests */
if( is_prime(prime, 5, &count ) )
return 1; /* is probably a prime */
- fputc('.', stderr);
+ progress('.');
return 0;
}
@@ -452,7 +459,7 @@ is_prime( MPI n, int steps, int *count )
if( mpi_cmp( y, nminus1 ) )
goto leave; /* not a prime */
}
- fputc('+', stderr);
+ progress('+');
}
rc = 1; /* may be a prime */