X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=windows%2Fwinpgnt.c;h=828747dac62a83bdb391f616d53c934bc510f730;hb=d23c0972cd850c77871f9a314e0520d7023c8b62;hp=22b607881572d9a39e810e5d3ce6245b980b7bf9;hpb=bb78583ad29084f16db994d66895917e1b20346e;p=PuTTY.git diff --git a/windows/winpgnt.c b/windows/winpgnt.c index 22b60788..828747da 100644 --- a/windows/winpgnt.c +++ b/windows/winpgnt.c @@ -349,22 +349,24 @@ static void keylist_update(void) } for (i = 0; NULL != (skey = index234(ssh2keys, i)); i++) { char *listentry, *p; - int fp_len; + int pos, fp_len; /* - * Replace two spaces in the fingerprint with tabs, for - * nice alignment in the box. + * Replace spaces with tabs in the fingerprint prefix, for + * nice alignment in the list box, until we encounter a : + * meaning we're into the fingerprint proper. */ p = skey->alg->fingerprint(skey->data); listentry = dupprintf("%s\t%s", p, skey->comment); fp_len = strlen(listentry); sfree(p); - p = strchr(listentry, ' '); - if (p && p < listentry + fp_len) - *p = '\t'; - p = strchr(listentry, ' '); - if (p && p < listentry + fp_len) - *p = '\t'; + pos = 0; + while (1) { + pos += strcspn(listentry + pos, " :"); + if (listentry[pos] == ':') + break; + listentry[pos++] = '\t'; + } SendDlgItemMessage(keylist, 100, LB_ADDSTRING, 0, (LPARAM) listentry); @@ -1141,6 +1143,12 @@ static void answer_msg(void *msg) key->alg = &ssh_rsa; else if (alglen == 7 && !memcmp(alg, "ssh-dss", 7)) key->alg = &ssh_dss; + else if (alglen == 19 && memcmp(alg, "ecdsa-sha2-nistp256", 19)) + key->alg = &ssh_ecdsa_nistp256; + else if (alglen == 19 && memcmp(alg, "ecdsa-sha2-nistp384", 19)) + key->alg = &ssh_ecdsa_nistp384; + else if (alglen == 19 && memcmp(alg, "ecdsa-sha2-nistp521", 19)) + key->alg = &ssh_ecdsa_nistp521; else { sfree(key); goto failure; @@ -1508,7 +1516,7 @@ static int CALLBACK KeyListProc(HWND hwnd, UINT msg, keylist = hwnd; { - static int tabs[] = { 35, 60, 210 }; + static int tabs[] = { 35, 75, 250 }; SendDlgItemMessage(hwnd, 100, LB_SETTABSTOPS, sizeof(tabs) / sizeof(*tabs), (LPARAM) tabs);