[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.22.2.6 and 1.23

version 1.22.2.6, 2002/03/08 17:04:42 version 1.23, 2000/12/06 23:05:42
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 34 
Line 32 
  * 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/evp.h>  #include <openssl/des.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 55 
Line 61 
 #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 {
         int     plaintext;          union {
         EVP_CIPHER_CTX evp;                  struct {
                           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 {
                           u_char iv[16];
                           rijndael_key enc;
                           rijndael_key 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);  unsigned int cipher_mask_ssh1(int client);
 Cipher  *cipher_by_name(const char *);  Cipher *cipher_by_name(const char *name);
 Cipher  *cipher_by_number(int);  Cipher *cipher_by_number(int id);
 int      cipher_number(const char *);  int cipher_number(const char *name);
 char    *cipher_name(int);  char *cipher_name(int id);
 int      ciphers_valid(const char *);  int ciphers_valid(const char *names);
 void     cipher_init(CipherContext *, Cipher *, const u_char *, u_int,  void cipher_init(CipherContext *, Cipher *, const u_char *, u_int, const u_char *, u_int);
     const u_char *, u_int, int);  void cipher_encrypt(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_decrypt(CipherContext *context, u_char *dest, const u_char *src, u_int len);
 void     cipher_cleanup(CipherContext *);  void cipher_set_key_string(CipherContext *context, Cipher *cipher, const char *passphrase);
 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.22.2.6  
changed lines
  Added in v.1.23