Revision: 10956 https://osdn.net/projects/ttssh2/scm/svn/commits/10956 Author: nmaya Date: 2023-10-03 08:37:21 +0900 (Tue, 03 Oct 2023) Log Message: ----------- 最初の KEX のときには "ext-info-c" を送信するが、Rekey のときには送信しないようにした ticket: #36111 MFT: r10949, r10955 Revision Links: -------------- https://osdn.net/projects/ttssh2/scm/svn/commits/10949 https://osdn.net/projects/ttssh2/scm/svn/commits/10955 Ticket Links: ------------ https://osdn.net/projects/ttssh2/tracker/detail/36111 Modified Paths: -------------- branches/4-stable/ttssh2/ttxssh/cipher.c branches/4-stable/ttssh2/ttxssh/comp.c branches/4-stable/ttssh2/ttxssh/hostkey.c branches/4-stable/ttssh2/ttxssh/kex.c branches/4-stable/ttssh2/ttxssh/mac.c branches/4-stable/ttssh2/ttxssh/ssh.c branches/4-stable/ttssh2/ttxssh/ttxssh.c -------------- next part -------------- Modified: branches/4-stable/ttssh2/ttxssh/cipher.c =================================================================== --- branches/4-stable/ttssh2/ttxssh/cipher.c 2023-10-02 23:34:47 UTC (rev 10955) +++ branches/4-stable/ttssh2/ttxssh/cipher.c 2023-10-02 23:37:21 UTC (rev 10956) @@ -378,7 +378,8 @@ int len, i; char *c_str; - // \x92ʐM\x92\x86\x82ɂ͌Ă\xEA\x82Ȃ\xA2\x82͂\xB8\x82\xBE\x82\xAA\x81A\x94O\x82̂\xBD\x82߁B(2006.6.26 maya) + // \x92ʐM\x92\x86\x82ɌĂ\xEA\x82\xE9\x82Ƃ\xA2\x82\xA4\x82\xB1\x82Ƃ̓L\x81[\x8Dč쐬 + // \x83L\x81[\x8Dč쐬\x82̏ꍇ\x82͉\xBD\x82\xE0\x82\xB5\x82Ȃ\xA2 if (pvar->socket != INVALID_SOCKET) { return; } Modified: branches/4-stable/ttssh2/ttxssh/comp.c =================================================================== --- branches/4-stable/ttssh2/ttxssh/comp.c 2023-10-02 23:34:47 UTC (rev 10955) +++ branches/4-stable/ttssh2/ttxssh/comp.c 2023-10-02 23:37:21 UTC (rev 10956) @@ -96,7 +96,8 @@ int index; int len, i; - // \x92ʐM\x92\x86\x82ɂ͌Ă\xEA\x82Ȃ\xA2\x82͂\xB8\x82\xBE\x82\xAA\x81A\x94O\x82̂\xBD\x82߁B(2006.6.26 maya) + // \x92ʐM\x92\x86\x82ɌĂ\xEA\x82\xE9\x82Ƃ\xA2\x82\xA4\x82\xB1\x82Ƃ̓L\x81[\x8Dč쐬 + // \x83L\x81[\x8Dč쐬\x82̏ꍇ\x82͉\xBD\x82\xE0\x82\xB5\x82Ȃ\xA2 if (pvar->socket != INVALID_SOCKET) { return; } Modified: branches/4-stable/ttssh2/ttxssh/hostkey.c =================================================================== --- branches/4-stable/ttssh2/ttxssh/hostkey.c 2023-10-02 23:34:47 UTC (rev 10955) +++ branches/4-stable/ttssh2/ttxssh/hostkey.c 2023-10-02 23:37:21 UTC (rev 10956) @@ -245,7 +245,8 @@ int index; int len, i; - // \x92ʐM\x92\x86\x82ɂ͌Ă\xEA\x82Ȃ\xA2\x82͂\xB8\x82\xBE\x82\xAA\x81A\x94O\x82̂\xBD\x82߁B(2006.6.26 maya) + // \x92ʐM\x92\x86\x82ɌĂ\xEA\x82\xE9\x82Ƃ\xA2\x82\xA4\x82\xB1\x82Ƃ̓L\x81[\x8Dč쐬 + // \x83L\x81[\x8Dč쐬\x82̏ꍇ\x82͉\xBD\x82\xE0\x82\xB5\x82Ȃ\xA2 if (pvar->socket != INVALID_SOCKET) { return; } Modified: branches/4-stable/ttssh2/ttxssh/kex.c =================================================================== --- branches/4-stable/ttssh2/ttxssh/kex.c 2023-10-02 23:34:47 UTC (rev 10955) +++ branches/4-stable/ttssh2/ttxssh/kex.c 2023-10-02 23:37:21 UTC (rev 10956) @@ -140,8 +140,17 @@ int index; int i; - // \x92ʐM\x92\x86\x82ɂ͌Ă\xEA\x82Ȃ\xA2\x82͂\xB8\x82\xBE\x82\xAA\x81A\x94O\x82̂\xBD\x82߁B(2006.6.26 maya) + // \x92ʐM\x92\x86\x82ɌĂ\xEA\x82\xE9\x82Ƃ\xA2\x82\xA4\x82\xB1\x82Ƃ̓L\x81[\x8Dč쐬 if (pvar->socket != INVALID_SOCKET) { + if (pvar->kex_status & KEX_FLAG_REKEYING) { + // \x83L\x81[\x8Dč쐬\x82̏ꍇ\x82ɂ́A\x90ڑ\xB1\x8E\x9E\x82\xC9 pvar->settings \x82\xA9\x82\xE7\x91g\x82ݗ\xA7\x82Ă\xE7\x82ꂽ myproposal \x82\xF0\x8F\x91\x82\xAB\x8A\xB7\x82\xA6\x82\xE9\x81B + // pvar->settings \x82\xAA \x90ڑ\xB1\x8E\x9E\x82\xC9 myproposal \x82\xF0\x8D쐬\x82\xB5\x82\xBD\x82Ƃ\xAB\x82̒l\x82\xA9\x82\xE7\x95ς\xED\x82\xC1\x82Ă\xA2\x82Ȃ\xA2\x95ۏ\xAA\x82Ȃ\xA2\x81B + // \x8Dēx\x91g\x82ݗ\xA7\x82Ă\xE9\x82̂ł͂Ȃ\xAD\x8A\xF9\x91\xB6\x82\xCC myproposal \x82\xF0\x8F\x91\x82\xAB\x8A\xB7\x82\xA6\x82邱\x82Ƃɂ\xB5\x82\xBD\x81B + int pos = strlen(myproposal[PROPOSAL_KEX_ALGS]) - strlen(",ext-info-c"); + if (strcmp(myproposal[PROPOSAL_KEX_ALGS] + pos, ",ext-info-c") == 0) { + myproposal[PROPOSAL_KEX_ALGS][pos] = '\0'; + } + } return; } @@ -153,7 +162,10 @@ strncat_s(buf, sizeof(buf), get_kex_algorithm_name(index), _TRUNCATE); strncat_s(buf, sizeof(buf), ",", _TRUNCATE); } + + // RFC 8308 Extension Negotiation strncat_s(buf, sizeof(buf), "ext-info-c", _TRUNCATE); + myproposal[PROPOSAL_KEX_ALGS] = buf; } Modified: branches/4-stable/ttssh2/ttxssh/mac.c =================================================================== --- branches/4-stable/ttssh2/ttxssh/mac.c 2023-10-02 23:34:47 UTC (rev 10955) +++ branches/4-stable/ttssh2/ttxssh/mac.c 2023-10-02 23:37:21 UTC (rev 10956) @@ -170,7 +170,8 @@ int index; int len, i; - // \x92ʐM\x92\x86\x82ɂ͌Ă\xEA\x82Ȃ\xA2\x82͂\xB8\x82\xBE\x82\xAA\x81A\x94O\x82̂\xBD\x82߁B(2006.6.26 maya) + // \x92ʐM\x92\x86\x82ɌĂ\xEA\x82\xE9\x82Ƃ\xA2\x82\xA4\x82\xB1\x82Ƃ̓L\x81[\x8Dč쐬 + // \x83L\x81[\x8Dč쐬\x82̏ꍇ\x82͉\xBD\x82\xE0\x82\xB5\x82Ȃ\xA2 if (pvar->socket != INVALID_SOCKET) { return; } Modified: branches/4-stable/ttssh2/ttxssh/ssh.c =================================================================== --- branches/4-stable/ttssh2/ttxssh/ssh.c 2023-10-02 23:34:47 UTC (rev 10955) +++ branches/4-stable/ttssh2/ttxssh/ssh.c 2023-10-02 23:37:21 UTC (rev 10956) @@ -4685,6 +4685,10 @@ if (pvar->kex_status == KEX_FLAG_KEXDONE) { pvar->kex_status = KEX_FLAG_REKEYING; + // \x83L\x81[\x8Dč쐬\x8E\x9E\x82\xCD myproposal \x82\xA9\x82\xE7 ",ext-info-c" \x82\xF0\x8D폜\x82\xB7\x82\xE9 + // \x8DX\x90V\x82\xB7\x82\xE9\x82̂\xCD KEX \x82݂̂ł悢 + SSH2_update_kex_myproposal(pvar); + // \x83T\x81[\x83o\x82\xD6SSH2_MSG_KEXINIT \x82𑗂\xE9 SSH2_send_kexinit(pvar); } Modified: branches/4-stable/ttssh2/ttxssh/ttxssh.c =================================================================== --- branches/4-stable/ttssh2/ttxssh/ttxssh.c 2023-10-02 23:34:47 UTC (rev 10955) +++ branches/4-stable/ttssh2/ttxssh/ttxssh.c 2023-10-02 23:37:21 UTC (rev 10956) @@ -974,7 +974,9 @@ HOSTS_open(pvar); FWDUI_open(pvar); - // \x90ݒ\xE8\x82\xF0 myproposal \x82ɔ\xBD\x89f\x82\xB7\x82\xE9\x82̂́A\x90ڑ\xB1\x92\xBC\x91O\x82̂\xB1\x82\xB1\x82\xBE\x82\xAF\x81B + // \x90ڑ\xB1\x92\xBC\x91O\x82̂\xB1\x82\xB1\x82ŁA\x90ݒ\xE8\x82\xF0 myproposal \x82ɔ\xBD\x89f\x82\xB5\x82Ă\xA2\x82\xE9 + // \x83L\x81[\x8Dč쐬\x82̂Ƃ\xAB\x82́A\x93\xAF\x82\xB6 SSH2_update_kex_myproposal() \x82\xF0\x8CĂяo\x82\xB5\x82\xC4 + // myproposal \x82\xA9\x82\xE7 ",ext-info-c" \x82\xF0\x8D폜\x82\xB5\x82Ă\xA2\x82\xE9 SSH2_update_kex_myproposal(pvar); SSH2_update_host_key_myproposal(pvar); SSH2_update_cipher_myproposal(pvar);