Tera Termの個人的な作業用リポジトリ
リビジョン | 06ab4e9e01afcc92563c5c9d3a913ccf7f1a5227 (tree) |
---|---|
日時 | 2022-09-06 23:12:11 |
作者 | IWAMOTO Kouichi <sue@iwmt...> |
コミッター | IWAMOTO Kouichi |
Debugビルド時のみKexKeyLoggingが有効になるように変更した
@@ -64,7 +64,9 @@ | ||
64 | 64 | |
65 | 65 | #include <direct.h> |
66 | 66 | #include <io.h> |
67 | +#ifdef _DEBUG // KEX logging | |
67 | 68 | #include <fcntl.h> |
69 | +#endif | |
68 | 70 | |
69 | 71 | // SSH2 macro |
70 | 72 | #ifdef _DEBUG |
@@ -648,6 +650,7 @@ void push_bignum_memdump(char *name, char *desc, BIGNUM *bignum) | ||
648 | 650 | |
649 | 651 | void log_kex_key(PTInstVar pvar, const BIGNUM *secret) |
650 | 652 | { |
653 | +#ifdef _DEBUG // KEX logging | |
651 | 654 | int fd, i; |
652 | 655 | unsigned char buff[4], *cookie; |
653 | 656 | char *hexstr; |
@@ -673,6 +676,7 @@ void log_kex_key(PTInstVar pvar, const BIGNUM *secret) | ||
673 | 676 | } |
674 | 677 | OPENSSL_free(hexstr); |
675 | 678 | } |
679 | +#endif | |
676 | 680 | } |
677 | 681 | |
678 | 682 | static unsigned int get_predecryption_amount(PTInstVar pvar) |
@@ -5334,7 +5338,6 @@ static BOOL handle_SSH2_dh_gex_group(PTInstVar pvar) | ||
5334 | 5338 | |
5335 | 5339 | // 秘密にすべき乱数(X)を生成 |
5336 | 5340 | dh_gen_key(pvar, dh, pvar->we_need); |
5337 | - | |
5338 | 5341 | log_kex_key(pvar, dh->priv_key); |
5339 | 5342 | |
5340 | 5343 | // 公開鍵をサーバへ送信 |
@@ -5413,7 +5416,6 @@ static void SSH2_ecdh_kex_init(PTInstVar pvar) | ||
5413 | 5416 | goto error; |
5414 | 5417 | } |
5415 | 5418 | group = EC_KEY_get0_group(client_key); |
5416 | - | |
5417 | 5419 | log_kex_key(pvar, EC_KEY_get0_private_key(client_key)); |
5418 | 5420 | |
5419 | 5421 | msg = buffer_init(); |
@@ -373,6 +373,7 @@ static void read_ssh_options(PTInstVar pvar, const wchar_t *fileName) | ||
373 | 373 | |
374 | 374 | settings->AuthBanner = GetPrivateProfileInt("TTSSH", "AuthBanner", 1, fileName); |
375 | 375 | |
376 | +#ifdef _DEBUG | |
376 | 377 | read_string_option(fileName, "KexKeyLogFile", "", settings->KexKeyLogFile, sizeof(settings->KexKeyLogFile)); |
377 | 378 | if (settings->KexKeyLogFile[0] == 0) { |
378 | 379 | settings->KexKeyLogging = 0; |
@@ -380,6 +381,10 @@ static void read_ssh_options(PTInstVar pvar, const wchar_t *fileName) | ||
380 | 381 | else { |
381 | 382 | settings->KexKeyLogging = GetPrivateProfileInt("TTSSH", "KexKeyLogging", 0, fileName); |
382 | 383 | } |
384 | +#else | |
385 | + settings->KexKeyLogFile[0] = 0; | |
386 | + settings->KexKeyLogging = 0; | |
387 | +#endif | |
383 | 388 | |
384 | 389 | clear_local_settings(pvar); |
385 | 390 | } |
@@ -513,9 +518,11 @@ static void write_ssh_options(PTInstVar pvar, const wchar_t *fileName, | ||
513 | 518 | _itoa_s(settings->AuthBanner, buf, sizeof(buf), 10); |
514 | 519 | WritePrivateProfileString("TTSSH", "AuthBanner", buf, fileName); |
515 | 520 | |
521 | +#ifdef _DEBUG | |
516 | 522 | WritePrivateProfileString("TTSSH", "KexKeyLogFile", settings->KexKeyLogFile, fileName); |
517 | 523 | WritePrivateProfileString("TTSSH", "KexKeyLogging", |
518 | 524 | settings->KexKeyLogging ? "1" : "0", fileName); |
525 | +#endif | |
519 | 526 | } |
520 | 527 | |
521 | 528 |