SSL_CTX_set_ssl_version.3ossl - Man Page

choose a new TLS/SSL method


 #include <openssl/ssl.h>

 int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *method);
 const SSL_METHOD *SSL_CTX_get_ssl_method(const SSL_CTX *ctx);

 int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method);
 const SSL_METHOD *SSL_get_ssl_method(const SSL *ssl);


SSL_CTX_set_ssl_version() sets a new default TLS/SSL method for SSL objects newly created from this ctx.  Most of the configuration attached to the SSL_CTX object is retained, with the exception of the configured TLS ciphers, which are reset to the default values.  SSL objects already created from this SSL_CTX with SSL_new(3) are not affected, except when SSL_clear(3) is being called, as described below.

SSL_CTX_get_ssl_method() returns the SSL_METHOD which was used to construct the SSL_CTX.

SSL_set_ssl_method() sets a new TLS/SSL method for a particular ssl object. It may be reset, when SSL_clear() is called.

SSL_get_ssl_method() returns a pointer to the TLS/SSL method set in ssl.


The available method choices are described in SSL_CTX_new(3).

When SSL_clear(3) is called and no session is connected to an SSL object, the method of the SSL object is reset to the method currently set in the corresponding SSL_CTX object.

SSL_CTX_set_version() has unusual semantics and no clear use case; it would usually be preferable to create a new SSL_CTX object than to try to reuse an existing one in this fashion.  Its usage is considered deprecated.

SSL_set_ssl_method() cannot be used to change a non-QUIC SSL object to a QUIC SSL object or vice versa, or change a QUIC SSL object from one QUIC method to another.

Return Values

The following return values can occur for SSL_CTX_set_ssl_version() and SSL_set_ssl_method():


The new choice failed, check the error stack to find out the reason.


The operation succeeded.

SSL_CTX_get_ssl_method() and SSL_get_ssl_method() always return non-NULL pointers.

See Also

SSL_CTX_new(3), SSL_new(3), SSL_clear(3), ssl(7), SSL_set_connect_state(3)


SSL_CTX_set_ssl_version() was deprecated in OpenSSL 3.0.

Referenced By


The man pages SSL_CTX_get_ssl_method.3ossl(3), SSL_get_ssl_method.3ossl(3) and SSL_set_ssl_method.3ossl(3) are aliases of SSL_CTX_set_ssl_version.3ossl(3).

2024-02-09 3.2.1 OpenSSL