]>
Commit | Line | Data |
---|---|---|
e33ffaca DSH |
1 | =pod |
2 | ||
3 | =head1 NAME | |
4 | ||
e3013932 | 5 | CMS_get0_type, CMS_set1_eContentType, CMS_get0_eContentType, CMS_get0_content - get and set CMS content types and content |
e33ffaca DSH |
6 | |
7 | =head1 SYNOPSIS | |
8 | ||
9 | #include <openssl/cms.h> | |
10 | ||
11 | const ASN1_OBJECT *CMS_get0_type(CMS_ContentInfo *cms); | |
12 | int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid); | |
13 | const ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms); | |
e3013932 | 14 | ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms); |
e33ffaca DSH |
15 | |
16 | =head1 DESCRIPTION | |
17 | ||
18 | CMS_get0_type() returns the content type of a CMS_ContentInfo structure as | |
19 | and ASN1_OBJECT pointer. An application can then decide how to process the | |
c420fab5 | 20 | CMS_ContentInfo structure based on this value. |
e33ffaca DSH |
21 | |
22 | CMS_set1_eContentType() sets the embedded content type of a CMS_ContentInfo | |
23 | structure. It should be called with CMS functions with the B<CMS_PARTIAL> | |
c420fab5 | 24 | flag and B<before> the structure is finalised, otherwise the results are |
e33ffaca DSH |
25 | undefined. |
26 | ||
27 | ASN1_OBJECT *CMS_get0_eContentType() returns a pointer to the embedded | |
28 | content type. | |
29 | ||
e3013932 DSH |
30 | CMS_get0_content() returns a pointer to the B<ASN1_OCTET_STRING> pointer |
31 | containing the embedded content. | |
32 | ||
e33ffaca DSH |
33 | =head1 NOTES |
34 | ||
e3013932 DSH |
35 | As the B<0> implies CMS_get0_type(), CMS_get0_eContentType() and |
36 | CMS_get0_content() return internal pointers which should B<not> be freed up. | |
37 | CMS_set1_eContentType() copies the supplied OID and it B<should> be freed up | |
38 | after use. | |
e33ffaca DSH |
39 | |
40 | The B<ASN1_OBJECT> values returned can be converted to an integer B<NID> value | |
41 | using OBJ_obj2nid(). For the currently supported content types the following | |
42 | values are returned: | |
43 | ||
44 | NID_pkcs7_data | |
45 | NID_pkcs7_signed | |
46 | NID_pkcs7_digest | |
47 | NID_id_smime_ct_compressedData: | |
48 | NID_pkcs7_encrypted | |
49 | NID_pkcs7_enveloped | |
50 | ||
e3013932 DSH |
51 | The return value of CMS_get0_content() is a pointer to the B<ASN1_OCTET_STRING> |
52 | content pointer. That means that for example: | |
53 | ||
54 | ASN1_OCTET_STRING **pconf = CMS_get0_content(cms); | |
55 | ||
56 | B<*pconf> could be NULL if there is no embedded content. Applications can | |
57 | access, modify or create the embedded content in a B<CMS_ContentInfo> structure | |
58 | using this function. Applications usually will not need to modify the | |
59 | embedded content as it is normally set by higher level functions. | |
e33ffaca DSH |
60 | |
61 | =head1 RETURN VALUES | |
62 | ||
63 | CMS_get0_type() and CMS_get0_eContentType() return and ASN1_OBJECT structure. | |
64 | ||
65 | CMS_set1_eContentType() returns 1 for success or 0 if an error occurred. The | |
66 | error can be obtained from ERR_get_error(3). | |
67 | ||
68 | =head1 SEE ALSO | |
69 | ||
9b86974e | 70 | L<ERR_get_error(3)> |
e33ffaca DSH |
71 | |
72 | =head1 HISTORY | |
73 | ||
74 | CMS_get0_type(), CMS_set1_eContentType() and CMS_get0_eContentType() were all | |
75 | first added to OpenSSL 0.9.8 | |
76 | ||
77 | =cut |