]> git.ipfire.org Git - thirdparty/openssl.git/blame - doc/man3/SMIME_read_CMS.pod
Fix referenses in section 3 manuals
[thirdparty/openssl.git] / doc / man3 / SMIME_read_CMS.pod
CommitLineData
e33ffaca
DSH
1=pod
2
3=head1 NAME
4
bb9ad09e 5SMIME_read_CMS - parse S/MIME message
e33ffaca
DSH
6
7=head1 SYNOPSIS
8
9 #include <openssl/cms.h>
10
11 CMS_ContentInfo *SMIME_read_CMS(BIO *in, BIO **bcont);
12
13=head1 DESCRIPTION
14
15SMIME_read_CMS() parses a message in S/MIME format.
16
17B<in> is a BIO to read the message from.
18
38d3a738
DSH
19If cleartext signing is used then the content is saved in a memory bio which is
20written to B<*bcont>, otherwise B<*bcont> is set to NULL.
e33ffaca 21
38d3a738 22The parsed CMS_ContentInfo structure is returned or NULL if an
e33ffaca
DSH
23error occurred.
24
25=head1 NOTES
26
38d3a738
DSH
27If B<*bcont> is not NULL then the message is clear text signed. B<*bcont> can
28then be passed to CMS_verify() with the B<CMS_DETACHED> flag set.
e33ffaca
DSH
29
30Otherwise the type of the returned structure can be determined
31using CMS_get0_type().
32
38d3a738
DSH
33To support future functionality if B<bcont> is not NULL B<*bcont> should be
34initialized to NULL. For example:
e33ffaca
DSH
35
36 BIO *cont = NULL;
37 CMS_ContentInfo *cms;
38
39 cms = SMIME_read_CMS(in, &cont);
40
41=head1 BUGS
42
38d3a738
DSH
43The MIME parser used by SMIME_read_CMS() is somewhat primitive. While it will
44handle most S/MIME messages more complex compound formats may not work.
e33ffaca 45
38d3a738
DSH
46The parser assumes that the CMS_ContentInfo structure is always base64 encoded
47and will not handle the case where it is in binary format or uses quoted
48printable format.
e33ffaca 49
38d3a738
DSH
50The use of a memory BIO to hold the signed content limits the size of message
51which can be processed due to memory restraints: a streaming single pass option
52should be available.
e33ffaca
DSH
53
54=head1 RETURN VALUES
55
56SMIME_read_CMS() returns a valid B<CMS_ContentInfo> structure or B<NULL>
57if an error occurred. The error can be obtained from ERR_get_error(3).
58
59=head1 SEE ALSO
60
b97fdb57 61L<ERR_get_error(3)>, L<CMS_type(3)>,
9b86974e 62L<SMIME_read_CMS(3)>, L<CMS_sign(3)>,
b97fdb57 63L<CMS_verify(3)>, L<CMS_encrypt(3)>,
9b86974e 64L<CMS_decrypt(3)>
e33ffaca 65
e2f92610
RS
66=head1 COPYRIGHT
67
68Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
69
70Licensed under the OpenSSL license (the "License"). You may not use
71this file except in compliance with the License. You can obtain a copy
72in the file LICENSE in the source distribution or at
73L<https://www.openssl.org/source/license.html>.
74
75=cut