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

Diff for /src/usr.bin/ssh/Attic/kexdhs.c between version 1.2 and 1.2.6.2

version 1.2, 2004/06/13 12:53:24 version 1.2.6.2, 2006/10/06 03:19:32
Line 1 
Line 1 
   /* $OpenBSD$ */
 /*  /*
  * Copyright (c) 2001 Markus Friedl.  All rights reserved.   * Copyright (c) 2001 Markus Friedl.  All rights reserved.
  *   *
Line 22 
Line 23 
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */   */
   
 #include "includes.h"  
 RCSID("$OpenBSD$");  
   
   #include <sys/types.h>
   #include <string.h>
   #include <signal.h>
   
 #include "xmalloc.h"  #include "xmalloc.h"
   #include "buffer.h"
 #include "key.h"  #include "key.h"
   #include "cipher.h"
 #include "kex.h"  #include "kex.h"
 #include "log.h"  #include "log.h"
 #include "packet.h"  #include "packet.h"
 #include "dh.h"  #include "dh.h"
 #include "ssh2.h"  #include "ssh2.h"
   #ifdef GSSAPI
   #include "ssh-gss.h"
   #endif
 #include "monitor_wrap.h"  #include "monitor_wrap.h"
   
 void  void
Line 41 
Line 49 
         DH *dh;          DH *dh;
         Key *server_host_key;          Key *server_host_key;
         u_char *kbuf, *hash, *signature = NULL, *server_host_key_blob = NULL;          u_char *kbuf, *hash, *signature = NULL, *server_host_key_blob = NULL;
         u_int sbloblen, klen, kout;          u_int sbloblen, klen, kout, hashlen;
         u_int slen;          u_int slen;
   
         /* generate server DH public key */          /* generate server DH public key */
Line 103 
Line 111 
         key_to_blob(server_host_key, &server_host_key_blob, &sbloblen);          key_to_blob(server_host_key, &server_host_key_blob, &sbloblen);
   
         /* calc H */          /* calc H */
         hash = kex_dh_hash(          kex_dh_hash(
             kex->client_version_string,              kex->client_version_string,
             kex->server_version_string,              kex->server_version_string,
             buffer_ptr(&kex->peer), buffer_len(&kex->peer),              buffer_ptr(&kex->peer), buffer_len(&kex->peer),
Line 111 
Line 119 
             server_host_key_blob, sbloblen,              server_host_key_blob, sbloblen,
             dh_client_pub,              dh_client_pub,
             dh->pub_key,              dh->pub_key,
             shared_secret              shared_secret,
               &hash, &hashlen
         );          );
         BN_clear_free(dh_client_pub);          BN_clear_free(dh_client_pub);
   
         /* save session id := H */          /* save session id := H */
         /* XXX hashlen depends on KEX */  
         if (kex->session_id == NULL) {          if (kex->session_id == NULL) {
                 kex->session_id_len = 20;                  kex->session_id_len = hashlen;
                 kex->session_id = xmalloc(kex->session_id_len);                  kex->session_id = xmalloc(kex->session_id_len);
                 memcpy(kex->session_id, hash, kex->session_id_len);                  memcpy(kex->session_id, hash, kex->session_id_len);
         }          }
   
         /* sign H */          /* sign H */
         /* XXX hashlen depends on KEX */          PRIVSEP(key_sign(server_host_key, &signature, &slen, hash, hashlen));
         PRIVSEP(key_sign(server_host_key, &signature, &slen, hash, 20));  
   
         /* destroy_sensitive_data(); */          /* destroy_sensitive_data(); */
   
Line 141 
Line 148 
         /* have keys, free DH */          /* have keys, free DH */
         DH_free(dh);          DH_free(dh);
   
         kex_derive_keys(kex, hash, shared_secret);          kex_derive_keys(kex, hash, hashlen, shared_secret);
         BN_clear_free(shared_secret);          BN_clear_free(shared_secret);
         kex_finish(kex);          kex_finish(kex);
 }  }

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.2.6.2