252445e7076e3b7c847feccf8eaac6913e1675e9
[dragonfly.git] / secure / lib / libssl / man / SSL_CTX_new.3
1 .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sh \" Subsection heading
6 .br
7 .if t .Sp
8 .ne 5
9 .PP
10 \fB\\$1\fR
11 .PP
12 ..
13 .de Sp \" Vertical space (when we can't use .PP)
14 .if t .sp .5v
15 .if n .sp
16 ..
17 .de Vb \" Begin verbatim text
18 .ft CW
19 .nf
20 .ne \\$1
21 ..
22 .de Ve \" End verbatim text
23 .ft R
24 .fi
25 ..
26 .\" Set up some character translations and predefined strings.  \*(-- will
27 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28 .\" double quote, and \*(R" will give a right double quote.  | will give a
29 .\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
30 .\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
31 .\" expand to `' in nroff, nothing in troff, for use with C<>.
32 .tr \(*W-|\(bv\*(Tr
33 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34 .ie n \{\
35 .    ds -- \(*W-
36 .    ds PI pi
37 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
39 .    ds L" ""
40 .    ds R" ""
41 .    ds C` ""
42 .    ds C' ""
43 'br\}
44 .el\{\
45 .    ds -- \|\(em\|
46 .    ds PI \(*p
47 .    ds L" ``
48 .    ds R" ''
49 'br\}
50 .\"
51 .\" If the F register is turned on, we'll generate index entries on stderr for
52 .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53 .\" entries marked with X<> in POD.  Of course, you'll have to process the
54 .\" output yourself in some meaningful fashion.
55 .if \nF \{\
56 .    de IX
57 .    tm Index:\\$1\t\\n%\t"\\$2"
58 ..
59 .    nr % 0
60 .    rr F
61 .\}
62 .\"
63 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
64 .\" way too many mistakes in technical documents.
65 .hy 0
66 .if n .na
67 .\"
68 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
70 .    \" fudge factors for nroff and troff
71 .if n \{\
72 .    ds #H 0
73 .    ds #V .8m
74 .    ds #F .3m
75 .    ds #[ \f1
76 .    ds #] \fP
77 .\}
78 .if t \{\
79 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80 .    ds #V .6m
81 .    ds #F 0
82 .    ds #[ \&
83 .    ds #] \&
84 .\}
85 .    \" simple accents for nroff and troff
86 .if n \{\
87 .    ds ' \&
88 .    ds ` \&
89 .    ds ^ \&
90 .    ds , \&
91 .    ds ~ ~
92 .    ds /
93 .\}
94 .if t \{\
95 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101 .\}
102 .    \" troff and (daisy-wheel) nroff accents
103 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110 .ds ae a\h'-(\w'a'u*4/10)'e
111 .ds Ae A\h'-(\w'A'u*4/10)'E
112 .    \" corrections for vroff
113 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115 .    \" for low resolution devices (crt and lpr)
116 .if \n(.H>23 .if \n(.V>19 \
117 \{\
118 .    ds : e
119 .    ds 8 ss
120 .    ds o a
121 .    ds d- d\h'-1'\(ga
122 .    ds D- D\h'-1'\(hy
123 .    ds th \o'bp'
124 .    ds Th \o'LP'
125 .    ds ae ae
126 .    ds Ae AE
127 .\}
128 .rm #[ #] #H #V #F C
129 .\" ========================================================================
130 .\"
131 .IX Title "SSL_CTX_new 3"
132 .TH SSL_CTX_new 3 "2006-11-19" "0.9.8d" "OpenSSL"
133 .SH "NAME"
134 SSL_CTX_new \- create a new SSL_CTX object as framework for TLS/SSL enabled functions
135 .SH "SYNOPSIS"
136 .IX Header "SYNOPSIS"
137 .Vb 1
138 \& #include <openssl/ssl.h>
139 .Ve
140 .PP
141 .Vb 1
142 \& SSL_CTX *SSL_CTX_new(SSL_METHOD *method);
143 .Ve
144 .SH "DESCRIPTION"
145 .IX Header "DESCRIPTION"
146 \&\fISSL_CTX_new()\fR creates a new \fB\s-1SSL_CTX\s0\fR object as framework to establish
147 \&\s-1TLS/SSL\s0 enabled connections.
148 .SH "NOTES"
149 .IX Header "NOTES"
150 The \s-1SSL_CTX\s0 object uses \fBmethod\fR as connection method. The methods exist
151 in a generic type (for client and server use), a server only type, and a
152 client only type. \fBmethod\fR can be of the following types:
153 .IP "SSLv2_method(void), SSLv2_server_method(void), SSLv2_client_method(void)" 4
154 .IX Item "SSLv2_method(void), SSLv2_server_method(void), SSLv2_client_method(void)"
155 A \s-1TLS/SSL\s0 connection established with these methods will only understand
156 the SSLv2 protocol. A client will send out SSLv2 client hello messages
157 and will also indicate that it only understand SSLv2. A server will only
158 understand SSLv2 client hello messages.
159 .IP "SSLv3_method(void), SSLv3_server_method(void), SSLv3_client_method(void)" 4
160 .IX Item "SSLv3_method(void), SSLv3_server_method(void), SSLv3_client_method(void)"
161 A \s-1TLS/SSL\s0 connection established with these methods will only understand the
162 SSLv3 protocol. A client will send out SSLv3 client hello messages
163 and will indicate that it only understands SSLv3. A server will only understand
164 SSLv3 client hello messages. This especially means, that it will
165 not understand SSLv2 client hello messages which are widely used for
166 compatibility reasons, see SSLv23_*\fI_method()\fR.
167 .IP "TLSv1_method(void), TLSv1_server_method(void), TLSv1_client_method(void)" 4
168 .IX Item "TLSv1_method(void), TLSv1_server_method(void), TLSv1_client_method(void)"
169 A \s-1TLS/SSL\s0 connection established with these methods will only understand the
170 TLSv1 protocol. A client will send out TLSv1 client hello messages
171 and will indicate that it only understands TLSv1. A server will only understand
172 TLSv1 client hello messages. This especially means, that it will
173 not understand SSLv2 client hello messages which are widely used for
174 compatibility reasons, see SSLv23_*\fI_method()\fR. It will also not understand
175 SSLv3 client hello messages.
176 .IP "SSLv23_method(void), SSLv23_server_method(void), SSLv23_client_method(void)" 4
177 .IX Item "SSLv23_method(void), SSLv23_server_method(void), SSLv23_client_method(void)"
178 A \s-1TLS/SSL\s0 connection established with these methods will understand the SSLv2,
179 SSLv3, and TLSv1 protocol. A client will send out SSLv2 client hello messages
180 and will indicate that it also understands SSLv3 and TLSv1. A server will
181 understand SSLv2, SSLv3, and TLSv1 client hello messages. This is the best
182 choice when compatibility is a concern.
183 .PP
184 The list of protocols available can later be limited using the SSL_OP_NO_SSLv2,
185 SSL_OP_NO_SSLv3, SSL_OP_NO_TLSv1 options of the \fB\f(BISSL_CTX_set_options()\fB\fR or
186 \&\fB\f(BISSL_set_options()\fB\fR functions. Using these options it is possible to choose
187 e.g. \fISSLv23_server_method()\fR and be able to negotiate with all possible
188 clients, but to only allow newer protocols like SSLv3 or TLSv1.
189 .PP
190 \&\fISSL_CTX_new()\fR initializes the list of ciphers, the session cache setting,
191 the callbacks, the keys and certificates, and the options to its default
192 values.
193 .SH "RETURN VALUES"
194 .IX Header "RETURN VALUES"
195 The following return values can occur:
196 .IP "\s-1NULL\s0" 4
197 .IX Item "NULL"
198 The creation of a new \s-1SSL_CTX\s0 object failed. Check the error stack to
199 find out the reason.
200 .IP "Pointer to an \s-1SSL_CTX\s0 object" 4
201 .IX Item "Pointer to an SSL_CTX object"
202 The return value points to an allocated \s-1SSL_CTX\s0 object.
203 .SH "SEE ALSO"
204 .IX Header "SEE ALSO"
205 \&\fISSL_CTX_free\fR\|(3), \fISSL_accept\fR\|(3),
206 \&\fIssl\fR\|(3),  \fISSL_set_connect_state\fR\|(3)