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 9255 by nmaya, Wed May 19 14:11:26 2021 UTC revision 10962 by zmatsuo, Sun Oct 8 06:17:15 2023 UTC
# Line 110  static int recv_line_data(PTInstVar pvar Line 110  static int recv_line_data(PTInstVar pvar
110                  amount_read = (pvar->Precv) (pvar->socket, &buf[i], 1, 0);                  amount_read = (pvar->Precv) (pvar->socket, &buf[i], 1, 0);
111                  if (amount_read != 1) {                  if (amount_read != 1) {
112                          return 0; // error                          return 0; // error
113                  }                  }
114    
115                  pvar->pkt_state.datalen += amount_read;                  pvar->pkt_state.datalen += amount_read;
116    
# Line 217  int PKT_recv(PTInstVar pvar, char *buf, Line 217  int PKT_recv(PTInstVar pvar, char *buf,
217                                   * aadlen: Additional Authenticated Data Length                                   * aadlen: Additional Authenticated Data Length
218                                   *   MAC の対象となるデータと一緒に暗号化されない、"MAC の対象となるデータの長さ"のサイズ                                   *   MAC の対象となるデータと一緒に暗号化されない、"MAC の対象となるデータの長さ"のサイズ
219                                   *   この部分は packet_length で、uint32 (4バイト)                                   *   この部分は packet_length で、uint32 (4バイト)
220                                   *                                   *
221                                   * - 通常の MAC 方式 (E&M) ではパケット長部分が一緒に暗号化されるので aadlen は 0 となる。                                   * - 通常の MAC 方式 (E&M) ではパケット長部分が一緒に暗号化されるので aadlen は 0 となる。
222                                   * - EtM 方式の MAC や AEAD の AES-GCM では、パケット長部分が暗号化されないので                                   * - EtM 方式の MAC や AEAD の AES-GCM では、パケット長部分が暗号化されないので
223                                   * aadlen は 4 となる。                                   * aadlen は 4 となる。
224                                   * - AEAD の chacha20-poly1305 ではパケット長部分が暗号化されるが、MAC の対象となるデータ                                   * - AEAD の chacha20-poly1305 ではパケット長部分が暗号化されるが、MAC の対象となるデータ
225                                   * とは別に暗号化されるので aadlen は 4 となる。                                   * とは別に暗号化されるので aadlen は 4 となる。
226                                   *                                   *
227                                   */                                   */
228                                  if ((mac && mac->etm) || authlen > 0) {                                  if ((mac && mac->etm) || authlen > 0) {
229                                          aadlen = 4;                                          aadlen = 4;
# Line 297  int PKT_recv(PTInstVar pvar, char *buf, Line 297  int PKT_recv(PTInstVar pvar, char *buf,
297                                  // 実際には何らかの要因で復号失敗⇒パケット長部分が壊れている事が多い。                                  // 実際には何らかの要因で復号失敗⇒パケット長部分が壊れている事が多い。
298                                  UTIL_get_lang_msg("MSG_PKT_OVERSIZED_ERROR", pvar,                                  UTIL_get_lang_msg("MSG_PKT_OVERSIZED_ERROR", pvar,
299                                                    "Oversized packet received from server; connection will close.");                                                    "Oversized packet received from server; connection will close.");
300                                  notify_fatal_error(pvar, pvar->ts->UIMsg, TRUE);                                  notify_fatal_error(pvar, pvar->UIMsg, TRUE);
301                          }                          }
302                          else {                          else {
303                                  int amount_read = recv_data(pvar, max(total_packet_size, READAMOUNT));                                  int amount_read = recv_data(pvar, max(total_packet_size, READAMOUNT));

Legend:
Removed from v.9255  
changed lines
  Added in v.10962

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