David Schwartz wrote:
>>>openssl prime 2
>>
>>2 is not prime
>>
>>openssl version openssl-0.9.8a
>
>
> This is a known issue. The prime testing code was designed to test large
> primes.
rubbish, it is a simple overeager optimisation. Attached is a fix.
-d
Index: lib/libssl/src/crypto/bn/bn_prime.c
===================================================================
RCS file: /cvs/src/lib/libssl/src/crypto/bn/bn_prime.c,v
retrieving revision 1.5
diff -u -p -r1.5 bn_prime.c
--- lib/libssl/src/crypto/bn/bn_prime.c 12 May 2003 02:18:36 -0000 1.5
+++ lib/libssl/src/crypto/bn/bn_prime.c 7 Jan 2006 00:47:06 -0000
@@ -234,7 +234,7 @@ int BN_is_prime_fasttest(const BIGNUM *a
/* first look for small factors */
if (!BN_is_odd(a))
- return 0;
+ return (BN_num_bits(a) == 2);
if (do_trial_division)
{
for (i = 1; i < NUMPRIMES; i++)