| 442 |
} |
} |
| 443 |
|
|
| 444 |
if (method == SSH_AUTH_RSA || method == SSH_AUTH_RHOSTS_RSA) { |
if (method == SSH_AUTH_RSA || method == SSH_AUTH_RHOSTS_RSA) { |
| 445 |
char buf[2048]; |
char keyfile[2048]; |
| 446 |
int file_ctl_ID = |
int file_ctl_ID = |
| 447 |
method == SSH_AUTH_RSA ? IDC_RSAFILENAME : IDC_HOSTRSAFILENAME; |
method == SSH_AUTH_RSA ? IDC_RSAFILENAME : IDC_HOSTRSAFILENAME; |
| 448 |
|
|
| 449 |
buf[0] = 0; |
keyfile[0] = 0; |
| 450 |
GetDlgItemText(dlg, file_ctl_ID, buf, sizeof(buf)); |
GetDlgItemText(dlg, file_ctl_ID, keyfile, sizeof(keyfile)); |
| 451 |
if (buf[0] == 0) { |
if (keyfile[0] == 0) { |
| 452 |
UTIL_get_lang_msg("MSG_KEYSPECIFY_ERROR", pvar, |
UTIL_get_lang_msg("MSG_KEYSPECIFY_ERROR", pvar, |
| 453 |
"You must specify a file containing the RSA/DSA/ECDSA/ED25519 private key."); |
"You must specify a file containing the RSA/DSA/ECDSA/ED25519 private key."); |
| 454 |
notify_nonfatal_error(pvar, pvar->ts->UIMsg); |
notify_nonfatal_error(pvar, pvar->ts->UIMsg); |
| 460 |
if (SSHv1(pvar)) { |
if (SSHv1(pvar)) { |
| 461 |
BOOL invalid_passphrase = FALSE; |
BOOL invalid_passphrase = FALSE; |
| 462 |
|
|
| 463 |
key_pair = KEYFILES_read_private_key(pvar, buf, password, |
key_pair = KEYFILES_read_private_key(pvar, keyfile, password, |
| 464 |
&invalid_passphrase, |
&invalid_passphrase, |
| 465 |
FALSE); |
FALSE); |
| 466 |
|
|
| 485 |
|
|
| 486 |
memset(errmsg, 0, sizeof(errmsg)); |
memset(errmsg, 0, sizeof(errmsg)); |
| 487 |
|
|
| 488 |
keyfile_type = get_ssh2_keytype(buf, &fp, errmsg, sizeof(errmsg)); |
keyfile_type = get_ssh2_keytype(keyfile, &fp, errmsg, sizeof(errmsg)); |
| 489 |
switch (keyfile_type) { |
switch (keyfile_type) { |
| 490 |
case SSH2_KEYFILE_TYPE_OPENSSH: |
case SSH2_KEYFILE_TYPE_OPENSSH: |
| 491 |
{ |
{ |