diff options
author | Andrew McDonald <admcd@gnutls.org> | 2002-06-21 20:45:26 +0000 |
---|---|---|
committer | Andrew McDonald <admcd@gnutls.org> | 2002-06-21 20:45:26 +0000 |
commit | 8fe57a35bcca886e66f257197746e294b25390d6 (patch) | |
tree | 60433af641b7232ddd175e8df1952fd3e136cba1 | |
parent | ba7cc447056604460f5470c42142f112743cdd5d (diff) | |
download | gnutls-8fe57a35bcca886e66f257197746e294b25390d6.tar.gz |
make arrays for priority information in SSL_METHOD statically allocated
-rw-r--r-- | libextra/gnutls_openssl.c | 26 | ||||
-rw-r--r-- | libextra/openssl.h | 11 |
2 files changed, 14 insertions, 23 deletions
diff --git a/libextra/gnutls_openssl.c b/libextra/gnutls_openssl.c index 6cf8ae01b1..395435052b 100644 --- a/libextra/gnutls_openssl.c +++ b/libextra/gnutls_openssl.c @@ -29,6 +29,8 @@ static int last_error = 0; int SSL_library_init(void) { + gnutls_global_init(); + /* NB: we haven't got anywhere to call gnutls_global_deinit() */ return 1; } @@ -43,7 +45,6 @@ void OpenSSL_add_all_algorithms(void) SSL_CTX *SSL_CTX_new(SSL_METHOD *method) { SSL_CTX *ctx; - gnutls_global_init(); ctx = (SSL_CTX *)calloc(1, sizeof(SSL_CTX)); ctx->method = method; @@ -53,15 +54,8 @@ SSL_CTX *SSL_CTX_new(SSL_METHOD *method) void SSL_CTX_free(SSL_CTX *ctx) { - free(ctx->method->protocol_priority); - free(ctx->method->cipher_priority); - free(ctx->method->comp_priority); - free(ctx->method->kx_priority); - free(ctx->method->mac_priority); free(ctx->method); free(ctx); - - gnutls_global_deinit(); } int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx) @@ -289,30 +283,25 @@ SSL_METHOD *SSLv23_client_method(void) if (!m) return NULL; - m->protocol_priority = (int *)calloc(3, sizeof(int)); m->protocol_priority[0] = GNUTLS_TLS1; m->protocol_priority[1] = GNUTLS_SSL3; m->protocol_priority[2] = 0; - m->cipher_priority = (int *)calloc(5, sizeof(int)); m->cipher_priority[0] = GNUTLS_CIPHER_RIJNDAEL_128_CBC; m->cipher_priority[1] = GNUTLS_CIPHER_3DES_CBC; m->cipher_priority[2] = GNUTLS_CIPHER_RIJNDAEL_256_CBC; m->cipher_priority[3] = GNUTLS_CIPHER_ARCFOUR; m->cipher_priority[4] = 0; - m->comp_priority = (int *)calloc(3, sizeof(int)); m->comp_priority[0] = GNUTLS_COMP_ZLIB; m->comp_priority[1] = GNUTLS_COMP_NULL; m->comp_priority[2] = 0; - m->kx_priority = (int *)calloc(4, sizeof(int)); m->kx_priority[0] = GNUTLS_KX_DHE_RSA; m->kx_priority[1] = GNUTLS_KX_RSA; m->kx_priority[2] = GNUTLS_KX_DHE_DSS; m->kx_priority[3] = 0; - m->mac_priority = (int *)calloc(3, sizeof(int)); m->mac_priority[0] = GNUTLS_MAC_SHA; m->mac_priority[1] = GNUTLS_MAC_MD5; m->mac_priority[2] = 0; @@ -346,7 +335,7 @@ const char *SSL_CIPHER_get_name(SSL_CIPHER *cipher) if (!cipher) return ("NONE"); - /* FIXME */ + /* FIXME? - the openssl name is of the form "DES-CBC3-SHA" */ return gnutls_cipher_get_name(cipher->cipher); } @@ -384,13 +373,14 @@ int SSL_CIPHER_get_bits(SSL_CIPHER *cipher, int *bits) const char *SSL_CIPHER_get_version(SSL_CIPHER *cipher) { + const char *ret; + if (!cipher) return ("(NONE)"); - if (cipher->version == GNUTLS_TLS1) - return ("TLSv1"); - else if (cipher->version == GNUTLS_SSL3) - return ("SSLv3"); + ret = gnutls_protocol_get_name(cipher->version); + if (ret) + return ret; return ("unknown"); } diff --git a/libextra/openssl.h b/libextra/openssl.h index 191076525c..713689afbf 100644 --- a/libextra/openssl.h +++ b/libextra/openssl.h @@ -30,6 +30,7 @@ #define OPENSSL_VERSION_NUMBER (0x0090604F) #define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER +#define OPENSSL_VERSION_TEXT ("GNUTLS " LIBGNUTLS_VERSION) #define SSL_ERROR_NONE (0) #define SSL_ERROR_SSL (1) @@ -58,11 +59,11 @@ struct _SSL; typedef struct { - int *protocol_priority; - int *cipher_priority; - int *comp_priority; - int *kx_priority; - int *mac_priority; + int protocol_priority[GNUTLS_MAX_ALGORITHM_NUM]; + int cipher_priority[GNUTLS_MAX_ALGORITHM_NUM]; + int comp_priority[GNUTLS_MAX_ALGORITHM_NUM]; + int kx_priority[GNUTLS_MAX_ALGORITHM_NUM]; + int mac_priority[GNUTLS_MAX_ALGORITHM_NUM]; } SSL_METHOD; |