[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.83 and 1.84

version 1.83, 2012/12/11 22:31:18 version 1.84, 2012/12/12 16:46:10
Line 49 
Line 49 
 extern const EVP_CIPHER *evp_ssh1_bf(void);  extern const EVP_CIPHER *evp_ssh1_bf(void);
 extern const EVP_CIPHER *evp_ssh1_3des(void);  extern const EVP_CIPHER *evp_ssh1_3des(void);
 extern void ssh1_3des_iv(EVP_CIPHER_CTX *, int, u_char *, int);  extern void ssh1_3des_iv(EVP_CIPHER_CTX *, int, u_char *, int);
 extern const EVP_CIPHER *evp_aes_128_ctr(void);  
 extern void ssh_aes_ctr_iv(EVP_CIPHER_CTX *, int, u_char *, u_int);  
   
 struct Cipher {  struct Cipher {
         char    *name;          char    *name;
Line 77 
Line 75 
         { "aes256-cbc",         SSH_CIPHER_SSH2, 16, 32, 0, 1, EVP_aes_256_cbc },          { "aes256-cbc",         SSH_CIPHER_SSH2, 16, 32, 0, 1, EVP_aes_256_cbc },
         { "rijndael-cbc@lysator.liu.se",          { "rijndael-cbc@lysator.liu.se",
                                 SSH_CIPHER_SSH2, 16, 32, 0, 1, EVP_aes_256_cbc },                                  SSH_CIPHER_SSH2, 16, 32, 0, 1, EVP_aes_256_cbc },
         { "aes128-ctr",         SSH_CIPHER_SSH2, 16, 16, 0, 0, evp_aes_128_ctr },          { "aes128-ctr",         SSH_CIPHER_SSH2, 16, 16, 0, 0, EVP_aes_128_ctr },
         { "aes192-ctr",         SSH_CIPHER_SSH2, 16, 24, 0, 0, evp_aes_128_ctr },          { "aes192-ctr",         SSH_CIPHER_SSH2, 16, 24, 0, 0, EVP_aes_192_ctr },
         { "aes256-ctr",         SSH_CIPHER_SSH2, 16, 32, 0, 0, evp_aes_128_ctr },          { "aes256-ctr",         SSH_CIPHER_SSH2, 16, 32, 0, 0, EVP_aes_256_ctr },
         { "acss@openssh.org",   SSH_CIPHER_SSH2, 16, 5, 0, 0, EVP_acss },          { "acss@openssh.org",   SSH_CIPHER_SSH2, 16, 5, 0, 0, EVP_acss },
   
         { NULL,                 SSH_CIPHER_INVALID, 0, 0, 0, 0, NULL }          { NULL,                 SSH_CIPHER_INVALID, 0, 0, 0, 0, NULL }
Line 338 
Line 336 
                 if ((u_int)evplen != len)                  if ((u_int)evplen != len)
                         fatal("%s: wrong iv length %d != %d", __func__,                          fatal("%s: wrong iv length %d != %d", __func__,
                             evplen, len);                              evplen, len);
                 if (c->evptype == evp_aes_128_ctr)                  memcpy(iv, cc->evp.iv, len);
                         ssh_aes_ctr_iv(&cc->evp, 0, iv, len);  
                 else  
                         memcpy(iv, cc->evp.iv, len);  
                 break;                  break;
         case SSH_CIPHER_3DES:          case SSH_CIPHER_3DES:
                 ssh1_3des_iv(&cc->evp, 0, iv, 24);                  ssh1_3des_iv(&cc->evp, 0, iv, 24);
Line 364 
Line 359 
                 evplen = EVP_CIPHER_CTX_iv_length(&cc->evp);                  evplen = EVP_CIPHER_CTX_iv_length(&cc->evp);
                 if (evplen == 0)                  if (evplen == 0)
                         return;                          return;
                 if (c->evptype == evp_aes_128_ctr)                  memcpy(cc->evp.iv, iv, evplen);
                         ssh_aes_ctr_iv(&cc->evp, 1, iv, evplen);  
                 else  
                         memcpy(cc->evp.iv, iv, evplen);  
                 break;                  break;
         case SSH_CIPHER_3DES:          case SSH_CIPHER_3DES:
                 ssh1_3des_iv(&cc->evp, 1, iv, 24);                  ssh1_3des_iv(&cc->evp, 1, iv, 24);

Legend:
Removed from v.1.83  
changed lines
  Added in v.1.84