00001 #ifndef GLOBUS_SSL_LOCL_H
00002 #define GLOBUS_SSL_LOCL_H
00003
00004 #if OPENSSL_VERSION_NUMBER < 0x10100000L
00005
00006 #if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
00007 #define SSL_STRONG_MASK 0x000001fcL
00008 #else
00009 #define SSL_STRONG_MASK 0x000000fcL
00010 #endif
00011
00012 #define SSL_LOW 0x00000020L
00013
00014 typedef struct ssl3_enc_method
00015 {
00016 int (*enc)(SSL *, int);
00017 int (*mac)(SSL *, unsigned char *, int);
00018 int (*setup_key_block)(SSL *);
00019 int (*generate_master_secret)(SSL *, unsigned char *, unsigned char *, int);
00020 int (*change_cipher_state)(SSL *, int);
00021 #if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
00022 int (*final_finish_mac)(SSL *, EVP_MD_CTX *, EVP_MD_CTX *, const char *, int, unsigned char *);
00023 #else
00024 int (*final_finish_mac)(SSL *, const char *, int, unsigned char *);
00025 #endif
00026 int finish_mac_length;
00027 #if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
00028 int (*cert_verify_mac)(SSL *, EVP_MD_CTX *, unsigned char *);
00029 #else
00030 int (*cert_verify_mac)(SSL *, int, unsigned char *);
00031 #endif
00032 const char *client_finished_label;
00033 int client_finished_label_len;
00034 const char *server_finished_label;
00035 int server_finished_label_len;
00036 int (*alert_value)(int);
00037 } SSL3_ENC_METHOD;
00038
00039 int ssl3_setup_buffers(SSL *s);
00040
00041 int ssl_init_wbio_buffer(SSL *s, int push);
00042 void ssl_free_wbio_buffer(SSL *s);
00043
00044 int ssl3_setup_key_block(SSL *s);
00045 void ssl3_cleanup_key_block(SSL *s);
00046
00047 #if (OPENSSL_VERSION_NUMBER >= 0x10000000L)
00048 int ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc,
00049 const EVP_MD **md, int *mac_pkey_type,
00050 int *mac_secret_size, SSL_COMP **comp);
00051 #else
00052 int ssl_cipher_get_evp(SSL_SESSION *s, const EVP_CIPHER **enc,
00053 const EVP_MD **md, SSL_COMP **comp);
00054 #endif
00055
00056 #endif
00057 #endif