Initialize SSL_METHOD structures at compile time. This removes the need
for locking code. The CRYPTO_LOCK_SSL_METHOD lock is now no longer used.
This commit is contained in:
@@ -60,59 +60,17 @@
|
||||
#include <openssl/objects.h>
|
||||
#include "ssl_locl.h"
|
||||
|
||||
static int ssl23_num_ciphers(void );
|
||||
static SSL_CIPHER *ssl23_get_cipher(unsigned int u);
|
||||
static int ssl23_read(SSL *s, void *buf, int len);
|
||||
static int ssl23_peek(SSL *s, void *buf, int len);
|
||||
static int ssl23_write(SSL *s, const void *buf, int len);
|
||||
static long ssl23_default_timeout(void );
|
||||
static int ssl23_put_cipher_by_char(const SSL_CIPHER *c, unsigned char *p);
|
||||
static SSL_CIPHER *ssl23_get_cipher_by_char(const unsigned char *p);
|
||||
const char *SSL23_version_str="SSLv2/3 compatibility" OPENSSL_VERSION_PTEXT;
|
||||
|
||||
static SSL_METHOD SSLv23_data= {
|
||||
TLS1_VERSION,
|
||||
tls1_new,
|
||||
tls1_clear,
|
||||
tls1_free,
|
||||
ssl_undefined_function,
|
||||
ssl_undefined_function,
|
||||
ssl23_read,
|
||||
ssl23_peek,
|
||||
ssl23_write,
|
||||
ssl_undefined_function,
|
||||
ssl_undefined_function,
|
||||
ssl_ok,
|
||||
ssl3_get_message,
|
||||
ssl3_read_bytes,
|
||||
ssl3_write_bytes,
|
||||
ssl3_dispatch_alert,
|
||||
ssl3_ctrl,
|
||||
ssl3_ctx_ctrl,
|
||||
ssl23_get_cipher_by_char,
|
||||
ssl23_put_cipher_by_char,
|
||||
ssl_undefined_const_function,
|
||||
ssl23_num_ciphers,
|
||||
ssl23_get_cipher,
|
||||
ssl_bad_method,
|
||||
ssl23_default_timeout,
|
||||
&ssl3_undef_enc_method,
|
||||
ssl_undefined_void_function,
|
||||
ssl3_callback_ctrl,
|
||||
ssl3_ctx_callback_ctrl,
|
||||
};
|
||||
|
||||
static long ssl23_default_timeout(void)
|
||||
long ssl23_default_timeout(void)
|
||||
{
|
||||
return(300);
|
||||
}
|
||||
|
||||
SSL_METHOD *sslv23_base_method(void)
|
||||
{
|
||||
return(&SSLv23_data);
|
||||
}
|
||||
IMPLEMENT_ssl23_meth_func(sslv23_base_method,
|
||||
ssl_undefined_function,
|
||||
ssl_undefined_function,
|
||||
ssl_bad_method)
|
||||
|
||||
static int ssl23_num_ciphers(void)
|
||||
int ssl23_num_ciphers(void)
|
||||
{
|
||||
return(ssl3_num_ciphers()
|
||||
#ifndef OPENSSL_NO_SSL2
|
||||
@@ -121,7 +79,7 @@ static int ssl23_num_ciphers(void)
|
||||
);
|
||||
}
|
||||
|
||||
static SSL_CIPHER *ssl23_get_cipher(unsigned int u)
|
||||
SSL_CIPHER *ssl23_get_cipher(unsigned int u)
|
||||
{
|
||||
unsigned int uu=ssl3_num_ciphers();
|
||||
|
||||
@@ -137,7 +95,7 @@ static SSL_CIPHER *ssl23_get_cipher(unsigned int u)
|
||||
|
||||
/* This function needs to check if the ciphers required are actually
|
||||
* available */
|
||||
static SSL_CIPHER *ssl23_get_cipher_by_char(const unsigned char *p)
|
||||
SSL_CIPHER *ssl23_get_cipher_by_char(const unsigned char *p)
|
||||
{
|
||||
SSL_CIPHER c,*cp;
|
||||
unsigned long id;
|
||||
@@ -155,7 +113,7 @@ static SSL_CIPHER *ssl23_get_cipher_by_char(const unsigned char *p)
|
||||
return(cp);
|
||||
}
|
||||
|
||||
static int ssl23_put_cipher_by_char(const SSL_CIPHER *c, unsigned char *p)
|
||||
int ssl23_put_cipher_by_char(const SSL_CIPHER *c, unsigned char *p)
|
||||
{
|
||||
long l;
|
||||
|
||||
@@ -170,7 +128,7 @@ static int ssl23_put_cipher_by_char(const SSL_CIPHER *c, unsigned char *p)
|
||||
return(3);
|
||||
}
|
||||
|
||||
static int ssl23_read(SSL *s, void *buf, int len)
|
||||
int ssl23_read(SSL *s, void *buf, int len)
|
||||
{
|
||||
int n;
|
||||
|
||||
@@ -193,7 +151,7 @@ static int ssl23_read(SSL *s, void *buf, int len)
|
||||
}
|
||||
}
|
||||
|
||||
static int ssl23_peek(SSL *s, void *buf, int len)
|
||||
int ssl23_peek(SSL *s, void *buf, int len)
|
||||
{
|
||||
int n;
|
||||
|
||||
@@ -216,7 +174,7 @@ static int ssl23_peek(SSL *s, void *buf, int len)
|
||||
}
|
||||
}
|
||||
|
||||
static int ssl23_write(SSL *s, const void *buf, int len)
|
||||
int ssl23_write(SSL *s, const void *buf, int len)
|
||||
{
|
||||
int n;
|
||||
|
||||
|
Reference in New Issue
Block a user