| 3225 |
key_type = KEY_RSA; |
key_type = KEY_RSA; |
| 3226 |
|
|
| 3227 |
// default key bits |
// default key bits |
| 3228 |
SetDlgItemInt(dlg, IDC_KEYBITS, SSH_RSA_KEYGEN_DEFAULT_BITS, FALSE); |
SetDlgItemInt(dlg, IDC_KEYBITS, SSH_KEYGEN_DEFAULT_BITS, FALSE); |
| 3229 |
SendDlgItemMessage(dlg, IDC_KEYBITS, EM_LIMITTEXT, 4, 0); |
SendDlgItemMessage(dlg, IDC_KEYBITS, EM_LIMITTEXT, 4, 0); |
| 3230 |
|
|
| 3231 |
// passphrase edit box disabled(default) |
// passphrase edit box disabled(default) |
| 3244 |
case IDOK: // key generate button pressed |
case IDOK: // key generate button pressed |
| 3245 |
{ |
{ |
| 3246 |
int bits; |
int bits; |
|
BOOL Ok; |
|
| 3247 |
|
|
| 3248 |
// passphrase edit box disabled(default) |
// passphrase edit box disabled(default) |
| 3249 |
EnableWindow(GetDlgItem(dlg, IDC_KEY_EDIT), FALSE); |
EnableWindow(GetDlgItem(dlg, IDC_KEY_EDIT), FALSE); |
| 3253 |
EnableWindow(GetDlgItem(dlg, IDC_SAVE_PUBLIC_KEY), FALSE); |
EnableWindow(GetDlgItem(dlg, IDC_SAVE_PUBLIC_KEY), FALSE); |
| 3254 |
EnableWindow(GetDlgItem(dlg, IDC_SAVE_PRIBATE_KEY), FALSE); |
EnableWindow(GetDlgItem(dlg, IDC_SAVE_PRIBATE_KEY), FALSE); |
| 3255 |
|
|
| 3256 |
bits = GetDlgItemInt(dlg, IDC_KEYBITS, &Ok, FALSE); |
bits = GetDlgItemInt(dlg, IDC_KEYBITS, NULL, FALSE); |
| 3257 |
if (!Ok) { |
|
| 3258 |
UTIL_get_lang_msg("MSG_KEYBITS_NAN_ERROR", pvar, |
if (bits < ((key_type==KEY_DSA)?SSH_DSA_MINIMUM_KEY_SIZE:SSH_RSA_MINIMUM_KEY_SIZE)) { |
| 3259 |
"The key bits must be a number."); |
UTIL_get_lang_msg("MSG_KEYBITS_MIN_ERROR", pvar, |
| 3260 |
|
"The key bits is too small."); |
| 3261 |
MessageBox(dlg, pvar->ts->UIMsg, |
MessageBox(dlg, pvar->ts->UIMsg, |
| 3262 |
"Tera Term", MB_OK | MB_ICONEXCLAMATION); |
"Tera Term", MB_OK | MB_ICONEXCLAMATION); |
| 3263 |
return TRUE; |
return TRUE; |
| 3264 |
} |
} |
| 3265 |
|
|
|
if (key_type == KEY_DSA) { |
|
|
if (bits != 1024) { |
|
|
UTIL_get_lang_msg("MSG_KEYBITS_DSA_SIZE_ERROR", pvar, |
|
|
"The DSA key must be 1024 bits."); |
|
|
MessageBox(dlg, pvar->ts->UIMsg, |
|
|
"Tera Term", MB_OK | MB_ICONEXCLAMATION); |
|
|
return TRUE; |
|
|
} |
|
|
} |
|
|
else { // KEY_RSA1 or KEY_RSA |
|
|
if (bits < SSH_RSA_MINIMUM_MODULUS_SIZE) { |
|
|
UTIL_get_lang_msg("MSG_KEYBITS_RSA_MIN_ERROR", pvar, |
|
|
"The key bits is too small."); |
|
|
MessageBox(dlg, pvar->ts->UIMsg, |
|
|
"Tera Term", MB_OK | MB_ICONEXCLAMATION); |
|
|
return TRUE; |
|
|
} |
|
|
} |
|
|
|
|
| 3266 |
if (generate_ssh_key(key_type, bits)) { |
if (generate_ssh_key(key_type, bits)) { |
| 3267 |
// passphrase edit box disabled(default) |
// passphrase edit box disabled(default) |
| 3268 |
EnableWindow(GetDlgItem(dlg, IDC_KEY_EDIT), TRUE); |
EnableWindow(GetDlgItem(dlg, IDC_KEY_EDIT), TRUE); |
| 3289 |
|
|
| 3290 |
// if radio button pressed... |
// if radio button pressed... |
| 3291 |
case IDC_RSA1_TYPE | (BN_CLICKED << 16): |
case IDC_RSA1_TYPE | (BN_CLICKED << 16): |
|
if (key_type == KEY_DSA) { |
|
|
SetDlgItemInt(dlg, IDC_KEYBITS, SSH_RSA_KEYGEN_DEFAULT_BITS, FALSE); |
|
|
EnableWindow(GetDlgItem(dlg, IDC_KEYBITS), TRUE); |
|
|
} |
|
| 3292 |
key_type = KEY_RSA1; |
key_type = KEY_RSA1; |
| 3293 |
break; |
break; |
| 3294 |
|
|
| 3295 |
case IDC_RSA_TYPE | (BN_CLICKED << 16): |
case IDC_RSA_TYPE | (BN_CLICKED << 16): |
|
if (key_type == KEY_DSA) { |
|
|
SetDlgItemInt(dlg, IDC_KEYBITS, SSH_RSA_KEYGEN_DEFAULT_BITS, FALSE); |
|
|
EnableWindow(GetDlgItem(dlg, IDC_KEYBITS), TRUE); |
|
|
} |
|
| 3296 |
key_type = KEY_RSA; |
key_type = KEY_RSA; |
| 3297 |
break; |
break; |
| 3298 |
|
|
| 3299 |
case IDC_DSA_TYPE | (BN_CLICKED << 16): |
case IDC_DSA_TYPE | (BN_CLICKED << 16): |
| 3300 |
key_type = KEY_DSA; |
key_type = KEY_DSA; |
|
SetDlgItemInt(dlg, IDC_KEYBITS, 1024, FALSE); |
|
|
EnableWindow(GetDlgItem(dlg, IDC_KEYBITS), FALSE); |
|
| 3301 |
break; |
break; |
| 3302 |
|
|
| 3303 |
// saving public key file |
// saving public key file |