summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/bn
diff options
context:
space:
mode:
authorbeck <>2002-05-21 01:49:11 +0000
committerbeck <>2002-05-21 01:49:11 +0000
commit7ebf0f8371844decf17c65829147760ed09339a6 (patch)
treeb39f86312e7ebfd4945e393b8949356694ad06fe /src/lib/libcrypto/bn
parent2117eaece54016b776476220b41b97441e75b0e0 (diff)
downloadopenbsd-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.h2
-rw-r--r--src/lib/libcrypto/bn/bn_mul.c12
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]) */