mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 09:27:59 +00:00
Give a better error message if a PuTTY private key file has a version
number we don't understand. It's nicer to report 'format too new' than 'not a PuTTY key file'. [originally from svn r9763]
This commit is contained in:
parent
8f3cc4a9bf
commit
40ce043a97
12
cmdgen.c
12
cmdgen.c
@ -779,11 +779,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);
|
||||
}
|
||||
|
10
sshpubk.c
10
sshpubk.c
@ -647,6 +647,11 @@ struct ssh2_userkey *ssh2_load_userkey(const Filename *filename,
|
||||
/* this is an old key file; warn and then continue */
|
||||
old_keyfile_warning();
|
||||
old_fmt = 1;
|
||||
} else if (0 == strncmp(header, "PuTTY-User-Key-File-", 20)) {
|
||||
/* this is a key file FROM THE FUTURE; refuse it, but with a
|
||||
* more specific error message than the generic one below */
|
||||
error = "PuTTY key format too new";
|
||||
goto error;
|
||||
} else {
|
||||
error = "not a PuTTY SSH-2 private key";
|
||||
goto error;
|
||||
@ -891,7 +896,10 @@ unsigned char *ssh2_userkey_loadpub(const Filename *filename, char **algorithm,
|
||||
if (!read_header(fp, header)
|
||||
|| (0 != strcmp(header, "PuTTY-User-Key-File-2") &&
|
||||
0 != strcmp(header, "PuTTY-User-Key-File-1"))) {
|
||||
error = "not a PuTTY SSH-2 private key";
|
||||
if (0 == strncmp(header, "PuTTY-User-Key-File-", 20))
|
||||
error = "PuTTY key format too new";
|
||||
else
|
||||
error = "not a PuTTY SSH-2 private key";
|
||||
goto error;
|
||||
}
|
||||
error = "file format error";
|
||||
|
Loading…
Reference in New Issue
Block a user