mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 09:27:59 +00:00
Windows PuTTYgen: saw load_key_file in half.
Once we've actually loaded a key file, the job of updating the UI fields is now done by a subroutine update_ui_after_load(), so that I can call it from a different context in an upcoming commit.
This commit is contained in:
parent
896bcd5068
commit
9294ee3496
@ -992,6 +992,65 @@ void ui_set_fptype(HWND hwnd, struct MainDlgState *state, int option)
|
||||
}
|
||||
}
|
||||
|
||||
static void update_ui_after_load(HWND hwnd, struct MainDlgState *state,
|
||||
const char *passphrase, int type,
|
||||
RSAKey *newkey1, ssh2_userkey *newkey2)
|
||||
{
|
||||
SetDlgItemText(hwnd, IDC_PASSPHRASE1EDIT, passphrase);
|
||||
SetDlgItemText(hwnd, IDC_PASSPHRASE2EDIT, passphrase);
|
||||
|
||||
if (type == SSH_KEYTYPE_SSH1) {
|
||||
char *fingerprint, *savecomment;
|
||||
|
||||
state->ssh2 = false;
|
||||
state->commentptr = &state->key.comment;
|
||||
state->key = *newkey1; /* structure copy */
|
||||
|
||||
/*
|
||||
* Set the key fingerprint.
|
||||
*/
|
||||
savecomment = state->key.comment;
|
||||
state->key.comment = NULL;
|
||||
fingerprint = rsa_ssh1_fingerprint(&state->key);
|
||||
state->key.comment = savecomment;
|
||||
SetDlgItemText(hwnd, IDC_FINGERPRINT, fingerprint);
|
||||
sfree(fingerprint);
|
||||
|
||||
/*
|
||||
* Construct a decimal representation of the key, for pasting
|
||||
* into .ssh/authorized_keys on a Unix box.
|
||||
*/
|
||||
setupbigedit1(hwnd, IDC_KEYDISPLAY, IDC_PKSTATIC, &state->key);
|
||||
} else {
|
||||
char *fp;
|
||||
char *savecomment;
|
||||
|
||||
state->ssh2 = true;
|
||||
state->commentptr = &state->ssh2key.comment;
|
||||
state->ssh2key = *newkey2; /* structure copy */
|
||||
sfree(newkey2);
|
||||
|
||||
savecomment = state->ssh2key.comment;
|
||||
state->ssh2key.comment = NULL;
|
||||
fp = ssh2_fingerprint(state->ssh2key.key, state->fptype);
|
||||
state->ssh2key.comment = savecomment;
|
||||
|
||||
SetDlgItemText(hwnd, IDC_FINGERPRINT, fp);
|
||||
sfree(fp);
|
||||
|
||||
setupbigedit2(hwnd, IDC_KEYDISPLAY,
|
||||
IDC_PKSTATIC, &state->ssh2key);
|
||||
}
|
||||
SetDlgItemText(hwnd, IDC_COMMENTEDIT,
|
||||
*state->commentptr);
|
||||
|
||||
/*
|
||||
* Finally, hide the progress bar and show the key data.
|
||||
*/
|
||||
ui_set_state(hwnd, state, 2);
|
||||
state->key_exists = true;
|
||||
}
|
||||
|
||||
void load_key_file(HWND hwnd, struct MainDlgState *state,
|
||||
Filename *filename, bool was_import_cmd)
|
||||
{
|
||||
@ -1081,65 +1140,7 @@ void load_key_file(HWND hwnd, struct MainDlgState *state,
|
||||
* Now update the key controls with all the
|
||||
* key data.
|
||||
*/
|
||||
{
|
||||
SetDlgItemText(hwnd, IDC_PASSPHRASE1EDIT,
|
||||
passphrase);
|
||||
SetDlgItemText(hwnd, IDC_PASSPHRASE2EDIT,
|
||||
passphrase);
|
||||
if (type == SSH_KEYTYPE_SSH1) {
|
||||
char *fingerprint, *savecomment;
|
||||
|
||||
state->ssh2 = false;
|
||||
state->commentptr = &state->key.comment;
|
||||
state->key = newkey1;
|
||||
|
||||
/*
|
||||
* Set the key fingerprint.
|
||||
*/
|
||||
savecomment = state->key.comment;
|
||||
state->key.comment = NULL;
|
||||
fingerprint = rsa_ssh1_fingerprint(&state->key);
|
||||
state->key.comment = savecomment;
|
||||
SetDlgItemText(hwnd, IDC_FINGERPRINT, fingerprint);
|
||||
sfree(fingerprint);
|
||||
|
||||
/*
|
||||
* Construct a decimal representation
|
||||
* of the key, for pasting into
|
||||
* .ssh/authorized_keys on a Unix box.
|
||||
*/
|
||||
setupbigedit1(hwnd, IDC_KEYDISPLAY,
|
||||
IDC_PKSTATIC, &state->key);
|
||||
} else {
|
||||
char *fp;
|
||||
char *savecomment;
|
||||
|
||||
state->ssh2 = true;
|
||||
state->commentptr =
|
||||
&state->ssh2key.comment;
|
||||
state->ssh2key = *newkey2; /* structure copy */
|
||||
sfree(newkey2);
|
||||
|
||||
savecomment = state->ssh2key.comment;
|
||||
state->ssh2key.comment = NULL;
|
||||
fp = ssh2_fingerprint(state->ssh2key.key, state->fptype);
|
||||
state->ssh2key.comment = savecomment;
|
||||
|
||||
SetDlgItemText(hwnd, IDC_FINGERPRINT, fp);
|
||||
sfree(fp);
|
||||
|
||||
setupbigedit2(hwnd, IDC_KEYDISPLAY,
|
||||
IDC_PKSTATIC, &state->ssh2key);
|
||||
}
|
||||
SetDlgItemText(hwnd, IDC_COMMENTEDIT,
|
||||
*state->commentptr);
|
||||
}
|
||||
/*
|
||||
* Finally, hide the progress bar and show
|
||||
* the key data.
|
||||
*/
|
||||
ui_set_state(hwnd, state, 2);
|
||||
state->key_exists = true;
|
||||
update_ui_after_load(hwnd, state, passphrase, type, &newkey1, newkey2);
|
||||
|
||||
/*
|
||||
* If the user has imported a foreign key
|
||||
|
Loading…
Reference in New Issue
Block a user