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

Diff for /src/usr.bin/ssh/cipher.h between version 1.8 and 1.9

version 1.8, 1999/11/15 21:38:54 version 1.9, 1999/11/24 00:26:01
Line 1 
Line 1 
 /*  /*
    *
    * cipher.h
    *
    * Author: Tatu Ylonen <ylo@cs.hut.fi>
    *
    * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
    *                    All rights reserved
    *
    * Created: Wed Apr 19 16:50:42 1995 ylo
    *
    */
   
 cipher.h  
   
 Author: Tatu Ylonen <ylo@cs.hut.fi>  
   
 Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland  
                    All rights reserved  
   
 Created: Wed Apr 19 16:50:42 1995 ylo  
   
 */  
   
 /* RCSID("$Id$"); */  /* RCSID("$Id$"); */
   
 #ifndef CIPHER_H  #ifndef CIPHER_H
Line 21 
Line 21 
   
 /* Cipher types.  New types can be added, but old types should not be removed  /* Cipher types.  New types can be added, but old types should not be removed
    for compatibility.  The maximum allowed value is 31. */     for compatibility.  The maximum allowed value is 31. */
 #define SSH_CIPHER_NOT_SET      -1 /* None selected (invalid number). */  #define SSH_CIPHER_NOT_SET      -1      /* None selected (invalid number). */
 #define SSH_CIPHER_NONE         0 /* no encryption */  #define SSH_CIPHER_NONE         0       /* no encryption */
 #define SSH_CIPHER_IDEA         1 /* IDEA CFB */  #define SSH_CIPHER_IDEA         1       /* IDEA CFB */
 #define SSH_CIPHER_DES          2 /* DES CBC */  #define SSH_CIPHER_DES          2       /* DES CBC */
 #define SSH_CIPHER_3DES         3 /* 3DES CBC */  #define SSH_CIPHER_3DES         3       /* 3DES CBC */
 #define SSH_CIPHER_BROKEN_TSS   4 /* TRI's Simple Stream encryption CBC */  #define SSH_CIPHER_BROKEN_TSS   4       /* TRI's Simple Stream encryption CBC */
 #define SSH_CIPHER_BROKEN_RC4   5 /* Alleged RC4 */  #define SSH_CIPHER_BROKEN_RC4   5       /* Alleged RC4 */
 #define SSH_CIPHER_BLOWFISH     6  #define SSH_CIPHER_BLOWFISH     6
   
 typedef struct {  typedef struct {
   unsigned int type;          unsigned int type;
   union {          union {
     struct {                  struct {
       des_key_schedule key1;                          des_key_schedule key1;
       des_key_schedule key2;                          des_key_schedule key2;
       des_cblock iv2;                          des_cblock iv2;
       des_key_schedule key3;                          des_key_schedule key3;
       des_cblock iv3;                          des_cblock iv3;
     } des3;                  }       des3;
     struct {                  struct {
       struct bf_key_st key;                          struct bf_key_st key;
       unsigned char iv[8];                          unsigned char iv[8];
     } bf;                  }       bf;
   } u;          }       u;
 } CipherContext;  }       CipherContext;
   
 /* Returns a bit mask indicating which ciphers are supported by this  /* Returns a bit mask indicating which ciphers are supported by this
    implementation.  The bit mask has the corresponding bit set of each     implementation.  The bit mask has the corresponding bit set of each
    supported cipher. */     supported cipher. */
Line 57 
Line 56 
   
 /* Parses the name of the cipher.  Returns the number of the corresponding  /* Parses the name of the cipher.  Returns the number of the corresponding
    cipher, or -1 on error. */     cipher, or -1 on error. */
 int cipher_number(const char *name);  int     cipher_number(const char *name);
   
 /* Selects the cipher to use and sets the key.  If for_encryption is true,  /* Selects the cipher to use and sets the key.  If for_encryption is true,
    the key is setup for encryption; otherwise it is setup for decryption. */     the key is setup for encryption; otherwise it is setup for decryption. */
 void cipher_set_key(CipherContext *context, int cipher,  void
                     const unsigned char *key, int keylen, int for_encryption);  cipher_set_key(CipherContext * context, int cipher,
       const unsigned char *key, int keylen, int for_encryption);
   
 /* Sets key for the cipher by computing the MD5 checksum of the passphrase,  /* Sets key for the cipher by computing the MD5 checksum of the passphrase,
    and using the resulting 16 bytes as the key. */     and using the resulting 16 bytes as the key. */
 void cipher_set_key_string(CipherContext *context, int cipher,  void
                            const char *passphrase, int for_encryption);  cipher_set_key_string(CipherContext * context, int cipher,
       const char *passphrase, int for_encryption);
   
 /* Encrypts data using the cipher. */  /* Encrypts data using the cipher. */
 void cipher_encrypt(CipherContext *context, unsigned char *dest,  void
                     const unsigned char *src, unsigned int len);  cipher_encrypt(CipherContext * context, unsigned char *dest,
       const unsigned char *src, unsigned int len);
   
 /* Decrypts data using the cipher. */  /* Decrypts data using the cipher. */
 void cipher_decrypt(CipherContext *context, unsigned char *dest,  void
                     const unsigned char *src, unsigned int len);  cipher_decrypt(CipherContext * context, unsigned char *dest,
       const unsigned char *src, unsigned int len);
   
 /* If and CRC-32 attack is detected this function is called. Defaults  /* If and CRC-32 attack is detected this function is called. Defaults
  * to fatal, changed to packet_disconnect in sshd and ssh. */   * to fatal, changed to packet_disconnect in sshd and ssh. */
 extern void (*cipher_attack_detected)(const char *fmt, ...);  extern void (*cipher_attack_detected) (const char *fmt,...);
   
 #endif /* CIPHER_H */  #endif                          /* CIPHER_H */

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9