[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.25 and 1.25.2.2

version 1.25, 2000/12/19 23:17:56 version 1.25.2.2, 2002/03/09 00:20:44
Line 1 
Line 1 
   /*      $OpenBSD$       */
   
 /*  /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>   * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland   * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
Line 32 
Line 34 
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */   */
   
 /* RCSID("$OpenBSD$"); */  
   
 #ifndef CIPHER_H  #ifndef CIPHER_H
 #define CIPHER_H  #define CIPHER_H
   
 #include <openssl/des.h>  #include <openssl/evp.h>
 #include <openssl/blowfish.h>  
 #include <openssl/rc4.h>  
 #include <openssl/cast.h>  
 #include "rijndael.h"  
 /*  /*
  * Cipher types for SSH-1.  New types can be added, but old types should not   * Cipher types for SSH-1.  New types can be added, but old types should not
  * be removed for compatibility.  The maximum allowed value is 31.   * be removed for compatibility.  The maximum allowed value is 31.
Line 59 
Line 55 
 #define SSH_CIPHER_RESERVED     7  #define SSH_CIPHER_RESERVED     7
 #define SSH_CIPHER_MAX          31  #define SSH_CIPHER_MAX          31
   
   #define CIPHER_ENCRYPT          1
   #define CIPHER_DECRYPT          0
   
 typedef struct Cipher Cipher;  typedef struct Cipher Cipher;
 typedef struct CipherContext CipherContext;  typedef struct CipherContext CipherContext;
   
   struct Cipher;
 struct CipherContext {  struct CipherContext {
         union {          int     plaintext;
                 struct {          EVP_CIPHER_CTX evp;
                         des_key_schedule key;  
                         des_cblock iv;  
                 }       des;  
                 struct {  
                         des_key_schedule key1;  
                         des_key_schedule key2;  
                         des_cblock iv2;  
                         des_key_schedule key3;  
                         des_cblock iv3;  
                 }       des3;  
                 struct {  
                         struct bf_key_st key;  
                         u_char iv[8];  
                 }       bf;  
                 struct {  
                         CAST_KEY key;  
                         u_char iv[8];  
                 } cast;  
                 struct {  
                         u4byte iv[4];  
                         rijndael_ctx enc;  
                         rijndael_ctx dec;  
                 } rijndael;  
                 RC4_KEY rc4;  
         }       u;  
         Cipher *cipher;          Cipher *cipher;
 };  };
 struct Cipher {  
         char    *name;  
         int     number;         /* for ssh1 only */  
         u_int   block_size;  
         u_int   key_len;  
         void    (*setkey)(CipherContext *, const u_char *, u_int);  
         void    (*setiv)(CipherContext *, const u_char *, u_int);  
         void    (*encrypt)(CipherContext *, u_char *, const u_char *, u_int);  
         void    (*decrypt)(CipherContext *, u_char *, const u_char *, u_int);  
 };  
   
 u_int cipher_mask_ssh1(int client);  u_int    cipher_mask_ssh1(int);
 Cipher *cipher_by_name(const char *name);  Cipher  *cipher_by_name(const char *);
 Cipher *cipher_by_number(int id);  Cipher  *cipher_by_number(int);
 int cipher_number(const char *name);  int      cipher_number(const char *);
 char *cipher_name(int id);  char    *cipher_name(int);
 int ciphers_valid(const char *names);  int      ciphers_valid(const char *);
 void cipher_init(CipherContext *, Cipher *, const u_char *, u_int, const u_char *, u_int);  void     cipher_init(CipherContext *, Cipher *, const u_char *, u_int,
 void cipher_encrypt(CipherContext *context, u_char *dest, const u_char *src, u_int len);      const u_char *, u_int, int);
 void cipher_decrypt(CipherContext *context, u_char *dest, const u_char *src, u_int len);  void     cipher_crypt(CipherContext *, u_char *, const u_char *, u_int);
 void cipher_set_key_string(CipherContext *context, Cipher *cipher, const char *passphrase);  void     cipher_cleanup(CipherContext *);
   void     cipher_set_key_string(CipherContext *, Cipher *, const char *, int);
   u_int    cipher_blocksize(Cipher *);
   u_int    cipher_keylen(Cipher *);
 #endif                          /* CIPHER_H */  #endif                          /* CIPHER_H */

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.25.2.2