NAME
i2d_ASN1_bio_stream
—
generic BER streamer
SYNOPSIS
#include
<openssl/asn1.h>
int
i2d_ASN1_bio_stream
(BIO
*out_bio, ASN1_VALUE *val_in,
BIO *in_bio, int flags,
const ASN1_ITEM *it);
DESCRIPTION
If the bit SMIME_STREAM
is not set in the
flags argument,
i2d_ASN1_bio_stream
()
does the same as
ASN1_item_i2d_bio(3), ignoring the
in_bio and flags arguments.
If the bit SMIME_STREAM
is set, it creates
a streaming BIO with
BIO_new_NDEF(3), copies the data from
in_bio to it using
SMIME_crlf_copy(3), finalizes the output with
BIO_flush(3), and frees the newly created BIOs up to but not
including out_bio.
If it is PKCS7_it, this function behaves exactly as i2d_PKCS7_bio_stream(3); for CMS_ContentInfo_it, it behaves exactly as i2d_CMS_bio_stream(3). For other values of it, the function fails.
RETURN VALUES
i2d_ASN1_bio_stream
() is intended to
return 1 on success or 0 on failure.
SEE ALSO
ASN1_item_i2d_bio(3), ASN1_item_ndef_i2d(3), BIO_flush(3), BIO_new(3), BIO_new_NDEF(3), BIO_push(3), i2d_CMS_bio_stream(3), i2d_PKCS7_bio_stream(3), PEM_write_bio_ASN1_stream(3), SMIME_crlf_copy(3), SMIME_write_ASN1(3)
HISTORY
i2d_ASN1_bio_stream
() first appeared in
OpenSSL 1.0.0 and has been available since OpenBSD
4.9.
BUGS
Many kinds of errors are silently ignored. This function may return 1 even if it only produced partial output or no output at all.