X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/757b0110eae2f1224aadf8d421f2ccb764f5b5ee..47061bb488400d53fd20deb52d51763d2caa056e:/sshbn.c diff --git a/sshbn.c b/sshbn.c index fee219ca..24f3ca6b 100644 --- a/sshbn.c +++ b/sshbn.c @@ -148,7 +148,7 @@ void freebn(Bignum b) /* * Burn the evidence, just in case. */ - memset(b, 0, sizeof(b[0]) * (b[0] + 1)); + smemclr(b, sizeof(b[0]) * (b[0] + 1)); sfree(b); } @@ -419,7 +419,7 @@ static void internal_mul(const BignumInt *a, const BignumInt *b, for (cp = cps, bp = b + len; cp--, bp-- > b ;) { t = (MUL_WORD(*ap, *bp) + carry) + *cp; *cp = (BignumInt) t; - carry = t >> BIGNUM_INT_BITS; + carry = (BignumInt)(t >> BIGNUM_INT_BITS); } *cp = carry; } @@ -521,7 +521,7 @@ static void internal_mul_low(const BignumInt *a, const BignumInt *b, for (cp = cps, bp = b + len; bp--, cp-- > c ;) { t = (MUL_WORD(*ap, *bp) + carry) + *cp; *cp = (BignumInt) t; - carry = t >> BIGNUM_INT_BITS; + carry = (BignumInt)(t >> BIGNUM_INT_BITS); } } } @@ -897,7 +897,7 @@ Bignum modpow(Bignum base_in, Bignum exp, Bignum mod) mninv = snewn(len, BignumInt); for (j = 0; j < len; j++) - mninv[len - 1 - j] = (j < inv[0] ? inv[j + 1] : 0); + mninv[len - 1 - j] = (j < (int)inv[0] ? inv[j + 1] : 0); freebn(inv); /* we don't need this copy of it any more */ /* Now negate mninv mod r, so it's the inverse of -n rather than +n. */ x = snewn(len, BignumInt); @@ -907,13 +907,13 @@ Bignum modpow(Bignum base_in, Bignum exp, Bignum mod) /* x = snewn(len, BignumInt); */ /* already done above */ for (j = 0; j < len; j++) - x[len - 1 - j] = (j < base[0] ? base[j + 1] : 0); + x[len - 1 - j] = (j < (int)base[0] ? base[j + 1] : 0); freebn(base); /* we don't need this copy of it any more */ a = snewn(2*len, BignumInt); b = snewn(2*len, BignumInt); for (j = 0; j < len; j++) - a[2*len - 1 - j] = (j < rn[0] ? rn[j + 1] : 0); + a[2*len - 1 - j] = (j < (int)rn[0] ? rn[j + 1] : 0); freebn(rn); /* Scratch space for multiplies */ @@ -1761,7 +1761,7 @@ char *bignum_decimal(Bignum x) #include /* - * gcc -g -O0 -DTESTBN -o testbn sshbn.c misc.c -I unix -I charset + * gcc -Wall -g -O0 -DTESTBN -o testbn sshbn.c misc.c conf.c tree234.c unix/uxmisc.c -I. -I unix -I charset * * Then feed to this program's standard input the output of * testdata/bignum.py . @@ -1835,7 +1835,7 @@ int main(int argc, char **argv) Bignum a, b, c, p; if (ptrnum != 3) { - printf("%d: mul with %d parameters, expected 3\n", line); + printf("%d: mul with %d parameters, expected 3\n", line, ptrnum); exit(1); } a = bignum_from_bytes(ptrs[0], ptrs[1]-ptrs[0]); @@ -1868,7 +1868,7 @@ int main(int argc, char **argv) Bignum base, expt, modulus, expected, answer; if (ptrnum != 4) { - printf("%d: mul with %d parameters, expected 3\n", line); + printf("%d: mul with %d parameters, expected 4\n", line, ptrnum); exit(1); }