X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=cmdgen.c;h=c15c01dd34bab2e82bd6529b78387344bbd93980;hb=a063e522970946bf7d5dc052079d7773c0dee76d;hp=86a548e3a8926cb92ac65a6b38e041163ec002ef;hpb=5db48dcddb0556e2b5930ba8fd4a4247f67b01d4;p=PuTTY.git diff --git a/cmdgen.c b/cmdgen.c index 86a548e3..c15c01dd 100644 --- a/cmdgen.c +++ b/cmdgen.c @@ -102,6 +102,16 @@ void modalfatalbox(char *p, ...) cleanup_exit(1); } +void nonfatal(char *p, ...) +{ + va_list ap; + fprintf(stderr, "ERROR: "); + va_start(ap, p); + vfprintf(stderr, p, ap); + va_end(ap); + fputc('\n', stderr); +} + /* * Stubs to let everything else link sensibly. */ @@ -763,6 +773,9 @@ int main(int argc, char **argv) } ssh1key->comment = dupstr(origcomment); ssh1key->private_exponent = NULL; + ssh1key->p = NULL; + ssh1key->q = NULL; + ssh1key->iqmp = NULL; } else { ret = loadrsakey(infilename, ssh1key, passphrase, &error); } @@ -776,11 +789,13 @@ int main(int argc, char **argv) if (!load_encrypted) { ssh2blob = ssh2_userkey_loadpub(infilename, &ssh2alg, &ssh2bloblen, NULL, &error); - ssh2algf = find_pubkey_alg(ssh2alg); - if (ssh2algf) - bits = ssh2algf->pubkey_bits(ssh2blob, ssh2bloblen); - else - bits = -1; + if (ssh2blob) { + ssh2algf = find_pubkey_alg(ssh2alg); + if (ssh2algf) + bits = ssh2algf->pubkey_bits(ssh2blob, ssh2bloblen); + else + bits = -1; + } } else { ssh2key = ssh2_load_userkey(infilename, passphrase, &error); } @@ -1019,6 +1034,8 @@ int main(int argc, char **argv) case SSHCOM: assert(sshver == 2); assert(ssh2key); + random_ref(); /* both foreign key types require randomness, + * for IV or padding */ ret = export_ssh2(outfilename, outtype, ssh2key, passphrase); if (!ret) { fprintf(stderr, "puttygen: unable to export key\n");