| 74 |
#include "buffer.h" |
#include "buffer.h" |
| 75 |
#include "cipher.h" |
#include "cipher.h" |
| 76 |
|
|
| 77 |
|
|
| 78 |
#define MATCH_STR(s, o) strncmp((s), (o), NUM_ELEM(o) - 1) |
#define MATCH_STR(s, o) strncmp((s), (o), NUM_ELEM(o) - 1) |
| 79 |
#define MATCH_STR_I(s, o) _strnicmp((s), (o), NUM_ELEM(o) - 1) |
#define MATCH_STR_I(s, o) _strnicmp((s), (o), NUM_ELEM(o) - 1) |
| 80 |
|
|
| 87 |
static HICON SecureSmallIcon = NULL; |
static HICON SecureSmallIcon = NULL; |
| 88 |
#endif |
#endif |
| 89 |
|
|
| 90 |
|
#ifdef I18N |
| 91 |
|
static HFONT DlgAboutFont; |
| 92 |
|
#endif |
| 93 |
|
|
| 94 |
static TInstVar FAR *pvar; |
static TInstVar FAR *pvar; |
| 95 |
|
|
| 96 |
#ifdef TERATERM32 |
#ifdef TERATERM32 |
| 757 |
// 未接続の状態では通知先ウィンドウがないので、デスクトップをオーナーとして |
// 未接続の状態では通知先ウィンドウがないので、デスクトップをオーナーとして |
| 758 |
// メッセージボックスを出現させる。(2006.6.11 yutaka) |
// メッセージボックスを出現させる。(2006.6.11 yutaka) |
| 759 |
if (pvar->NotificationWindow == NULL) { |
if (pvar->NotificationWindow == NULL) { |
| 760 |
|
#ifdef I18N |
| 761 |
|
strcpy(pvar->ts->UIMsg, "Tera Term: not fatal error"); |
| 762 |
|
UTIL_get_lang_msg("MSG_ERROR_NONFAITAL", pvar); |
| 763 |
|
MessageBox(NULL, msg, pvar->ts->UIMsg, MB_OK|MB_ICONINFORMATION); |
| 764 |
|
#else |
| 765 |
MessageBox(NULL, msg, "Tera Term: not fatal error", MB_OK|MB_ICONINFORMATION); |
MessageBox(NULL, msg, "Tera Term: not fatal error", MB_OK|MB_ICONINFORMATION); |
| 766 |
|
#endif |
| 767 |
msg[0] = '\0'; |
msg[0] = '\0'; |
| 768 |
|
|
| 769 |
} else { |
} else { |
| 905 |
GetHNRec = (PGetHNRec) lParam; |
GetHNRec = (PGetHNRec) lParam; |
| 906 |
SetWindowLong(dlg, DWL_USER, lParam); |
SetWindowLong(dlg, DWL_USER, lParam); |
| 907 |
|
|
| 908 |
|
#ifdef I18N |
| 909 |
|
GetWindowText(dlg, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 910 |
|
UTIL_get_lang_msg("DLG_HOST_TITLE", pvar); |
| 911 |
|
SetWindowText(dlg, pvar->ts->UIMsg); |
| 912 |
|
|
| 913 |
|
GetDlgItemText(dlg, IDC_HOSTNAMELABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 914 |
|
UTIL_get_lang_msg("DLG_HOST_TCPIP_HOST", pvar); |
| 915 |
|
SetDlgItemText(dlg, IDC_HOSTNAMELABEL, pvar->ts->UIMsg); |
| 916 |
|
|
| 917 |
|
GetDlgItemText(dlg, IDC_HISTORY, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 918 |
|
UTIL_get_lang_msg("DLG_HOST_TCPIP_HISTORY", pvar); |
| 919 |
|
SetDlgItemText(dlg, IDC_HISTORY, pvar->ts->UIMsg); |
| 920 |
|
|
| 921 |
|
GetDlgItemText(dlg, IDC_SERVICELABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 922 |
|
UTIL_get_lang_msg("DLG_HOST_TCPIP_SERVICE", pvar); |
| 923 |
|
SetDlgItemText(dlg, IDC_SERVICELABEL, pvar->ts->UIMsg); |
| 924 |
|
|
| 925 |
|
GetDlgItemText(dlg, IDC_HOSTOTHER, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 926 |
|
UTIL_get_lang_msg("IDC_HOSTOTHER", pvar); |
| 927 |
|
SetDlgItemText(dlg, IDC_HOSTOTHER, pvar->ts->UIMsg); |
| 928 |
|
|
| 929 |
|
GetDlgItemText(dlg, IDC_HOSTTCPPORTLABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 930 |
|
UTIL_get_lang_msg("DLG_HOST_TCPIP_PORT", pvar); |
| 931 |
|
SetDlgItemText(dlg, IDC_HOSTTCPPORTLABEL, pvar->ts->UIMsg); |
| 932 |
|
|
| 933 |
|
GetDlgItemText(dlg, IDC_SSH_VERSION_LABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 934 |
|
UTIL_get_lang_msg("DLG_HOST_TCPIP_SSHVERSION", pvar); |
| 935 |
|
SetDlgItemText(dlg, IDC_SSH_VERSION_LABEL, pvar->ts->UIMsg); |
| 936 |
|
|
| 937 |
|
GetDlgItemText(dlg, IDC_HOSTTCPPROTOCOLLABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 938 |
|
UTIL_get_lang_msg("DLG_HOST_TCPIP_PROTOCOL", pvar); |
| 939 |
|
SetDlgItemText(dlg, IDC_HOSTTCPPROTOCOLLABEL, pvar->ts->UIMsg); |
| 940 |
|
|
| 941 |
|
GetDlgItemText(dlg, IDC_HOSTSERIAL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 942 |
|
UTIL_get_lang_msg("DLG_HOST_SERIAL", pvar); |
| 943 |
|
SetDlgItemText(dlg, IDC_HOSTSERIAL, pvar->ts->UIMsg); |
| 944 |
|
|
| 945 |
|
GetDlgItemText(dlg, IDC_HOSTCOMLABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 946 |
|
UTIL_get_lang_msg("DLG_HOST_SERIAL_PORT", pvar); |
| 947 |
|
SetDlgItemText(dlg, IDC_HOSTCOMLABEL, pvar->ts->UIMsg); |
| 948 |
|
|
| 949 |
|
GetDlgItemText(dlg, IDC_HOSTHELP, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 950 |
|
UTIL_get_lang_msg("DLG_HOST_HELP", pvar); |
| 951 |
|
SetDlgItemText(dlg, IDC_HOSTHELP, pvar->ts->UIMsg); |
| 952 |
|
|
| 953 |
|
GetDlgItemText(dlg, IDOK, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 954 |
|
UTIL_get_lang_msg("BTN_OK", pvar); |
| 955 |
|
SetDlgItemText(dlg, IDOK, pvar->ts->UIMsg); |
| 956 |
|
|
| 957 |
|
GetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 958 |
|
UTIL_get_lang_msg("BTN_CANCEL", pvar); |
| 959 |
|
SetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg); |
| 960 |
|
#endif |
| 961 |
|
|
| 962 |
// ホストヒストリのチェックボックスを追加 (2005.10.21 yutaka) |
// ホストヒストリのチェックボックスを追加 (2005.10.21 yutaka) |
| 963 |
if (pvar->ts->HistoryList > 0) { |
if (pvar->ts->HistoryList > 0) { |
| 964 |
SendMessage(GetDlgItem(dlg, IDC_HISTORY), BM_SETCHECK, BST_CHECKED, 0); |
SendMessage(GetDlgItem(dlg, IDC_HISTORY), BM_SETCHECK, BST_CHECKED, 0); |
| 1093 |
if (Ok) { |
if (Ok) { |
| 1094 |
GetHNRec->TCPPort = i; |
GetHNRec->TCPPort = i; |
| 1095 |
} else { |
} else { |
| 1096 |
|
#ifdef I18N |
| 1097 |
|
strcpy(pvar->ts->UIMsg, "The TCP port must be a number."); |
| 1098 |
|
UTIL_get_lang_msg("MSG_TCPPORT_NAN_ERROR", pvar); |
| 1099 |
|
MessageBox(dlg, pvar->ts->UIMsg, |
| 1100 |
|
"Teraterm", MB_OK | MB_ICONEXCLAMATION); |
| 1101 |
|
#else |
| 1102 |
MessageBox(dlg, "The TCP port must be a number.", |
MessageBox(dlg, "The TCP port must be a number.", |
| 1103 |
"Teraterm", MB_OK | MB_ICONEXCLAMATION); |
"Teraterm", MB_OK | MB_ICONEXCLAMATION); |
| 1104 |
|
#endif |
| 1105 |
return TRUE; |
return TRUE; |
| 1106 |
} |
} |
| 1107 |
#ifdef INET6 |
#ifdef INET6 |
| 1337 |
} else { |
} else { |
| 1338 |
char buf[1024]; |
char buf[1024]; |
| 1339 |
|
|
| 1340 |
|
#ifdef I18N |
| 1341 |
|
strcpy(pvar->ts->UIMsg, "Unrecognized command-line option: %s"); |
| 1342 |
|
UTIL_get_lang_msg("MSG_UNKNOWN_OPTION_ERROR", pvar); |
| 1343 |
|
_snprintf(buf, sizeof(buf), pvar->ts->UIMsg, option); |
| 1344 |
|
#else |
| 1345 |
_snprintf(buf, sizeof(buf), |
_snprintf(buf, sizeof(buf), |
| 1346 |
"Unrecognized command-line option: %s", option); |
"Unrecognized command-line option: %s", option); |
| 1347 |
|
#endif |
| 1348 |
buf[sizeof(buf) - 1] = 0; |
buf[sizeof(buf) - 1] = 0; |
| 1349 |
|
|
| 1350 |
MessageBox(NULL, buf, "TTSSH", MB_OK | MB_ICONEXCLAMATION); |
MessageBox(NULL, buf, "TTSSH", MB_OK | MB_ICONEXCLAMATION); |
| 1582 |
GET_VAR(); |
GET_VAR(); |
| 1583 |
|
|
| 1584 |
/* inserts before ID_HELP_ABOUT */ |
/* inserts before ID_HELP_ABOUT */ |
| 1585 |
|
#ifdef I18N |
| 1586 |
|
strcpy(pvar->ts->UIMsg, "About &TTSSH..."); |
| 1587 |
|
UTIL_get_lang_msg("MENU_ABOUT", pvar); |
| 1588 |
|
insertMenuBeforeItem(menu, 50990, MF_ENABLED, ID_ABOUTMENU, pvar->ts->UIMsg); |
| 1589 |
|
#else |
| 1590 |
insertMenuBeforeItem(menu, 50990, MF_ENABLED, ID_ABOUTMENU, |
insertMenuBeforeItem(menu, 50990, MF_ENABLED, ID_ABOUTMENU, |
| 1591 |
"About &TTSSH..."); |
"About &TTSSH..."); |
| 1592 |
|
#endif |
| 1593 |
|
|
| 1594 |
/* inserts before ID_SETUP_TCPIP */ |
/* inserts before ID_SETUP_TCPIP */ |
| 1595 |
|
#ifdef I18N |
| 1596 |
|
strcpy(pvar->ts->UIMsg, "SS&H..."); |
| 1597 |
|
UTIL_get_lang_msg("MENU_SSH", pvar); |
| 1598 |
|
insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHSETUPMENU, pvar->ts->UIMsg); |
| 1599 |
|
#else |
| 1600 |
insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHSETUPMENU, |
insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHSETUPMENU, |
| 1601 |
"SS&H..."); |
"SS&H..."); |
| 1602 |
|
#endif |
| 1603 |
/* inserts before ID_SETUP_TCPIP */ |
/* inserts before ID_SETUP_TCPIP */ |
| 1604 |
|
#ifdef I18N |
| 1605 |
|
strcpy(pvar->ts->UIMsg, "SSH &Authentication..."); |
| 1606 |
|
UTIL_get_lang_msg("MENU_SSH_AUTH", pvar); |
| 1607 |
|
insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHAUTHSETUPMENU, pvar->ts->UIMsg); |
| 1608 |
|
#else |
| 1609 |
insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHAUTHSETUPMENU, |
insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHAUTHSETUPMENU, |
| 1610 |
"SSH &Authentication..."); |
"SSH &Authentication..."); |
| 1611 |
|
#endif |
| 1612 |
/* inserts before ID_SETUP_TCPIP */ |
/* inserts before ID_SETUP_TCPIP */ |
| 1613 |
|
#ifdef I18N |
| 1614 |
|
strcpy(pvar->ts->UIMsg, "SSH F&orwarding..."); |
| 1615 |
|
UTIL_get_lang_msg("MENU_SSH_FORWARD", pvar); |
| 1616 |
|
insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHFWDSETUPMENU, pvar->ts->UIMsg); |
| 1617 |
|
#else |
| 1618 |
insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHFWDSETUPMENU, |
insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHFWDSETUPMENU, |
| 1619 |
"SSH F&orwarding..."); |
"SSH F&orwarding..."); |
| 1620 |
|
#endif |
| 1621 |
|
|
| 1622 |
|
#ifdef I18N |
| 1623 |
|
strcpy(pvar->ts->UIMsg, "SSH KeyGenerator..."); |
| 1624 |
|
UTIL_get_lang_msg("MENU_SSH_KEYGEN", pvar); |
| 1625 |
|
insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHKEYGENMENU, pvar->ts->UIMsg); |
| 1626 |
|
#else |
| 1627 |
insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHKEYGENMENU, |
insertMenuBeforeItem(menu, 50360, MF_ENABLED, ID_SSHKEYGENMENU, |
| 1628 |
"SSH KeyGenerator..."); |
"SSH KeyGenerator..."); |
| 1629 |
|
#endif |
| 1630 |
} |
} |
| 1631 |
|
|
| 1632 |
static void append_about_text(HWND dlg, char FAR * prefix, char FAR * msg) |
static void append_about_text(HWND dlg, char FAR * prefix, char FAR * msg) |
| 1701 |
{ |
{ |
| 1702 |
char buf[1024]; |
char buf[1024]; |
| 1703 |
int a, b, c, d; |
int a, b, c, d; |
| 1704 |
|
|
| 1705 |
|
#ifdef I18N |
| 1706 |
|
GetWindowText(dlg, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 1707 |
|
UTIL_get_lang_msg("DLG_ABOUT_TITLE", pvar); |
| 1708 |
|
SetWindowText(dlg, pvar->ts->UIMsg); |
| 1709 |
|
|
| 1710 |
|
GetDlgItemText(dlg, IDOK, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 1711 |
|
UTIL_get_lang_msg("BTN_OK", pvar); |
| 1712 |
|
SetDlgItemText(dlg, IDOK, pvar->ts->UIMsg); |
| 1713 |
|
#endif |
| 1714 |
|
|
| 1715 |
// TTSSHのバージョンを設定する (2005.2.28 yutaka) |
// TTSSHのバージョンを設定する (2005.2.28 yutaka) |
| 1716 |
get_file_version("ttxssh.dll", &a, &b, &c, &d); |
get_file_version("ttxssh.dll", &a, &b, &c, &d); |
| 1717 |
_snprintf(buf, sizeof(buf), "TTSSH\r\nTeraterm Secure Shell extension, %d.%d", a, b); |
_snprintf(buf, sizeof(buf), "TTSSH\r\nTeraterm Secure Shell extension, %d.%d", a, b); |
| 1812 |
static BOOL CALLBACK TTXAboutDlg(HWND dlg, UINT msg, WPARAM wParam, |
static BOOL CALLBACK TTXAboutDlg(HWND dlg, UINT msg, WPARAM wParam, |
| 1813 |
LPARAM lParam) |
LPARAM lParam) |
| 1814 |
{ |
{ |
| 1815 |
|
#ifdef I18N |
| 1816 |
|
LOGFONT logfont; |
| 1817 |
|
HFONT font; |
| 1818 |
|
#endif |
| 1819 |
switch (msg) { |
switch (msg) { |
| 1820 |
case WM_INITDIALOG: |
case WM_INITDIALOG: |
| 1821 |
|
#ifdef I18N |
| 1822 |
|
font = (HFONT)SendMessage(dlg, WM_GETFONT, 0, 0); |
| 1823 |
|
GetObject(font, sizeof(LOGFONT), &logfont); |
| 1824 |
|
if (UTIL_get_lang_font("DLG_ABOUT_FONT", dlg, &logfont, &DlgAboutFont, pvar)) { |
| 1825 |
|
SendDlgItemMessage(dlg, IDC_TTSSH_VERSION, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE,0)); |
| 1826 |
|
SendDlgItemMessage(dlg, IDC_SSHVERSIONS, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE,0)); |
| 1827 |
|
SendDlgItemMessage(dlg, IDC_INCLUDES, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE,0)); |
| 1828 |
|
SendDlgItemMessage(dlg, IDC_OPENSSL_VERSION, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE,0)); |
| 1829 |
|
SendDlgItemMessage(dlg, IDC_ZLIB_VERSION, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE,0)); |
| 1830 |
|
SendDlgItemMessage(dlg, IDC_WEBSITES, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE,0)); |
| 1831 |
|
SendDlgItemMessage(dlg, IDC_CRYPTOGRAPHY, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE,0)); |
| 1832 |
|
SendDlgItemMessage(dlg, IDC_CREDIT, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE,0)); |
| 1833 |
|
SendDlgItemMessage(dlg, IDC_ABOUTTEXT, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE,0)); |
| 1834 |
|
SendDlgItemMessage(dlg, IDOK, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE,0)); |
| 1835 |
|
} |
| 1836 |
|
else { |
| 1837 |
|
DlgAboutFont = NULL; |
| 1838 |
|
} |
| 1839 |
|
#endif |
| 1840 |
init_about_dlg((PTInstVar) lParam, dlg); |
init_about_dlg((PTInstVar) lParam, dlg); |
| 1841 |
return TRUE; |
return TRUE; |
| 1842 |
case WM_COMMAND: |
case WM_COMMAND: |
| 1843 |
switch (LOWORD(wParam)) { |
switch (LOWORD(wParam)) { |
| 1844 |
case IDOK: |
case IDOK: |
| 1845 |
EndDialog(dlg, 1); |
EndDialog(dlg, 1); |
| 1846 |
|
#ifdef I18N |
| 1847 |
|
if (DlgAboutFont != NULL) { |
| 1848 |
|
DeleteObject(DlgAboutFont); |
| 1849 |
|
} |
| 1850 |
|
#endif |
| 1851 |
return TRUE; |
return TRUE; |
| 1852 |
case IDCANCEL: /* there isn't a cancel button, but other Windows |
case IDCANCEL: /* there isn't a cancel button, but other Windows |
| 1853 |
UI things can send this message */ |
UI things can send this message */ |
| 1854 |
EndDialog(dlg, 0); |
EndDialog(dlg, 0); |
| 1855 |
|
#ifdef I18N |
| 1856 |
|
if (DlgAboutFont != NULL) { |
| 1857 |
|
DeleteObject(DlgAboutFont); |
| 1858 |
|
} |
| 1859 |
|
#endif |
| 1860 |
return TRUE; |
return TRUE; |
| 1861 |
} |
} |
| 1862 |
break; |
break; |
| 1869 |
{ |
{ |
| 1870 |
switch (cipher) { |
switch (cipher) { |
| 1871 |
case SSH_CIPHER_NONE: |
case SSH_CIPHER_NONE: |
| 1872 |
|
#ifdef I18N |
| 1873 |
|
strcpy(pvar->ts->UIMsg, "<ciphers below this line are disabled>"); |
| 1874 |
|
UTIL_get_lang_msg("DLG_SSHSETUP_CIPHER_BORDER", pvar); |
| 1875 |
|
return pvar->ts->UIMsg; |
| 1876 |
|
#else |
| 1877 |
return "<ciphers below this line are disabled>"; |
return "<ciphers below this line are disabled>"; |
| 1878 |
|
#endif |
| 1879 |
case SSH_CIPHER_RC4: |
case SSH_CIPHER_RC4: |
| 1880 |
return "RC4"; |
return "RC4"; |
| 1881 |
case SSH_CIPHER_3DES: |
case SSH_CIPHER_3DES: |
| 1918 |
HWND cipherControl = GetDlgItem(dlg, IDC_SSHCIPHERPREFS); |
HWND cipherControl = GetDlgItem(dlg, IDC_SSHCIPHERPREFS); |
| 1919 |
int i; |
int i; |
| 1920 |
int ch; |
int ch; |
| 1921 |
|
|
| 1922 |
|
#ifdef I18N |
| 1923 |
|
GetWindowText(dlg, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 1924 |
|
UTIL_get_lang_msg("DLG_SSHSETUP_TITLE", pvar); |
| 1925 |
|
SetWindowText(dlg, pvar->ts->UIMsg); |
| 1926 |
|
|
| 1927 |
|
GetDlgItemText(dlg, IDC_COMPRESSLABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 1928 |
|
UTIL_get_lang_msg("DLG_SSHSETUP_COMPRESS", pvar); |
| 1929 |
|
SetDlgItemText(dlg, IDC_COMPRESSLABEL, pvar->ts->UIMsg); |
| 1930 |
|
|
| 1931 |
|
GetDlgItemText(dlg, IDC_COMPRESSNONE, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 1932 |
|
UTIL_get_lang_msg("DLG_SSHSETUP_COMPRESS_NONE", pvar); |
| 1933 |
|
SetDlgItemText(dlg, IDC_COMPRESSNONE, pvar->ts->UIMsg); |
| 1934 |
|
|
| 1935 |
|
GetDlgItemText(dlg, IDC_COMPRESSHIGH, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 1936 |
|
UTIL_get_lang_msg("DLG_SSHSETUP_COMPRESS_HIGHEST", pvar); |
| 1937 |
|
SetDlgItemText(dlg, IDC_COMPRESSHIGH, pvar->ts->UIMsg); |
| 1938 |
|
|
| 1939 |
|
GetDlgItemText(dlg, IDC_CIPHERORDER, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 1940 |
|
UTIL_get_lang_msg("DLG_SSHSETUP_CHIPER", pvar); |
| 1941 |
|
SetDlgItemText(dlg, IDC_CIPHERORDER, pvar->ts->UIMsg); |
| 1942 |
|
|
| 1943 |
|
GetDlgItemText(dlg, IDC_SSHMOVECIPHERUP, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 1944 |
|
UTIL_get_lang_msg("DLG_SSHSETUP_CHIPER_UP", pvar); |
| 1945 |
|
SetDlgItemText(dlg, IDC_SSHMOVECIPHERUP, pvar->ts->UIMsg); |
| 1946 |
|
|
| 1947 |
|
GetDlgItemText(dlg, IDC_SSHMOVECIPHERDOWN, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 1948 |
|
UTIL_get_lang_msg("DLG_SSHSETUP_CHIPER_DOWN", pvar); |
| 1949 |
|
SetDlgItemText(dlg, IDC_SSHMOVECIPHERDOWN, pvar->ts->UIMsg); |
| 1950 |
|
|
| 1951 |
|
GetDlgItemText(dlg, IDC_KNOWNHOSTS, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 1952 |
|
UTIL_get_lang_msg("DLG_SSHSETUP_KNOWNHOST", pvar); |
| 1953 |
|
SetDlgItemText(dlg, IDC_KNOWNHOSTS, pvar->ts->UIMsg); |
| 1954 |
|
|
| 1955 |
|
GetDlgItemText(dlg, IDC_CHOOSEREADWRITEFILE, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 1956 |
|
UTIL_get_lang_msg("DLG_SSHSETUP_KNOWNHOST_RW", pvar); |
| 1957 |
|
SetDlgItemText(dlg, IDC_CHOOSEREADWRITEFILE, pvar->ts->UIMsg); |
| 1958 |
|
|
| 1959 |
|
GetDlgItemText(dlg, IDC_CHOOSEREADONLYFILE, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 1960 |
|
UTIL_get_lang_msg("DLG_SSHSETUP_KNOWNHOST_RO", pvar); |
| 1961 |
|
SetDlgItemText(dlg, IDC_CHOOSEREADONLYFILE, pvar->ts->UIMsg); |
| 1962 |
|
|
| 1963 |
|
GetDlgItemText(dlg, IDC_HEARTBEATLABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 1964 |
|
UTIL_get_lang_msg("DLG_SSHSETUP_HEARTBEAT", pvar); |
| 1965 |
|
SetDlgItemText(dlg, IDC_HEARTBEATLABEL, pvar->ts->UIMsg); |
| 1966 |
|
|
| 1967 |
|
GetDlgItemText(dlg, IDC_HEARTBEATLABEL2, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 1968 |
|
UTIL_get_lang_msg("DLG_SSHSETUP_HEARTBEAT_UNIT", pvar); |
| 1969 |
|
SetDlgItemText(dlg, IDC_HEARTBEATLABEL2, pvar->ts->UIMsg); |
| 1970 |
|
|
| 1971 |
|
GetDlgItemText(dlg, IDC_NOTICEBANNER, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 1972 |
|
UTIL_get_lang_msg("DLG_SSHSETUP_NOTICE", pvar); |
| 1973 |
|
SetDlgItemText(dlg, IDC_NOTICEBANNER, pvar->ts->UIMsg); |
| 1974 |
|
|
| 1975 |
|
strcpy(pvar->ts->UIMsg, "OK"); |
| 1976 |
|
UTIL_get_lang_msg("BTN_OK", pvar); |
| 1977 |
|
SetDlgItemText(dlg, IDOK, pvar->ts->UIMsg); |
| 1978 |
|
|
| 1979 |
|
strcpy(pvar->ts->UIMsg, "Cancel"); |
| 1980 |
|
UTIL_get_lang_msg("BTN_CANCEL", pvar); |
| 1981 |
|
SetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg); |
| 1982 |
|
#endif |
| 1983 |
|
|
| 1984 |
SendMessage(compressionControl, TBM_SETRANGE, TRUE, MAKELONG(0, 9)); |
SendMessage(compressionControl, TBM_SETRANGE, TRUE, MAKELONG(0, 9)); |
| 1985 |
SendMessage(compressionControl, TBM_SETPOS, TRUE, |
SendMessage(compressionControl, TBM_SETPOS, TRUE, |
| 1986 |
pvar->settings.CompressionLevel); |
pvar->settings.CompressionLevel); |
| 2205 |
params.nMaxFile = sizeof(fullname_buf); |
params.nMaxFile = sizeof(fullname_buf); |
| 2206 |
params.lpstrFileTitle = NULL; |
params.lpstrFileTitle = NULL; |
| 2207 |
params.lpstrInitialDir = NULL; |
params.lpstrInitialDir = NULL; |
| 2208 |
|
#ifdef I18N |
| 2209 |
|
if (readonly) { |
| 2210 |
|
strcpy(pvar->ts->UIMsg, "Choose a read-only known-hosts file to add"); |
| 2211 |
|
UTIL_get_lang_msg("MSG_OPEN_KNOWNHOSTS_RO_TITLE", pvar); |
| 2212 |
|
} |
| 2213 |
|
else { |
| 2214 |
|
strcpy(pvar->ts->UIMsg, "Choose a read/write known-hosts file"); |
| 2215 |
|
UTIL_get_lang_msg("MSG_OPEN_KNOWNHOSTS_RW_TITLE", pvar); |
| 2216 |
|
} |
| 2217 |
|
params.lpstrTitle = pvar->ts->UIMsg; |
| 2218 |
|
#else |
| 2219 |
params.lpstrTitle = |
params.lpstrTitle = |
| 2220 |
readonly ? "Choose a read-only known-hosts file to add" : |
readonly ? "Choose a read-only known-hosts file to add" : |
| 2221 |
"Choose a read/write known-hosts file"; |
"Choose a read/write known-hosts file"; |
| 2222 |
|
#endif |
| 2223 |
params.Flags = (readonly ? OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST : 0) |
params.Flags = (readonly ? OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST : 0) |
| 2224 |
| OFN_HIDEREADONLY | (!readonly ? OFN_NOREADONLYRETURN : 0); |
| OFN_HIDEREADONLY | (!readonly ? OFN_NOREADONLYRETURN : 0); |
| 2225 |
params.lpstrDefExt = NULL; |
params.lpstrDefExt = NULL; |
| 2232 |
|
|
| 2233 |
if (err != 0) { |
if (err != 0) { |
| 2234 |
char buf[1024]; |
char buf[1024]; |
| 2235 |
|
#ifdef I18N |
| 2236 |
|
strcpy(pvar->ts->UIMsg, "Cannot show file dialog box: error %d"); |
| 2237 |
|
UTIL_get_lang_msg("MSG_OPEN_FILEDLG_KNOWNHOSTS_ERROR", pvar); |
| 2238 |
|
_snprintf(buf, sizeof(buf), pvar->ts->UIMsg, err); |
| 2239 |
|
#else |
| 2240 |
_snprintf(buf, sizeof(buf), |
_snprintf(buf, sizeof(buf), |
| 2241 |
"Cannot show file dialog box: error %d", err); |
"Cannot show file dialog box: error %d", err); |
| 2242 |
|
#endif |
| 2243 |
buf[sizeof(buf) - 1] = 0; |
buf[sizeof(buf) - 1] = 0; |
| 2244 |
MessageBox(parent, buf, "TTSSH Error", |
MessageBox(parent, buf, "TTSSH Error", |
| 2245 |
MB_OK | MB_ICONEXCLAMATION); |
MB_OK | MB_ICONEXCLAMATION); |
| 2719 |
LPARAM lParam) |
LPARAM lParam) |
| 2720 |
{ |
{ |
| 2721 |
static enum hostkey_type key_type; |
static enum hostkey_type key_type; |
| 2722 |
|
#ifdef I18N |
| 2723 |
|
char uimsg[MAX_UIMSG]; |
| 2724 |
|
#endif |
| 2725 |
|
|
| 2726 |
switch (msg) { |
switch (msg) { |
| 2727 |
case WM_INITDIALOG: |
case WM_INITDIALOG: |
| 2728 |
{ |
{ |
| 2729 |
|
#ifdef I18N |
| 2730 |
|
GetWindowText(dlg, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 2731 |
|
UTIL_get_lang_msg("DLG_KEYGEN_TITLE", pvar); |
| 2732 |
|
SetWindowText(dlg, pvar->ts->UIMsg); |
| 2733 |
|
|
| 2734 |
|
GetDlgItemText(dlg, IDC_KEYTYPE, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 2735 |
|
UTIL_get_lang_msg("DLG_KEYGEN_KEYTYPE", pvar); |
| 2736 |
|
SetDlgItemText(dlg, IDC_KEYTYPE, pvar->ts->UIMsg); |
| 2737 |
|
|
| 2738 |
|
GetDlgItemText(dlg, IDC_KEY_LABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 2739 |
|
UTIL_get_lang_msg("DLG_KEYGEN_PASSPHRASE", pvar); |
| 2740 |
|
SetDlgItemText(dlg, IDC_KEY_LABEL, pvar->ts->UIMsg); |
| 2741 |
|
|
| 2742 |
|
GetDlgItemText(dlg, IDC_CONFIRM_LABEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 2743 |
|
UTIL_get_lang_msg("DLG_KEYGEN_PASSPHRASE2", pvar); |
| 2744 |
|
SetDlgItemText(dlg, IDC_CONFIRM_LABEL, pvar->ts->UIMsg); |
| 2745 |
|
|
| 2746 |
|
GetDlgItemText(dlg, IDC_SAVE_PUBLIC_KEY, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 2747 |
|
UTIL_get_lang_msg("DLG_KEYGEN_SAVEPUBLIC", pvar); |
| 2748 |
|
SetDlgItemText(dlg, IDC_SAVE_PUBLIC_KEY, pvar->ts->UIMsg); |
| 2749 |
|
|
| 2750 |
|
GetDlgItemText(dlg, IDC_SAVE_PRIVATE_KEY, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 2751 |
|
UTIL_get_lang_msg("DLG_KEYGEN_SAVEPRIVATE", pvar); |
| 2752 |
|
SetDlgItemText(dlg, IDC_SAVE_PRIVATE_KEY, pvar->ts->UIMsg); |
| 2753 |
|
|
| 2754 |
|
GetDlgItemText(dlg, IDOK, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 2755 |
|
UTIL_get_lang_msg("DLG_KEYGEN_GENERATE", pvar); |
| 2756 |
|
SetDlgItemText(dlg, IDOK, pvar->ts->UIMsg); |
| 2757 |
|
|
| 2758 |
|
GetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg, sizeof(pvar->ts->UIMsg)); |
| 2759 |
|
UTIL_get_lang_msg("BTN_CANCEL", pvar); |
| 2760 |
|
SetDlgItemText(dlg, IDCANCEL, pvar->ts->UIMsg); |
| 2761 |
|
#endif |
| 2762 |
|
|
| 2763 |
// default key type |
// default key type |
| 2764 |
SendMessage(GetDlgItem(dlg, IDC_RSA_TYPE), BM_SETCHECK, BST_CHECKED, 0); |
SendMessage(GetDlgItem(dlg, IDC_RSA_TYPE), BM_SETCHECK, BST_CHECKED, 0); |
| 2765 |
key_type = KEY_RSA; |
key_type = KEY_RSA; |
| 2832 |
ofn.lStructSize = sizeof(ofn); |
ofn.lStructSize = sizeof(ofn); |
| 2833 |
ofn.hwndOwner = dlg; |
ofn.hwndOwner = dlg; |
| 2834 |
if (key_type == KEY_RSA1) { |
if (key_type == KEY_RSA1) { |
| 2835 |
|
#ifdef I18N |
| 2836 |
|
memcpy(pvar->ts->UIMsg, "SSH1 RSA key(identity.pub)\0identity.pub\0All Files(*.*)\0*.*\0\0", sizeof(pvar->ts->UIMsg)); |
| 2837 |
|
UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_RSA1_FILTER", pvar); |
| 2838 |
|
strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg)); |
| 2839 |
|
ofn.lpstrFilter = uimsg; |
| 2840 |
|
#else |
| 2841 |
ofn.lpstrFilter = "SSH1 RSA key(identity.pub)\0identity.pub\0All Files(*.*)\0*.*\0\0"; |
ofn.lpstrFilter = "SSH1 RSA key(identity.pub)\0identity.pub\0All Files(*.*)\0*.*\0\0"; |
| 2842 |
|
#endif |
| 2843 |
_snprintf(filename, sizeof(filename), "identity.pub"); |
_snprintf(filename, sizeof(filename), "identity.pub"); |
| 2844 |
} else if (key_type == KEY_RSA) { |
} else if (key_type == KEY_RSA) { |
| 2845 |
|
#ifdef I18N |
| 2846 |
|
memcpy(pvar->ts->UIMsg, "SSH2 RSA key(id_rsa.pub)\0id_rsa.pub\0All Files(*.*)\0*.*\0\0", sizeof(pvar->ts->UIMsg)); |
| 2847 |
|
UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_RSA_FILTER", pvar); |
| 2848 |
|
strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg)); |
| 2849 |
|
ofn.lpstrFilter = uimsg; |
| 2850 |
|
#else |
| 2851 |
ofn.lpstrFilter = "SSH2 RSA key(id_rsa.pub)\0id_rsa.pub\0All Files(*.*)\0*.*\0\0"; |
ofn.lpstrFilter = "SSH2 RSA key(id_rsa.pub)\0id_rsa.pub\0All Files(*.*)\0*.*\0\0"; |
| 2852 |
|
#endif |
| 2853 |
_snprintf(filename, sizeof(filename), "id_rsa.pub"); |
_snprintf(filename, sizeof(filename), "id_rsa.pub"); |
| 2854 |
} else { |
} else { |
| 2855 |
|
#ifdef I18N |
| 2856 |
|
memcpy(pvar->ts->UIMsg, "SSH2 DSA key(id_dsa.pub)\0id_dsa.pub\0All Files(*.*)\0*.*\0\0", sizeof(pvar->ts->UIMsg)); |
| 2857 |
|
UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_DSA_FILTER", pvar); |
| 2858 |
|
strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg)); |
| 2859 |
|
ofn.lpstrFilter = uimsg; |
| 2860 |
|
#else |
| 2861 |
ofn.lpstrFilter = "SSH2 DSA key(id_dsa.pub)\0id_dsa.pub\0All Files(*.*)\0*.*\0\0"; |
ofn.lpstrFilter = "SSH2 DSA key(id_dsa.pub)\0id_dsa.pub\0All Files(*.*)\0*.*\0\0"; |
| 2862 |
|
#endif |
| 2863 |
_snprintf(filename, sizeof(filename), "id_dsa.pub"); |
_snprintf(filename, sizeof(filename), "id_dsa.pub"); |
| 2864 |
} |
} |
| 2865 |
ofn.lpstrFile = filename; |
ofn.lpstrFile = filename; |
| 2866 |
ofn.nMaxFile = sizeof(filename); |
ofn.nMaxFile = sizeof(filename); |
| 2867 |
|
#ifdef I18N |
| 2868 |
|
strcpy(pvar->ts->UIMsg, "Save public key as:"); |
| 2869 |
|
UTIL_get_lang_msg("FILEDLG_SAVE_PUBLICKEY_TITLE", pvar); |
| 2870 |
|
ofn.lpstrTitle = pvar->ts->UIMsg; |
| 2871 |
|
#else |
| 2872 |
ofn.lpstrTitle = "Save public key as:"; |
ofn.lpstrTitle = "Save public key as:"; |
| 2873 |
|
#endif |
| 2874 |
if (GetSaveFileName(&ofn) == 0) { // failure |
if (GetSaveFileName(&ofn) == 0) { // failure |
| 2875 |
ret = CommDlgExtendedError(); |
ret = CommDlgExtendedError(); |
| 2876 |
break; |
break; |
| 2881 |
// saving public key file |
// saving public key file |
| 2882 |
fp = fopen(filename, "wb"); |
fp = fopen(filename, "wb"); |
| 2883 |
if (fp == NULL) { |
if (fp == NULL) { |
| 2884 |
|
#ifdef I18N |
| 2885 |
|
strcpy(pvar->ts->UIMsg, "Can't open key file"); |
| 2886 |
|
UTIL_get_lang_msg("MSG_SAVE_KEY_OPENFILE_ERROR", pvar); |
| 2887 |
|
strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg)); |
| 2888 |
|
strcpy(pvar->ts->UIMsg, "ERROR"); |
| 2889 |
|
UTIL_get_lang_msg("MSG_ERROR", pvar); |
| 2890 |
|
MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION); |
| 2891 |
|
#else |
| 2892 |
MessageBox(dlg, "Can't open key file", "ERROR", MB_OK | MB_ICONEXCLAMATION); |
MessageBox(dlg, "Can't open key file", "ERROR", MB_OK | MB_ICONEXCLAMATION); |
| 2893 |
|
#endif |
| 2894 |
break; |
break; |
| 2895 |
} |
} |
| 2896 |
|
|
| 2979 |
|
|
| 2980 |
// check matching |
// check matching |
| 2981 |
if (strcmp(buf, buf_conf) != 0) { |
if (strcmp(buf, buf_conf) != 0) { |
| 2982 |
|
#ifdef I18N |
| 2983 |
|
strcpy(pvar->ts->UIMsg, "Two passphrases don't match."); |
| 2984 |
|
UTIL_get_lang_msg("MSG_SAVE_PRIVATE_KEY_MISMATCH_ERROR", pvar); |
| 2985 |
|
strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg)); |
| 2986 |
|
strcpy(pvar->ts->UIMsg, "ERROR"); |
| 2987 |
|
UTIL_get_lang_msg("MSG_ERROR", pvar); |
| 2988 |
|
MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION); |
| 2989 |
|
#else |
| 2990 |
MessageBox(dlg, "Two passphrases don't match.", "ERROR", MB_OK | MB_ICONEXCLAMATION); |
MessageBox(dlg, "Two passphrases don't match.", "ERROR", MB_OK | MB_ICONEXCLAMATION); |
| 2991 |
|
#endif |
| 2992 |
break; |
break; |
| 2993 |
} |
} |
| 2994 |
|
|
| 2995 |
// check empty-passphrase (this is warning level) |
// check empty-passphrase (this is warning level) |
| 2996 |
if (buf[0] == '\0') { |
if (buf[0] == '\0') { |
| 2997 |
|
#ifdef I18N |
| 2998 |
|
strcpy(pvar->ts->UIMsg, "Are you sure that you want to use a empty passphrase?"); |
| 2999 |
|
UTIL_get_lang_msg("MSG_SAVE_PRIVATEKEY_EMPTY_WARN", pvar); |
| 3000 |
|
strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg)); |
| 3001 |
|
strcpy(pvar->ts->UIMsg, "WARNING"); |
| 3002 |
|
UTIL_get_lang_msg("MSG_WARNING", pvar); |
| 3003 |
|
ret = MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_YESNO | MB_ICONWARNING); |
| 3004 |
|
#else |
| 3005 |
ret = MessageBox(dlg, "Are you sure that you want to use a empty passphrase?", "WARNING", MB_YESNO | MB_ICONWARNING); |
ret = MessageBox(dlg, "Are you sure that you want to use a empty passphrase?", "WARNING", MB_YESNO | MB_ICONWARNING); |
| 3006 |
|
#endif |
| 3007 |
if (ret == IDNO) |
if (ret == IDNO) |
| 3008 |
break; |
break; |
| 3009 |
} |
} |
| 3015 |
ofn.lStructSize = sizeof(ofn); |
ofn.lStructSize = sizeof(ofn); |
| 3016 |
ofn.hwndOwner = dlg; |
ofn.hwndOwner = dlg; |
| 3017 |
if (key_type == KEY_RSA1) { |
if (key_type == KEY_RSA1) { |
| 3018 |
|
#ifdef I18N |
| 3019 |
|
memcpy(pvar->ts->UIMsg, "SSH1 RSA key(identity)\0identity\0All Files(*.*)\0*.*\0\0", sizeof(pvar->ts->UIMsg)); |
| 3020 |
|
UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_RSA1_FILTER", pvar); |
| 3021 |
|
strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg)); |
| 3022 |
|
ofn.lpstrFilter = uimsg; |
| 3023 |
|
#else |
| 3024 |
ofn.lpstrFilter = "SSH1 RSA key(identity)\0identity\0All Files(*.*)\0*.*\0\0"; |
ofn.lpstrFilter = "SSH1 RSA key(identity)\0identity\0All Files(*.*)\0*.*\0\0"; |
| 3025 |
|
#endif |
| 3026 |
_snprintf(filename, sizeof(filename), "identity"); |
_snprintf(filename, sizeof(filename), "identity"); |
| 3027 |
} else if (key_type == KEY_RSA) { |
} else if (key_type == KEY_RSA) { |
| 3028 |
|
#ifdef I18N |
| 3029 |
|
memcpy(pvar->ts->UIMsg, "SSH2 RSA key(id_rsa)\0id_rsa\0All Files(*.*)\0*.*\0\0", sizeof(pvar->ts->UIMsg)); |
| 3030 |
|
UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_RSA_FILTER", pvar); |
| 3031 |
|
strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg)); |
| 3032 |
|
ofn.lpstrFilter = uimsg; |
| 3033 |
|
#else |
| 3034 |
ofn.lpstrFilter = "SSH2 RSA key(id_rsa)\0id_rsa\0All Files(*.*)\0*.*\0\0"; |
ofn.lpstrFilter = "SSH2 RSA key(id_rsa)\0id_rsa\0All Files(*.*)\0*.*\0\0"; |
| 3035 |
|
#endif |
| 3036 |
_snprintf(filename, sizeof(filename), "id_rsa"); |
_snprintf(filename, sizeof(filename), "id_rsa"); |
| 3037 |
} else { |
} else { |
| 3038 |
|
#ifdef I18N |
| 3039 |
|
memcpy(pvar->ts->UIMsg, "SSH2 DSA key(id_dsa)\0id_dsa\0All Files(*.*)\0*.*\0\0", sizeof(pvar->ts->UIMsg)); |
| 3040 |
|
UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_DSA_FILTER", pvar); |
| 3041 |
|
strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg)); |
| 3042 |
|
ofn.lpstrFilter = uimsg; |
| 3043 |
|
#else |
| 3044 |
ofn.lpstrFilter = "SSH2 DSA key(id_dsa)\0id_dsa\0All Files(*.*)\0*.*\0\0"; |
ofn.lpstrFilter = "SSH2 DSA key(id_dsa)\0id_dsa\0All Files(*.*)\0*.*\0\0"; |
| 3045 |
|
#endif |
| 3046 |
_snprintf(filename, sizeof(filename), "id_dsa"); |
_snprintf(filename, sizeof(filename), "id_dsa"); |
| 3047 |
} |
} |
| 3048 |
ofn.lpstrFile = filename; |
ofn.lpstrFile = filename; |
| 3049 |
ofn.nMaxFile = sizeof(filename); |
ofn.nMaxFile = sizeof(filename); |
| 3050 |
|
#ifdef I18N |
| 3051 |
|
strcpy(pvar->ts->UIMsg, "Save private key as:"); |
| 3052 |
|
UTIL_get_lang_msg("FILEDLG_SAVE_PRIVATEKEY_TITLE", pvar); |
| 3053 |
|
ofn.lpstrTitle = pvar->ts->UIMsg; |
| 3054 |
|
#else |
| 3055 |
ofn.lpstrTitle = "Save private key as:"; |
ofn.lpstrTitle = "Save private key as:"; |
| 3056 |
|
#endif |
| 3057 |
if (GetSaveFileName(&ofn) == 0) { // failure |
if (GetSaveFileName(&ofn) == 0) { // failure |
| 3058 |
ret = CommDlgExtendedError(); |
ret = CommDlgExtendedError(); |
| 3059 |
break; |
break; |
| 3162 |
// saving private key file (binary mode) |
// saving private key file (binary mode) |
| 3163 |
fp = fopen(filename, "wb"); |
fp = fopen(filename, "wb"); |
| 3164 |
if (fp == NULL) { |
if (fp == NULL) { |
| 3165 |
|
#ifdef I18N |
| 3166 |
|
strcpy(pvar->ts->UIMsg, "Can't open key file"); |
| 3167 |
|
UTIL_get_lang_msg("MSG_SAVE_KEY_OPENFILE_ERROR", pvar); |
| 3168 |
|
strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg)); |
| 3169 |
|
strcpy(pvar->ts->UIMsg, "ERROR"); |
| 3170 |
|
UTIL_get_lang_msg("MSG_ERROR", pvar); |
| 3171 |
|
MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION); |
| 3172 |
|
#else |
| 3173 |
MessageBox(dlg, "Can't open key file", "ERROR", MB_OK | MB_ICONEXCLAMATION); |
MessageBox(dlg, "Can't open key file", "ERROR", MB_OK | MB_ICONEXCLAMATION); |
| 3174 |
|
#endif |
| 3175 |
break; |
break; |
| 3176 |
} |
} |
| 3177 |
fwrite(buffer_ptr(enc), buffer_len(enc), 1, fp); |
fwrite(buffer_ptr(enc), buffer_len(enc), 1, fp); |
| 3197 |
|
|
| 3198 |
fp = fopen(filename, "w"); |
fp = fopen(filename, "w"); |
| 3199 |
if (fp == NULL) { |
if (fp == NULL) { |
| 3200 |
|
#ifdef I18N |
| 3201 |
|
strcpy(pvar->ts->UIMsg, "Can't open key file"); |
| 3202 |
|
UTIL_get_lang_msg("MSG_SAVE_KEY_OPENFILE_ERROR", pvar); |
| 3203 |
|
strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg)); |
| 3204 |
|
strcpy(pvar->ts->UIMsg, "ERROR"); |
| 3205 |
|
UTIL_get_lang_msg("MSG_ERROR", pvar); |
| 3206 |
|
MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION); |
| 3207 |
|
#else |
| 3208 |
MessageBox(dlg, "Can't open key file", "ERROR", MB_OK | MB_ICONEXCLAMATION); |
MessageBox(dlg, "Can't open key file", "ERROR", MB_OK | MB_ICONEXCLAMATION); |
| 3209 |
|
#endif |
| 3210 |
break; |
break; |
| 3211 |
} |
} |
| 3212 |
|
|
| 3216 |
ret = PEM_write_DSAPrivateKey(fp, private_key.dsa, cipher, buf, len, NULL, NULL); |
ret = PEM_write_DSAPrivateKey(fp, private_key.dsa, cipher, buf, len, NULL, NULL); |
| 3217 |
} |
} |
| 3218 |
if (ret == 0) { |
if (ret == 0) { |
| 3219 |
|
#ifdef I18N |
| 3220 |
|
strcpy(pvar->ts->UIMsg, "Can't open key file"); |
| 3221 |
|
UTIL_get_lang_msg("MSG_SAVE_KEY_WRITEFILE_ERROR", pvar); |
| 3222 |
|
strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg)); |
| 3223 |
|
strcpy(pvar->ts->UIMsg, "ERROR"); |
| 3224 |
|
UTIL_get_lang_msg("MSG_ERROR", pvar); |
| 3225 |
|
MessageBox(dlg, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION); |
| 3226 |
|
#else |
| 3227 |
MessageBox(dlg, "Can't write key file", "ERROR", MB_OK | MB_ICONEXCLAMATION); |
MessageBox(dlg, "Can't write key file", "ERROR", MB_OK | MB_ICONEXCLAMATION); |
| 3228 |
|
#endif |
| 3229 |
} |
} |
| 3230 |
fclose(fp); |
fclose(fp); |
| 3231 |
} |
} |
| 3244 |
|
|
| 3245 |
static int PASCAL FAR TTXProcessCommand(HWND hWin, WORD cmd) |
static int PASCAL FAR TTXProcessCommand(HWND hWin, WORD cmd) |
| 3246 |
{ |
{ |
| 3247 |
|
#ifdef I18N |
| 3248 |
|
char uimsg[MAX_UIMSG]; |
| 3249 |
|
#endif |
| 3250 |
GET_VAR(); |
GET_VAR(); |
| 3251 |
|
|
| 3252 |
if (pvar->fatal_error) { |
if (pvar->fatal_error) { |
| 3257 |
case ID_SSHKEYGENMENU: |
case ID_SSHKEYGENMENU: |
| 3258 |
if (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_SSHKEYGEN), hWin, TTXKeyGenerator, |
if (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_SSHKEYGEN), hWin, TTXKeyGenerator, |
| 3259 |
(LPARAM) pvar) == -1) { |
(LPARAM) pvar) == -1) { |
| 3260 |
|
#ifdef I18N |
| 3261 |
|
strcpy(pvar->ts->UIMsg, "Cannot create Key Generator window."); |
| 3262 |
|
UTIL_get_lang_msg("MSG_CREATEWINDOW_KEYGEN_ERROR", pvar); |
| 3263 |
|
strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg)); |
| 3264 |
|
strcpy(pvar->ts->UIMsg, "TTSSH Error"); |
| 3265 |
|
UTIL_get_lang_msg("MSG_TTSSH_ERROR", pvar); |
| 3266 |
|
MessageBox(hWin, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION); |
| 3267 |
|
#else |
| 3268 |
MessageBox(hWin, "Cannot create Key Generator window.", |
MessageBox(hWin, "Cannot create Key Generator window.", |
| 3269 |
"TTSSH Error", MB_OK | MB_ICONEXCLAMATION); |
"TTSSH Error", MB_OK | MB_ICONEXCLAMATION); |
| 3270 |
|
#endif |
| 3271 |
} |
} |
| 3272 |
return 1; |
return 1; |
| 3273 |
|
|
| 3276 |
(hInst, MAKEINTRESOURCE(IDD_ABOUTDIALOG), hWin, TTXAboutDlg, |
(hInst, MAKEINTRESOURCE(IDD_ABOUTDIALOG), hWin, TTXAboutDlg, |
| 3277 |
(LPARAM) pvar) |
(LPARAM) pvar) |
| 3278 |
== -1) { |
== -1) { |
| 3279 |
|
#ifdef I18N |
| 3280 |
|
strcpy(pvar->ts->UIMsg, "Cannot create About box window."); |
| 3281 |
|
UTIL_get_lang_msg("MSG_CREATEWINDOW_ABOUT_ERROR", pvar); |
| 3282 |
|
strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg)); |
| 3283 |
|
strcpy(pvar->ts->UIMsg, "TTSSH Error"); |
| 3284 |
|
UTIL_get_lang_msg("MSG_TTSSH_ERROR", pvar); |
| 3285 |
|
MessageBox(hWin, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION); |
| 3286 |
|
#else |
| 3287 |
MessageBox(hWin, "Cannot create About box window.", |
MessageBox(hWin, "Cannot create About box window.", |
| 3288 |
"TTSSH Error", MB_OK | MB_ICONEXCLAMATION); |
"TTSSH Error", MB_OK | MB_ICONEXCLAMATION); |
| 3289 |
|
#endif |
| 3290 |
} |
} |
| 3291 |
return 1; |
return 1; |
| 3292 |
case ID_SSHAUTH: |
case ID_SSHAUTH: |
| 3297 |
(hInst, MAKEINTRESOURCE(IDD_SSHSETUP), hWin, TTXSetupDlg, |
(hInst, MAKEINTRESOURCE(IDD_SSHSETUP), hWin, TTXSetupDlg, |
| 3298 |
(LPARAM) pvar) |
(LPARAM) pvar) |
| 3299 |
== -1) { |
== -1) { |
| 3300 |
|
#ifdef I18N |
| 3301 |
|
strcpy(pvar->ts->UIMsg, "Cannot create TTSSH Setup window."); |
| 3302 |
|
UTIL_get_lang_msg("MSG_CREATEWINDOW_SETUP_ERROR", pvar); |
| 3303 |
|
strncpy(uimsg, pvar->ts->UIMsg, sizeof(uimsg)); |
| 3304 |
|
strcpy(pvar->ts->UIMsg, "TTSSH Error"); |
| 3305 |
|
UTIL_get_lang_msg("MSG_TTSSH_ERROR", pvar); |
| 3306 |
|
MessageBox(hWin, uimsg, pvar->ts->UIMsg, MB_OK | MB_ICONEXCLAMATION); |
| 3307 |
|
#else |
| 3308 |
MessageBox(hWin, "Cannot create TTSSH Setup window.", |
MessageBox(hWin, "Cannot create TTSSH Setup window.", |
| 3309 |
"TTSSH Error", MB_OK | MB_ICONEXCLAMATION); |
"TTSSH Error", MB_OK | MB_ICONEXCLAMATION); |
| 3310 |
|
#endif |
| 3311 |
} |
} |
| 3312 |
return 1; |
return 1; |
| 3313 |
case ID_SSHAUTHSETUPMENU: |
case ID_SSHAUTHSETUPMENU: |
| 3617 |
|
|
| 3618 |
/* |
/* |
| 3619 |
* $Log: not supported by cvs2svn $ |
* $Log: not supported by cvs2svn $ |
| 3620 |
|
* Revision 1.46 2006/11/14 09:00:40 maya |
| 3621 |
|
* エラーメッセージを修正した。 |
| 3622 |
|
* |
| 3623 |
* Revision 1.45 2006/10/19 06:24:05 maya |
* Revision 1.45 2006/10/19 06:24:05 maya |
| 3624 |
* SSHで接続中にNew connectionダイアログからtelnet接続できないのを修正した。 |
* SSHで接続中にNew connectionダイアログからtelnet接続できないのを修正した。 |
| 3625 |
* |
* |