| 2633 |
*major = *minor = *release = *build = 0; |
*major = *minor = *release = *build = 0; |
| 2634 |
} |
} |
| 2635 |
|
|
| 2636 |
static void init_about_dlg(PTInstVar pvar, HWND dlg) |
static void about_dlg_set_abouttext(PTInstVar pvar, HWND dlg, digest_algorithm dgst_alg) |
| 2637 |
{ |
{ |
| 2638 |
char buf[1024]; |
char buf[1024]; |
|
int a, b, c, d; |
|
|
char uimsg[MAX_UIMSG]; |
|
| 2639 |
char *fp = NULL; |
char *fp = NULL; |
| 2640 |
|
|
|
GetWindowText(dlg, uimsg, sizeof(uimsg)); |
|
|
UTIL_get_lang_msg("DLG_ABOUT_TITLE", pvar, uimsg); |
|
|
SetWindowText(dlg, pvar->ts->UIMsg); |
|
|
GetDlgItemText(dlg, IDOK, uimsg, sizeof(uimsg)); |
|
|
UTIL_get_lang_msg("BTN_OK", pvar, uimsg); |
|
|
SetDlgItemText(dlg, IDOK, pvar->ts->UIMsg); |
|
|
|
|
|
// TTSSHのバージョンを設定する (2005.2.28 yutaka) |
|
|
get_file_version("ttxssh.dll", &a, &b, &c, &d); |
|
|
_snprintf_s(buf, sizeof(buf), _TRUNCATE, |
|
|
"TTSSH\r\nTera Term Secure Shell extension, %d.%d", a, b); |
|
|
SendMessage(GetDlgItem(dlg, IDC_TTSSH_VERSION), WM_SETTEXT, 0, (LPARAM)buf); |
|
|
|
|
|
// OpenSSLのバージョンを設定する (2005.1.24 yutaka) |
|
|
// 条件文追加 (2005.5.11 yutaka) |
|
|
// OPENSSL_VERSION_TEXT マクロ定義ではなく、関数を使ってバージョンを取得する。(2013.11.24 yutaka) |
|
|
SendMessage(GetDlgItem(dlg, IDC_OPENSSL_VERSION), WM_SETTEXT, 0, (LPARAM)SSLeay_version(SSLEAY_VERSION)); |
|
|
|
|
|
// zlibのバージョンを設定する (2005.5.11 yutaka) |
|
|
#ifdef ZLIB_VERSION |
|
|
_snprintf_s(buf, sizeof(buf), _TRUNCATE, "ZLib %s", ZLIB_VERSION); |
|
|
#else |
|
|
_snprintf(buf, sizeof(buf), "ZLib Unknown"); |
|
|
#endif |
|
|
SendMessage(GetDlgItem(dlg, IDC_ZLIB_VERSION), WM_SETTEXT, 0, (LPARAM)buf); |
|
|
|
|
|
// PuTTYのバージョンを設定する (2011.7.26 yutaka) |
|
|
#ifdef PUTTYVERSION |
|
|
_snprintf_s(buf, sizeof(buf), _TRUNCATE, "PuTTY %s", PUTTYVERSION); |
|
|
#else |
|
|
_snprintf(buf, sizeof(buf), "PuTTY Unknown"); |
|
|
#endif |
|
|
SendMessage(GetDlgItem(dlg, IDC_PUTTY_VERSION), WM_SETTEXT, 0, (LPARAM)buf); |
|
|
|
|
| 2641 |
// TTSSHダイアログに表示するSSHに関する情報 (2004.10.30 yutaka) |
// TTSSHダイアログに表示するSSHに関する情報 (2004.10.30 yutaka) |
| 2642 |
if (pvar->socket != INVALID_SOCKET) { |
if (pvar->socket != INVALID_SOCKET) { |
| 2643 |
|
SendDlgItemMessage(dlg, IDC_ABOUTTEXT, WM_SETTEXT, 0, (LPARAM)(char FAR *)""); |
| 2644 |
|
|
| 2645 |
if (SSHv1(pvar)) { |
if (SSHv1(pvar)) { |
| 2646 |
SSH_get_server_ID_info(pvar, buf, sizeof(buf)); |
SSH_get_server_ID_info(pvar, buf, sizeof(buf)); |
| 2647 |
UTIL_get_lang_msg("DLG_ABOUT_SERVERID", pvar, "Server ID:"); |
UTIL_get_lang_msg("DLG_ABOUT_SERVERID", pvar, "Server ID:"); |
| 2681 |
|
|
| 2682 |
// add MAC algorithm (2004.12.17 yutaka) |
// add MAC algorithm (2004.12.17 yutaka) |
| 2683 |
buf[0] = '\0'; |
buf[0] = '\0'; |
| 2684 |
strncat_s(buf, sizeof(buf), get_ssh2_mac_name(pvar->ctos_hmac) , _TRUNCATE); |
strncat_s(buf, sizeof(buf), get_ssh2_mac_name(pvar->ctos_hmac), _TRUNCATE); |
| 2685 |
UTIL_get_lang_msg("DLG_ABOUT_TOSERVER", pvar, " to server,"); |
UTIL_get_lang_msg("DLG_ABOUT_TOSERVER", pvar, " to server,"); |
| 2686 |
strncat_s(buf, sizeof(buf), pvar->ts->UIMsg, _TRUNCATE); |
strncat_s(buf, sizeof(buf), pvar->ts->UIMsg, _TRUNCATE); |
| 2687 |
strncat_s(buf, sizeof(buf), get_ssh2_mac_name(pvar->stoc_hmac) , _TRUNCATE); |
strncat_s(buf, sizeof(buf), get_ssh2_mac_name(pvar->stoc_hmac), _TRUNCATE); |
| 2688 |
UTIL_get_lang_msg("DLG_ABOUT_FROMSERVER", pvar, " from server"); |
UTIL_get_lang_msg("DLG_ABOUT_FROMSERVER", pvar, " from server"); |
| 2689 |
strncat_s(buf, sizeof(buf), pvar->ts->UIMsg, _TRUNCATE); |
strncat_s(buf, sizeof(buf), pvar->ts->UIMsg, _TRUNCATE); |
| 2690 |
append_about_text(dlg, "MAC:", buf); |
append_about_text(dlg, "MAC:", buf); |
| 2711 |
} |
} |
| 2712 |
|
|
| 2713 |
// ホスト公開鍵のfingerprintを表示する。 |
// ホスト公開鍵のfingerprintを表示する。 |
|
// Random artの表示が崩れてしまうのが課題。 |
|
| 2714 |
// (2014.5.1 yutaka) |
// (2014.5.1 yutaka) |
|
fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_HEX, SSH_DIGEST_MD5); |
|
| 2715 |
UTIL_get_lang_msg("DLG_ABOUT_FINGERPRINT", pvar, "Host key's fingerprint:"); |
UTIL_get_lang_msg("DLG_ABOUT_FINGERPRINT", pvar, "Host key's fingerprint:"); |
| 2716 |
append_about_text(dlg, pvar->ts->UIMsg, fp); |
append_about_text(dlg, "", pvar->ts->UIMsg); |
| 2717 |
free(fp); |
|
| 2718 |
|
switch (dgst_alg) { |
| 2719 |
|
case SSH_DIGEST_MD5: |
| 2720 |
|
fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_HEX, dgst_alg); |
| 2721 |
|
append_about_text(dlg, "", fp); |
| 2722 |
|
free(fp); |
| 2723 |
|
break; |
| 2724 |
|
case SSH_DIGEST_SHA256: |
| 2725 |
|
fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_BASE64, dgst_alg); |
| 2726 |
|
append_about_text(dlg, "", fp); |
| 2727 |
|
free(fp); |
| 2728 |
|
break; |
| 2729 |
|
} |
| 2730 |
|
|
| 2731 |
fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_RANDOMART, SSH_DIGEST_MD5); |
fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_RANDOMART, dgst_alg); |
| 2732 |
append_about_text(dlg, "", fp); |
// 末尾に改行は不要なので append_about_text() は使用しない |
| 2733 |
|
SendDlgItemMessage(dlg, IDC_ABOUTTEXT, EM_REPLACESEL, 0, (LPARAM)fp); |
| 2734 |
free(fp); |
free(fp); |
| 2735 |
} |
} |
| 2736 |
} |
} |
| 2737 |
|
|
| 2738 |
|
static void init_about_dlg(PTInstVar pvar, HWND dlg) |
| 2739 |
|
{ |
| 2740 |
|
char buf[1024]; |
| 2741 |
|
int a, b, c, d; |
| 2742 |
|
char uimsg[MAX_UIMSG]; |
| 2743 |
|
|
| 2744 |
|
GetWindowText(dlg, uimsg, sizeof(uimsg)); |
| 2745 |
|
UTIL_get_lang_msg("DLG_ABOUT_TITLE", pvar, uimsg); |
| 2746 |
|
SetWindowText(dlg, pvar->ts->UIMsg); |
| 2747 |
|
GetDlgItemText(dlg, IDC_FP_HASH_ALG, uimsg, sizeof(uimsg)); |
| 2748 |
|
UTIL_get_lang_msg("DLG_ABOUT_FP_HASH_ALGORITHM", pvar, uimsg); |
| 2749 |
|
SetDlgItemText(dlg, IDC_FP_HASH_ALG, pvar->ts->UIMsg); |
| 2750 |
|
GetDlgItemText(dlg, IDOK, uimsg, sizeof(uimsg)); |
| 2751 |
|
UTIL_get_lang_msg("BTN_OK", pvar, uimsg); |
| 2752 |
|
SetDlgItemText(dlg, IDOK, pvar->ts->UIMsg); |
| 2753 |
|
|
| 2754 |
|
// TTSSHのバージョンを設定する (2005.2.28 yutaka) |
| 2755 |
|
get_file_version("ttxssh.dll", &a, &b, &c, &d); |
| 2756 |
|
_snprintf_s(buf, sizeof(buf), _TRUNCATE, |
| 2757 |
|
"TTSSH\r\nTera Term Secure Shell extension, %d.%d", a, b); |
| 2758 |
|
SendMessage(GetDlgItem(dlg, IDC_TTSSH_VERSION), WM_SETTEXT, 0, (LPARAM)buf); |
| 2759 |
|
|
| 2760 |
|
// OpenSSLのバージョンを設定する (2005.1.24 yutaka) |
| 2761 |
|
// 条件文追加 (2005.5.11 yutaka) |
| 2762 |
|
// OPENSSL_VERSION_TEXT マクロ定義ではなく、関数を使ってバージョンを取得する。(2013.11.24 yutaka) |
| 2763 |
|
SendMessage(GetDlgItem(dlg, IDC_OPENSSL_VERSION), WM_SETTEXT, 0, (LPARAM)SSLeay_version(SSLEAY_VERSION)); |
| 2764 |
|
|
| 2765 |
|
// zlibのバージョンを設定する (2005.5.11 yutaka) |
| 2766 |
|
#ifdef ZLIB_VERSION |
| 2767 |
|
_snprintf_s(buf, sizeof(buf), _TRUNCATE, "ZLib %s", ZLIB_VERSION); |
| 2768 |
|
#else |
| 2769 |
|
_snprintf(buf, sizeof(buf), "ZLib Unknown"); |
| 2770 |
|
#endif |
| 2771 |
|
SendMessage(GetDlgItem(dlg, IDC_ZLIB_VERSION), WM_SETTEXT, 0, (LPARAM)buf); |
| 2772 |
|
|
| 2773 |
|
// PuTTYのバージョンを設定する (2011.7.26 yutaka) |
| 2774 |
|
#ifdef PUTTYVERSION |
| 2775 |
|
_snprintf_s(buf, sizeof(buf), _TRUNCATE, "PuTTY %s", PUTTYVERSION); |
| 2776 |
|
#else |
| 2777 |
|
_snprintf(buf, sizeof(buf), "PuTTY Unknown"); |
| 2778 |
|
#endif |
| 2779 |
|
SendMessage(GetDlgItem(dlg, IDC_PUTTY_VERSION), WM_SETTEXT, 0, (LPARAM)buf); |
| 2780 |
|
} |
| 2781 |
|
|
| 2782 |
// WM_MOUSEWHEEL は winuser.h ヘッダで宣言されていますが、#define _WIN32_WINNT 0x0400 が宣言されていないと認識されません。 |
// WM_MOUSEWHEEL は winuser.h ヘッダで宣言されていますが、#define _WIN32_WINNT 0x0400 が宣言されていないと認識されません。 |
| 2783 |
#define WM_MOUSEWHEEL 0x020A |
#define WM_MOUSEWHEEL 0x020A |
| 2784 |
#define WHEEL_DELTA 120 |
#define WHEEL_DELTA 120 |
| 2846 |
SendDlgItemMessage(dlg, IDC_WEBSITES, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE,0)); |
SendDlgItemMessage(dlg, IDC_WEBSITES, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE,0)); |
| 2847 |
SendDlgItemMessage(dlg, IDC_CRYPTOGRAPHY, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE,0)); |
SendDlgItemMessage(dlg, IDC_CRYPTOGRAPHY, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE,0)); |
| 2848 |
SendDlgItemMessage(dlg, IDC_CREDIT, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE,0)); |
SendDlgItemMessage(dlg, IDC_CREDIT, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE,0)); |
| 2849 |
|
SendDlgItemMessage(dlg, IDC_FP_HASH_ALG, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE, 0)); |
| 2850 |
|
SendDlgItemMessage(dlg, IDC_FP_HASH_ALG_MD5, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE, 0)); |
| 2851 |
|
SendDlgItemMessage(dlg, IDC_FP_HASH_ALG_SHA256, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE, 0)); |
| 2852 |
SendDlgItemMessage(dlg, IDOK, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE,0)); |
SendDlgItemMessage(dlg, IDOK, WM_SETFONT, (WPARAM)DlgAboutFont, MAKELPARAM(TRUE,0)); |
| 2853 |
} |
} |
| 2854 |
else { |
else { |
| 2889 |
SendDlgItemMessage(dlg, IDC_TTSSH_ICON, STM_SETICON, (WPARAM)hicon, 0); |
SendDlgItemMessage(dlg, IDC_TTSSH_ICON, STM_SETICON, (WPARAM)hicon, 0); |
| 2890 |
} |
} |
| 2891 |
|
|
| 2892 |
init_about_dlg((PTInstVar) lParam, dlg); |
init_about_dlg(pvar, dlg); |
| 2893 |
|
CheckDlgButton(dlg, IDC_FP_HASH_ALG_MD5, TRUE); |
| 2894 |
|
about_dlg_set_abouttext(pvar, dlg, SSH_DIGEST_MD5); |
| 2895 |
SetFocus(GetDlgItem(dlg, IDOK)); |
SetFocus(GetDlgItem(dlg, IDOK)); |
| 2896 |
|
|
| 2897 |
// Edit controlをサブクラス化する。 |
// Edit controlをサブクラス化する。 |
| 2921 |
DeleteObject(DlgAboutTextFont); |
DeleteObject(DlgAboutTextFont); |
| 2922 |
} |
} |
| 2923 |
return TRUE; |
return TRUE; |
| 2924 |
|
case IDC_FP_HASH_ALG_MD5: |
| 2925 |
|
about_dlg_set_abouttext(pvar, dlg, SSH_DIGEST_MD5); |
| 2926 |
|
return TRUE; |
| 2927 |
|
case IDC_FP_HASH_ALG_SHA256: |
| 2928 |
|
about_dlg_set_abouttext(pvar, dlg, SSH_DIGEST_SHA256); |
| 2929 |
|
return TRUE; |
| 2930 |
} |
} |
| 2931 |
break; |
break; |
| 2932 |
} |
} |