![]() |
![]()
| ![]() |
![]()
NAME
SYNOPSIS
BIO *
DESCRIPTION
The chain returned by this function behaves like a standard filter BIO. It supports non blocking I/O. Content is processed and streamed on the fly and not all held in memory at once: so it is possible to encode very large structures. After all content has been written through the chain, BIO_flush(3) must be called to finalise the structure. The If an application wishes to write additional data to out, BIOs should be removed from the chain using BIO_pop(3) and freed with BIO_free(3) until out is reached. If no additional data needs to be written, BIO_free_all(3) can be called to free up the whole chain. Any content written through the filter is used verbatim: no canonical translation is performed. It is possible to chain multiple BIOs to, for example, create a triple wrapped signed, enveloped, signed structure. In this case it is the application's responsibility to set the inner content type of any outer CMS_ContentInfo structures. Large numbers of small writes through the chain should be avoided as this will produce an output consisting of lots of OCTET STRING structures. Prepending a BIO_f_buffer(3) buffering BIO will prevent this. RETURN VALUES
SEE ALSOBIO_new(3), CMS_ContentInfo_new(3), CMS_encrypt(3), CMS_sign(3) HISTORY
BUGSThere is currently no corresponding inverse BIO which can decode a CMS structure on the fly.
|