projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix various trivial compiler warnings
[u/mdw/putty]
/
sshprime.c
diff --git
a/sshprime.c
b/sshprime.c
index
61488a0
..
03f3e6f
100644
(file)
--- a/
sshprime.c
+++ b/
sshprime.c
@@
-674,7
+674,7
@@
Bignum primegen(int bits, int modulus, int residue,
/*
* Generate a k-bit random number with top and bottom bits set.
*/
/*
* Generate a k-bit random number with top and bottom bits set.
*/
- p =
newbn((bits+15)/16
);
+ p =
bn_power_2(bits-1
);
for (i = 0; i < bits; i++) {
if (i == 0 || i == bits-1)
v = 1;
for (i = 0; i < bits; i++) {
if (i == 0 || i == bits-1)
v = 1;
@@
-754,7
+754,7
@@
Bignum primegen(int bits, int modulus, int residue,
* Invent a random number between 1 and p-1 inclusive.
*/
while (1) {
* Invent a random number between 1 and p-1 inclusive.
*/
while (1) {
- w =
newbn((bits+15)/16
);
+ w =
bn_power_2(bits-1
);
for (i = 0; i < bits; i++) {
if (bitsleft <= 0)
bitsleft = 8; byte = random_byte();
for (i = 0; i < bits; i++) {
if (bitsleft <= 0)
bitsleft = 8; byte = random_byte();
@@
-763,6
+763,7
@@
Bignum primegen(int bits, int modulus, int residue,
bitsleft--;
bignum_set_bit(w, i, v);
}
bitsleft--;
bignum_set_bit(w, i, v);
}
+ bn_restore_invariant(w);
if (bignum_cmp(w, p) >= 0 || bignum_cmp(w, Zero) == 0) {
freebn(w);
continue;
if (bignum_cmp(w, p) >= 0 || bignum_cmp(w, Zero) == 0) {
freebn(w);
continue;