Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


CMS_get0_type(3)                    OpenSSL                   CMS_get0_type(3)



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

LIBRARY
       libcrypto, -lcrypto

SYNOPSIS
        #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);

DESCRIPTION
       CMS_get0_type() returns the content type of a CMS_ContentInfo structure
       as an 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 (such
       as CMS_sign(3), CMS_encrypt(3)) 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.

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.

RETURN VALUES
       CMS_get0_type() and CMS_get0_eContentType() return an 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)

COPYRIGHT
       Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.

       Licensed under the Apache License 2.0 (the "License").  You may not use
       this file except in compliance with the License.  You can obtain a copy
       in the file LICENSE in the source distribution or at
       <https://www.openssl.org/source/license.html>.



3.0.12                            2023-05-07                  CMS_get0_type(3)