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

Diff for /src/usr.bin/ssh/cipher.c between version 1.58 and 1.59

version 1.58, 2002/06/04 23:05:49 version 1.59, 2002/06/19 18:01:00
Line 646 
Line 646 
 cipher_get_keycontext(CipherContext *cc, u_char *dat)  cipher_get_keycontext(CipherContext *cc, u_char *dat)
 {  {
         Cipher *c = cc->cipher;          Cipher *c = cc->cipher;
         int plen;          int plen = 0;
   
         if (c->number == SSH_CIPHER_3DES) {          if (c->evptype == EVP_rc4) {
                 struct ssh1_3des_ctx *desc;                  plen = EVP_X_STATE_LEN(cc->evp);
                 desc = EVP_CIPHER_CTX_get_app_data(&cc->evp);  
                 if (desc == NULL)  
                         fatal("%s: no 3des context", __func__);  
                 plen = EVP_X_STATE_LEN(desc->k1);  
                 if (dat == NULL)                  if (dat == NULL)
                         return (3*plen);                          return (plen);
                 memcpy(dat, EVP_X_STATE(desc->k1), plen);                  memcpy(dat, EVP_X_STATE(cc->evp), plen);
                 memcpy(dat + plen, EVP_X_STATE(desc->k2), plen);  
                 memcpy(dat + 2*plen, EVP_X_STATE(desc->k3), plen);  
                 return (3*plen);  
         }          }
   
         /* Generic EVP */  
         plen = EVP_X_STATE_LEN(cc->evp);  
         if (dat == NULL)  
                 return (plen);  
   
         memcpy(dat, EVP_X_STATE(cc->evp), plen);  
         return (plen);          return (plen);
 }  }
   
Line 677 
Line 663 
         Cipher *c = cc->cipher;          Cipher *c = cc->cipher;
         int plen;          int plen;
   
         if (c->number == SSH_CIPHER_3DES) {          if (c->evptype == EVP_rc4) {
                 struct ssh1_3des_ctx *desc;  
                 desc = EVP_CIPHER_CTX_get_app_data(&cc->evp);  
                 if (desc == NULL)  
                         fatal("%s: no 3des context", __func__);  
                 plen = EVP_X_STATE_LEN(desc->k1);  
                 memcpy(EVP_X_STATE(desc->k1), dat, plen);  
                 memcpy(EVP_X_STATE(desc->k2), dat + plen, plen);  
                 memcpy(EVP_X_STATE(desc->k3), dat + 2*plen, plen);  
         } else {  
                 plen = EVP_X_STATE_LEN(cc->evp);                  plen = EVP_X_STATE_LEN(cc->evp);
                 memcpy(EVP_X_STATE(cc->evp), dat, plen);                  memcpy(EVP_X_STATE(cc->evp), dat, plen);
         }          }

Legend:
Removed from v.1.58  
changed lines
  Added in v.1.59