diff options
author | beck <> | 2002-05-21 01:49:11 +0000 |
---|---|---|
committer | beck <> | 2002-05-21 01:49:11 +0000 |
commit | 7ebf0f8371844decf17c65829147760ed09339a6 (patch) | |
tree | b39f86312e7ebfd4945e393b8949356694ad06fe /src/lib/libcrypto/bn | |
parent | 2117eaece54016b776476220b41b97441e75b0e0 (diff) | |
download | openbsd-7ebf0f8371844decf17c65829147760ed09339a6.tar.gz openbsd-7ebf0f8371844decf17c65829147760ed09339a6.tar.bz2 openbsd-7ebf0f8371844decf17c65829147760ed09339a6.zip |
Merge openssl-0.9.7-stable-SNAP-20020519
Diffstat (limited to 'src/lib/libcrypto/bn')
-rw-r--r-- | src/lib/libcrypto/bn/bn.h | 2 | ||||
-rw-r--r-- | src/lib/libcrypto/bn/bn_mul.c | 12 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/lib/libcrypto/bn/bn.h b/src/lib/libcrypto/bn/bn.h index d25b49c9d8..1eaf879553 100644 --- a/src/lib/libcrypto/bn/bn.h +++ b/src/lib/libcrypto/bn/bn.h | |||
@@ -136,7 +136,7 @@ extern "C" { | |||
136 | #define BN_MASK2h (0xffffffff00000000LL) | 136 | #define BN_MASK2h (0xffffffff00000000LL) |
137 | #define BN_MASK2h1 (0xffffffff80000000LL) | 137 | #define BN_MASK2h1 (0xffffffff80000000LL) |
138 | #define BN_TBIT (0x8000000000000000LL) | 138 | #define BN_TBIT (0x8000000000000000LL) |
139 | #define BN_DEC_CONV (10000000000000000000LL) | 139 | #define BN_DEC_CONV (10000000000000000000ULL) |
140 | #define BN_DEC_FMT1 "%llu" | 140 | #define BN_DEC_FMT1 "%llu" |
141 | #define BN_DEC_FMT2 "%019llu" | 141 | #define BN_DEC_FMT2 "%019llu" |
142 | #define BN_DEC_NUM 19 | 142 | #define BN_DEC_NUM 19 |
diff --git a/src/lib/libcrypto/bn/bn_mul.c b/src/lib/libcrypto/bn/bn_mul.c index 41ea925b8d..7bffc9c16a 100644 --- a/src/lib/libcrypto/bn/bn_mul.c +++ b/src/lib/libcrypto/bn/bn_mul.c | |||
@@ -408,16 +408,22 @@ void bn_mul_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n2, | |||
408 | return; | 408 | return; |
409 | } | 409 | } |
410 | # endif | 410 | # endif |
411 | if (n2 == 8) | 411 | /* Only call bn_mul_comba 8 if n2 == 8 and the |
412 | * two arrays are complete [steve] | ||
413 | */ | ||
414 | if (n2 == 8 && dna == 0 && dnb == 0) | ||
412 | { | 415 | { |
413 | bn_mul_comba8(r,a,b); | 416 | bn_mul_comba8(r,a,b); |
414 | return; | 417 | return; |
415 | } | 418 | } |
416 | # endif /* BN_MUL_COMBA */ | 419 | # endif /* BN_MUL_COMBA */ |
420 | /* Else do normal multiply */ | ||
417 | if (n2 < BN_MUL_RECURSIVE_SIZE_NORMAL) | 421 | if (n2 < BN_MUL_RECURSIVE_SIZE_NORMAL) |
418 | { | 422 | { |
419 | /* This should not happen */ | 423 | bn_mul_normal(r,a,n2+dna,b,n2+dnb); |
420 | bn_mul_normal(r,a,n2,b,n2); | 424 | if ((dna + dnb) < 0) |
425 | memset(&r[2*n2 + dna + dnb], 0, | ||
426 | sizeof(BN_ULONG) * -(dna + dnb)); | ||
421 | return; | 427 | return; |
422 | } | 428 | } |
423 | /* r=(a[0]-a[1])*(b[1]-b[0]) */ | 429 | /* r=(a[0]-a[1])*(b[1]-b[0]) */ |