OpenBSD manual page server

Manual Page Search Parameters

CMS_GET0_TYPE(3) Library Functions Manual CMS_GET0_TYPE(3)

CMS_get0_type, CMS_set1_eContentType, CMS_get0_eContentType, CMS_get0_contentget and set CMS content types and content

#include <openssl/cms.h>

const ASN1_OBJECT *
CMS_get0_type(const CMS_ContentInfo *cms);

int
CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid);

const ASN1_OBJECT *
CMS_get0_eContentType(CMS_ContentInfo *cms);

ASN1_OCTET_STRING **
CMS_get0_content(CMS_ContentInfo *cms);

() returns the content type of the ContentInfo structure cms. The ASN1_OBJECT value returned can be converted to an integer NID value using OBJ_obj2nid(3). The following content types are identified by the following NIDs:

SignedData
EnvelopedData
DigestedData
EncryptedData
AuthenticatedData
CompressedData
arbitrary data

The SignedData, DigestedData, AuthenticatedData, and CompressedData types contain a field encapContentInfo to allow embedding content, and EnvelopedData and EncryptedData contain a field encryptedContentInfo for that purpose. The type of the embedded content to be stored in that field can be set with the function (), to be called on cms structures returned from functions such as CMS_sign(3) or CMS_encrypt(3) with the CMS_PARTIAL flag set and the structure is finalised; otherwise the results are undefined. CMS_set1_eContentType() copies the supplied oid, so it should be freed up after use.

() returns the type of the embedded content.

() returns a pointer to the storage location where the pointer to the embedded content is stored. That means that for example after

ASN1_OCTET_STRING **pconf = CMS_get0_content(cms);

*pconf could be NULL if there is no embedded content. Applications can access, modify or create the embedded content in a CMS_ContentInfo structure using this function. Applications usually will not need to modify the embedded content as it is normally set by higher level functions.

CMS_get0_type() and CMS_get0_eContentType() return internal pointers to OBJECT IDENTIFIER structures.

CMS_get0_content() returns an internal pointer to the storage location where the pointer to the embedded content is stored.

CMS_set1_eContentType() returns 1 for success or 0 if an error occurred. The error can be obtained from ERR_get_error(3).

CMS_ContentInfo_new(3), d2i_CMS_ContentInfo(3), SMIME_read_CMS(3)

RFC 5652: Cryptographic Message Syntax

RFC 3274: Compressed Data Content Type for Cryptographic Message Syntax (CMS)

These functions first appeared in OpenSSL 0.9.8h and have been available since OpenBSD 6.7.

November 2, 2019 OpenBSD-7.0