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

Diff for /src/usr.bin/ssh/kexgexc.c between version 1.2 and 1.2.8.1

version 1.2, 2003/12/08 11:00:47 version 1.2.8.1, 2006/02/03 03:01:56
Line 42 
Line 42 
         BIGNUM *p = NULL, *g = NULL;          BIGNUM *p = NULL, *g = NULL;
         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 klen, kout, slen, sbloblen;          u_int klen, kout, slen, sbloblen, hashlen;
         int min, max, nbits;          int min, max, nbits;
         DH *dh;          DH *dh;
   
Line 155 
Line 155 
                 min = max = -1;                  min = max = -1;
   
         /* calc and verify H */          /* calc and verify H */
         hash = kexgex_hash(          kexgex_hash(
               kex->evp_md,
             kex->client_version_string,              kex->client_version_string,
             kex->server_version_string,              kex->server_version_string,
             buffer_ptr(&kex->my), buffer_len(&kex->my),              buffer_ptr(&kex->my), buffer_len(&kex->my),
Line 165 
Line 166 
             dh->p, dh->g,              dh->p, dh->g,
             dh->pub_key,              dh->pub_key,
             dh_server_pub,              dh_server_pub,
             shared_secret              shared_secret,
               &hash, &hashlen
         );          );
   
         /* have keys, free DH */          /* have keys, free DH */
         DH_free(dh);          DH_free(dh);
         xfree(server_host_key_blob);          xfree(server_host_key_blob);
         BN_clear_free(dh_server_pub);          BN_clear_free(dh_server_pub);
   
         if (key_verify(server_host_key, signature, slen, hash, 20) != 1)          if (key_verify(server_host_key, signature, slen, hash, hashlen) != 1)
                 fatal("key_verify failed for server_host_key");                  fatal("key_verify failed for server_host_key");
         key_free(server_host_key);          key_free(server_host_key);
         xfree(signature);          xfree(signature);
   
         /* save session id */          /* save session id */
         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);
         }          }
         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.8.1