mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-10 01:48:00 +00:00
Update the specials menu as keys are cross-certified.
If you've just certified a key, you want it to vanish from the menu immediately, of course.
This commit is contained in:
parent
2d217ec862
commit
221d669e4d
13
ssh.c
13
ssh.c
@ -6699,11 +6699,16 @@ static void do_ssh2_transport(Ssh ssh, const void *vin, int inlen,
|
|||||||
* host keys offered by the server which we _don't_
|
* host keys offered by the server which we _don't_
|
||||||
* have cached. These will be offered as cross-
|
* have cached. These will be offered as cross-
|
||||||
* certification options by ssh_get_specials.
|
* certification options by ssh_get_specials.
|
||||||
|
*
|
||||||
|
* We also count the key we're currently using for KEX
|
||||||
|
* as one we've already got, because by the time this
|
||||||
|
* menu becomes visible, it will be.
|
||||||
*/
|
*/
|
||||||
ssh->n_uncert_hostkeys = 0;
|
ssh->n_uncert_hostkeys = 0;
|
||||||
|
|
||||||
for (j = 0; j < lenof(hostkey_algs); j++) {
|
for (j = 0; j < lenof(hostkey_algs); j++) {
|
||||||
if (in_commasep_string(hostkey_algs[j]->name, str, len) &&
|
if (hostkey_algs[j] != ssh->hostkey &&
|
||||||
|
in_commasep_string(hostkey_algs[j]->name, str, len) &&
|
||||||
!have_ssh_host_key(ssh->savedhost, ssh->savedport,
|
!have_ssh_host_key(ssh->savedhost, ssh->savedport,
|
||||||
hostkey_algs[j]->keytype)) {
|
hostkey_algs[j]->keytype)) {
|
||||||
ssh->uncert_hostkeys[ssh->n_uncert_hostkeys++] = j;
|
ssh->uncert_hostkeys[ssh->n_uncert_hostkeys++] = j;
|
||||||
@ -7415,6 +7420,12 @@ static void do_ssh2_transport(Ssh ssh, const void *vin, int inlen,
|
|||||||
*/
|
*/
|
||||||
freebn(s->K);
|
freebn(s->K);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Update the specials menu to list the remaining uncertified host
|
||||||
|
* keys.
|
||||||
|
*/
|
||||||
|
update_specials_menu(ssh->frontend);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Key exchange is over. Loop straight back round if we have a
|
* Key exchange is over. Loop straight back round if we have a
|
||||||
* deferred rekey reason.
|
* deferred rekey reason.
|
||||||
|
Loading…
Reference in New Issue
Block a user