This commit was manufactured by cvs2svn to create branch
[oweals/openssl.git] / ssl / ssl_locl.h
index 01ff01d8184c8a2f0551acb049b45086ed922a3c..79cee72b77ebf683a489f85d261c5d2b7cdbca1c 100644 (file)
@@ -56,7 +56,7 @@
  * [including the GNU Public Licence.]
  */
 /* ====================================================================
- * Copyright (c) 1998-2000 The OpenSSL Project.  All rights reserved.
+ * Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
 #include <string.h>
 #include <errno.h>
 
-#include "openssl/e_os.h"
+#include "e_os.h"
 
 #include <openssl/buffer.h>
 #include <openssl/comp.h>
 #include <openssl/x509.h>
 #include <openssl/err.h>
 #include <openssl/ssl.h>
+#include <openssl/symhacks.h>
+
+#ifdef OPENSSL_BUILD_SHLIBSSL
+# undef OPENSSL_EXTERN
+# define OPENSSL_EXTERN OPENSSL_EXPORT
+#endif
 
 #define PKCS1_CHECK
 
 #define SSL_FZA                        (SSL_aFZA|SSL_kFZA|SSL_eFZA)
 #define SSL_KRB5                (SSL_kKRB5|SSL_aKRB5)
 
-#define SSL_ENC_MASK           0x0007F000L
+#define SSL_ENC_MASK           0x0087F000L
 #define SSL_DES                        0x00001000L
 #define SSL_3DES               0x00002000L
 #define SSL_RC4                        0x00004000L
 #define SSL_IDEA               0x00010000L
 #define SSL_eFZA               0x00020000L
 #define SSL_eNULL              0x00040000L
+#define SSL_AES                        0x00800000L
 
 #define SSL_MAC_MASK           0x00180000L
 #define SSL_MD5                        0x00080000L
 #define SSL_NOT_EXP            0x00000001L
 #define SSL_EXPORT             0x00000002L
 
-#define SSL_STRONG_MASK                0x0000007cL
-#define SSL_EXP40              0x00000004L
+#define SSL_STRONG_MASK                0x000000fcL
+#define SSL_STRONG_NONE                0x00000004L
+#define SSL_EXP40              0x00000008L
 #define SSL_MICRO              (SSL_EXP40)
-#define SSL_EXP56              0x00000008L
+#define SSL_EXP56              0x00000010L
 #define SSL_MINI               (SSL_EXP56)
-#define SSL_LOW                        0x00000010L
-#define SSL_MEDIUM             0x00000020L
-#define SSL_HIGH               0x00000040L
+#define SSL_LOW                        0x00000020L
+#define SSL_MEDIUM             0x00000040L
+#define SSL_HIGH               0x00000080L
+#define SSL_FIPS               0x00000100L
 
-/* we have used 0000007f - 25 bits left to go */
+/* we have used 000001ff - 23 bits left to go */
 
 /*
  * Macros to check the export status and cipher strength for export ciphers.
@@ -370,11 +379,11 @@ typedef struct cert_st
        int valid;
        unsigned long mask;
        unsigned long export_mask;
-#ifndef NO_RSA
+#ifndef OPENSSL_NO_RSA
        RSA *rsa_tmp;
        RSA *(*rsa_tmp_cb)(SSL *ssl,int is_export,int keysize);
 #endif
-#ifndef NO_DH
+#ifndef OPENSSL_NO_DH
        DH *dh_tmp;
        DH *(*dh_tmp_cb)(SSL *ssl,int is_export,int keysize);
 #endif
@@ -397,10 +406,10 @@ typedef struct sess_cert_st
        /* Obviously we don't have the private keys of these,
         * so maybe we shouldn't even use the CERT_PKEY type here. */
 
-#ifndef NO_RSA
+#ifndef OPENSSL_NO_RSA
        RSA *peer_rsa_tmp; /* not used for SSL 2 */
 #endif
-#ifndef NO_DH
+#ifndef OPENSSL_NO_DH
        DH *peer_dh_tmp; /* not used for SSL 2 */
 #endif
 
@@ -453,13 +462,13 @@ typedef struct ssl3_comp_st
        COMP_METHOD *method; /* The method :-) */
        } SSL3_COMP;
 
-OPENSSL_EXTERN SSL3_ENC_METHOD ssl3_undef_enc_method;
+extern SSL3_ENC_METHOD ssl3_undef_enc_method;
 OPENSSL_EXTERN SSL_CIPHER ssl2_ciphers[];
 OPENSSL_EXTERN SSL_CIPHER ssl3_ciphers[];
 
-#ifdef VMS
+#ifdef OPENSSL_SYS_VMS
 #undef SSL_COMP_get_compression_methods
-#define SSL_COMP_get_compression_methods SSL_COMP_get_compress_methods
+#define SSL_COMP_get_compression_methods       SSL_COMP_get_compress_methods
 #endif
 
 
@@ -490,10 +499,11 @@ STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(const SSL_METHOD *meth,
                                             STACK_OF(SSL_CIPHER) **sorted,
                                             const char *rule_str);
 void ssl_update_cache(SSL *s, int mode);
-int ssl_cipher_get_evp(SSL_SESSION *s,const EVP_CIPHER **enc,const EVP_MD **md,
-                      SSL_COMP **comp);
+int ssl_cipher_get_evp(const SSL_SESSION *s,const EVP_CIPHER **enc,
+                      const EVP_MD **md,SSL_COMP **comp);
 int ssl_verify_cert_chain(SSL *s,STACK_OF(X509) *sk);
 int ssl_undefined_function(SSL *s);
+int ssl_undefined_const_function(const SSL *s);
 X509 *ssl_get_server_send_cert(SSL *);
 EVP_PKEY *ssl_get_sign_pkey(SSL *,SSL_CIPHER *);
 int ssl_cert_type(X509 *x,EVP_PKEY *pkey);
@@ -502,7 +512,7 @@ STACK_OF(SSL_CIPHER) *ssl_get_ciphers_by_id(SSL *s);
 int ssl_verify_alarm_type(long type);
 
 int ssl2_enc_init(SSL *s, int client);
-void ssl2_generate_key_material(SSL *s);
+int ssl2_generate_key_material(SSL *s);
 void ssl2_enc(SSL *s,int send_data);
 void ssl2_mac(SSL *s,unsigned char *mac,int send_data);
 SSL_CIPHER *ssl2_get_cipher_by_char(const unsigned char *p);
@@ -519,15 +529,15 @@ void      ssl2_free(SSL *s);
 int    ssl2_accept(SSL *s);
 int    ssl2_connect(SSL *s);
 int    ssl2_read(SSL *s, void *buf, int len);
-int    ssl2_peek(SSL *s, char *buf, int len);
+int    ssl2_peek(SSL *s, void *buf, int len);
 int    ssl2_write(SSL *s, const void *buf, int len);
 int    ssl2_shutdown(SSL *s);
 void   ssl2_clear(SSL *s);
-long   ssl2_ctrl(SSL *s,int cmd, long larg, char *parg);
-long   ssl2_ctx_ctrl(SSL_CTX *s,int cmd, long larg, char *parg);
+long   ssl2_ctrl(SSL *s,int cmd, long larg, void *parg);
+long   ssl2_ctx_ctrl(SSL_CTX *s,int cmd, long larg, void *parg);
 long   ssl2_callback_ctrl(SSL *s,int cmd, void (*fp)());
 long   ssl2_ctx_callback_ctrl(SSL_CTX *s,int cmd, void (*fp)());
-int    ssl2_pending(SSL *s);
+int    ssl2_pending(const SSL *s);
 
 SSL_CIPHER *ssl3_get_cipher_by_char(const unsigned char *p);
 int ssl3_put_cipher_by_char(const SSL_CIPHER *c,unsigned char *p);
@@ -559,23 +569,23 @@ void ssl3_finish_mac(SSL *s, const unsigned char *buf, int len);
 int ssl3_enc(SSL *s, int send_data);
 int ssl3_mac(SSL *ssl, unsigned char *md, int send_data);
 unsigned long ssl3_output_cert_chain(SSL *s, X509 *x);
-SSL_CIPHER *ssl3_choose_cipher(SSL *ssl,STACK_OF(SSL_CIPHER) *have,
-                              STACK_OF(SSL_CIPHER) *pref);
+SSL_CIPHER *ssl3_choose_cipher(SSL *ssl,STACK_OF(SSL_CIPHER) *clnt,
+                              STACK_OF(SSL_CIPHER) *srvr);
 int    ssl3_setup_buffers(SSL *s);
 int    ssl3_new(SSL *s);
 void   ssl3_free(SSL *s);
 int    ssl3_accept(SSL *s);
 int    ssl3_connect(SSL *s);
 int    ssl3_read(SSL *s, void *buf, int len);
-int    ssl3_peek(SSL *s,char *buf, int len);
+int    ssl3_peek(SSL *s, void *buf, int len);
 int    ssl3_write(SSL *s, const void *buf, int len);
 int    ssl3_shutdown(SSL *s);
 void   ssl3_clear(SSL *s);
-long   ssl3_ctrl(SSL *s,int cmd, long larg, char *parg);
-long   ssl3_ctx_ctrl(SSL_CTX *s,int cmd, long larg, char *parg);
+long   ssl3_ctrl(SSL *s,int cmd, long larg, void *parg);
+long   ssl3_ctx_ctrl(SSL_CTX *s,int cmd, long larg, void *parg);
 long   ssl3_callback_ctrl(SSL *s,int cmd, void (*fp)());
 long   ssl3_ctx_callback_ctrl(SSL_CTX *s,int cmd, void (*fp)());
-int    ssl3_pending(SSL *s);
+int    ssl3_pending(const SSL *s);
 
 int ssl23_accept(SSL *s);
 int ssl23_connect(SSL *s);
@@ -585,7 +595,7 @@ int ssl23_write_bytes(SSL *s);
 int tls1_new(SSL *s);
 void tls1_free(SSL *s);
 void tls1_clear(SSL *s);
-long tls1_ctrl(SSL *s,int cmd, long larg, char *parg);
+long tls1_ctrl(SSL *s,int cmd, long larg, void *parg);
 long tls1_callback_ctrl(SSL *s,int cmd, void (*fp)());
 SSL_METHOD *tlsv1_base_method(void );