Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk/ttssh2/ttxssh/pkt.c

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

revision 6968 by doda, Thu Nov 2 11:37:37 2017 UTC revision 6969 by doda, Thu Nov 2 11:37:41 2017 UTC
# Line 181  int PKT_recv(PTInstVar pvar, char *buf, Line 181  int PKT_recv(PTInstVar pvar, char *buf,
181                          uint32 padding;                          uint32 padding;
182                          uint32 pktsize;                          uint32 pktsize;
183                          uint32 total_packet_size;                          uint32 total_packet_size;
184                            struct Mac *mac = &pvar->ssh2_keys[MODE_IN].mac;
185                            int etm;
186    
187                            etm = mac && mac->enabled && mac->etm;
188    
189                          // 暗号化パケットの一部を復号化する。                          // 暗号化パケットの一部を復号化する。
190                          if (!pvar->pkt_state.predecrypted_packet) {                          if (!pvar->pkt_state.predecrypted_packet && !etm) {
191                                  SSH_predecrpyt_packet(pvar, data);                                  SSH_predecrpyt_packet(pvar, data);
192                                  pvar->pkt_state.predecrypted_packet = TRUE;                                  pvar->pkt_state.predecrypted_packet = TRUE;
193                          }                          }
# Line 196  int PKT_recv(PTInstVar pvar, char *buf, Line 200  int PKT_recv(PTInstVar pvar, char *buf,
200                          } else {                          } else {
201                                  // SSH2のパケットは先頭に packet-size(4)+padding(1)+type(1) が続く。                                  // SSH2のパケットは先頭に packet-size(4)+padding(1)+type(1) が続く。
202                                  pktsize = get_uint32_MSBfirst(data);                                  pktsize = get_uint32_MSBfirst(data);
203                                  padding = (unsigned char) data[4];                                  if (etm) {
204                                            padding = 0;
205                                    }
206                                    else {
207                                            padding = (unsigned char) data[4];
208                                    }
209                          }                          }
210    
211                          // パケット(TCPペイロード)の全体のサイズは、SSHペイロード+4(+MAC)となる。                          // パケット(TCPペイロード)の全体のサイズは、SSHペイロード+4(+MAC)となる。
# Line 209  int PKT_recv(PTInstVar pvar, char *buf, Line 218  int PKT_recv(PTInstVar pvar, char *buf,
218                                          SSH_handle_packet1(pvar, data, pktsize, padding);                                          SSH_handle_packet1(pvar, data, pktsize, padding);
219                                  }                                  }
220                                  else {                                  else {
221                                          SSH_handle_packet2(pvar, data, pktsize, padding);                                          SSH_handle_packet2(pvar, data, pktsize, padding, etm);
222                                  }                                  }
223                                  pvar->pkt_state.predecrypted_packet = FALSE;                                  pvar->pkt_state.predecrypted_packet = FALSE;
224    

Legend:
Removed from v.6968  
changed lines
  Added in v.6969

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