| 3606 |
LPARAM lParam) |
LPARAM lParam) |
| 3607 |
{ |
{ |
| 3608 |
static enum ssh_keytype key_type; |
static enum ssh_keytype key_type; |
| 3609 |
|
static int saved_key_bits; |
| 3610 |
char uimsg[MAX_UIMSG]; |
char uimsg[MAX_UIMSG]; |
| 3611 |
LOGFONT logfont; |
LOGFONT logfont; |
| 3612 |
HFONT font; |
HFONT font; |
| 3671 |
// default key type |
// default key type |
| 3672 |
SendMessage(GetDlgItem(dlg, IDC_RSA_TYPE), BM_SETCHECK, BST_CHECKED, 0); |
SendMessage(GetDlgItem(dlg, IDC_RSA_TYPE), BM_SETCHECK, BST_CHECKED, 0); |
| 3673 |
key_type = KEY_RSA; |
key_type = KEY_RSA; |
| 3674 |
|
saved_key_bits = GetDlgItemInt(dlg, IDC_KEYBITS, NULL, FALSE); |
| 3675 |
|
|
| 3676 |
// default key bits |
// default key bits |
| 3677 |
SetDlgItemInt(dlg, IDC_KEYBITS, SSH_KEYGEN_DEFAULT_BITS, FALSE); |
SetDlgItemInt(dlg, IDC_KEYBITS, SSH_KEYGEN_DEFAULT_BITS, FALSE); |
| 3768 |
EnableWindow(GetDlgItem(dlg, IDC_ECDSA256_TYPE), TRUE); |
EnableWindow(GetDlgItem(dlg, IDC_ECDSA256_TYPE), TRUE); |
| 3769 |
EnableWindow(GetDlgItem(dlg, IDC_ECDSA384_TYPE), TRUE); |
EnableWindow(GetDlgItem(dlg, IDC_ECDSA384_TYPE), TRUE); |
| 3770 |
EnableWindow(GetDlgItem(dlg, IDC_ECDSA521_TYPE), TRUE); |
EnableWindow(GetDlgItem(dlg, IDC_ECDSA521_TYPE), TRUE); |
| 3771 |
EnableWindow(GetDlgItem(dlg, IDC_KEYBITS), TRUE); |
if (!isECDSAkey(key_type)) { |
| 3772 |
|
EnableWindow(GetDlgItem(dlg, IDC_KEYBITS), TRUE); |
| 3773 |
|
} |
| 3774 |
EnableWindow(GetDlgItem(dlg, IDOK), TRUE); |
EnableWindow(GetDlgItem(dlg, IDOK), TRUE); |
| 3775 |
EnableWindow(GetDlgItem(dlg, IDCANCEL), TRUE); |
EnableWindow(GetDlgItem(dlg, IDCANCEL), TRUE); |
| 3776 |
|
|
| 3791 |
|
|
| 3792 |
// if radio button pressed... |
// if radio button pressed... |
| 3793 |
case IDC_RSA1_TYPE | (BN_CLICKED << 16): |
case IDC_RSA1_TYPE | (BN_CLICKED << 16): |
| 3794 |
|
if (isECDSAkey(key_type)) { |
| 3795 |
|
EnableWindow(GetDlgItem(dlg, IDC_KEYBITS), TRUE); |
| 3796 |
|
SetDlgItemInt(dlg, IDC_KEYBITS, saved_key_bits, FALSE); |
| 3797 |
|
} |
| 3798 |
key_type = KEY_RSA1; |
key_type = KEY_RSA1; |
| 3799 |
break; |
break; |
| 3800 |
|
|
| 3801 |
case IDC_RSA_TYPE | (BN_CLICKED << 16): |
case IDC_RSA_TYPE | (BN_CLICKED << 16): |
| 3802 |
|
if (isECDSAkey(key_type)) { |
| 3803 |
|
EnableWindow(GetDlgItem(dlg, IDC_KEYBITS), TRUE); |
| 3804 |
|
SetDlgItemInt(dlg, IDC_KEYBITS, saved_key_bits, FALSE); |
| 3805 |
|
} |
| 3806 |
key_type = KEY_RSA; |
key_type = KEY_RSA; |
| 3807 |
break; |
break; |
| 3808 |
|
|
| 3809 |
case IDC_DSA_TYPE | (BN_CLICKED << 16): |
case IDC_DSA_TYPE | (BN_CLICKED << 16): |
| 3810 |
|
if (isECDSAkey(key_type)) { |
| 3811 |
|
EnableWindow(GetDlgItem(dlg, IDC_KEYBITS), TRUE); |
| 3812 |
|
SetDlgItemInt(dlg, IDC_KEYBITS, saved_key_bits, FALSE); |
| 3813 |
|
} |
| 3814 |
key_type = KEY_DSA; |
key_type = KEY_DSA; |
| 3815 |
break; |
break; |
| 3816 |
|
|
| 3817 |
case IDC_ECDSA256_TYPE | (BN_CLICKED << 16): |
case IDC_ECDSA256_TYPE | (BN_CLICKED << 16): |
| 3818 |
|
if (!isECDSAkey(key_type)) { |
| 3819 |
|
EnableWindow(GetDlgItem(dlg, IDC_KEYBITS), FALSE); |
| 3820 |
|
saved_key_bits = GetDlgItemInt(dlg, IDC_KEYBITS, NULL, FALSE); |
| 3821 |
|
} |
| 3822 |
key_type = KEY_ECDSA256; |
key_type = KEY_ECDSA256; |
| 3823 |
SetDlgItemInt(dlg, IDC_KEYBITS, 256, FALSE); |
SetDlgItemInt(dlg, IDC_KEYBITS, 256, FALSE); |
| 3824 |
break; |
break; |
| 3825 |
|
|
| 3826 |
case IDC_ECDSA384_TYPE | (BN_CLICKED << 16): |
case IDC_ECDSA384_TYPE | (BN_CLICKED << 16): |
| 3827 |
|
if (!isECDSAkey(key_type)) { |
| 3828 |
|
EnableWindow(GetDlgItem(dlg, IDC_KEYBITS), FALSE); |
| 3829 |
|
saved_key_bits = GetDlgItemInt(dlg, IDC_KEYBITS, NULL, FALSE); |
| 3830 |
|
} |
| 3831 |
key_type = KEY_ECDSA384; |
key_type = KEY_ECDSA384; |
| 3832 |
SetDlgItemInt(dlg, IDC_KEYBITS, 384, FALSE); |
SetDlgItemInt(dlg, IDC_KEYBITS, 384, FALSE); |
| 3833 |
break; |
break; |
| 3834 |
|
|
| 3835 |
case IDC_ECDSA521_TYPE | (BN_CLICKED << 16): |
case IDC_ECDSA521_TYPE | (BN_CLICKED << 16): |
| 3836 |
|
if (!isECDSAkey(key_type)) { |
| 3837 |
|
EnableWindow(GetDlgItem(dlg, IDC_KEYBITS), FALSE); |
| 3838 |
|
saved_key_bits = GetDlgItemInt(dlg, IDC_KEYBITS, NULL, FALSE); |
| 3839 |
|
} |
| 3840 |
key_type = KEY_ECDSA521; |
key_type = KEY_ECDSA521; |
| 3841 |
SetDlgItemInt(dlg, IDC_KEYBITS, 521, FALSE); |
SetDlgItemInt(dlg, IDC_KEYBITS, 521, FALSE); |
| 3842 |
break; |
break; |