1 .\" $NetBSD: BIO_new_CMS.3,v 1.14 2015/06/12 17:01:13 christos Exp $
3 .\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28)
6 .\" ========================================================================
7 .de Sp \" Vertical space (when we can't use .PP)
11 .de Vb \" Begin verbatim text
16 .de Ve \" End verbatim text
20 .\" Set up some character translations and predefined strings. \*(-- will
21 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
22 .\" double quote, and \*(R" will give a right double quote. \*(C+ will
23 .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
24 .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
25 .\" nothing in troff, for use with C<>.
27 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
31 . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
32 . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
47 .\" Escape single quotes in literal strings from groff's Unicode transform.
51 .\" If the F register is turned on, we'll generate index entries on stderr for
52 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
53 .\" entries marked with X<> in POD. Of course, you'll have to process the
54 .\" output yourself in some meaningful fashion.
56 .\" Avoid warning from groff about undefined register 'F'.
60 .if \n(.g .if rF .nr rF 1
61 .if (\n(rF:(\n(.g==0)) \{
64 . tm Index:\\$1\t\\n%\t"\\$2"
74 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
75 .\" Fear. Run. Save yourself. No user-serviceable parts.
76 . \" fudge factors for nroff and troff
85 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
91 . \" simple accents for nroff and troff
101 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
102 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
103 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
104 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
105 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
106 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
108 . \" troff and (daisy-wheel) nroff accents
109 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
110 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
111 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
112 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
113 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
114 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
115 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
116 .ds ae a\h'-(\w'a'u*4/10)'e
117 .ds Ae A\h'-(\w'A'u*4/10)'E
118 . \" corrections for vroff
119 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
120 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
121 . \" for low resolution devices (crt and lpr)
122 .if \n(.H>23 .if \n(.V>19 \
135 .\" ========================================================================
137 .IX Title "BIO_new_CMS 3"
138 .TH BIO_new_CMS 3 "2009-12-26" "1.0.1n" "OpenSSL"
139 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
140 .\" way too many mistakes in technical documents.
145 \& BIO_new_CMS \- CMS streaming filter BIO
150 .IX Header "SYNOPSIS"
152 \& #include <openssl/cms.h>
154 \& BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms);
157 .IX Header "DESCRIPTION"
158 \&\fIBIO_new_CMS()\fR returns a streaming filter \s-1BIO\s0 chain based on \fBcms\fR. The output
159 of the filter is written to \fBout\fR. Any data written to the chain is
160 automatically translated to a \s-1BER\s0 format \s-1CMS\s0 structure of the appropriate type.
163 The chain returned by this function behaves like a standard filter \s-1BIO.\s0 It
164 supports non blocking I/O. Content is processed and streamed on the fly and not
165 all held in memory at once: so it is possible to encode very large structures.
166 After all content has been written through the chain \fIBIO_flush()\fR must be called
167 to finalise the structure.
169 The \fB\s-1CMS_STREAM\s0\fR flag must be included in the corresponding \fBflags\fR
170 parameter of the \fBcms\fR creation function.
172 If an application wishes to write additional data to \fBout\fR BIOs should be
173 removed from the chain using \fIBIO_pop()\fR and freed with \fIBIO_free()\fR until \fBout\fR
174 is reached. If no additional data needs to be written \fIBIO_free_all()\fR can be
175 called to free up the whole chain.
177 Any content written through the filter is used verbatim: no canonical
178 translation is performed.
180 It is possible to chain multiple BIOs to, for example, create a triple wrapped
181 signed, enveloped, signed structure. In this case it is the applications
182 responsibility to set the inner content type of any outer CMS_ContentInfo
185 Large numbers of small writes through the chain should be avoided as this will
186 produce an output consisting of lots of \s-1OCTET STRING\s0 structures. Prepending
187 a \fIBIO_f_buffer()\fR buffering \s-1BIO\s0 will prevent this.
190 There is currently no corresponding inverse \s-1BIO:\s0 i.e. one which can decode
191 a \s-1CMS\s0 structure on the fly.
193 .IX Header "RETURN VALUES"
194 \&\fIBIO_new_CMS()\fR returns a \s-1BIO\s0 chain when successful or \s-1NULL\s0 if an error
195 occurred. The error can be obtained from \fIERR_get_error\fR\|(3).
197 .IX Header "SEE ALSO"
198 \&\fIERR_get_error\fR\|(3), \fICMS_sign\fR\|(3),
199 \&\fICMS_encrypt\fR\|(3)
202 \&\fIBIO_new_CMS()\fR was added to OpenSSL 1.0.0