Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

CMS_get0_type (3openssl)

Name

CMS_get0_type - get and set CMS content types and content

Synopsis

#include <openssl/cms.h>

const ASN1_OBJECT *CMS_get0_type(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);

Description

CMS_get0_type(3openssl)             OpenSSL            CMS_get0_type(3openssl)



NAME
        CMS_get0_type, CMS_set1_eContentType, CMS_get0_eContentType, CMS_get0_content - get and set CMS content types and content

SYNOPSIS
        #include <openssl/cms.h>

        const ASN1_OBJECT *CMS_get0_type(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);

DESCRIPTION
       CMS_get0_type() returns the content type of a CMS_ContentInfo structure
       as and ASN1_OBJECT pointer. An application can then decide how to
       process the CMS_ContentInfo structure based on this value.

       CMS_set1_eContentType() sets the embedded content type of a
       CMS_ContentInfo structure. It should be called with CMS functions with
       the CMS_PARTIAL flag and before the structure is finalised, otherwise
       the results are undefined.

       ASN1_OBJECT *CMS_get0_eContentType() returns a pointer to the embedded
       content type.

       CMS_get0_content() returns a pointer to the ASN1_OCTET_STRING pointer
       containing the embedded content.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+--------------------------+
       |ATTRIBUTE TYPE |     ATTRIBUTE VALUE      |
       +---------------+--------------------------+
       |Availability   | library/security/openssl |
       +---------------+--------------------------+
       |Stability      | Pass-through uncommitted |
       +---------------+--------------------------+

NOTES
       As the 0 implies CMS_get0_type(), CMS_get0_eContentType() and
       CMS_get0_content() return internal pointers which should not be freed
       up.  CMS_set1_eContentType() copies the supplied OID and it should be
       freed up after use.

       The ASN1_OBJECT values returned can be converted to an integer NID
       value using OBJ_obj2nid(). For the currently supported content types
       the following values are returned:

        NID_pkcs7_data
        NID_pkcs7_signed
        NID_pkcs7_digest
        NID_id_smime_ct_compressedData:
        NID_pkcs7_encrypted
        NID_pkcs7_enveloped

       The return value of CMS_get0_content() is a pointer to the
       ASN1_OCTET_STRING content pointer. That means that for example:

        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.

       Source code for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This software was built from source available at
       https://github.com/oracle/solaris-userland.  The original community
       source was downloaded from
       https://www.openssl.org/source/openssl-1.0.2ze.tar.gz.

       Further information about this software can be found on the open source
       community website at https://www.openssl.org/.

RETURN VALUES
       CMS_get0_type() and CMS_get0_eContentType() return and ASN1_OBJECT
       structure.

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

SEE ALSO
       ERR_get_error(3)

HISTORY
       CMS_get0_type(), CMS_set1_eContentType() and CMS_get0_eContentType()
       were all first added to OpenSSL 0.9.8




1.0.2ze                           2022-05-03           CMS_get0_type(3openssl)