mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-10 01:48:00 +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,
|
void load_key_file(HWND hwnd, struct MainDlgState *state,
|
||||||
Filename *filename, bool was_import_cmd)
|
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
|
* Now update the key controls with all the
|
||||||
* key data.
|
* key data.
|
||||||
*/
|
*/
|
||||||
{
|
update_ui_after_load(hwnd, state, passphrase, type, &newkey1, 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;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* 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;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the user has imported a foreign key
|
* If the user has imported a foreign key
|
||||||
|
Loading…
Reference in New Issue
Block a user