X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=pageant.c;h=0f423f2d6f0b9f5c5680942f95772c19b01070cf;hb=452adcc95284e64df88f84efdc2d3d0f1ff5d7f1;hp=b14b58e5df2d96d2a15cc15774ce88ba22b584e4;hpb=edd1ab57010b9f62019e9cc1cd2e6f428e6cb2f4;p=PuTTY.git diff --git a/pageant.c b/pageant.c index b14b58e5..0f423f2d 100644 --- a/pageant.c +++ b/pageant.c @@ -390,13 +390,14 @@ static void add_keyfile(char *filename) int attempts; char *comment; struct PassphraseProcStruct pps; - int ver; + int type; int original_pass; - ver = keyfile_version(filename); - if (ver == 0) { - MessageBox(NULL, "Couldn't load private key.", APPNAME, - MB_OK | MB_ICONERROR); + type = key_type(filename); + if (type != SSH_KEYTYPE_SSH1 && type != SSH_KEYTYPE_SSH2) { + char msg[256]; + sprintf(msg, "Couldn't load this key (%s)", key_type_to_str(type)); + MessageBox(NULL, msg, APPNAME, MB_OK | MB_ICONERROR); return; } @@ -409,7 +410,7 @@ static void add_keyfile(char *filename) unsigned char *keylist, *p; int i, nkeys, bloblen; - if (ver == 1) { + if (type == SSH_KEYTYPE_SSH1) { if (!rsakey_pubblob(filename, &blob, &bloblen)) { MessageBox(NULL, "Couldn't load private key.", APPNAME, MB_OK | MB_ICONERROR); @@ -445,7 +446,7 @@ static void add_keyfile(char *filename) return; } /* Now skip over public blob */ - if (ver == 1) + if (type == SSH_KEYTYPE_SSH1) p += rsa_public_blob_len(p); else p += 4 + GET_32BIT(p); @@ -459,12 +460,12 @@ static void add_keyfile(char *filename) sfree(blob); } - if (ver == 1) + if (type == SSH_KEYTYPE_SSH1) needs_pass = rsakey_encrypted(filename, &comment); else needs_pass = ssh2_userkey_encrypted(filename, &comment); attempts = 0; - if (ver == 1) + if (type == SSH_KEYTYPE_SSH1) rkey = smalloc(sizeof(*rkey)); pps.passphrase = passphrase; pps.comment = comment; @@ -484,14 +485,14 @@ static void add_keyfile(char *filename) if (!dlgret) { if (comment) sfree(comment); - if (ver == 1) + if (type == SSH_KEYTYPE_SSH1) sfree(rkey); return; /* operation cancelled */ } } } else *passphrase = '\0'; - if (ver == 1) + if (type == SSH_KEYTYPE_SSH1) ret = loadrsakey(filename, rkey, passphrase); else { skey = ssh2_load_userkey(filename, passphrase); @@ -516,11 +517,11 @@ static void add_keyfile(char *filename) if (ret == 0) { MessageBox(NULL, "Couldn't load private key.", APPNAME, MB_OK | MB_ICONERROR); - if (ver == 1) + if (type == SSH_KEYTYPE_SSH1) sfree(rkey); return; } - if (ver == 1) { + if (type == SSH_KEYTYPE_SSH1) { if (already_running) { unsigned char *request, *response; void *vresponse; @@ -1239,7 +1240,7 @@ static void prompt_add_keyfile(void) of.lStructSize = sizeof(of); #endif of.hwndOwner = main_hwnd; - of.lpstrFilter = "All Files\0*\0\0\0"; + of.lpstrFilter = "PuTTY Private Key Files\0*.PPK\0AllFiles\0*\0\0\0"; of.lpstrCustomFilter = NULL; of.nFilterIndex = 1; of.lpstrFile = filelist;