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

Diff for /src/usr.bin/ssh/kex.c between version 1.28 and 1.29

version 1.28, 2001/04/04 09:48:34 version 1.29, 2001/04/04 14:34:58
Line 112 
Line 112 
 }  }
   
 void  void
   kex_clear_dispatch(void)
   {
           int i;
   
           /* Numbers 30-49 are used for kex packets */
           for (i = 30; i <= 49; i++)
                   dispatch_set(i, &kex_protocol_error);
   }
   
   void
 kex_finish(Kex *kex)  kex_finish(Kex *kex)
 {  {
         int i, plen;          int plen;
   
           kex_clear_dispatch();
   
         packet_start(SSH2_MSG_NEWKEYS);          packet_start(SSH2_MSG_NEWKEYS);
         packet_send();          packet_send();
         /* packet_write_wait(); */          /* packet_write_wait(); */
Line 125 
Line 137 
         packet_read_expect(&plen, SSH2_MSG_NEWKEYS);          packet_read_expect(&plen, SSH2_MSG_NEWKEYS);
         debug("SSH2_MSG_NEWKEYS received");          debug("SSH2_MSG_NEWKEYS received");
         kex->newkeys = 1;          kex->newkeys = 1;
         for (i = 30; i <= 49; i++)  
                 dispatch_set(i, &kex_protocol_error);  
         buffer_clear(&kex->peer);          buffer_clear(&kex->peer);
         /* buffer_clear(&kex->my); */          /* buffer_clear(&kex->my); */
         kex->flags &= ~KEX_INIT_SENT;          kex->flags &= ~KEX_INIT_SENT;
Line 135 
Line 145 
 void  void
 kex_send_kexinit(Kex *kex)  kex_send_kexinit(Kex *kex)
 {  {
           if (kex == NULL) {
                   error("kex_send_kexinit: no kex, cannot rekey");
                   return;
           }
         if (kex->flags & KEX_INIT_SENT) {          if (kex->flags & KEX_INIT_SENT) {
                 debug("KEX_INIT_SENT");                  debug("KEX_INIT_SENT");
                 return;                  return;
Line 154 
Line 168 
         Kex *kex = (Kex *)ctxt;          Kex *kex = (Kex *)ctxt;
   
         debug("SSH2_MSG_KEXINIT received");          debug("SSH2_MSG_KEXINIT received");
           if (kex == NULL)
                   fatal("kex_input_kexinit: no kex, cannot rekey");
   
         ptr = packet_get_raw(&dlen);          ptr = packet_get_raw(&dlen);
         buffer_append(&kex->peer, ptr, dlen);          buffer_append(&kex->peer, ptr, dlen);
Line 165 
Line 181 
 kex_setup(char *proposal[PROPOSAL_MAX])  kex_setup(char *proposal[PROPOSAL_MAX])
 {  {
         Kex *kex;          Kex *kex;
         int i;  
   
         kex = xmalloc(sizeof(*kex));          kex = xmalloc(sizeof(*kex));
         memset(kex, 0, sizeof(*kex));          memset(kex, 0, sizeof(*kex));
Line 175 
Line 190 
         kex->newkeys = 0;          kex->newkeys = 0;
   
         kex_send_kexinit(kex);                                  /* we start */          kex_send_kexinit(kex);                                  /* we start */
         /* Numbers 30-49 are used for kex packets */          kex_clear_dispatch();
         for (i = 30; i <= 49; i++)  
                 dispatch_set(i, kex_protocol_error);  
   
         dispatch_set(SSH2_MSG_KEXINIT, &kex_input_kexinit);          dispatch_set(SSH2_MSG_KEXINIT, &kex_input_kexinit);
   
         return kex;          return kex;
 }  }
   

Legend:
Removed from v.1.28  
changed lines
  Added in v.1.29