diff options
author | Werner Koch <wk@gnupg.org> | 2003-10-10 14:17:21 +0000 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2003-10-10 14:17:21 +0000 |
commit | 5a6f5f2881b615845f1f660c98561d209313efab (patch) | |
tree | bcf32fe34fc33baf491205df4a104904ed1ec825 /tests/prime.c | |
parent | ecdc47fd753bed8fb3f8f3c29a481d1d5fbb82b6 (diff) | |
download | libgcrypt-5a6f5f2881b615845f1f660c98561d209313efab.tar.gz |
* primegen.c (gen_prime): Bail out if NBITS is less than 16.
(prime_generate_internal): Initialize prime variable to suppress
compiler warning. Check pbits, initialize qbits when passed as
zero.
* primegen.c (prime_generate_internal): New arg
ALL_FACTORS. Changed all callers.
(gcry_prime_generate): Make the factors arg optional. Request
all_factors.
(gcry_prime_group_generator): New.
(gcry_prime_release_factors): New.
* global.c (_gcry_malloc): Handle the no_secure_memory option.
* gcrypt.h (gcry_prime_group_generator): New.
(gcry_prime_release_factors): New.
* prime.c (check_primes): Generate a generator and avoid printing
unless in verbose mode.
Diffstat (limited to 'tests/prime.c')
-rw-r--r-- | tests/prime.c | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/tests/prime.c b/tests/prime.c index aa101491..625c1537 100644 --- a/tests/prime.c +++ b/tests/prime.c @@ -23,7 +23,7 @@ #include "../src/gcrypt.h" -static int verbose, debug; +static int verbose; static void die (const char *format, ...) @@ -42,6 +42,7 @@ check_primes (void) gcry_error_t err = GPG_ERR_NO_ERROR; gcry_mpi_t *factors = NULL; gcry_mpi_t prime = NULL; + gcry_mpi_t g; unsigned int i = 0; struct prime_spec { @@ -51,6 +52,7 @@ check_primes (void) } prime_specs[] = { { 1024, 100, GCRY_PRIME_FLAG_SPECIAL_FACTOR }, + { 128, 0, 0 }, { 0 }, }; @@ -64,11 +66,29 @@ check_primes (void) GCRY_WEAK_RANDOM, prime_specs[i].flags); assert (! err); - printf ("%i: ", i); - gcry_mpi_dump (prime); - putchar ('\n'); + if (verbose) + { + fprintf (stderr, "test %d: p = ", i); + gcry_mpi_dump (prime); + putc ('\n', stderr); + } + err = gcry_prime_check (prime, 0); assert (! err); + + err = gcry_prime_group_generator (&g, prime, factors, NULL); + assert (!err); + gcry_prime_release_factors (factors); factors = NULL; + + if (verbose) + { + fprintf (stderr, " %d: g = ", i); + gcry_mpi_dump (g); + putc ('\n', stderr); + } + gcry_mpi_release (g); + + gcry_mpi_add_ui (prime, prime, 1); err = gcry_prime_check (prime, 0); assert (err); @@ -85,10 +105,10 @@ main (int argc, char **argv) else if ((argc > 1) && (! strcmp (argv[1], "--debug"))) verbose = debug = 1; + gcry_control (GCRYCTL_DISABLE_SECMEM, 0); if (! gcry_check_version (GCRYPT_VERSION)) die ("version mismatch\n"); - gcry_control (GCRYCTL_DISABLE_SECMEM, 0); gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); if (debug) gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1u, 0); |