SMIME_read_CMS (3)
Leading comments
Automatically generated by Pod::Man 4.07 (Pod::Simple 3.32) Standard preamble: ========================================================================
NAME
SMIME_read_CMS - parse S/MIME message.
SYNOPSIS
#include <openssl/cms.h> CMS_ContentInfo *SMIME_read_CMS(BIO *in, BIO **bcont);
DESCRIPTION
SMIME_read_CMS() parses a message in S/MIME format.in is a
BIO
to read the message from.
If cleartext signing is used then the content is saved in a memory bio which is written to *bcont, otherwise *bcont is set to
NULL.
The parsed CMS_ContentInfo structure is returned or
NULL
if an
error occurred.
NOTES
If *bcont is notNULL
then the message is clear text signed. *bcont can
then be passed to CMS_verify() with the CMS_DETACHED
flag set.
Otherwise the type of the returned structure can be determined using CMS_get0_type().
To support future functionality if bcont is not
NULL
*bcont should be
initialized to NULL.
For example:
BIO *cont = NULL; CMS_ContentInfo *cms; cms = SMIME_read_CMS(in, &cont);
BUGS
TheMIME
parser used by SMIME_read_CMS() is somewhat primitive. While it will
handle most S/MIME messages more complex compound formats may not work.
The parser assumes that the CMS_ContentInfo structure is always base64 encoded and will not handle the case where it is in binary format or uses quoted printable format.
The use of a memory
BIO
to hold the signed content limits the size of message
which can be processed due to memory restraints: a streaming single pass option
should be available.
RETURN VALUES
SMIME_read_CMS() returns a valid CMS_ContentInfo structure orNULL
if an error occurred. The error can be obtained from ERR_get_error(3).