X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=sshbn.c;h=b1ea5d63c488cde28e8744285a2368601863f56b;hb=56a42d09d43e91603f3fbf01f5781bcbbc54a6bd;hp=a5e0552ff57523002adbafa6502cb0beda792a97;hpb=ead9081318aa17a9b90e26061ca79946e7fa7ca9;p=PuTTY.git diff --git a/sshbn.c b/sshbn.c index a5e0552f..b1ea5d63 100644 --- a/sshbn.c +++ b/sshbn.c @@ -1610,6 +1610,8 @@ Bignum bigdiv(Bignum a, Bignum b) { Bignum q = newbn(a[0]); bigdivmod(a, b, NULL, q); + while (q[0] > 1 && q[q[0]] == 0) + q[0]--; return q; } @@ -1620,6 +1622,8 @@ Bignum bigmod(Bignum a, Bignum b) { Bignum r = newbn(b[0]); bigdivmod(a, b, r, NULL); + while (r[0] > 1 && r[r[0]] == 0) + r[0]--; return r; } @@ -1679,6 +1683,8 @@ Bignum modinv(Bignum number, Bignum modulus) bigdivmod(a, b, t, q); while (t[0] > 1 && t[t[0]] == 0) t[0]--; + while (q[0] > 1 && q[q[0]] == 0) + q[0]--; freebn(a); a = b; b = t;