1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
.\" $NetBSD: SSL_CTX_set_ssl_version.3,v 1.5 2026/04/08 17:06:47 christos Exp $
.\"
.\" -*- mode: troff; coding: utf-8 -*-
.\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds C`
. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{\
. if \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. if !\nF==2 \{\
. nr % 0
. nr F 2
. \}
. \}
.\}
.rr rF
.\"
.\" Required to disable full justification in groff 1.23.0.
.if n .ds AD l
.\" ========================================================================
.\"
.IX Title "SSL_CTX_set_ssl_version 3"
.TH SSL_CTX_set_ssl_version 3 2026-04-07 3.5.6 OpenSSL
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH NAME
SSL_CTX_set_ssl_version, SSL_CTX_get_ssl_method, SSL_set_ssl_method, SSL_get_ssl_method
\&\- choose a new TLS/SSL method
.SH SYNOPSIS
.IX Header "SYNOPSIS"
.Vb 1
\& #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);
.Ve
.SH DESCRIPTION
.IX Header "DESCRIPTION"
\&\fBSSL_CTX_set_ssl_version()\fR sets a new default TLS/SSL \fBmethod\fR for SSL objects
newly created from this \fBctx\fR. 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 \fBSSL_new\fR\|(3) are not affected, except when \fBSSL_clear\fR\|(3) is
being called, as described below.
.PP
\&\fBSSL_CTX_get_ssl_method()\fR returns the SSL_METHOD which was used to construct the
SSL_CTX.
.PP
\&\fBSSL_set_ssl_method()\fR sets a new TLS/SSL \fBmethod\fR for a particular \fBssl\fR
object. It may be reset, when \fBSSL_clear()\fR is called.
.PP
\&\fBSSL_get_ssl_method()\fR returns a pointer to the TLS/SSL method
set in \fBssl\fR.
.SH NOTES
.IX Header "NOTES"
The available \fBmethod\fR choices are described in
\&\fBSSL_CTX_new\fR\|(3).
.PP
When \fBSSL_clear\fR\|(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.
.PP
\&\fBSSL_CTX_set_version()\fR 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.
.PP
\&\fBSSL_set_ssl_method()\fR 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.
.SH "RETURN VALUES"
.IX Header "RETURN VALUES"
The following return values can occur for \fBSSL_CTX_set_ssl_version()\fR
and \fBSSL_set_ssl_method()\fR:
.IP 0 4
The new choice failed, check the error stack to find out the reason.
.IP 1 4
.IX Item "1"
The operation succeeded.
.PP
\&\fBSSL_CTX_get_ssl_method()\fR and \fBSSL_get_ssl_method()\fR always return non\-NULL
pointers.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fBSSL_CTX_new\fR\|(3), \fBSSL_new\fR\|(3),
\&\fBSSL_clear\fR\|(3), \fBssl\fR\|(7),
\&\fBSSL_set_connect_state\fR\|(3)
.SH HISTORY
.IX Header "HISTORY"
\&\fBSSL_CTX_set_ssl_version()\fR was deprecated in OpenSSL 3.0.
.SH COPYRIGHT
.IX Header "COPYRIGHT"
Copyright 2000\-2023 The OpenSSL Project Authors. All Rights Reserved.
.PP
Licensed under the Apache License 2.0 (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
in the file LICENSE in the source distribution or at
<https://www.openssl.org/source/license.html>.
|