primes: Avoid leaking bits of the prime test to pageable memory.
authorWerner Koch <wk@gnupg.org>
Fri, 26 Oct 2018 10:57:30 +0000 (12:57 +0200)
committerWerner Koch <wk@gnupg.org>
Fri, 26 Oct 2018 10:59:48 +0000 (12:59 +0200)
* cipher/primegen.c (gen_prime): Allocate MODS in secure memory.
--

This increases the pressure on the secure memory by about 1400 byte
but given that we can meanwhile increase the size of the secmem area,
this is acceptable.

GnuPG-bug-id: 3848
Signed-off-by: Werner Koch <wk@gnupg.org>
cipher/primegen.c

index ce5ad3c..e24de4d 100644 (file)
@@ -758,7 +758,8 @@ gen_prime (unsigned int nbits, int secret, int randomlevel,
   if (nbits < 16)
     log_fatal ("can't generate a prime with less than %d bits\n", 16);
 
-  mods = xmalloc (no_of_small_prime_numbers * sizeof *mods);
+  mods = (secret? xmalloc_secure (no_of_small_prime_numbers * sizeof *mods)
+          /* */ : xmalloc (no_of_small_prime_numbers * sizeof *mods));
   /* Make nbits fit into gcry_mpi_t implementation. */
   val_2  = mpi_alloc_set_ui( 2 );
   val_3 = mpi_alloc_set_ui( 3);