]>
Commit | Line | Data |
---|---|---|
85556b4d MC |
1 | =pod |
2 | ||
3 | =head1 NAME | |
4 | ||
8b8d963d | 5 | BIO_get_new_index, |
85556b4d MC |
6 | BIO_meth_new, BIO_meth_free, BIO_meth_get_write, BIO_meth_set_write, |
7 | BIO_meth_get_read, BIO_meth_set_read, BIO_meth_get_puts, BIO_meth_set_puts, | |
8 | BIO_meth_get_gets, BIO_meth_set_gets, BIO_meth_get_ctrl, BIO_meth_set_ctrl, | |
9 | BIO_meth_get_create, BIO_meth_set_create, BIO_meth_get_destroy, | |
10 | BIO_meth_set_destroy, BIO_meth_get_callback_ctrl, | |
11 | BIO_meth_set_callback_ctrl - Routines to build up BIO methods | |
12 | ||
13 | =head1 SYNOPSIS | |
14 | ||
15 | #include <openssl/bio.h> | |
16 | ||
8b8d963d | 17 | int BIO_get_new_index(void); |
85556b4d MC |
18 | BIO_METHOD *BIO_meth_new(int type, const char *name); |
19 | void BIO_meth_free(BIO_METHOD *biom); | |
20 | int (*BIO_meth_get_write(BIO_METHOD *biom)) (BIO *, const char *, int); | |
21 | int BIO_meth_set_write(BIO_METHOD *biom, | |
22 | int (*write) (BIO *, const char *, int)); | |
23 | int (*BIO_meth_get_read(BIO_METHOD *biom)) (BIO *, char *, int); | |
24 | int BIO_meth_set_read(BIO_METHOD *biom, | |
25 | int (*read) (BIO *, char *, int)); | |
26 | int (*BIO_meth_get_puts(BIO_METHOD *biom)) (BIO *, const char *); | |
27 | int BIO_meth_set_puts(BIO_METHOD *biom, | |
28 | int (*puts) (BIO *, const char *)); | |
29 | int (*BIO_meth_get_gets(BIO_METHOD *biom)) (BIO *, char *, int); | |
30 | int BIO_meth_set_gets(BIO_METHOD *biom, | |
31 | int (*gets) (BIO *, char *, int)); | |
32 | long (*BIO_meth_get_ctrl(BIO_METHOD *biom)) (BIO *, int, long, void *); | |
33 | int BIO_meth_set_ctrl(BIO_METHOD *biom, | |
34 | long (*ctrl) (BIO *, int, long, void *)); | |
35 | int (*BIO_meth_get_create(BIO_METHOD *bion)) (BIO *); | |
36 | int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); | |
37 | int (*BIO_meth_get_destroy(BIO_METHOD *biom)) (BIO *); | |
38 | int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); | |
39 | long (*BIO_meth_get_callback_ctrl(BIO_METHOD *biom)) | |
40 | (BIO *, int, bio_info_cb *); | |
41 | int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, | |
42 | long (*callback_ctrl) (BIO *, int, | |
43 | bio_info_cb *)); | |
44 | ||
45 | =head1 DESCRIPTION | |
46 | ||
47 | The B<BIO_METHOD> type is a structure used for the implementation of new BIO | |
48 | types. It provides a set of of functions used by OpenSSL for the implementation | |
49 | of the various BIO capabilities. See the L<bio> page for more information. | |
50 | ||
51 | BIO_meth_new() creates a new B<BIO_METHOD> structure. It should be given a | |
8b8d963d RS |
52 | unique integer B<type> and a string that represents its B<name>. |
53 | Use BIO_get_new_index() to get the value for B<type>. | |
54 | ||
55 | The set of | |
85556b4d MC |
56 | standard OpenSSL provided BIO types is provided in B<bio.h>. Some examples |
57 | include B<BIO_TYPE_BUFFER> and B<BIO_TYPE_CIPHER>. Filter BIOs should have a | |
58 | type which have the "filter" bit set (B<BIO_TYPE_FILTER>). Source/sink BIOs | |
59 | should have the "source/sink" bit set (B<BIO_TYPE_SOURCE_SINK>). File descriptor | |
60 | based BIOs (e.g. socket, fd, connect, accept etc) should additionally have the | |
61 | "descriptor" bit set (B<BIO_TYPE_DESCRIPTOR>). See the L<BIO_find_type> page for | |
62 | more information. | |
63 | ||
64 | BIO_meth_free() destroys a B<BIO_METHOD> structure and frees up any memory | |
65 | associated with it. | |
66 | ||
67 | BIO_meth_get_write() and BIO_meth_set_write() get and set the function used for | |
68 | writing arbitrary length data to the BIO respectively. This function will be | |
69 | called in response to the application calling BIO_write(). The parameters for | |
70 | the function have the same meaning as for BIO_write(). | |
71 | ||
72 | BIO_meth_get_read() and BIO_meth_set_read() get and set the function used for | |
73 | reading arbitrary length data from the BIO respectively. This function will be | |
74 | called in response to the application calling BIO_read(). The parameters for the | |
75 | function have the same meaning as for BIO_read(). | |
76 | ||
77 | BIO_meth_get_puts() and BIO_meth_set_puts() get and set the function used for | |
78 | writing a NULL terminated string to the BIO respectively. This function will be | |
79 | called in response to the application calling BIO_puts(). The parameters for | |
80 | the function have the same meaning as for BIO_puts(). | |
81 | ||
82 | BIO_meth_get_gets() and BIO_meth_set_gets() get and set the function typically | |
ecba1fb3 | 83 | used for reading a line of data from the BIO respectively (see the L<BIO_gets(3)> |
85556b4d MC |
84 | page for more information). This function will be called in response to the |
85 | application calling BIO_gets(). The parameters for the function have the same | |
86 | meaning as for BIO_gets(). | |
87 | ||
88 | BIO_meth_get_ctrl() and BIO_meth_set_ctrl() get and set the function used for | |
89 | processing ctrl messages in the BIO respectively. See the L<BIO_ctrl> page for | |
90 | more information. This function will be called in response to the application | |
91 | calling BIO_ctrl(). The parameters for the function have the same meaning as for | |
92 | BIO_ctrl(). | |
93 | ||
94 | BIO_meth_get_create() and BIO_meth_set_create() get and set the function used | |
95 | for creating a new instance of the BIO respectively. This function will be | |
9d7bfb14 | 96 | called in response to the application calling BIO_new() and passing |
85556b4d MC |
97 | in a pointer to the current BIO_METHOD. The BIO_new() function will allocate the |
98 | memory for the new BIO, and a pointer to this newly allocated structure will | |
99 | be passed as a parameter to the function. | |
100 | ||
101 | BIO_meth_get_destroy() and BIO_meth_set_destroy() get and set the function used | |
102 | for destroying an instance of a BIO respectively. This function will be | |
103 | called in response to the application calling BIO_free(). A pointer to the BIO | |
104 | to be destroyed is passed as a parameter. The destroy function should be used | |
105 | for BIO specific clean up. The memory for the BIO itself should not be freed by | |
106 | this function. | |
107 | ||
108 | BIO_meth_get_callback_ctrl() and BIO_meth_set_callback_ctrl() get and set the | |
109 | function used for processing callback ctrl messages in the BIO respectively. See | |
ecba1fb3 | 110 | the L<BIO_callback_ctrl(3)> page for more information. This function will be called |
85556b4d MC |
111 | in response to the application calling BIO_callback_ctrl(). The parameters for |
112 | the function have the same meaning as for BIO_callback_ctrl(). | |
113 | ||
114 | =head1 SEE ALSO | |
115 | ||
116 | L<bio>, L<BIO_find_type>, L<BIO_ctrl>, L<BIO_read>, L<BIO_new> | |
117 | ||
118 | =head1 HISTORY | |
119 | ||
120 | The functions described here were added in OpenSSL version 1.1.0. | |
121 | ||
e2f92610 RS |
122 | =head1 COPYRIGHT |
123 | ||
124 | Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. | |
125 | ||
126 | Licensed under the OpenSSL license (the "License"). You may not use | |
127 | this file except in compliance with the License. You can obtain a copy | |
128 | in the file LICENSE in the source distribution or at | |
129 | L<https://www.openssl.org/source/license.html>. | |
130 | ||
131 | =cut |