Stricter initialization of the SSL context structure
This commit is contained in:
parent
8b0ea74a48
commit
0853dc4794
|
@ -209,9 +209,18 @@ static int _init_client(SSLTransport * ssl, char const * name)
|
|||
struct sockaddr_in * sa;
|
||||
#endif
|
||||
|
||||
if((ssl->ssl_ctx = SSL_CTX_new(TLSv1_client_method())) == NULL)
|
||||
if((ssl->ssl_ctx = SSL_CTX_new(TLSv1_client_method())) == NULL
|
||||
|| SSL_CTX_set_cipher_list(ssl->ssl_ctx,
|
||||
SSL_DEFAULT_CIPHER_LIST) != 1
|
||||
|| SSL_CTX_load_verify_locations(ssl->ssl_ctx, NULL,
|
||||
"/etc/openssl/certs") != 1)
|
||||
{
|
||||
if(ssl->ssl_ctx != NULL)
|
||||
SSL_CTX_free(ssl->ssl_ctx);
|
||||
ssl->ssl_ctx = NULL;
|
||||
/* FIXME report the error */
|
||||
return -1;
|
||||
}
|
||||
ssl->u.client.transport = ssl;
|
||||
ssl->u.client.fd = -1;
|
||||
/* obtain the remote address */
|
||||
|
@ -273,9 +282,18 @@ static int _init_server(SSLTransport * ssl, char const * name)
|
|||
struct sockaddr_in * sa;
|
||||
#endif
|
||||
|
||||
if((ssl->ssl_ctx = SSL_CTX_new(TLSv1_server_method())) == NULL)
|
||||
if((ssl->ssl_ctx = SSL_CTX_new(TLSv1_server_method())) == NULL
|
||||
|| SSL_CTX_set_cipher_list(ssl->ssl_ctx,
|
||||
SSL_DEFAULT_CIPHER_LIST) != 1
|
||||
|| SSL_CTX_load_verify_locations(ssl->ssl_ctx, NULL,
|
||||
"/etc/openssl/certs") != 1)
|
||||
{
|
||||
if(ssl->ssl_ctx != NULL)
|
||||
SSL_CTX_free(ssl->ssl_ctx);
|
||||
ssl->ssl_ctx = NULL;
|
||||
/* FIXME report the error */
|
||||
return -1;
|
||||
}
|
||||
ssl->u.server.fd = -1;
|
||||
/* obtain the local address */
|
||||
if((ssl->ai = _init_address(name, TCP_FAMILY, AI_PASSIVE)) == NULL)
|
||||
|
|
Loading…
Reference in New Issue
Block a user