CMS_GET0_TYPE(3ossl)
β¨ NAME β¨
okay bestie, this is the OpenSSL manual page CMS_GET0_TYPE(3ossl) β and the main characters are:
CMS_get0_type,CMS_set1_eContentType,CMS_get0_eContentType,CMS_get0_contentβ get and set CMS content types and content. periodt π
π SYNOPSIS π
copy these exactly, no improv bestie:
#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() hands you the content type of a CMS_ContentInfo structure as an ASN1_OBJECT pointer. then your application can decide how to process the CMS_ContentInfo structure based on this value. iykyk β¨
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. like, undefined, bestie, do not play with that π«
ASN1_OBJECT *CMS_get0_eContentType() returns a pointer to the embedded content type. cute.
CMS_get0_content() returns a pointer to the ASN1_OCTET_STRING pointer containing the embedded content. that's the vibe π
π§ NOTES π§
the 0 in the name is doing important lore work: CMS_get0_type(), CMS_get0_eContentType() and CMS_get0_content() return internal pointers which should not be freed up. no cap, do not free them π«ποΈ
CMS_set1_eContentType() copies the supplied OID, and it should be freed up after use. so that one is your cleanup problem, bestie π§Ή
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. literally that's the return π¦
CMS_set1_eContentType() returns 1 for success or 0 if an error occurred. the error can be obtained from ERR_get_error(3). slay when it's 1, go check the error tea when it's 0 π
π SEE ALSO π
ERR_get_error(3)β bestie, go here for the error tea. π
π 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>.
xoxo, your Unix bestie π β this page is from OpenSSL 3.5.6, dated 2026-04-07, manual name CMS_GET0_TYPE(3ossl).
π¦ where this page comes from
- freebsd 15.1: base 15.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms