xref: /netbsd-src/crypto/external/bsd/openssl/lib/libcrypto/man/BIO_meth_new.3 (revision bdc22b2e01993381dcefeff2bc9b56ca75a4235c)
$NetBSD: BIO_meth_new.3,v 1.1 2018/02/08 21:57:24 christos Exp $

Automatically generated by Pod::Man 4.07 (Pod::Simple 3.32)

Standard preamble:
========================================================================
..
..
.. Set up some character translations and predefined strings. \*(-- will
give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
double quote, and \*(R" will give a right double quote. \*(C+ will
give a nicer C++. Capital omega is used to do unbreakable dashes and
therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
nothing in troff, for use with C<>.
.tr \(*W- . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\}
Escape single quotes in literal strings from groff's Unicode transform.

If the F register is >0, we'll generate index entries on stderr for
titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
entries marked with X<> in POD. Of course, you'll have to process the
output yourself in some meaningful fashion.

Avoid warning from groff about undefined register 'F'.
.. . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} .\}
Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] .\} . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents . \" corrections for vroff . \" for low resolution devices (crt and lpr) \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} ========================================================================

Title "BIO_meth_new 3"
BIO_meth_new 3 "2018-01-15" "1.1.0g" "OpenSSL"
For nroff, turn off justification. Always turn off hyphenation; it makes
way too many mistakes in technical documents.
"NAME"
BIO_get_new_index, BIO_meth_new, BIO_meth_free, BIO_meth_get_write, BIO_meth_set_write, BIO_meth_get_read, BIO_meth_set_read, BIO_meth_get_puts, BIO_meth_set_puts, BIO_meth_get_gets, BIO_meth_set_gets, BIO_meth_get_ctrl, BIO_meth_set_ctrl, BIO_meth_get_create, BIO_meth_set_create, BIO_meth_get_destroy, BIO_meth_set_destroy, BIO_meth_get_callback_ctrl, BIO_meth_set_callback_ctrl - Routines to build up BIO methods
"LIBRARY"
libcrypto, -lcrypto
"SYNOPSIS"
Header "SYNOPSIS" .Vb 1 #include <openssl/bio.h> \& int BIO_get_new_index(void); BIO_METHOD *BIO_meth_new(int type, const char *name); void BIO_meth_free(BIO_METHOD *biom); int (*BIO_meth_get_write(BIO_METHOD *biom)) (BIO *, const char *, int); int BIO_meth_set_write(BIO_METHOD *biom, int (*write) (BIO *, const char *, int)); int (*BIO_meth_get_read(BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_read(BIO_METHOD *biom, int (*read) (BIO *, char *, int)); int (*BIO_meth_get_puts(BIO_METHOD *biom)) (BIO *, const char *); int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts) (BIO *, const char *)); int (*BIO_meth_get_gets(BIO_METHOD *biom)) (BIO *, char *, int); int BIO_meth_set_gets(BIO_METHOD *biom, int (*gets) (BIO *, char *, int)); long (*BIO_meth_get_ctrl(BIO_METHOD *biom)) (BIO *, int, long, void *); int BIO_meth_set_ctrl(BIO_METHOD *biom, long (*ctrl) (BIO *, int, long, void *)); int (*BIO_meth_get_create(BIO_METHOD *bion)) (BIO *); int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); int (*BIO_meth_get_destroy(BIO_METHOD *biom)) (BIO *); int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); long (*BIO_meth_get_callback_ctrl(BIO_METHOD *biom)) (BIO *, int, bio_info_cb *); int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, long (*callback_ctrl) (BIO *, int, bio_info_cb *)); .Ve
"DESCRIPTION"
Header "DESCRIPTION" The \s-1BIO_METHOD\s0 type is a structure used for the implementation of new \s-1BIO\s0 types. It provides a set of of functions used by OpenSSL for the implementation of the various \s-1BIO\s0 capabilities. See the bio page for more information.

\fIBIO_meth_new() creates a new \s-1BIO_METHOD\s0 structure. It should be given a unique integer type and a string that represents its name. Use BIO_get_new_index() to get the value for type.

The set of standard OpenSSL provided \s-1BIO\s0 types is provided in bio.h. Some examples include \s-1BIO_TYPE_BUFFER\s0 and \s-1BIO_TYPE_CIPHER\s0. Filter BIOs should have a type which have the \*(L"filter\*(R" bit set (\s-1BIO_TYPE_FILTER\s0). Source/sink BIOs should have the \*(L"source/sink\*(R" bit set (\s-1BIO_TYPE_SOURCE_SINK\s0). File descriptor based BIOs (e.g. socket, fd, connect, accept etc) should additionally have the \*(L"descriptor\*(R" bit set (\s-1BIO_TYPE_DESCRIPTOR\s0). See the BIO_find_type page for more information.

\fIBIO_meth_free() destroys a \s-1BIO_METHOD\s0 structure and frees up any memory associated with it.

\fIBIO_meth_get_write() and BIO_meth_set_write() get and set the function used for writing arbitrary length data to the \s-1BIO\s0 respectively. This function will be called in response to the application calling BIO_write(). The parameters for the function have the same meaning as for BIO_write().

\fIBIO_meth_get_read() and BIO_meth_set_read() get and set the function used for reading arbitrary length data from the \s-1BIO\s0 respectively. This function will be called in response to the application calling BIO_read(). The parameters for the function have the same meaning as for BIO_read().

\fIBIO_meth_get_puts() and BIO_meth_set_puts() get and set the function used for writing a \s-1NULL\s0 terminated string to the \s-1BIO\s0 respectively. This function will be called in response to the application calling BIO_puts(). The parameters for the function have the same meaning as for BIO_puts().

\fIBIO_meth_get_gets() and BIO_meth_set_gets() get and set the function typically used for reading a line of data from the \s-1BIO\s0 respectively (see the BIO_gets\|(3) page for more information). This function will be called in response to the application calling BIO_gets(). The parameters for the function have the same meaning as for BIO_gets().

\fIBIO_meth_get_ctrl() and BIO_meth_set_ctrl() get and set the function used for processing ctrl messages in the \s-1BIO\s0 respectively. See the BIO_ctrl page for more information. This function will be called in response to the application calling BIO_ctrl(). The parameters for the function have the same meaning as for \fIBIO_ctrl().

\fIBIO_meth_get_create() and BIO_meth_set_create() get and set the function used for creating a new instance of the \s-1BIO\s0 respectively. This function will be called in response to the application calling BIO_new() and passing in a pointer to the current \s-1BIO_METHOD.\s0 The BIO_new() function will allocate the memory for the new \s-1BIO,\s0 and a pointer to this newly allocated structure will be passed as a parameter to the function.

\fIBIO_meth_get_destroy() and BIO_meth_set_destroy() get and set the function used for destroying an instance of a \s-1BIO\s0 respectively. This function will be called in response to the application calling BIO_free(). A pointer to the \s-1BIO\s0 to be destroyed is passed as a parameter. The destroy function should be used for \s-1BIO\s0 specific clean up. The memory for the \s-1BIO\s0 itself should not be freed by this function.

\fIBIO_meth_get_callback_ctrl() and BIO_meth_set_callback_ctrl() get and set the function used for processing callback ctrl messages in the \s-1BIO\s0 respectively. See the BIO_callback_ctrl\|(3) page for more information. This function will be called in response to the application calling BIO_callback_ctrl(). The parameters for the function have the same meaning as for BIO_callback_ctrl().

"SEE ALSO"
Header "SEE ALSO" bio, BIO_find_type, BIO_ctrl, BIO_read, BIO_new
"HISTORY"
Header "HISTORY" The functions described here were added in OpenSSL 1.1.0.
"COPYRIGHT"
Header "COPYRIGHT" Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the OpenSSL license (the \*(L"License\*(R"). You may not use this file except in compliance with the License. You can obtain a copy in the file \s-1LICENSE\s0 in the source distribution or at <https://www.openssl.org/source/license.html>.