nw=n/BN_BITS2;
rb=n%BN_BITS2;
lb=BN_BITS2-rb;
- if (nw > a->top || a->top == 0)
+ if (nw >= a->top || a->top == 0)
{
BN_zero(r);
return(1);
if (rb == 0)
{
- for (i=j+1; i > 0; i--)
+ for (i=j; i != 0; i--)
*(t++)= *(f++);
}
else
{
l= *(f++);
- for (i=1; i<j; i++)
+ for (i=j-1; i != 0; i--)
{
tmp =(l>>rb)&BN_MASK2;
l= *(f++);
}
*(t++) =(l>>rb)&BN_MASK2;
}
- *t=0;
bn_correct_top(r);
bn_check_top(r);
return(1);