diff options
-rw-r--r-- | src/lib/libcrypto/man/BIO_ctrl.3 | 124 |
1 files changed, 115 insertions, 9 deletions
diff --git a/src/lib/libcrypto/man/BIO_ctrl.3 b/src/lib/libcrypto/man/BIO_ctrl.3 index 762d45a5ed..a5c181307e 100644 --- a/src/lib/libcrypto/man/BIO_ctrl.3 +++ b/src/lib/libcrypto/man/BIO_ctrl.3 | |||
@@ -1,7 +1,25 @@ | |||
1 | .\" $OpenBSD: BIO_ctrl.3,v 1.16 2022/08/18 18:42:13 tb Exp $ | 1 | .\" $OpenBSD: BIO_ctrl.3,v 1.17 2023/04/04 17:10:37 schwarze Exp $ |
2 | .\" OpenSSL b055fceb Thu Oct 20 09:56:18 2016 +0100 | 2 | .\" full merge up to: OpenSSL 24a535eaf Tue Sep 22 13:14:20 2020 +0100 |
3 | .\" selective merge up to: OpenSSL 0c5bc96f Tue Mar 15 13:57:22 2022 +0000 | ||
3 | .\" | 4 | .\" |
4 | .\" This file was written by Dr. Stephen Henson <steve@openssl.org>. | 5 | .\" This file is a derived work. |
6 | .\" The changes are covered by the following Copyright and license: | ||
7 | .\" | ||
8 | .\" Copyright (c) 2023 Ingo Schwarze <schwarze@openbsd.org> | ||
9 | .\" | ||
10 | .\" Permission to use, copy, modify, and distribute this software for any | ||
11 | .\" purpose with or without fee is hereby granted, provided that the above | ||
12 | .\" copyright notice and this permission notice appear in all copies. | ||
13 | .\" | ||
14 | .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||
15 | .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||
16 | .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | ||
17 | .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||
18 | .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | ||
19 | .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | ||
20 | .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||
21 | .\" | ||
22 | .\" The original file was written by Dr. Stephen Henson <steve@openssl.org>. | ||
5 | .\" Copyright (c) 2000, 2016 The OpenSSL Project. All rights reserved. | 23 | .\" Copyright (c) 2000, 2016 The OpenSSL Project. All rights reserved. |
6 | .\" | 24 | .\" |
7 | .\" Redistribution and use in source and binary forms, with or without | 25 | .\" Redistribution and use in source and binary forms, with or without |
@@ -48,7 +66,7 @@ | |||
48 | .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | 66 | .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED |
49 | .\" OF THE POSSIBILITY OF SUCH DAMAGE. | 67 | .\" OF THE POSSIBILITY OF SUCH DAMAGE. |
50 | .\" | 68 | .\" |
51 | .Dd $Mdocdate: August 18 2022 $ | 69 | .Dd $Mdocdate: April 4 2023 $ |
52 | .Dt BIO_CTRL 3 | 70 | .Dt BIO_CTRL 3 |
53 | .Os | 71 | .Os |
54 | .Sh NAME | 72 | .Sh NAME |
@@ -75,7 +93,7 @@ | |||
75 | .In openssl/bio.h | 93 | .In openssl/bio.h |
76 | .Ft long | 94 | .Ft long |
77 | .Fo BIO_ctrl | 95 | .Fo BIO_ctrl |
78 | .Fa "BIO *bp" | 96 | .Fa "BIO *b" |
79 | .Fa "int cmd" | 97 | .Fa "int cmd" |
80 | .Fa "long larg" | 98 | .Fa "long larg" |
81 | .Fa "void *parg" | 99 | .Fa "void *parg" |
@@ -84,17 +102,17 @@ | |||
84 | .Fo BIO_callback_ctrl | 102 | .Fo BIO_callback_ctrl |
85 | .Fa "BIO *b" | 103 | .Fa "BIO *b" |
86 | .Fa "int cmd" | 104 | .Fa "int cmd" |
87 | .Fa "BIO_info_cb cb" | 105 | .Fa "BIO_info_cb *cb" |
88 | .Fc | 106 | .Fc |
89 | .Ft char * | 107 | .Ft char * |
90 | .Fo BIO_ptr_ctrl | 108 | .Fo BIO_ptr_ctrl |
91 | .Fa "BIO *bp" | 109 | .Fa "BIO *b" |
92 | .Fa "int cmd" | 110 | .Fa "int cmd" |
93 | .Fa "long larg" | 111 | .Fa "long larg" |
94 | .Fc | 112 | .Fc |
95 | .Ft long | 113 | .Ft long |
96 | .Fo BIO_int_ctrl | 114 | .Fo BIO_int_ctrl |
97 | .Fa "BIO *bp" | 115 | .Fa "BIO *b" |
98 | .Fa "int cmd" | 116 | .Fa "int cmd" |
99 | .Fa "long larg" | 117 | .Fa "long larg" |
100 | .Fa "int iarg" | 118 | .Fa "int iarg" |
@@ -175,6 +193,54 @@ Macros specific to a particular type of BIO | |||
175 | are described in the specific BIO's manual page | 193 | are described in the specific BIO's manual page |
176 | as well as any special features of the standard calls. | 194 | as well as any special features of the standard calls. |
177 | .Pp | 195 | .Pp |
196 | Depending on the | ||
197 | .Fa cmd | ||
198 | and on the type of | ||
199 | .Fa b , | ||
200 | .Fn BIO_ctrl | ||
201 | may have a read-only effect on | ||
202 | .Fa b | ||
203 | or change data in | ||
204 | .Fa b | ||
205 | or in its sub-structures. | ||
206 | It may also have a side effect of changing the memory pointed to by | ||
207 | .Fa parg . | ||
208 | .Pp | ||
209 | .Fn BIO_callback_ctrl | ||
210 | does not call | ||
211 | .Fn BIO_ctrl | ||
212 | but instead requires that the BIO type of | ||
213 | .Fa b | ||
214 | provides a dedicated | ||
215 | .Fa callback_ctrl | ||
216 | function pointer, which is built into the library for some standard BIO | ||
217 | types and can be provided with | ||
218 | .Xr BIO_meth_set_callback_ctrl 3 | ||
219 | for application-defined BIO types. | ||
220 | .Pp | ||
221 | .Fn BIO_ptr_ctrl | ||
222 | calls | ||
223 | .Fn BIO_ctrl | ||
224 | with | ||
225 | .Fa parg | ||
226 | pointing to the location of a temporary pointer variable initialized to | ||
227 | .Dv NULL . | ||
228 | .Pp | ||
229 | .Fn BIO_int_ctrl | ||
230 | calls | ||
231 | .Fn BIO_ctrl | ||
232 | with | ||
233 | .Fa parg | ||
234 | pointing to the location of a temporary | ||
235 | .Vt int | ||
236 | variable initialized to | ||
237 | .Fa iarg . | ||
238 | If | ||
239 | .Fn BIO_ctrl | ||
240 | changes the value stored at | ||
241 | .Pf * Fa parg , | ||
242 | the new value is ignored. | ||
243 | .Pp | ||
178 | .Fn BIO_reset | 244 | .Fn BIO_reset |
179 | typically resets a BIO to some initial state. | 245 | typically resets a BIO to some initial state. |
180 | In the case of file related BIOs, for example, | 246 | In the case of file related BIOs, for example, |
@@ -234,6 +300,46 @@ and | |||
234 | are macros which call | 300 | are macros which call |
235 | .Fn BIO_ctrl . | 301 | .Fn BIO_ctrl . |
236 | .Sh RETURN VALUES | 302 | .Sh RETURN VALUES |
303 | The meaning of the return values of | ||
304 | .Fn BIO_ctrl , | ||
305 | .Fn BIO_callback_ctrl , | ||
306 | and | ||
307 | .Fn BIO_int_ctrl | ||
308 | depends on both the type of | ||
309 | .Fa b | ||
310 | and on the | ||
311 | .Fa cmd . | ||
312 | If | ||
313 | .Fa b | ||
314 | is a | ||
315 | .Dv NULL | ||
316 | pointer, no action occurs and 0 is returned. | ||
317 | The return value \-2 usually indicates a fatal error. | ||
318 | In particular, it is returned if the | ||
319 | .Fa cmd | ||
320 | is unsupported by the type of | ||
321 | .Fa b . | ||
322 | If a callback was installed with | ||
323 | .Xr BIO_set_callback_ex 3 | ||
324 | or | ||
325 | .Xr BIO_set_callback 3 | ||
326 | and returns a negative value, that value is returned. | ||
327 | .Pp | ||
328 | .Fn BIO_ptr_ctrl | ||
329 | returns | ||
330 | .Dv NULL | ||
331 | if the | ||
332 | .Fn BIO_ctrl | ||
333 | call returns a negative value or does not change | ||
334 | .Pf * Fa parg , | ||
335 | or the pointer it puts into | ||
336 | .Pf * Fa parg | ||
337 | otherwise. | ||
338 | .Pp | ||
339 | .Fn BIO_int_ctrl | ||
340 | returns the return value of | ||
341 | .Fn BIO_ctrl . | ||
342 | .Pp | ||
237 | .Fn BIO_reset | 343 | .Fn BIO_reset |
238 | normally returns 1 for success and 0 or -1 for failure. | 344 | normally returns 1 for success and 0 or -1 for failure. |
239 | File BIOs are an exception, returning 0 for success and -1 for failure. | 345 | File BIOs are an exception, returning 0 for success and -1 for failure. |
@@ -295,7 +401,7 @@ to the next BIO in the chain. | |||
295 | This often means there is no need to locate the required BIO for | 401 | This often means there is no need to locate the required BIO for |
296 | a particular operation: it can be called on a chain and it will | 402 | a particular operation: it can be called on a chain and it will |
297 | be automatically passed to the relevant BIO. | 403 | be automatically passed to the relevant BIO. |
298 | However this can cause unexpected results. | 404 | However, this can cause unexpected results. |
299 | For example no current filter BIOs implement | 405 | For example no current filter BIOs implement |
300 | .Fn BIO_seek , | 406 | .Fn BIO_seek , |
301 | but this may still succeed if the chain ends | 407 | but this may still succeed if the chain ends |