[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.14 and 1.15

version 1.14, 2000/12/15 17:30:14 version 1.15, 2000/12/19 23:17:56
Line 51 
Line 51 
 kex_init(char *myproposal[PROPOSAL_MAX])  kex_init(char *myproposal[PROPOSAL_MAX])
 {  {
         int first_kex_packet_follows = 0;          int first_kex_packet_follows = 0;
         unsigned char cookie[KEX_COOKIE_LEN];          u_char cookie[KEX_COOKIE_LEN];
         u_int32_t rand = 0;          u_int32_t rand = 0;
         int i;          int i;
         Buffer *ki = xmalloc(sizeof(*ki));          Buffer *ki = xmalloc(sizeof(*ki));
Line 204 
Line 204 
 }  }
   
 void  void
 dump_digest(unsigned char *digest, int len)  dump_digest(u_char *digest, int len)
 {  {
         int i;          int i;
         for (i = 0; i< len; i++){          for (i = 0; i< len; i++){
Line 215 
Line 215 
         fprintf(stderr, "\n");          fprintf(stderr, "\n");
 }  }
   
 unsigned char *  u_char *
 kex_hash(  kex_hash(
     char *client_version_string,      char *client_version_string,
     char *server_version_string,      char *server_version_string,
Line 227 
Line 227 
     BIGNUM *shared_secret)      BIGNUM *shared_secret)
 {  {
         Buffer b;          Buffer b;
         static unsigned char digest[EVP_MAX_MD_SIZE];          static u_char digest[EVP_MAX_MD_SIZE];
         EVP_MD *evp_md = EVP_sha1();          EVP_MD *evp_md = EVP_sha1();
         EVP_MD_CTX md;          EVP_MD_CTX md;
   
Line 264 
Line 264 
         return digest;          return digest;
 }  }
   
 unsigned char *  u_char *
 kex_hash_gex(  kex_hash_gex(
     char *client_version_string,      char *client_version_string,
     char *server_version_string,      char *server_version_string,
Line 277 
Line 277 
     BIGNUM *shared_secret)      BIGNUM *shared_secret)
 {  {
         Buffer b;          Buffer b;
         static unsigned char digest[EVP_MAX_MD_SIZE];          static u_char digest[EVP_MAX_MD_SIZE];
         EVP_MD *evp_md = EVP_sha1();          EVP_MD *evp_md = EVP_sha1();
         EVP_MD_CTX md;          EVP_MD_CTX md;
   
Line 317 
Line 317 
         return digest;          return digest;
 }  }
   
 unsigned char *  u_char *
 derive_key(int id, int need, char unsigned *hash, BIGNUM *shared_secret)  derive_key(int id, int need, u_char *hash, BIGNUM *shared_secret)
 {  {
         Buffer b;          Buffer b;
         EVP_MD *evp_md = EVP_sha1();          EVP_MD *evp_md = EVP_sha1();
Line 326 
Line 326 
         char c = id;          char c = id;
         int have;          int have;
         int mdsz = evp_md->md_size;          int mdsz = evp_md->md_size;
         unsigned char *digest = xmalloc(((need+mdsz-1)/mdsz)*mdsz);          u_char *digest = xmalloc(((need+mdsz-1)/mdsz)*mdsz);
   
         buffer_init(&b);          buffer_init(&b);
         buffer_put_bignum2(&b, shared_secret);          buffer_put_bignum2(&b, shared_secret);
Line 512 
Line 512 
 }  }
   
 int  int
 kex_derive_keys(Kex *k, unsigned char *hash, BIGNUM *shared_secret)  kex_derive_keys(Kex *k, u_char *hash, BIGNUM *shared_secret)
 {  {
         int i;          int i;
         int mode;          int mode;
         int ctos;          int ctos;
         unsigned char *keys[NKEYS];          u_char *keys[NKEYS];
   
         for (i = 0; i < NKEYS; i++)          for (i = 0; i < NKEYS; i++)
                 keys[i] = derive_key('A'+i, k->we_need, hash, shared_secret);                  keys[i] = derive_key('A'+i, k->we_need, hash, shared_secret);

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.15