Develop and Download Open Source Software

Browse Subversion Repository

Diff of /branches/ssh_chacha20poly1305/ttssh2/ttxssh/ssh.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 7013 by doda, Tue Jan 9 09:06:08 2018 UTC revision 7014 by doda, Tue Jan 9 09:06:11 2018 UTC
# Line 4864  static BOOL handle_SSH2_kexinit(PTInstVa Line 4864  static BOOL handle_SSH2_kexinit(PTInstVa
4864    
4865          // TODO: buffer overrun check          // TODO: buffer overrun check
4866    
         // 6byte(サイズ+パディング+タイプ)を取り除いた以降のペイロード  
         data = pvar->ssh_state.payload;  
         // パケットサイズ - (パディング+1);真のパケットサイズ  
         len = pvar->ssh_state.payloadlen;  
   
         //write_buffer_file(data, len);  
4867          push_memdump("KEXINIT", "exchange algorithm list: receiving", data, len);          push_memdump("KEXINIT", "exchange algorithm list: receiving", data, len);
4868    
4869          if (offset + 20 >= len) {          if (offset + 20 >= len) {
# Line 5610  static BOOL handle_SSH2_dh_kex_reply(PTI Line 5604  static BOOL handle_SSH2_dh_kex_reply(PTI
5604    
5605          // TODO: buffer overrun check          // TODO: buffer overrun check
5606    
5607          // 6byte(サイズ+パディング+タイプ)を取り除いた以降のペイロード          // メッセージタイプの後に続くペイロードの先頭
5608          data = pvar->ssh_state.payload;          data = pvar->ssh_state.payload;
5609          // パケットサイズ - (パディングサイズ+1);真のパケットサイズ          // ペイロードの長さ; メッセージタイプ分の 1 バイトを減らす
5610          len = pvar->ssh_state.payloadlen;          len = pvar->ssh_state.payloadlen - 1;
5611    
5612          // for debug          // for debug
5613          push_memdump("KEXDH_REPLY", "key exchange: receiving", data, len);          push_memdump("KEXDH_REPLY", "key exchange: receiving", data, len);
# Line 5753  static BOOL handle_SSH2_dh_gex_reply(PTI Line 5747  static BOOL handle_SSH2_dh_gex_reply(PTI
5747    
5748          // TODO: buffer overrun check          // TODO: buffer overrun check
5749    
5750          // 6byte(サイズ+パディング+タイプ)を取り除いた以降のペイロード          // メッセージタイプの後に続くペイロードの先頭
5751          data = pvar->ssh_state.payload;          data = pvar->ssh_state.payload;
5752          // パケットサイズ - (パディングサイズ+1);真のパケットサイズ          // ペイロードの長さ; メッセージタイプ分の 1 バイトを減らす
5753          len = pvar->ssh_state.payloadlen;          len = pvar->ssh_state.payloadlen - 1;
5754    
5755          // for debug          // for debug
5756          push_memdump("DH_GEX_REPLY", "key exchange: receiving", data, len);          push_memdump("DH_GEX_REPLY", "key exchange: receiving", data, len);
# Line 5902  static BOOL handle_SSH2_ecdh_kex_reply(P Line 5896  static BOOL handle_SSH2_ecdh_kex_reply(P
5896    
5897          // TODO: buffer overrun check          // TODO: buffer overrun check
5898    
5899          // 6byte(サイズ+パディング+タイプ)を取り除いた以降のペイロード          // メッセージタイプの後に続くペイロードの先頭
5900          data = pvar->ssh_state.payload;          data = pvar->ssh_state.payload;
5901          // パケットサイズ - (パディングサイズ+1);真のパケットサイズ          // ペイロードの長さ; メッセージタイプ分の 1 バイトを減らす
5902          len = pvar->ssh_state.payloadlen;          len = pvar->ssh_state.payloadlen - 1;
5903    
5904          // for debug          // for debug
5905          push_memdump("KEX_ECDH_REPLY", "key exchange: receiving", data, len);          push_memdump("KEX_ECDH_REPLY", "key exchange: receiving", data, len);
# Line 7528  static BOOL handle_SSH2_client_global_re Line 7522  static BOOL handle_SSH2_client_global_re
7522          logputs(LOG_LEVEL_VERBOSE, "SSH2_MSG_GLOBAL_REQUEST was received.");          logputs(LOG_LEVEL_VERBOSE, "SSH2_MSG_GLOBAL_REQUEST was received.");
7523    
7524          // SSH2 packet format:          // SSH2 packet format:
7525          // [size(4) + padding size(1) + type(1)] + [payload(N) + padding(X)]          // size(4) + padding size(1) + type(1) + payload(N) + padding(X)
7526          //  header                                     body          //                                       ^data
7527          //                                         ^data          //           <-----------------size---------------------------->
7528          //            <-----------------size------------------------------->          //                             <--------len------->
         //                              <---------len-------->  
7529          //          //
7530          // data = payload(N) + padding(X): パディングも含めたボディすべてを指す。          // data: メッセージタイプに続くペイロードの先頭を指すポインタ
7531          data = pvar->ssh_state.payload;          data = pvar->ssh_state.payload;
7532          // len = size - (padding size + 1): パディングを除くボディ。typeが先頭に含まれる。          // len = size - (padding size + sizeof(padding size)) = sizeof(type) + sizeof(payload):
7533            // ペイロード部分の長さ。type 分も含む
7534          len = pvar->ssh_state.payloadlen;          len = pvar->ssh_state.payloadlen;
7535    
7536          len--;   // type 分を除く          len--;   // type 分を除く

Legend:
Removed from v.7013  
changed lines
  Added in v.7014

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26