Open-Source-Software-Entwicklung und Downloads

Browse Subversion Repository

Diff of /trunk/ttssh2/ttxssh/cipher.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3226 by maya, Tue Mar 24 09:37:20 2009 UTC revision 3227 by maya, Tue Mar 24 15:10:33 2009 UTC
# Line 1  Line 1 
1  /*      $OpenBSD: cipher.h,v 1.34 2003/11/10 16:23:41 jakob Exp $       */  /*      $OpenBSD: cipher.h,v 1.34 2003/11/10 16:23:41 jakob Exp $       */
2    
3  /*  /*
4   * Author: Tatu Ylonen <ylo@cs.hut.fi>   * Author: Tatu Ylonen <ylo@cs.hut.fi>
5   * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland   * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
6   *                    All rights reserved   *                    All rights reserved
7   *   *
8   * As far as I am concerned, the code I have written for this software   * As far as I am concerned, the code I have written for this software
9   * can be used freely for any purpose.  Any derived versions of this   * can be used freely for any purpose.  Any derived versions of this
10   * software must be clearly marked as such, and if the derived work is   * software must be clearly marked as such, and if the derived work is
11   * incompatible with the protocol description in the RFC file, it must be   * incompatible with the protocol description in the RFC file, it must be
12   * called by a name other than "ssh" or "Secure Shell".   * called by a name other than "ssh" or "Secure Shell".
13   *   *
14   * Copyright (c) 2000 Markus Friedl.  All rights reserved.   * Copyright (c) 2000 Markus Friedl.  All rights reserved.
15   *   *
16   * Redistribution and use in source and binary forms, with or without   * Redistribution and use in source and binary forms, with or without
17   * modification, are permitted provided that the following conditions   * modification, are permitted provided that the following conditions
18   * are met:   * are met:
19   * 1. Redistributions of source code must retain the above copyright   * 1. Redistributions of source code must retain the above copyright
20   *    notice, this list of conditions and the following disclaimer.   *    notice, this list of conditions and the following disclaimer.
21   * 2. Redistributions in binary form must reproduce the above copyright   * 2. Redistributions in binary form must reproduce the above copyright
22   *    notice, this list of conditions and the following disclaimer in the   *    notice, this list of conditions and the following disclaimer in the
23   *    documentation and/or other materials provided with the distribution.   *    documentation and/or other materials provided with the distribution.
24   *   *
25   * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR   * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
26   * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES   * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
27   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
28   * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,   * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
29   * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT   * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
30   * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,   * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31   * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY   * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32   * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
34   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35   */   */
36    
37  #ifndef CIPHER_H  #ifndef CIPHER_H
38  #define CIPHER_H  #define CIPHER_H
39    
40  #include <openssl/evp.h>  #include <openssl/evp.h>
41  /*  /*
42   * 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
43   * be removed for compatibility.  The maximum allowed value is 31.   * be removed for compatibility.  The maximum allowed value is 31.
44   */   */
45  #define SSH_CIPHER_SSH2         -3  #define SSH_CIPHER_SSH2         -3
46  #define SSH_CIPHER_ILLEGAL      -2      /* No valid cipher selected. */  #define SSH_CIPHER_ILLEGAL      -2      /* No valid cipher selected. */
47  #define SSH_CIPHER_NOT_SET      -1      /* None selected (invalid number). */  #define SSH_CIPHER_NOT_SET      -1      /* None selected (invalid number). */
48  #define SSH_CIPHER_NONE         0       /* no encryption */  #define SSH_CIPHER_NONE         0       /* no encryption */
49  #define SSH_CIPHER_IDEA         1       /* IDEA CFB */  #define SSH_CIPHER_IDEA         1       /* IDEA CFB */
50  #define SSH_CIPHER_DES          2       /* DES CBC */  #define SSH_CIPHER_DES          2       /* DES CBC */
51  #define SSH_CIPHER_3DES         3       /* 3DES CBC */  #define SSH_CIPHER_3DES         3       /* 3DES CBC */
52  #define SSH_CIPHER_BROKEN_TSS   4       /* TRI's Simple Stream encryption CBC */  #define SSH_CIPHER_BROKEN_TSS   4       /* TRI's Simple Stream encryption CBC */
53  #define SSH_CIPHER_BROKEN_RC4   5       /* Alleged RC4 */  #define SSH_CIPHER_BROKEN_RC4   5       /* Alleged RC4 */
54  #define SSH_CIPHER_BLOWFISH     6  #define SSH_CIPHER_BLOWFISH     6
55  #define SSH_CIPHER_RESERVED     7  #define SSH_CIPHER_RESERVED     7
56    
57  #ifndef SSH_CIPHER_MAX  #ifndef SSH_CIPHER_MAX
58  #define SSH_CIPHER_MAX          31  #define SSH_CIPHER_MAX          31
59  #endif  #endif
60    
61  #define CIPHER_ENCRYPT          1  #define CIPHER_ENCRYPT          1
62  #define CIPHER_DECRYPT          0  #define CIPHER_DECRYPT          0
63    
64  typedef struct Cipher Cipher;  typedef struct Cipher Cipher;
65  typedef struct CipherContext CipherContext;  typedef struct CipherContext CipherContext;
66    
67  struct Cipher;  struct Cipher;
68  struct CipherContext {  struct CipherContext {
69          int     plaintext;          int     plaintext;
70          EVP_CIPHER_CTX evp;          EVP_CIPHER_CTX evp;
71          Cipher *cipher;          Cipher *cipher;
72  };  };
73    
74  u_int    cipher_mask_ssh1(int);  u_int    cipher_mask_ssh1(int);
75  Cipher  *cipher_by_name(const char *);  Cipher  *cipher_by_name(const char *);
76  Cipher  *cipher_by_number(int);  Cipher  *cipher_by_number(int);
77  int      cipher_number(const char *);  int      cipher_number(const char *);
78  char    *cipher_name(int);  char    *cipher_name(int);
79  int      ciphers_valid(const char *);  int      ciphers_valid(const char *);
80  void     cipher_init(CipherContext *, Cipher *, const u_char *, u_int,  void     cipher_init(CipherContext *, Cipher *, const u_char *, u_int,
81      const u_char *, u_int, int);      const u_char *, u_int, int);
82  void     cipher_crypt(CipherContext *, u_char *, const u_char *, u_int);  void     cipher_crypt(CipherContext *, u_char *, const u_char *, u_int);
83  void     cipher_cleanup(CipherContext *);  void     cipher_cleanup(CipherContext *);
84  void     cipher_set_key_string(CipherContext *, Cipher *, const char *, int);  void     cipher_set_key_string(CipherContext *, Cipher *, const char *, int);
85  u_int    cipher_blocksize(const Cipher *);  u_int    cipher_blocksize(const Cipher *);
86  u_int    cipher_keylen(const Cipher *);  u_int    cipher_keylen(const Cipher *);
87    
88  u_int    cipher_get_number(const Cipher *);  u_int    cipher_get_number(const Cipher *);
89  void     cipher_get_keyiv(CipherContext *, u_char *, u_int);  void     cipher_get_keyiv(CipherContext *, u_char *, u_int);
90  void     cipher_set_keyiv(CipherContext *, u_char *);  void     cipher_set_keyiv(CipherContext *, u_char *);
91  int      cipher_get_keyiv_len(const CipherContext *);  int      cipher_get_keyiv_len(const CipherContext *);
92  int      cipher_get_keycontext(const CipherContext *, u_char *);  int      cipher_get_keycontext(const CipherContext *, u_char *);
93  void     cipher_set_keycontext(CipherContext *, u_char *);  void     cipher_set_keycontext(CipherContext *, u_char *);
94    
95  void cipher_init_SSH2(  void cipher_init_SSH2(
96                  EVP_CIPHER_CTX *evp,                  EVP_CIPHER_CTX *evp,
97                  const u_char *key, u_int keylen,                  const u_char *key, u_int keylen,
98                  const u_char *iv, u_int ivlen,                  const u_char *iv, u_int ivlen,
99                  int encrypt,                  int encrypt,
100                  const EVP_CIPHER *type,                  const EVP_CIPHER *type,
101                  int discard_len,                  int discard_len,
102                  PTInstVar pvar                  PTInstVar pvar
103  );  );
104    
105  #endif                          /* CIPHER_H */  #endif                          /* CIPHER_H */

Legend:
Removed from v.3226  
changed lines
  Added in v.3227

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26