Manual Page Result
0
Command: SMIME_read_CMS | Section: 3 | Source: OpenBSD | File: SMIME_read_CMS.3
SMIME_READ_CMS(3) FreeBSD Library Functions Manual SMIME_READ_CMS(3)
NAME
SMIME_read_CMS - extract CMS ContentInfo from an 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 from in.
If the message uses cleartext signing, the content is saved in a memory
BIO which is written to *bcont and which can then be passed to
CMS_verify(3) with the CMS_DETACHED flag set. Otherwise, *bcont is set
to NULL and the type of the returned structure can be determined using
CMS_get0_type(3).
To support future functionality if bcont is not NULL, *bcont should be
initialized to NULL, for example:
BIO *cont = NULL;
CMS_ContentInfo *cms = SMIME_read_CMS(in, &cont);
RETURN VALUES
SMIME_read_CMS() returns a valid CMS_ContentInfo structure or NULL if an
error occurred. The error can be obtained from ERR_get_error(3).
SEE ALSO
CMS_ContentInfo_new(3), CMS_decrypt(3), CMS_get0_type(3), CMS_verify(3),
d2i_CMS_ContentInfo(3), SMIME_read_ASN1(3), SMIME_write_CMS(3)
HISTORY
SMIME_read_CMS() first appeared in OpenSSL 0.9.8h and has been available
since OpenBSD 6.7.
BUGS
The MIME 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 the
message which can be processed due to memory restraints: a streaming
single pass option should be available.
FreeBSD 14.1-RELEASE-p8 December 14, 2021 FreeBSD 14.1-RELEASE-p8