Sortix nightly manual
This manual documents Sortix nightly, a development build that has not been officially released. You can instead view this document in the latest official manual.
|SMIME_READ_CMS(3)||Library Functions Manual||SMIME_READ_CMS(3)|
extract CMS ContentInfo from an S/MIME message
#include <openssl/cms.h>CMS_ContentInfo *
SMIME_read_CMS(BIO *in, BIO **bcont);
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_DETACHEDflag set. Otherwise, *bcont is set to
NULLand 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);
SMIME_read_CMS() returns a valid CMS_ContentInfo structure or
NULLif an error occurred. The error can be obtained from ERR_get_error(3). 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)
SMIME_read_CMS() first appeared in OpenSSL 0.9.8h and has been available since OpenBSD 6.7.
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.
|December 14, 2021||Debian|