netinet{,6}: Assert in{,6}_inithead() are only used for system routing tables.
[dragonfly.git] / secure / lib / libcrypto / man / SMIME_read_CMS.3
CommitLineData
5a44c043 1.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
01185282
PA
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sp \" Vertical space (when we can't use .PP)
6.if t .sp .5v
7.if n .sp
8..
9.de Vb \" Begin verbatim text
10.ft CW
11.nf
12.ne \\$1
13..
14.de Ve \" End verbatim text
15.ft R
16.fi
17..
18.\" Set up some character translations and predefined strings. \*(-- will
19.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20.\" double quote, and \*(R" will give a right double quote. \*(C+ will
21.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
22.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
23.\" nothing in troff, for use with C<>.
24.tr \(*W-
25.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26.ie n \{\
27. ds -- \(*W-
28. ds PI pi
29. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
31. ds L" ""
32. ds R" ""
33. ds C` ""
34. ds C' ""
35'br\}
36.el\{\
37. ds -- \|\(em\|
38. ds PI \(*p
39. ds L" ``
40. ds R" ''
5a44c043
SW
41. ds C`
42. ds C'
01185282
PA
43'br\}
44.\"
45.\" Escape single quotes in literal strings from groff's Unicode transform.
46.ie \n(.g .ds Aq \(aq
47.el .ds Aq '
48.\"
49.\" If the F register is turned on, we'll generate index entries on stderr for
50.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
51.\" entries marked with X<> in POD. Of course, you'll have to process the
52.\" output yourself in some meaningful fashion.
5a44c043
SW
53.\"
54.\" Avoid warning from groff about undefined register 'F'.
55.de IX
01185282 56..
5a44c043
SW
57.nr rF 0
58.if \n(.g .if rF .nr rF 1
59.if (\n(rF:(\n(.g==0)) \{
60. if \nF \{
61. de IX
62. tm Index:\\$1\t\\n%\t"\\$2"
01185282 63..
5a44c043
SW
64. if !\nF==2 \{
65. nr % 0
66. nr F 2
67. \}
68. \}
01185282 69.\}
5a44c043 70.rr rF
01185282
PA
71.\"
72.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
73.\" Fear. Run. Save yourself. No user-serviceable parts.
74. \" fudge factors for nroff and troff
75.if n \{\
76. ds #H 0
77. ds #V .8m
78. ds #F .3m
79. ds #[ \f1
80. ds #] \fP
81.\}
82.if t \{\
83. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
84. ds #V .6m
85. ds #F 0
86. ds #[ \&
87. ds #] \&
88.\}
89. \" simple accents for nroff and troff
90.if n \{\
91. ds ' \&
92. ds ` \&
93. ds ^ \&
94. ds , \&
95. ds ~ ~
96. ds /
97.\}
98.if t \{\
99. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
100. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
101. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
102. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
103. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
104. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
105.\}
106. \" troff and (daisy-wheel) nroff accents
107.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
108.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
109.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
110.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
111.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
112.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
113.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
114.ds ae a\h'-(\w'a'u*4/10)'e
115.ds Ae A\h'-(\w'A'u*4/10)'E
116. \" corrections for vroff
117.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
118.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
119. \" for low resolution devices (crt and lpr)
120.if \n(.H>23 .if \n(.V>19 \
121\{\
122. ds : e
123. ds 8 ss
124. ds o a
125. ds d- d\h'-1'\(ga
126. ds D- D\h'-1'\(hy
127. ds th \o'bp'
128. ds Th \o'LP'
129. ds ae ae
130. ds Ae AE
131.\}
132.rm #[ #] #H #V #F C
133.\" ========================================================================
134.\"
135.IX Title "SMIME_read_CMS 3"
7dc78669 136.TH SMIME_read_CMS 3 "2015-07-09" "1.0.1p" "OpenSSL"
01185282
PA
137.\" For nroff, turn off justification. Always turn off hyphenation; it makes
138.\" way too many mistakes in technical documents.
139.if n .ad l
140.nh
141.SH "NAME"
142.Vb 1
143\& SMIME_read_CMS \- parse S/MIME message.
144.Ve
145.SH "SYNOPSIS"
146.IX Header "SYNOPSIS"
147.Vb 1
148\& #include <openssl/cms.h>
149\&
150\& CMS_ContentInfo *SMIME_read_CMS(BIO *in, BIO **bcont);
151.Ve
152.SH "DESCRIPTION"
153.IX Header "DESCRIPTION"
154\&\fISMIME_read_CMS()\fR parses a message in S/MIME format.
155.PP
156\&\fBin\fR is a \s-1BIO\s0 to read the message from.
157.PP
158If cleartext signing is used then the content is saved in a memory bio which is
5a44c043 159written to \fB*bcont\fR, otherwise \fB*bcont\fR is set to \s-1NULL.\s0
01185282
PA
160.PP
161The parsed CMS_ContentInfo structure is returned or \s-1NULL\s0 if an
162error occurred.
163.SH "NOTES"
164.IX Header "NOTES"
165If \fB*bcont\fR is not \s-1NULL\s0 then the message is clear text signed. \fB*bcont\fR can
166then be passed to \fICMS_verify()\fR with the \fB\s-1CMS_DETACHED\s0\fR flag set.
167.PP
168Otherwise the type of the returned structure can be determined
169using \fICMS_get0_type()\fR.
170.PP
5a44c043
SW
171To support future functionality if \fBbcont\fR is not \s-1NULL \s0\fB*bcont\fR should be
172initialized to \s-1NULL.\s0 For example:
01185282
PA
173.PP
174.Vb 2
175\& BIO *cont = NULL;
176\& CMS_ContentInfo *cms;
177\&
178\& cms = SMIME_read_CMS(in, &cont);
179.Ve
180.SH "BUGS"
181.IX Header "BUGS"
182The \s-1MIME\s0 parser used by \fISMIME_read_CMS()\fR is somewhat primitive. While it will
183handle most S/MIME messages more complex compound formats may not work.
184.PP
185The parser assumes that the CMS_ContentInfo structure is always base64 encoded
186and will not handle the case where it is in binary format or uses quoted
187printable format.
188.PP
189The use of a memory \s-1BIO\s0 to hold the signed content limits the size of message
190which can be processed due to memory restraints: a streaming single pass option
191should be available.
192.SH "RETURN VALUES"
193.IX Header "RETURN VALUES"
194\&\fISMIME_read_CMS()\fR returns a valid \fBCMS_ContentInfo\fR structure or \fB\s-1NULL\s0\fR
195if an error occurred. The error can be obtained from \fIERR_get_error\fR\|(3).
196.SH "SEE ALSO"
197.IX Header "SEE ALSO"
198\&\fIERR_get_error\fR\|(3), \fICMS_type\fR\|(3)
199\&\fISMIME_read_CMS\fR\|(3), \fICMS_sign\fR\|(3),
200\&\fICMS_verify\fR\|(3), \fICMS_encrypt\fR\|(3)
201\&\fICMS_decrypt\fR\|(3)
202.SH "HISTORY"
203.IX Header "HISTORY"
204\&\fISMIME_read_CMS()\fR was added to OpenSSL 0.9.8