GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  TLS_SERVER_METHOD (3)

.ds Aq ’

NAME

SSL_CTX_new, SSL_CTX_up_ref, SSLv3_method, SSLv3_server_method, SSLv3_client_method, TLSv1_method, TLSv1_server_method, TLSv1_client_method, TLSv1_1_method, TLSv1_1_server_method, TLSv1_1_client_method, TLS_method, TLS_server_method, TLS_client_method, SSLv23_method, SSLv23_server_method, SSLv23_client_method, DTLS_method, DTLS_server_method, DTLS_client_method, DTLSv1_method, DTLSv1_server_method, DTLSv1_client_method, DTLSv1_2_method, DTLSv1_2_server_method, DTLSv1_2_client_method - create a new SSL_CTX object as framework for TLS/SSL or DTLS enabled functions

CONTENTS

SYNOPSIS



 #include <openssl/ssl.h>

 SSL_CTX *SSL_CTX_new(const SSL_METHOD *method);
 void SSL_CTX_up_ref(SSL_CTX *ctx);

 const SSL_METHOD *TLS_method(void);
 const SSL_METHOD *TLS_server_method(void);
 const SSL_METHOD *TLS_client_method(void);

 #define SSLv23_method           TLS_method
 #define SSLv23_server_method    TLS_server_method
 #define SSLv23_client_method    TLS_client_method

 #ifndef OPENSSL_NO_SSL3_METHOD
 const SSL_METHOD *SSLv3_method(void);
 const SSL_METHOD *SSLv3_server_method(void);
 const SSL_METHOD *SSLv3_client_method(void);
 #endif

 const SSL_METHOD *TLSv1_method(void);
 const SSL_METHOD *TLSv1_server_method(void);
 const SSL_METHOD *TLSv1_client_method(void);

 const SSL_METHOD *TLSv1_1_method(void);
 const SSL_METHOD *TLSv1_1_server_method(void);
 const SSL_METHOD *TLSv1_1_client_method(void);

 const SSL_METHOD *TLSv1_2_method(void);
 const SSL_METHOD *TLSv1_2_server_method(void);
 const SSL_METHOD *TLSv1_2_client_method(void);

 const SSL_METHOD *DTLS_method(void);
 const SSL_METHOD *DTLS_server_method(void);
 const SSL_METHOD *DTLS_client_method(void);

 const SSL_METHOD *DTLSv1_method(void);
 const SSL_METHOD *DTLSv1_server_method(void);
 const SSL_METHOD *DTLSv1_client_method(void);

 const SSL_METHOD *DTLSv1_2_method(void);
 const SSL_METHOD *DTLSv1_2_server_method(void);
 const SSL_METHOD *DTLSv1_2_client_method(void);



DESCRIPTION

SSL_CTX_new() creates a new SSL_CTX object as framework to establish TLS/SSL or DTLS enabled connections. An SSL_CTX object is reference counted. Creating an SSL_CTX object for the first time increments the reference count. Freeing it (using SSL_CTX_free) decrements it. When the reference count drops to zero, any memory or resources allocated to the SSL_CTX object are freed. SSL_CTX_up_ref() increments the reference count for an existing SSL_CTX structure.

NOTES

The SSL_CTX object uses method as connection method. The methods exist in a generic type (for client and server use), a server only type, and a client only type. method can be of the following types:
SSLv3_method(), SSLv3_server_method(), SSLv3_client_method() An SSL connection established with these methods will only understand the SSLv3 protocol. A client will send out a SSLv3 client hello messages and will indicate that it supports SSLv3. A server will only understand SSLv3 client hello message and only support the SSLv3 protocol.
TLSv1_method(), TLSv1_server_method(), TLSv1_client_method() A TLS connection established with these methods will only understand the TLS 1.0 protocol.
TLSv1_1_method(), TLSv1_1_server_method(), TLSv1_1_client_method() A TLS connection established with these methods will only understand the TLS 1.1 protocol.
TLSv1_2_method(), TLSv1_2_server_method(), TLSv1_2_client_method() A TLS connection established with these methods will only understand the TLS 1.2 protocol.
TLS_method(), TLS_server_method(), TLS_client_method() A TLS/SSL connection established with these methods may understand the SSLv3, TLSv1, TLSv1.1 and TLSv1.2 protocols.

If extensions are required (for example server name) a client will send out TLSv1 client hello messages including extensions and will indicate that it also understands TLSv1.1, TLSv1.2 and permits a fallback to SSLv3. A server will support SSLv3, TLSv1, TLSv1.1 and TLSv1.2 protocols. This is the best choice when compatibility is a concern.

SSLv23_method(), SSLv23_server_method(), SSLv23_client_method() Use of these functions is deprecated. They have been replaced with TLS_method(), TLS_server_method() and TLS_client_method() respectively. New code should use those functions instead.
DTLS_method(), DTLS_server_method(), DTLS_client_method() A DTLS connection established with those methods understands all supported DTLS protocols. Currently supported protocols are DTLS 1.0 and DTLS 1.2.
DTLSv1_method(), DTLSv1_server_method(), DTLSv1_client_method() A DTLS connection established with these methods will only understand the DTLS 1.0 protocol.
DTLSv1_2_method(), DTLSv1_2_server_method(), DTLSv1_2_client_method() A DTLS connection established with these methods will only understand the DTLS 1.2 protocol.
TLS_method(), TLS_server_method(), TLS_client_method(), DTLS_method(), DTLS_server_method() and DTLS_client_method() are the version flexible methods. All other methods only support one specific protocol version. Use these methods instead of the other version specific methods.

If you want to limit the supported protocols for the version flexible methods you can use SSL_CTX_set_min_proto_version(), SSL_set_min_proto_version(), SSL_CTX_set_max_proto_version() and SSL_set_max_proto_version() functions. They can also be limited by setting an option like SSL_OP_NO_SSLv3 via the SSL_CTX_set_options(3) or SSL_set_options(3) functions, but that’s not recommended. Using these functions it is possible to choose e.g. TLS_server_method() and be able to negotiate with all possible clients, but to only allow newer protocols like TLS 1.0, TLS 1.1 or TLS 1.2.

SSL_CTX_new() initializes the list of ciphers, the session cache setting, the callbacks, the keys and certificates and the options to its default values.

RETURN VALUES

The following return values can occur:
NULL The creation of a new SSL_CTX object failed. Check the error stack to find out the reason.
Pointer to an SSL_CTX object The return value points to an allocated SSL_CTX object.

HISTORY

Support for SSLv2 and the corresponding SSLv2_method(), SSLv2_server_method() and SSLv2_client_method() functions where removed in OpenSSL 1.1.0.

SSLv23_method(), SSLv23_server_method() and SSLv23_client_method() were deprecated and the preferred TLS_method(), TLS_server_method() and TLS_client_method() functions were introduced in OpenSSL 1.1.0.

SEE ALSO

SSL_CTX_free(3), SSL_accept(3), SSL_CTX_set_min_proto_version(3), ssl(3), SSL_set_connect_state(3)
Search for    or go to Top of page |  Section 3 |  Main Index


1.1.0-pre3 SSL_CTX_NEW (3) 2016-02-15

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.