xref: /freebsd/secure/lib/libcrypto/man/man3/CMS_get0_type.3 (revision d4033e6d37747f5213bb245c8e605406703a8766)
-*- mode: troff; coding: utf-8 -*-
Automatically generated by Pod::Man 5.0102 (Pod::Simple 3.45)

Standard preamble:
========================================================================
..
..
.. \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
. ds C` "" . ds C' "" 'br\} . ds C` . ds C' 'br\}
Escape single quotes in literal strings from groff's Unicode transform.

If the F register is >0, we'll generate index entries on stderr for
titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
entries marked with X<> in POD. Of course, you'll have to process the
output yourself in some meaningful fashion.

Avoid warning from groff about undefined register 'F'.
.. .nr rF 0 . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF ========================================================================

Title "CMS_GET0_TYPE 3ossl"
CMS_GET0_TYPE 3ossl 2025-09-30 3.5.4 OpenSSL
For nroff, turn off justification. Always turn off hyphenation; it makes
way too many mistakes in technical documents.
NAME
CMS_get0_type, CMS_set1_eContentType, CMS_get0_eContentType, CMS_get0_content - get and set CMS content types and content
SYNOPSIS
Header "SYNOPSIS" .Vb 1 #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); .Ve
DESCRIPTION
Header "DESCRIPTION" \fBCMS_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.

\fBCMS_set1_eContentType() sets the embedded content type of a CMS_ContentInfo structure. It should be called with CMS functions (such as CMS_sign\|(3), \fBCMS_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.

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

NOTES
Header "NOTES" As the 0 implies CMS_get0_type(), CMS_get0_eContentType() and \fBCMS_get0_content() return internal pointers which should not be freed up. \fBCMS_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:

.Vb 6 NID_pkcs7_data NID_pkcs7_signed NID_pkcs7_digest NID_id_smime_ct_compressedData: NID_pkcs7_encrypted NID_pkcs7_enveloped .Ve

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

.Vb 1 ASN1_OCTET_STRING **pconf = CMS_get0_content(cms); .Ve

\fB*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"
Header "RETURN VALUES" \fBCMS_get0_type() and CMS_get0_eContentType() return an ASN1_OBJECT structure.

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

"SEE ALSO"
Header "SEE ALSO" \fBERR_get_error\|(3)
COPYRIGHT
Header "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>.