#endif
int i;
+ if (w == 0)
+ return (BN_ULONG)-1;
+
bn_check_top(a);
w&=BN_MASK2;
for (i=a->top-1; i>=0; i--)
if (!w)
/* actually this an error (division by zero) */
- return 0;
+ return (BN_ULONG)-1;
if (a->top == 0)
return 0;
j = BN_BITS2 - BN_num_bits_word(w);
w <<= j;
if (!BN_lshift(a, a, j))
- return 0;
+ return (BN_ULONG)-1;
for (i=a->top-1; i>=0; i--)
{
return(1);
}
+int BN_add_signed_word(BIGNUM *a, BN_LONG w)
+ {
+ if(w < 0)
+ return 0;
+ return BN_add_word(a, (BN_ULONG)w);
+ }
+
int BN_sub_word(BIGNUM *a, BN_ULONG w)
{
int i;