*/
static int CALLBACK PassphraseProc(HWND hwnd, UINT msg,
WPARAM wParam, LPARAM lParam) {
- static char *passphrase;
+ static char *passphrase = NULL;
struct PassphraseProcStruct *p;
switch (msg) {
if (p->comment)
SetDlgItemText(hwnd, 101, p->comment);
*passphrase = 0;
+ SetDlgItemText(hwnd, 102, passphrase);
return 0;
case WM_COMMAND:
switch (LOWORD(wParam)) {
EndDialog (hwnd, 0);
return 0;
case 102: /* edit box */
- if (HIWORD(wParam) == EN_CHANGE) {
+ if ((HIWORD(wParam) == EN_CHANGE) && passphrase) {
GetDlgItemText (hwnd, 102, passphrase, PASSPHRASE_MAXLEN-1);
passphrase[PASSPHRASE_MAXLEN-1] = '\0';
}
buffer = smalloc(strlen(dec1)+strlen(dec2)+
strlen(key->comment)+30);
sprintf(buffer, "%d %s %s %s",
- ssh1_bignum_bitcount(key->modulus),
+ bignum_bitcount(key->modulus),
dec1, dec2, key->comment);
SetDlgItemText(hwnd, id, buffer);
sfree(dec1);
static void setupbigedit2(HWND hwnd, int id, struct ssh2_userkey *key) {
unsigned char *pub_blob;
char *buffer, *p;
- int pub_len, buflen;
+ int pub_len;
int i;
pub_blob = key->alg->public_blob(key->data, &pub_len);
sfree(*state->commentptr);
*state->commentptr = smalloc(len+1);
GetWindowText(editctl, *state->commentptr, len+1);
- }
- }
+ if (state->ssh2) {
+ setupbigedit2(hwnd, IDC_KEYDISPLAY, &state->ssh2key);
+ } else {
+ setupbigedit1(hwnd, IDC_KEYDISPLAY, &state->key);
+ }
+ }
+ }
break;
case IDC_ABOUT:
EnableWindow(hwnd, 0);