[BACK]Return to packet.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/packet.c between version 1.112.2.2 and 1.113

version 1.112.2.2, 2005/03/10 17:15:04 version 1.113, 2004/05/11 19:01:43
Line 314 
Line 314 
 packet_set_nonblocking(void)  packet_set_nonblocking(void)
 {  {
         /* Set the socket into non-blocking mode. */          /* Set the socket into non-blocking mode. */
         set_nonblock(connection_in);          if (fcntl(connection_in, F_SETFL, O_NONBLOCK) < 0)
                   error("fcntl O_NONBLOCK: %.100s", strerror(errno));
   
         if (connection_out != connection_in)          if (connection_out != connection_in) {
                 set_nonblock(connection_out);                  if (fcntl(connection_out, F_SETFL, O_NONBLOCK) < 0)
                           error("fcntl O_NONBLOCK: %.100s", strerror(errno));
           }
 }  }
   
 /* Returns the socket used for reading. */  /* Returns the socket used for reading. */
Line 502 
Line 505 
         u_char buf[8], *cp;          u_char buf[8], *cp;
         int i, padding, len;          int i, padding, len;
         u_int checksum;          u_int checksum;
         u_int32_t rnd = 0;          u_int32_t rand = 0;
   
         /*          /*
          * If using packet compression, compress the payload of the outgoing           * If using packet compression, compress the payload of the outgoing
Line 528 
Line 531 
                 cp = buffer_ptr(&outgoing_packet);                  cp = buffer_ptr(&outgoing_packet);
                 for (i = 0; i < padding; i++) {                  for (i = 0; i < padding; i++) {
                         if (i % 4 == 0)                          if (i % 4 == 0)
                                 rnd = arc4random();                                  rand = arc4random();
                         cp[7 - i] = rnd & 0xff;                          cp[7 - i] = rand & 0xff;
                         rnd >>= 8;                          rand >>= 8;
                 }                  }
         }          }
         buffer_consume(&outgoing_packet, 8 - padding);          buffer_consume(&outgoing_packet, 8 - padding);
Line 575 
Line 578 
         Comp *comp;          Comp *comp;
         CipherContext *cc;          CipherContext *cc;
         u_int64_t *max_blocks;          u_int64_t *max_blocks;
         int crypt_type;          int encrypt;
   
         debug2("set_newkeys: mode %d", mode);          debug2("set_newkeys: mode %d", mode);
   
         if (mode == MODE_OUT) {          if (mode == MODE_OUT) {
                 cc = &send_context;                  cc = &send_context;
                 crypt_type = CIPHER_ENCRYPT;                  encrypt = CIPHER_ENCRYPT;
                 p_send.packets = p_send.blocks = 0;                  p_send.packets = p_send.blocks = 0;
                 max_blocks = &max_blocks_out;                  max_blocks = &max_blocks_out;
         } else {          } else {
                 cc = &receive_context;                  cc = &receive_context;
                 crypt_type = CIPHER_DECRYPT;                  encrypt = CIPHER_DECRYPT;
                 p_read.packets = p_read.blocks = 0;                  p_read.packets = p_read.blocks = 0;
                 max_blocks = &max_blocks_in;                  max_blocks = &max_blocks_in;
         }          }
Line 615 
Line 618 
                 mac->enabled = 1;                  mac->enabled = 1;
         DBG(debug("cipher_init_context: %d", mode));          DBG(debug("cipher_init_context: %d", mode));
         cipher_init(cc, enc->cipher, enc->key, enc->key_len,          cipher_init(cc, enc->cipher, enc->key, enc->key_len,
             enc->iv, enc->block_size, crypt_type);              enc->iv, enc->block_size, encrypt);
         /* Deleting the keys does not gain extra security */          /* Deleting the keys does not gain extra security */
         /* memset(enc->iv,  0, enc->block_size);          /* memset(enc->iv,  0, enc->block_size);
            memset(enc->key, 0, enc->key_len); */             memset(enc->key, 0, enc->key_len); */
Line 649 
Line 652 
         u_char padlen, pad;          u_char padlen, pad;
         u_int packet_length = 0;          u_int packet_length = 0;
         u_int i, len;          u_int i, len;
         u_int32_t rnd = 0;          u_int32_t rand = 0;
         Enc *enc   = NULL;          Enc *enc   = NULL;
         Mac *mac   = NULL;          Mac *mac   = NULL;
         Comp *comp = NULL;          Comp *comp = NULL;
Line 708 
Line 711 
                 /* random padding */                  /* random padding */
                 for (i = 0; i < padlen; i++) {                  for (i = 0; i < padlen; i++) {
                         if (i % 4 == 0)                          if (i % 4 == 0)
                                 rnd = arc4random();                                  rand = arc4random();
                         cp[i] = rnd & 0xff;                          cp[i] = rand & 0xff;
                         rnd >>= 8;                          rand >>= 8;
                 }                  }
         } else {          } else {
                 /* clear padding */                  /* clear padding */
Line 976 
Line 979 
                     buffer_len(&compression_buffer));                      buffer_len(&compression_buffer));
         }          }
         type = buffer_get_char(&incoming_packet);          type = buffer_get_char(&incoming_packet);
         if (type < SSH_MSG_MIN || type > SSH_MSG_MAX)  
                 packet_disconnect("Invalid ssh1 packet type: %d", type);  
         return type;          return type;
 }  }
   
Line 1090 
Line 1091 
          * return length of payload (without type field)           * return length of payload (without type field)
          */           */
         type = buffer_get_char(&incoming_packet);          type = buffer_get_char(&incoming_packet);
         if (type < SSH2_MSG_MIN || type >= SSH2_MSG_LOCAL_MIN)  
                 packet_disconnect("Invalid ssh2 packet type: %d", type);  
         if (type == SSH2_MSG_NEWKEYS)          if (type == SSH2_MSG_NEWKEYS)
                 set_newkeys(MODE_IN);                  set_newkeys(MODE_IN);
 #ifdef PACKET_DEBUG  #ifdef PACKET_DEBUG
Line 1485 
Line 1484 
 void  void
 packet_send_ignore(int nbytes)  packet_send_ignore(int nbytes)
 {  {
         u_int32_t rnd = 0;          u_int32_t rand = 0;
         int i;          int i;
   
         packet_start(compat20 ? SSH2_MSG_IGNORE : SSH_MSG_IGNORE);          packet_start(compat20 ? SSH2_MSG_IGNORE : SSH_MSG_IGNORE);
         packet_put_int(nbytes);          packet_put_int(nbytes);
         for (i = 0; i < nbytes; i++) {          for (i = 0; i < nbytes; i++) {
                 if (i % 4 == 0)                  if (i % 4 == 0)
                         rnd = arc4random();                          rand = arc4random();
                 packet_put_char(rnd & 0xff);                  packet_put_char(rand & 0xff);
                 rnd >>= 8;                  rand >>= 8;
         }          }
 }  }
   

Legend:
Removed from v.1.112.2.2  
changed lines
  Added in v.1.113