| 2564 |
} |
} |
| 2565 |
} |
} |
| 2566 |
|
|
|
static void append_about_text(HWND dlg, char FAR * prefix, char FAR * msg) |
|
|
{ |
|
|
SendDlgItemMessage(dlg, IDC_ABOUTTEXT, EM_REPLACESEL, 0, |
|
|
(LPARAM) prefix); |
|
|
SendDlgItemMessage(dlg, IDC_ABOUTTEXT, EM_REPLACESEL, 0, (LPARAM) msg); |
|
|
SendDlgItemMessage(dlg, IDC_ABOUTTEXT, EM_REPLACESEL, 0, |
|
|
(LPARAM) (char FAR *) "\r\n"); |
|
|
} |
|
|
|
|
| 2567 |
// 実行ファイルからバージョン情報を得る (2005.2.28 yutaka) |
// 実行ファイルからバージョン情報を得る (2005.2.28 yutaka) |
| 2568 |
void get_file_version(char *exefile, int *major, int *minor, int *release, int *build) |
void get_file_version(char *exefile, int *major, int *minor, int *release, int *build) |
| 2569 |
{ |
{ |
| 2626 |
|
|
| 2627 |
static void about_dlg_set_abouttext(PTInstVar pvar, HWND dlg, digest_algorithm dgst_alg) |
static void about_dlg_set_abouttext(PTInstVar pvar, HWND dlg, digest_algorithm dgst_alg) |
| 2628 |
{ |
{ |
| 2629 |
char buf[1024]; |
char buf[1024], buf2[2048]; |
| 2630 |
char *fp = NULL; |
char *fp = NULL; |
| 2631 |
|
|
| 2632 |
// TTSSHダイアログに表示するSSHに関する情報 (2004.10.30 yutaka) |
// TTSSHダイアログに表示するSSHに関する情報 (2004.10.30 yutaka) |
| 2633 |
if (pvar->socket != INVALID_SOCKET) { |
if (pvar->socket != INVALID_SOCKET) { |
| 2634 |
SendDlgItemMessage(dlg, IDC_ABOUTTEXT, WM_SETTEXT, 0, (LPARAM)(char FAR *)""); |
buf2[0] = '\0'; |
| 2635 |
|
|
| 2636 |
if (SSHv1(pvar)) { |
if (SSHv1(pvar)) { |
|
SSH_get_server_ID_info(pvar, buf, sizeof(buf)); |
|
| 2637 |
UTIL_get_lang_msg("DLG_ABOUT_SERVERID", pvar, "Server ID:"); |
UTIL_get_lang_msg("DLG_ABOUT_SERVERID", pvar, "Server ID:"); |
| 2638 |
append_about_text(dlg, pvar->ts->UIMsg, buf); |
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2639 |
SSH_get_protocol_version_info(pvar, buf, sizeof(buf)); |
strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE); |
| 2640 |
|
SSH_get_server_ID_info(pvar, buf, sizeof(buf)); |
| 2641 |
|
strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE); |
| 2642 |
|
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2643 |
|
|
| 2644 |
UTIL_get_lang_msg("DLG_ABOUT_PROTOCOL", pvar, "Using protocol:"); |
UTIL_get_lang_msg("DLG_ABOUT_PROTOCOL", pvar, "Using protocol:"); |
| 2645 |
append_about_text(dlg, pvar->ts->UIMsg, buf); |
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2646 |
CRYPT_get_cipher_info(pvar, buf, sizeof(buf)); |
strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE); |
| 2647 |
|
SSH_get_server_ID_info(pvar, buf, sizeof(buf)); |
| 2648 |
|
strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE); |
| 2649 |
|
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2650 |
|
|
| 2651 |
UTIL_get_lang_msg("DLG_ABOUT_ENCRYPTION", pvar, "Encryption:"); |
UTIL_get_lang_msg("DLG_ABOUT_ENCRYPTION", pvar, "Encryption:"); |
| 2652 |
append_about_text(dlg, pvar->ts->UIMsg, buf); |
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2653 |
CRYPT_get_server_key_info(pvar, buf, sizeof(buf)); |
strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE); |
| 2654 |
|
SSH_get_server_ID_info(pvar, buf, sizeof(buf)); |
| 2655 |
|
strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE); |
| 2656 |
|
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2657 |
|
|
| 2658 |
UTIL_get_lang_msg("DLG_ABOUT_SERVERKEY", pvar, "Server keys:"); |
UTIL_get_lang_msg("DLG_ABOUT_SERVERKEY", pvar, "Server keys:"); |
| 2659 |
append_about_text(dlg, pvar->ts->UIMsg, buf); |
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2660 |
AUTH_get_auth_info(pvar, buf, sizeof(buf)); |
strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE); |
| 2661 |
|
CRYPT_get_server_key_info(pvar, buf, sizeof(buf)); |
| 2662 |
|
strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE); |
| 2663 |
|
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2664 |
|
|
| 2665 |
UTIL_get_lang_msg("DLG_ABOUT_AUTH", pvar, "Authentication:"); |
UTIL_get_lang_msg("DLG_ABOUT_AUTH", pvar, "Authentication:"); |
| 2666 |
append_about_text(dlg, pvar->ts->UIMsg, buf); |
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2667 |
SSH_get_compression_info(pvar, buf, sizeof(buf)); |
strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE); |
| 2668 |
|
AUTH_get_auth_info(pvar, buf, sizeof(buf)); |
| 2669 |
|
strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE); |
| 2670 |
|
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2671 |
|
|
| 2672 |
UTIL_get_lang_msg("DLG_ABOUT_COMP", pvar, "Compression:"); |
UTIL_get_lang_msg("DLG_ABOUT_COMP", pvar, "Compression:"); |
| 2673 |
append_about_text(dlg, pvar->ts->UIMsg, buf); |
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2674 |
|
strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE); |
| 2675 |
|
SSH_get_compression_info(pvar, buf, sizeof(buf)); |
| 2676 |
|
strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE); |
| 2677 |
|
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2678 |
|
|
| 2679 |
} else { // SSH2 |
} else { // SSH2 |
|
SSH_get_server_ID_info(pvar, buf, sizeof(buf)); |
|
| 2680 |
UTIL_get_lang_msg("DLG_ABOUT_SERVERID", pvar, "Server ID:"); |
UTIL_get_lang_msg("DLG_ABOUT_SERVERID", pvar, "Server ID:"); |
| 2681 |
append_about_text(dlg, pvar->ts->UIMsg, buf); |
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2682 |
|
strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE); |
| 2683 |
|
SSH_get_server_ID_info(pvar, buf, sizeof(buf)); |
| 2684 |
|
strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE); |
| 2685 |
|
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2686 |
|
|
| 2687 |
UTIL_get_lang_msg("DLG_ABOUT_CLIENTID", pvar, "Client ID:"); |
UTIL_get_lang_msg("DLG_ABOUT_CLIENTID", pvar, "Client ID:"); |
| 2688 |
append_about_text(dlg, pvar->ts->UIMsg, pvar->client_version_string); |
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2689 |
|
strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE); |
| 2690 |
|
strncat_s(buf2, sizeof(buf2), pvar->client_version_string, _TRUNCATE); |
| 2691 |
|
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2692 |
|
|
|
SSH_get_protocol_version_info(pvar, buf, sizeof(buf)); |
|
| 2693 |
UTIL_get_lang_msg("DLG_ABOUT_PROTOCOL", pvar, "Using protocol:"); |
UTIL_get_lang_msg("DLG_ABOUT_PROTOCOL", pvar, "Using protocol:"); |
| 2694 |
append_about_text(dlg, pvar->ts->UIMsg, buf); |
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2695 |
|
strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE); |
| 2696 |
|
SSH_get_protocol_version_info(pvar, buf, sizeof(buf)); |
| 2697 |
|
strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE); |
| 2698 |
|
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2699 |
|
|
| 2700 |
append_about_text(dlg, "KEX:", get_kex_algorithm_name(pvar->kex_type)); |
UTIL_get_lang_msg("DLG_ABOUT_KEX", pvar, "Key exchange algorithm:"); |
| 2701 |
|
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2702 |
|
strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE); |
| 2703 |
|
strncat_s(buf2, sizeof(buf2), get_kex_algorithm_name(pvar->kex_type), _TRUNCATE); |
| 2704 |
|
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2705 |
|
|
|
strncpy_s(buf, sizeof(buf), get_ssh_keytype_name(pvar->hostkey_type), _TRUNCATE); |
|
| 2706 |
UTIL_get_lang_msg("DLG_ABOUT_HOSTKEY", pvar, "Host Key:"); |
UTIL_get_lang_msg("DLG_ABOUT_HOSTKEY", pvar, "Host Key:"); |
| 2707 |
append_about_text(dlg, pvar->ts->UIMsg, buf); |
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2708 |
|
strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE); |
| 2709 |
// add MAC algorithm (2004.12.17 yutaka) |
strncat_s(buf2, sizeof(buf2), get_ssh_keytype_name(pvar->hostkey_type), _TRUNCATE); |
| 2710 |
buf[0] = '\0'; |
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2711 |
strncat_s(buf, sizeof(buf), get_ssh2_mac_name(pvar->ctos_hmac), _TRUNCATE); |
|
| 2712 |
|
UTIL_get_lang_msg("DLG_ABOUT_MAC", pvar, "MAC algorithm:"); |
| 2713 |
|
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2714 |
|
strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE); |
| 2715 |
|
strncat_s(buf2, sizeof(buf2), get_ssh2_mac_name(pvar->ctos_hmac), _TRUNCATE); |
| 2716 |
UTIL_get_lang_msg("DLG_ABOUT_TOSERVER", pvar, " to server,"); |
UTIL_get_lang_msg("DLG_ABOUT_TOSERVER", pvar, " to server,"); |
| 2717 |
strncat_s(buf, sizeof(buf), pvar->ts->UIMsg, _TRUNCATE); |
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2718 |
strncat_s(buf, sizeof(buf), get_ssh2_mac_name(pvar->stoc_hmac), _TRUNCATE); |
strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE); |
| 2719 |
|
strncat_s(buf2, sizeof(buf2), get_ssh2_mac_name(pvar->stoc_hmac), _TRUNCATE); |
| 2720 |
UTIL_get_lang_msg("DLG_ABOUT_FROMSERVER", pvar, " from server"); |
UTIL_get_lang_msg("DLG_ABOUT_FROMSERVER", pvar, " from server"); |
| 2721 |
strncat_s(buf, sizeof(buf), pvar->ts->UIMsg, _TRUNCATE); |
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2722 |
append_about_text(dlg, "MAC:", buf); |
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2723 |
|
|
|
CRYPT_get_cipher_info(pvar, buf, sizeof(buf)); |
|
| 2724 |
UTIL_get_lang_msg("DLG_ABOUT_ENCRYPTION", pvar, "Encryption:"); |
UTIL_get_lang_msg("DLG_ABOUT_ENCRYPTION", pvar, "Encryption:"); |
| 2725 |
append_about_text(dlg, pvar->ts->UIMsg, buf); |
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2726 |
CRYPT_get_server_key_info(pvar, buf, sizeof(buf)); |
strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE); |
| 2727 |
|
CRYPT_get_cipher_info(pvar, buf, sizeof(buf)); |
| 2728 |
|
strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE); |
| 2729 |
|
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2730 |
|
|
| 2731 |
UTIL_get_lang_msg("DLG_ABOUT_KEXKEY", pvar, "Key exchange keys:"); |
UTIL_get_lang_msg("DLG_ABOUT_KEXKEY", pvar, "Key exchange keys:"); |
| 2732 |
append_about_text(dlg, pvar->ts->UIMsg, buf); |
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2733 |
|
strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE); |
| 2734 |
|
CRYPT_get_server_key_info(pvar, buf, sizeof(buf)); |
| 2735 |
|
strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE); |
| 2736 |
|
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2737 |
|
|
|
AUTH_get_auth_info(pvar, buf, sizeof(buf)); |
|
| 2738 |
UTIL_get_lang_msg("DLG_ABOUT_AUTH", pvar, "Authentication:"); |
UTIL_get_lang_msg("DLG_ABOUT_AUTH", pvar, "Authentication:"); |
| 2739 |
append_about_text(dlg, pvar->ts->UIMsg, buf); |
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2740 |
|
strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE); |
| 2741 |
|
AUTH_get_auth_info(pvar, buf, sizeof(buf)); |
| 2742 |
|
strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE); |
| 2743 |
|
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2744 |
|
|
|
SSH_get_compression_info(pvar, buf, sizeof(buf)); |
|
| 2745 |
if (pvar->ctos_compression == COMP_DELAYED) { // 遅延パケット圧縮の場合 (2006.6.23 yutaka) |
if (pvar->ctos_compression == COMP_DELAYED) { // 遅延パケット圧縮の場合 (2006.6.23 yutaka) |
| 2746 |
UTIL_get_lang_msg("DLG_ABOUT_COMPDELAY", pvar, "Delayed Compression:"); |
UTIL_get_lang_msg("DLG_ABOUT_COMPDELAY", pvar, "Delayed Compression:"); |
|
append_about_text(dlg, pvar->ts->UIMsg, buf); |
|
| 2747 |
} else { |
} else { |
| 2748 |
UTIL_get_lang_msg("DLG_ABOUT_COMP", pvar, "Compression:"); |
UTIL_get_lang_msg("DLG_ABOUT_COMP", pvar, "Compression:"); |
|
append_about_text(dlg, pvar->ts->UIMsg, buf); |
|
| 2749 |
} |
} |
| 2750 |
|
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2751 |
|
strncat_s(buf2, sizeof(buf2), " ", _TRUNCATE); |
| 2752 |
|
SSH_get_compression_info(pvar, buf, sizeof(buf)); |
| 2753 |
|
strncat_s(buf2, sizeof(buf2), buf, _TRUNCATE); |
| 2754 |
|
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2755 |
} |
} |
| 2756 |
|
|
| 2757 |
// ホスト公開鍵のfingerprintを表示する。 |
// ホスト公開鍵のfingerprintを表示する。 |
| 2758 |
// (2014.5.1 yutaka) |
// (2014.5.1 yutaka) |
| 2759 |
UTIL_get_lang_msg("DLG_ABOUT_FINGERPRINT", pvar, "Host key's fingerprint:"); |
UTIL_get_lang_msg("DLG_ABOUT_FINGERPRINT", pvar, "Host key's fingerprint:"); |
| 2760 |
append_about_text(dlg, "", pvar->ts->UIMsg); |
strncat_s(buf2, sizeof(buf2), pvar->ts->UIMsg, _TRUNCATE); |
| 2761 |
|
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2762 |
|
|
| 2763 |
switch (dgst_alg) { |
switch (dgst_alg) { |
| 2764 |
case SSH_DIGEST_MD5: |
case SSH_DIGEST_MD5: |
| 2765 |
fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_HEX, dgst_alg); |
fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_HEX, dgst_alg); |
| 2766 |
append_about_text(dlg, "", fp); |
strncat_s(buf2, sizeof(buf2), fp, _TRUNCATE); |
| 2767 |
|
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2768 |
free(fp); |
free(fp); |
| 2769 |
break; |
break; |
| 2770 |
case SSH_DIGEST_SHA256: |
case SSH_DIGEST_SHA256: |
| 2771 |
fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_BASE64, dgst_alg); |
fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_BASE64, dgst_alg); |
| 2772 |
append_about_text(dlg, "", fp); |
strncat_s(buf2, sizeof(buf2), fp, _TRUNCATE); |
| 2773 |
|
strncat_s(buf2, sizeof(buf2), "\r\n", _TRUNCATE); |
| 2774 |
free(fp); |
free(fp); |
| 2775 |
break; |
break; |
| 2776 |
} |
} |
| 2777 |
|
|
| 2778 |
fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_RANDOMART, dgst_alg); |
fp = key_fingerprint(&pvar->hosts_state.hostkey, SSH_FP_RANDOMART, dgst_alg); |
| 2779 |
// 末尾に改行は不要なので append_about_text() は使用しない |
strncat_s(buf2, sizeof(buf2), fp, _TRUNCATE); |
|
SendDlgItemMessage(dlg, IDC_ABOUTTEXT, EM_REPLACESEL, 0, (LPARAM)fp); |
|
| 2780 |
free(fp); |
free(fp); |
| 2781 |
|
|
| 2782 |
|
SendDlgItemMessage(dlg, IDC_ABOUTTEXT, WM_SETTEXT, 0, (LPARAM)(char FAR *)buf2); |
| 2783 |
} |
} |
| 2784 |
} |
} |
| 2785 |
|
|