diff options
| author | djm <> | 2006-03-14 20:34:33 +0000 |
|---|---|---|
| committer | djm <> | 2006-03-14 20:34:33 +0000 |
| commit | a8c113c1752aac8d7cff08f9ce0b5b3a837482f3 (patch) | |
| tree | 1169a48f90276903455eb28bcd5d6ca59c0da836 /src | |
| parent | aee5b22dcf9bb7d99eb45989ddbf221eedf4c6fc (diff) | |
| download | openbsd-a8c113c1752aac8d7cff08f9ce0b5b3a837482f3.tar.gz openbsd-a8c113c1752aac8d7cff08f9ce0b5b3a837482f3.tar.bz2 openbsd-a8c113c1752aac8d7cff08f9ce0b5b3a837482f3.zip | |
make BN_is_prime() realise that 2 is, in fact, a prime number.
from OpenSSL CVS; ok otto@ deraadt@
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/bn/bn_prime.c | 4 | ||||
| -rw-r--r-- | src/lib/libssl/src/crypto/bn/bn_prime.c | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/libcrypto/bn/bn_prime.c b/src/lib/libcrypto/bn/bn_prime.c index e072d9255c..f422172f16 100644 --- a/src/lib/libcrypto/bn/bn_prime.c +++ b/src/lib/libcrypto/bn/bn_prime.c | |||
| @@ -234,7 +234,9 @@ int BN_is_prime_fasttest(const BIGNUM *a, int checks, | |||
| 234 | 234 | ||
| 235 | /* first look for small factors */ | 235 | /* first look for small factors */ |
| 236 | if (!BN_is_odd(a)) | 236 | if (!BN_is_odd(a)) |
| 237 | return 0; | 237 | /* a is even => a is prime if and only if a == 2 */ |
| 238 | return BN_is_word(a, 2); | ||
| 239 | |||
| 238 | if (do_trial_division) | 240 | if (do_trial_division) |
| 239 | { | 241 | { |
| 240 | for (i = 1; i < NUMPRIMES; i++) | 242 | for (i = 1; i < NUMPRIMES; i++) |
diff --git a/src/lib/libssl/src/crypto/bn/bn_prime.c b/src/lib/libssl/src/crypto/bn/bn_prime.c index e072d9255c..f422172f16 100644 --- a/src/lib/libssl/src/crypto/bn/bn_prime.c +++ b/src/lib/libssl/src/crypto/bn/bn_prime.c | |||
| @@ -234,7 +234,9 @@ int BN_is_prime_fasttest(const BIGNUM *a, int checks, | |||
| 234 | 234 | ||
| 235 | /* first look for small factors */ | 235 | /* first look for small factors */ |
| 236 | if (!BN_is_odd(a)) | 236 | if (!BN_is_odd(a)) |
| 237 | return 0; | 237 | /* a is even => a is prime if and only if a == 2 */ |
| 238 | return BN_is_word(a, 2); | ||
| 239 | |||
| 238 | if (do_trial_division) | 240 | if (do_trial_division) |
| 239 | { | 241 | { |
| 240 | for (i = 1; i < NUMPRIMES; i++) | 242 | for (i = 1; i < NUMPRIMES; i++) |
