If n0 == d0, we must alway compute 'rem' "by hand"
This commit is contained in:
parent
fe7cd1647d
commit
cb5b7850ac
@ -235,8 +235,13 @@ int BN_div(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num, const BIGNUM *divisor,
|
|||||||
n0=wnump[0];
|
n0=wnump[0];
|
||||||
n1=wnump[-1];
|
n1=wnump[-1];
|
||||||
if (n0 == d0)
|
if (n0 == d0)
|
||||||
|
{
|
||||||
q=BN_MASK2;
|
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)
|
#if defined(BN_LLONG) && defined(BN_DIV2W) && !defined(bn_div_words)
|
||||||
q=(BN_ULONG)(((((BN_ULLONG)n0)<<BN_BITS2)|n1)/d0);
|
q=(BN_ULONG)(((((BN_ULLONG)n0)<<BN_BITS2)|n1)/d0);
|
||||||
#else
|
#else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user