bn_mul_recursive doesn't handle all cases correctly, which results in
BN_mul failures at certain key-length mixes [from HEAD]. PR: 1427
This commit is contained in:
parent
0225c7a41e
commit
6c3fca2b10
1 changed files with 4 additions and 4 deletions
|
@ -655,16 +655,16 @@ void bn_mul_part_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n,
|
|||
for (;;)
|
||||
{
|
||||
i/=2;
|
||||
if (i < tna && i < tnb)
|
||||
if (i <= tna && tna == tnb)
|
||||
{
|
||||
bn_mul_part_recursive(&(r[n2]),
|
||||
bn_mul_recursive(&(r[n2]),
|
||||
&(a[n]),&(b[n]),
|
||||
i,tna-i,tnb-i,p);
|
||||
break;
|
||||
}
|
||||
else if (i <= tna && i <= tnb)
|
||||
else if (i < tna || i < tnb)
|
||||
{
|
||||
bn_mul_recursive(&(r[n2]),
|
||||
bn_mul_part_recursive(&(r[n2]),
|
||||
&(a[n]),&(b[n]),
|
||||
i,tna-i,tnb-i,p);
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue