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

Diff for /src/usr.bin/ssh/kexgex.c between version 1.27 and 1.28

version 1.27, 2006/08/03 03:34:42 version 1.28, 2014/01/09 23:20:00
Line 34 
Line 34 
 #include "cipher.h"  #include "cipher.h"
 #include "kex.h"  #include "kex.h"
 #include "ssh2.h"  #include "ssh2.h"
   #include "digest.h"
   #include "log.h"
   
 void  void
 kexgex_hash(  kexgex_hash(
     const EVP_MD *evp_md,      int hash_alg,
     char *client_version_string,      char *client_version_string,
     char *server_version_string,      char *server_version_string,
     char *ckexinit, int ckexinitlen,      char *ckexinit, int ckexinitlen,
Line 50 
Line 52 
     u_char **hash, u_int *hashlen)      u_char **hash, u_int *hashlen)
 {  {
         Buffer b;          Buffer b;
         static u_char digest[EVP_MAX_MD_SIZE];          static u_char digest[SSH_DIGEST_MAX_LENGTH];
         EVP_MD_CTX md;  
   
         buffer_init(&b);          buffer_init(&b);
         buffer_put_cstring(&b, client_version_string);          buffer_put_cstring(&b, client_version_string);
Line 82 
Line 83 
 #ifdef DEBUG_KEXDH  #ifdef DEBUG_KEXDH
         buffer_dump(&b);          buffer_dump(&b);
 #endif  #endif
           if (ssh_digest_buffer(hash_alg, &b, digest, sizeof(digest)) != 0)
                   fatal("%s: ssh_digest_buffer failed", __func__);
   
         EVP_DigestInit(&md, evp_md);  
         EVP_DigestUpdate(&md, buffer_ptr(&b), buffer_len(&b));  
         EVP_DigestFinal(&md, digest, NULL);  
   
         buffer_free(&b);          buffer_free(&b);
         *hash = digest;  
         *hashlen = EVP_MD_size(evp_md);  #ifdef DEBUG_KEX
 #ifdef DEBUG_KEXDH          dump_digest("hash", digest, ssh_digest_bytes(hash_alg));
         dump_digest("hash", digest, *hashlen);  
 #endif  #endif
           *hash = digest;
           *hashlen = ssh_digest_bytes(hash_alg);
 }  }

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