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