168651Skris=pod 268651Skris 368651Skris=head1 NAME 468651Skris 568651Skrisbio - I/O abstraction 668651Skris 768651Skris=head1 SYNOPSIS 868651Skris 968651Skris #include <openssl/bio.h> 1068651Skris 1168651SkrisTBA 1268651Skris 1368651Skris 1468651Skris=head1 DESCRIPTION 1568651Skris 1668651SkrisA BIO is an I/O abstraction, it hides many of the underlying I/O 1768651Skrisdetails from an application. If an application uses a BIO for its 1868651SkrisI/O it can transparently handle SSL connections, unencrypted network 1968651Skrisconnections and file I/O. 2068651Skris 2168651SkrisThere are two type of BIO, a source/sink BIO and a filter BIO. 2268651Skris 2368651SkrisAs its name implies a source/sink BIO is a source and/or sink of data, 2468651Skrisexamples include a socket BIO and a file BIO. 2568651Skris 2668651SkrisA filter BIO takes data from one BIO and passes it through to 2768651Skrisanother, or the application. The data may be left unmodified (for 2868651Skrisexample a message digest BIO) or translated (for example an 2968651Skrisencryption BIO). The effect of a filter BIO may change according 3068651Skristo the I/O operation it is performing: for example an encryption 3168651SkrisBIO will encrypt data if it is being written to and decrypt data 3268651Skrisif it is being read from. 3368651Skris 3468651SkrisBIOs can be joined together to form a chain (a single BIO is a chain 3568651Skriswith one component). A chain normally consist of one source/sink 3668651SkrisBIO and one or more filter BIOs. Data read from or written to the 3768651Skrisfirst BIO then traverses the chain to the end (normally a source/sink 3868651SkrisBIO). 3968651Skris 4068651Skris=head1 SEE ALSO 4168651Skris 4268651SkrisL<BIO_ctrl(3)|BIO_ctrl(3)>, 4379998SkrisL<BIO_f_base64(3)|BIO_f_base64(3)>, L<BIO_f_buffer(3)|BIO_f_buffer(3)>, 4468651SkrisL<BIO_f_cipher(3)|BIO_f_cipher(3)>, L<BIO_f_md(3)|BIO_f_md(3)>, 4568651SkrisL<BIO_f_null(3)|BIO_f_null(3)>, L<BIO_f_ssl(3)|BIO_f_ssl(3)>, 4668651SkrisL<BIO_find_type(3)|BIO_find_type(3)>, L<BIO_new(3)|BIO_new(3)>, 4768651SkrisL<BIO_new_bio_pair(3)|BIO_new_bio_pair(3)>, 4868651SkrisL<BIO_push(3)|BIO_push(3)>, L<BIO_read(3)|BIO_read(3)>, 4968651SkrisL<BIO_s_accept(3)|BIO_s_accept(3)>, L<BIO_s_bio(3)|BIO_s_bio(3)>, 5068651SkrisL<BIO_s_connect(3)|BIO_s_connect(3)>, L<BIO_s_fd(3)|BIO_s_fd(3)>, 5168651SkrisL<BIO_s_file(3)|BIO_s_file(3)>, L<BIO_s_mem(3)|BIO_s_mem(3)>, 5268651SkrisL<BIO_s_null(3)|BIO_s_null(3)>, L<BIO_s_socket(3)|BIO_s_socket(3)>, 5368651SkrisL<BIO_set_callback(3)|BIO_set_callback(3)>, 5468651SkrisL<BIO_should_retry(3)|BIO_should_retry(3)> 55