projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remember to clear ssh_simple when initialising config.
[u/mdw/putty]
/
cmdgen.c
diff --git
a/cmdgen.c
b/cmdgen.c
index
763d05e
..
9aa585f
100644
(file)
--- a/
cmdgen.c
+++ b/
cmdgen.c
@@
-233,7
+233,7
@@
static int move(char *from, char *to)
return TRUE;
}
return TRUE;
}
-static char *blobfp(char *alg, int bits, char *blob, int bloblen)
+static char *blobfp(char *alg, int bits,
unsigned
char *blob, int bloblen)
{
char buffer[128];
unsigned char digest[16];
{
char buffer[128];
unsigned char digest[16];
@@
-270,7
+270,8
@@
int main(int argc, char **argv)
int sshver = 0;
struct ssh2_userkey *ssh2key = NULL;
struct RSAKey *ssh1key = NULL;
int sshver = 0;
struct ssh2_userkey *ssh2key = NULL;
struct RSAKey *ssh1key = NULL;
- char *ssh2blob = NULL, *ssh2alg = NULL;
+ unsigned char *ssh2blob = NULL;
+ char *ssh2alg = NULL;
const struct ssh_signkey *ssh2algf = NULL;
int ssh2bloblen;
char *passphrase = NULL;
const struct ssh_signkey *ssh2algf = NULL;
int ssh2bloblen;
char *passphrase = NULL;
@@
-639,6
+640,11
@@
int main(int argc, char **argv)
random_ref();
entropy = get_random_data(bits / 8);
random_ref();
entropy = get_random_data(bits / 8);
+ if (!entropy) {
+ fprintf(stderr, "puttygen: failed to collect entropy, "
+ "could not generate key\n");
+ return 1;
+ }
random_add_heavynoise(entropy, bits / 8);
memset(entropy, 0, bits/8);
sfree(entropy);
random_add_heavynoise(entropy, bits / 8);
memset(entropy, 0, bits/8);
sfree(entropy);
@@
-715,12
+721,12
@@
int main(int argc, char **argv)
ssh1key = snew(struct RSAKey);
if (!load_encrypted) {
void *vblob;
ssh1key = snew(struct RSAKey);
if (!load_encrypted) {
void *vblob;
- char *blob;
+
unsigned
char *blob;
int n, l, bloblen;
ret = rsakey_pubblob(&infilename, &vblob, &bloblen,
&origcomment, &error);
int n, l, bloblen;
ret = rsakey_pubblob(&infilename, &vblob, &bloblen,
&origcomment, &error);
- blob = (char *)vblob;
+ blob = (
unsigned
char *)vblob;
n = 4; /* skip modulus bits */
n = 4; /* skip modulus bits */
@@
-892,7
+898,7
@@
int main(int argc, char **argv)
assert(ssh1key);
if (outfile)
assert(ssh1key);
if (outfile)
- fp = f_open(outfilename, "w");
+ fp = f_open(outfilename, "w"
, FALSE
);
else
fp = stdout;
dec1 = bignum_decimal(ssh1key->exponent);
else
fp = stdout;
dec1 = bignum_decimal(ssh1key->exponent);
@@
-950,7
+956,7
@@
int main(int argc, char **argv)
*p++ = '\0';
if (outfile)
*p++ = '\0';
if (outfile)
- fp = f_open(outfilename, "w");
+ fp = f_open(outfilename, "w"
, FALSE
);
else
fp = stdout;
fprintf(fp, "%s\n", buffer);
else
fp = stdout;
fprintf(fp, "%s\n", buffer);
@@
-980,7
+986,7
@@
int main(int argc, char **argv)
}
if (outfile)
}
if (outfile)
- fp = f_open(outfilename, "w");
+ fp = f_open(outfilename, "w"
, FALSE
);
else
fp = stdout;
fprintf(fp, "%s\n", fingerprint);
else
fp = stdout;
fprintf(fp, "%s\n", fingerprint);