]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - secure/lib/libcrypto/man/man3/SSL_set_bio.3
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp
[FreeBSD/FreeBSD.git] / secure / lib / libcrypto / man / man3 / SSL_set_bio.3
1 .\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.40)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings.  \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote.  \*(C+ will
21 .\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 .    ds -- \(*W-
28 .    ds PI pi
29 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
31 .    ds L" ""
32 .    ds R" ""
33 .    ds C` ""
34 .    ds C' ""
35 'br\}
36 .el\{\
37 .    ds -- \|\(em\|
38 .    ds PI \(*p
39 .    ds L" ``
40 .    ds R" ''
41 .    ds C`
42 .    ds C'
43 'br\}
44 .\"
45 .\" Escape single quotes in literal strings from groff's Unicode transform.
46 .ie \n(.g .ds Aq \(aq
47 .el       .ds Aq '
48 .\"
49 .\" If the F register is >0, we'll generate index entries on stderr for
50 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
51 .\" entries marked with X<> in POD.  Of course, you'll have to process the
52 .\" output yourself in some meaningful fashion.
53 .\"
54 .\" Avoid warning from groff about undefined register 'F'.
55 .de IX
56 ..
57 .nr rF 0
58 .if \n(.g .if rF .nr rF 1
59 .if (\n(rF:(\n(.g==0)) \{\
60 .    if \nF \{\
61 .        de IX
62 .        tm Index:\\$1\t\\n%\t"\\$2"
63 ..
64 .        if !\nF==2 \{\
65 .            nr % 0
66 .            nr F 2
67 .        \}
68 .    \}
69 .\}
70 .rr rF
71 .\"
72 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
73 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
74 .    \" fudge factors for nroff and troff
75 .if n \{\
76 .    ds #H 0
77 .    ds #V .8m
78 .    ds #F .3m
79 .    ds #[ \f1
80 .    ds #] \fP
81 .\}
82 .if t \{\
83 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
84 .    ds #V .6m
85 .    ds #F 0
86 .    ds #[ \&
87 .    ds #] \&
88 .\}
89 .    \" simple accents for nroff and troff
90 .if n \{\
91 .    ds ' \&
92 .    ds ` \&
93 .    ds ^ \&
94 .    ds , \&
95 .    ds ~ ~
96 .    ds /
97 .\}
98 .if t \{\
99 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
100 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
101 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
102 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
103 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
104 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
105 .\}
106 .    \" troff and (daisy-wheel) nroff accents
107 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
108 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
109 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
110 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
111 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
112 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
113 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
114 .ds ae a\h'-(\w'a'u*4/10)'e
115 .ds Ae A\h'-(\w'A'u*4/10)'E
116 .    \" corrections for vroff
117 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
118 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
119 .    \" for low resolution devices (crt and lpr)
120 .if \n(.H>23 .if \n(.V>19 \
121 \{\
122 .    ds : e
123 .    ds 8 ss
124 .    ds o a
125 .    ds d- d\h'-1'\(ga
126 .    ds D- D\h'-1'\(hy
127 .    ds th \o'bp'
128 .    ds Th \o'LP'
129 .    ds ae ae
130 .    ds Ae AE
131 .\}
132 .rm #[ #] #H #V #F C
133 .\" ========================================================================
134 .\"
135 .IX Title "SSL_SET_BIO 3"
136 .TH SSL_SET_BIO 3 "2020-04-21" "1.1.1g" "OpenSSL"
137 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
138 .\" way too many mistakes in technical documents.
139 .if n .ad l
140 .nh
141 .SH "NAME"
142 SSL_set_bio, SSL_set0_rbio, SSL_set0_wbio \- connect the SSL object with a BIO
143 .SH "SYNOPSIS"
144 .IX Header "SYNOPSIS"
145 .Vb 1
146 \& #include <openssl/ssl.h>
147 \&
148 \& void SSL_set_bio(SSL *ssl, BIO *rbio, BIO *wbio);
149 \& void SSL_set0_rbio(SSL *s, BIO *rbio);
150 \& void SSL_set0_wbio(SSL *s, BIO *wbio);
151 .Ve
152 .SH "DESCRIPTION"
153 .IX Header "DESCRIPTION"
154 \&\fBSSL_set0_rbio()\fR connects the \s-1BIO\s0 \fBrbio\fR for the read operations of the \fBssl\fR
155 object. The \s-1SSL\s0 engine inherits the behaviour of \fBrbio\fR. If the \s-1BIO\s0 is
156 non-blocking then the \fBssl\fR object will also have non-blocking behaviour. This
157 function transfers ownership of \fBrbio\fR to \fBssl\fR. It will be automatically
158 freed using \fBBIO_free_all\fR\|(3) when the \fBssl\fR is freed. On calling this
159 function, any existing \fBrbio\fR that was previously set will also be freed via a
160 call to \fBBIO_free_all\fR\|(3) (this includes the case where the \fBrbio\fR is set to
161 the same value as previously).
162 .PP
163 \&\fBSSL_set0_wbio()\fR works in the same as \fBSSL_set0_rbio()\fR except that it connects
164 the \s-1BIO\s0 \fBwbio\fR for the write operations of the \fBssl\fR object. Note that if the
165 rbio and wbio are the same then \fBSSL_set0_rbio()\fR and \fBSSL_set0_wbio()\fR each take
166 ownership of one reference. Therefore it may be necessary to increment the
167 number of references available using \fBBIO_up_ref\fR\|(3) before calling the set0
168 functions.
169 .PP
170 \&\fBSSL_set_bio()\fR is similar to \fBSSL_set0_rbio()\fR and \fBSSL_set0_wbio()\fR except
171 that it connects both the \fBrbio\fR and the \fBwbio\fR at the same time, and
172 transfers the ownership of \fBrbio\fR and \fBwbio\fR to \fBssl\fR according to
173 the following set of rules:
174 .IP "\(bu" 2
175 If neither the \fBrbio\fR or \fBwbio\fR have changed from their previous values
176 then nothing is done.
177 .IP "\(bu" 2
178 If the \fBrbio\fR and \fBwbio\fR parameters are different and both are different
179 to their
180 previously set values then one reference is consumed for the rbio and one
181 reference is consumed for the wbio.
182 .IP "\(bu" 2
183 If the \fBrbio\fR and \fBwbio\fR parameters are the same and the \fBrbio\fR is not
184 the same as the previously set value then one reference is consumed.
185 .IP "\(bu" 2
186 If the \fBrbio\fR and \fBwbio\fR parameters are the same and the \fBrbio\fR is the
187 same as the previously set value, then no additional references are consumed.
188 .IP "\(bu" 2
189 If the \fBrbio\fR and \fBwbio\fR parameters are different and the \fBrbio\fR is the
190 same as the
191 previously set value then one reference is consumed for the \fBwbio\fR and no
192 references are consumed for the \fBrbio\fR.
193 .IP "\(bu" 2
194 If the \fBrbio\fR and \fBwbio\fR parameters are different and the \fBwbio\fR is the
195 same as the previously set value and the old \fBrbio\fR and \fBwbio\fR values
196 were the same as each other then one reference is consumed for the \fBrbio\fR
197 and no references are consumed for the \fBwbio\fR.
198 .IP "\(bu" 2
199 If the \fBrbio\fR and \fBwbio\fR parameters are different and the \fBwbio\fR
200 is the same as the
201 previously set value and the old \fBrbio\fR and \fBwbio\fR values were different
202 to each
203 other then one reference is consumed for the \fBrbio\fR and one reference
204 is consumed
205 for the \fBwbio\fR.
206 .PP
207 Because of this complexity, this function should be avoided;
208 use \fBSSL_set0_rbio()\fR and \fBSSL_set0_wbio()\fR instead.
209 .SH "RETURN VALUES"
210 .IX Header "RETURN VALUES"
211 \&\fBSSL_set_bio()\fR, \fBSSL_set0_rbio()\fR and \fBSSL_set0_wbio()\fR cannot fail.
212 .SH "SEE ALSO"
213 .IX Header "SEE ALSO"
214 \&\fBSSL_get_rbio\fR\|(3),
215 \&\fBSSL_connect\fR\|(3), \fBSSL_accept\fR\|(3),
216 \&\fBSSL_shutdown\fR\|(3), \fBssl\fR\|(7), \fBbio\fR\|(7)
217 .SH "HISTORY"
218 .IX Header "HISTORY"
219 \&\fBSSL_set0_rbio()\fR and \fBSSL_set0_wbio()\fR were added in OpenSSL 1.1.0.
220 .SH "COPYRIGHT"
221 .IX Header "COPYRIGHT"
222 Copyright 2000\-2018 The OpenSSL Project Authors. All Rights Reserved.
223 .PP
224 Licensed under the OpenSSL license (the \*(L"License\*(R").  You may not use
225 this file except in compliance with the License.  You can obtain a copy
226 in the file \s-1LICENSE\s0 in the source distribution or at
227 <https://www.openssl.org/source/license.html>.