summaryrefslogtreecommitdiffstats
path: root/crypto/bn/bn_div.c
diff options
context:
space:
mode:
authorBodo Möller <bodo@openssl.org>2000-02-01 11:10:54 +0000
committerBodo Möller <bodo@openssl.org>2000-02-01 11:10:54 +0000
commitcb5b7850acd0d30c7550323b450abd2841f829db (patch)
tree01a15a0059eb1042b34edfb594d0317236eed38d /crypto/bn/bn_div.c
parentfe7cd1647d48f5e96f9f02c81bcdb5cf54bd10d2 (diff)
If n0 == d0, we must alway compute 'rem' "by hand"
Diffstat (limited to 'crypto/bn/bn_div.c')
-rw-r--r--crypto/bn/bn_div.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/crypto/bn/bn_div.c b/crypto/bn/bn_div.c
index 928773af1c..f15eced0cf 100644
--- a/crypto/bn/bn_div.c
+++ b/crypto/bn/bn_div.c
@@ -235,8 +235,13 @@ int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor,
n0=wnump[0];
n1=wnump[-1];
if (n0 == d0)
+ {
q=BN_MASK2;
- else
+#ifdef REMAINDER_IS_ALREADY_CALCULATED /* in this case it isn't */
+ rem=(n1-q*d0)&BN_MASK2;
+#endif
+ }
+ else /* n0 < d0 */
#if defined(BN_LLONG) && defined(BN_DIV2W) && !defined(bn_div_words)
q=(BN_ULONG)(((((BN_ULLONG)n0)<<BN_BITS2)|n1)/d0);
#else