[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.5 and 1.6

version 1.5, 1999/09/30 05:19:57 version 1.6, 1999/09/30 05:53:04
Line 124 
Line 124 
 {  {
   "none",    "none",
   "no idea",    "no idea",
 #ifdef WITH_DES  
   "des",  
 #else  
   "no des",    "no des",
 #endif  
   "3des",    "3des",
   "no tss",    "no tss",
   "no rc4",    "no rc4",
Line 143 
Line 139 
 {  {
   unsigned int mask = 0;    unsigned int mask = 0;
   mask |= 1 << SSH_CIPHER_NONE;    mask |= 1 << SSH_CIPHER_NONE;
 #ifdef WITH_DES  
   mask |= 1 << SSH_CIPHER_DES;  
 #endif  
   mask |= 1 << SSH_CIPHER_3DES; /* Mandatory */    mask |= 1 << SSH_CIPHER_3DES; /* Mandatory */
   mask |= 1 << SSH_CIPHER_BLOWFISH;    mask |= 1 << SSH_CIPHER_BLOWFISH;
   return mask;    return mask;
Line 214 
Line 207 
     case SSH_CIPHER_NONE:      case SSH_CIPHER_NONE:
       break;        break;
   
 #ifdef WITH_DES  
     case SSH_CIPHER_DES:  
       /* Note: the least significant bit of each byte of key is parity,  
          and must be ignored by the implementation.  8 bytes of key are  
          used. */  
       if (keylen < 8)  
         error("Key length %d is insufficient for DES.", keylen);  
       des_set_key((void*)padded, context->u.des.key);  
       memset(context->u.des.iv, 0, sizeof(context->u.des.iv));  
       break;  
 #endif /* WITH_DES */  
   
     case SSH_CIPHER_3DES:      case SSH_CIPHER_3DES:
       /* Note: the least significant bit of each byte of key is parity,        /* Note: the least significant bit of each byte of key is parity,
          and must be ignored by the implementation.  16 bytes of key are           and must be ignored by the implementation.  16 bytes of key are
Line 266 
Line 247 
       memcpy(dest, src, len);        memcpy(dest, src, len);
       break;        break;
   
 #ifdef WITH_DES  
     case SSH_CIPHER_DES:  
       des_cbc_encrypt((void*)src, (void*)dest, len,  
                       context->u.des.key, &context->u.des.iv, DES_ENCRYPT);  
       memcpy(context->u.des.iv, dest + len - 8, 8);  
       break;  
 #endif /* WITH_DES */  
   
     case SSH_CIPHER_3DES:      case SSH_CIPHER_3DES:
       SSH_3CBC_ENCRYPT(context->u.des3.key1,        SSH_3CBC_ENCRYPT(context->u.des3.key1,
                        context->u.des3.key2, &context->u.des3.iv2,                         context->u.des3.key2, &context->u.des3.iv2,
Line 305 
Line 278 
     case SSH_CIPHER_NONE:      case SSH_CIPHER_NONE:
       memcpy(dest, src, len);        memcpy(dest, src, len);
       break;        break;
   
 #ifdef WITH_DES  
     case SSH_CIPHER_DES:  
       detect_cbc_attack(src, len);  
       des_cbc_encrypt((void*)src, (void*)dest, len,  
                       context->u.des.key, &context->u.des.iv, DES_DECRYPT);  
       memcpy(context->u.des.iv, src + len - 8, 8);  
       break;  
 #endif /* WITH_DES */  
   
     case SSH_CIPHER_3DES:      case SSH_CIPHER_3DES:
       /* CRC-32 attack? */        /* CRC-32 attack? */

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6