.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.48) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" 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 .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "I2D_ASN1_BIO_STREAM 3ssl" .TH I2D_ASN1_BIO_STREAM 3ssl 2026-10-23 4.1.0 OpenSSL .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME i2d_ASN1_bio_stream, i2d_CMS_bio_stream, i2d_PKCS7_bio_stream \&\- output ASN.1 structures in BER format .SH SYNOPSIS .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, \& const ASN1_ITEM *it); \& \& #include \& \& int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *data, int flags); \& \& #include \& \& int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *data, int flags); .Ve .SH DESCRIPTION .IX Header "DESCRIPTION" \&\fBi2d_ASN1_bio_stream()\fR outputs an ASN1_VALUE structure in BER format. The \fIit\fR parameter specifies the \fBASN1_ITEM\fR that describes the structure type. If the \fBSMIME_STREAM\fR flag is set in \fIflags\fR, streaming mode is used where content from BIO \fIin\fR is processed through an encoding BIO chain for structures that support indefinite length encoding. If \fBSMIME_STREAM\fR is not set, \fIin\fR is ignored and the structure is written directly to \fIout\fR. .PP \&\fBi2d_CMS_bio_stream()\fR outputs a CMS_ContentInfo structure in BER format. It is otherwise identical to the function \fBSMIME_write_CMS()\fR. .PP \&\fBi2d_PKCS7_bio_stream()\fR outputs a PKCS7 structure in BER format. It is otherwise identical to the function \fBSMIME_write_PKCS7()\fR. .PP Both \fBi2d_CMS_bio_stream()\fR and \fBi2d_PKCS7_bio_stream()\fR are implemented using \&\fBi2d_ASN1_bio_stream()\fR internally. .SH NOTES .IX Header "NOTES" These functions are effectively versions of the corresponding i2d functions that support streaming. .SH BUGS .IX Header "BUGS" The prefix "i2d" is arguably wrong because these functions output BER format. .SH "RETURN VALUES" .IX Header "RETURN VALUES" These functions return 1 for success or 0 for failure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBERR_get_error\fR\|(3), \&\fBCMS_sign\fR\|(3), \fBCMS_verify\fR\|(3), \fBCMS_encrypt\fR\|(3), \fBCMS_decrypt\fR\|(3), \&\fBPKCS7_sign\fR\|(3), \fBPKCS7_verify\fR\|(3), \fBPKCS7_encrypt\fR\|(3), \fBPKCS7_decrypt\fR\|(3), \&\fBSMIME_write_CMS\fR\|(3), \fBSMIME_write_PKCS7\fR\|(3), \&\fBPEM_write_bio_CMS_stream\fR\|(3), \fBPEM_write_bio_PKCS7_stream\fR\|(3) .SH HISTORY .IX Header "HISTORY" \&\fBi2d_ASN1_bio_stream()\fR, \fBi2d_CMS_bio_stream()\fR and \fBi2d_PKCS7_bio_stream()\fR were added in OpenSSL 1.0.0. .SH COPYRIGHT .IX Header "COPYRIGHT" Copyright 2008\-2026 The OpenSSL Project Authors. All Rights Reserved. .PP Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at .