File indexing completed on 2026-09-13 09:18:30
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef OPENSSL_CMS_H
0018 #define OPENSSL_CMS_H
0019 #pragma once
0020
0021 #include <openssl/macros.h>
0022 #ifndef OPENSSL_NO_DEPRECATED_3_0
0023 #define HEADER_CMS_H
0024 #endif
0025
0026 #include <openssl/opensslconf.h>
0027
0028 #ifndef OPENSSL_NO_CMS
0029 #include <openssl/x509.h>
0030 #include <openssl/x509v3.h>
0031 #include <openssl/cmserr.h>
0032 #ifdef __cplusplus
0033 extern "C" {
0034 #endif
0035
0036 typedef struct CMS_EnvelopedData_st CMS_EnvelopedData;
0037 typedef struct CMS_ContentInfo_st CMS_ContentInfo;
0038 typedef struct CMS_SignerInfo_st CMS_SignerInfo;
0039 typedef struct CMS_SignedData_st CMS_SignedData;
0040 typedef struct CMS_CertificateChoices CMS_CertificateChoices;
0041 typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice;
0042 typedef struct CMS_RecipientInfo_st CMS_RecipientInfo;
0043 typedef struct CMS_ReceiptRequest_st CMS_ReceiptRequest;
0044 typedef struct CMS_Receipt_st CMS_Receipt;
0045 typedef struct CMS_RecipientEncryptedKey_st CMS_RecipientEncryptedKey;
0046 typedef struct CMS_OtherKeyAttribute_st CMS_OtherKeyAttribute;
0047
0048
0049 SKM_DEFINE_STACK_OF_INTERNAL(CMS_SignerInfo, CMS_SignerInfo, CMS_SignerInfo)
0050 #define sk_CMS_SignerInfo_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_SignerInfo_sk_type(sk))
0051 #define sk_CMS_SignerInfo_value(sk, idx) ((CMS_SignerInfo *)OPENSSL_sk_value(ossl_check_const_CMS_SignerInfo_sk_type(sk), (idx)))
0052 #define sk_CMS_SignerInfo_new(cmp) ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_new(ossl_check_CMS_SignerInfo_compfunc_type(cmp)))
0053 #define sk_CMS_SignerInfo_new_null() ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_new_null())
0054 #define sk_CMS_SignerInfo_new_reserve(cmp, n) ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_new_reserve(ossl_check_CMS_SignerInfo_compfunc_type(cmp), (n)))
0055 #define sk_CMS_SignerInfo_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_SignerInfo_sk_type(sk), (n))
0056 #define sk_CMS_SignerInfo_free(sk) OPENSSL_sk_free(ossl_check_CMS_SignerInfo_sk_type(sk))
0057 #define sk_CMS_SignerInfo_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_SignerInfo_sk_type(sk))
0058 #define sk_CMS_SignerInfo_delete(sk, i) ((CMS_SignerInfo *)OPENSSL_sk_delete(ossl_check_CMS_SignerInfo_sk_type(sk), (i)))
0059 #define sk_CMS_SignerInfo_delete_ptr(sk, ptr) ((CMS_SignerInfo *)OPENSSL_sk_delete_ptr(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr)))
0060 #define sk_CMS_SignerInfo_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr))
0061 #define sk_CMS_SignerInfo_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr))
0062 #define sk_CMS_SignerInfo_pop(sk) ((CMS_SignerInfo *)OPENSSL_sk_pop(ossl_check_CMS_SignerInfo_sk_type(sk)))
0063 #define sk_CMS_SignerInfo_shift(sk) ((CMS_SignerInfo *)OPENSSL_sk_shift(ossl_check_CMS_SignerInfo_sk_type(sk)))
0064 #define sk_CMS_SignerInfo_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_freefunc_type(freefunc))
0065 #define sk_CMS_SignerInfo_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr), (idx))
0066 #define sk_CMS_SignerInfo_set(sk, idx, ptr) ((CMS_SignerInfo *)OPENSSL_sk_set(ossl_check_CMS_SignerInfo_sk_type(sk), (idx), ossl_check_CMS_SignerInfo_type(ptr)))
0067 #define sk_CMS_SignerInfo_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr))
0068 #define sk_CMS_SignerInfo_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr))
0069 #define sk_CMS_SignerInfo_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr), pnum)
0070 #define sk_CMS_SignerInfo_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_SignerInfo_sk_type(sk))
0071 #define sk_CMS_SignerInfo_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_SignerInfo_sk_type(sk))
0072 #define sk_CMS_SignerInfo_dup(sk) ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_dup(ossl_check_const_CMS_SignerInfo_sk_type(sk)))
0073 #define sk_CMS_SignerInfo_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_SignerInfo) *)OPENSSL_sk_deep_copy(ossl_check_const_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_copyfunc_type(copyfunc), ossl_check_CMS_SignerInfo_freefunc_type(freefunc)))
0074 #define sk_CMS_SignerInfo_set_cmp_func(sk, cmp) ((sk_CMS_SignerInfo_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_compfunc_type(cmp)))
0075 SKM_DEFINE_STACK_OF_INTERNAL(CMS_RecipientEncryptedKey, CMS_RecipientEncryptedKey, CMS_RecipientEncryptedKey)
0076 #define sk_CMS_RecipientEncryptedKey_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk))
0077 #define sk_CMS_RecipientEncryptedKey_value(sk, idx) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_value(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk), (idx)))
0078 #define sk_CMS_RecipientEncryptedKey_new(cmp) ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_new(ossl_check_CMS_RecipientEncryptedKey_compfunc_type(cmp)))
0079 #define sk_CMS_RecipientEncryptedKey_new_null() ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_new_null())
0080 #define sk_CMS_RecipientEncryptedKey_new_reserve(cmp, n) ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_new_reserve(ossl_check_CMS_RecipientEncryptedKey_compfunc_type(cmp), (n)))
0081 #define sk_CMS_RecipientEncryptedKey_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), (n))
0082 #define sk_CMS_RecipientEncryptedKey_free(sk) OPENSSL_sk_free(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk))
0083 #define sk_CMS_RecipientEncryptedKey_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk))
0084 #define sk_CMS_RecipientEncryptedKey_delete(sk, i) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_delete(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), (i)))
0085 #define sk_CMS_RecipientEncryptedKey_delete_ptr(sk, ptr) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_delete_ptr(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr)))
0086 #define sk_CMS_RecipientEncryptedKey_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr))
0087 #define sk_CMS_RecipientEncryptedKey_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr))
0088 #define sk_CMS_RecipientEncryptedKey_pop(sk) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_pop(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk)))
0089 #define sk_CMS_RecipientEncryptedKey_shift(sk) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_shift(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk)))
0090 #define sk_CMS_RecipientEncryptedKey_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_freefunc_type(freefunc))
0091 #define sk_CMS_RecipientEncryptedKey_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr), (idx))
0092 #define sk_CMS_RecipientEncryptedKey_set(sk, idx, ptr) ((CMS_RecipientEncryptedKey *)OPENSSL_sk_set(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), (idx), ossl_check_CMS_RecipientEncryptedKey_type(ptr)))
0093 #define sk_CMS_RecipientEncryptedKey_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr))
0094 #define sk_CMS_RecipientEncryptedKey_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr))
0095 #define sk_CMS_RecipientEncryptedKey_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr), pnum)
0096 #define sk_CMS_RecipientEncryptedKey_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk))
0097 #define sk_CMS_RecipientEncryptedKey_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk))
0098 #define sk_CMS_RecipientEncryptedKey_dup(sk) ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_dup(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk)))
0099 #define sk_CMS_RecipientEncryptedKey_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_RecipientEncryptedKey) *)OPENSSL_sk_deep_copy(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_copyfunc_type(copyfunc), ossl_check_CMS_RecipientEncryptedKey_freefunc_type(freefunc)))
0100 #define sk_CMS_RecipientEncryptedKey_set_cmp_func(sk, cmp) ((sk_CMS_RecipientEncryptedKey_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_compfunc_type(cmp)))
0101 SKM_DEFINE_STACK_OF_INTERNAL(CMS_RecipientInfo, CMS_RecipientInfo, CMS_RecipientInfo)
0102 #define sk_CMS_RecipientInfo_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_RecipientInfo_sk_type(sk))
0103 #define sk_CMS_RecipientInfo_value(sk, idx) ((CMS_RecipientInfo *)OPENSSL_sk_value(ossl_check_const_CMS_RecipientInfo_sk_type(sk), (idx)))
0104 #define sk_CMS_RecipientInfo_new(cmp) ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_new(ossl_check_CMS_RecipientInfo_compfunc_type(cmp)))
0105 #define sk_CMS_RecipientInfo_new_null() ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_new_null())
0106 #define sk_CMS_RecipientInfo_new_reserve(cmp, n) ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_new_reserve(ossl_check_CMS_RecipientInfo_compfunc_type(cmp), (n)))
0107 #define sk_CMS_RecipientInfo_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_RecipientInfo_sk_type(sk), (n))
0108 #define sk_CMS_RecipientInfo_free(sk) OPENSSL_sk_free(ossl_check_CMS_RecipientInfo_sk_type(sk))
0109 #define sk_CMS_RecipientInfo_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_RecipientInfo_sk_type(sk))
0110 #define sk_CMS_RecipientInfo_delete(sk, i) ((CMS_RecipientInfo *)OPENSSL_sk_delete(ossl_check_CMS_RecipientInfo_sk_type(sk), (i)))
0111 #define sk_CMS_RecipientInfo_delete_ptr(sk, ptr) ((CMS_RecipientInfo *)OPENSSL_sk_delete_ptr(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr)))
0112 #define sk_CMS_RecipientInfo_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr))
0113 #define sk_CMS_RecipientInfo_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr))
0114 #define sk_CMS_RecipientInfo_pop(sk) ((CMS_RecipientInfo *)OPENSSL_sk_pop(ossl_check_CMS_RecipientInfo_sk_type(sk)))
0115 #define sk_CMS_RecipientInfo_shift(sk) ((CMS_RecipientInfo *)OPENSSL_sk_shift(ossl_check_CMS_RecipientInfo_sk_type(sk)))
0116 #define sk_CMS_RecipientInfo_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_freefunc_type(freefunc))
0117 #define sk_CMS_RecipientInfo_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr), (idx))
0118 #define sk_CMS_RecipientInfo_set(sk, idx, ptr) ((CMS_RecipientInfo *)OPENSSL_sk_set(ossl_check_CMS_RecipientInfo_sk_type(sk), (idx), ossl_check_CMS_RecipientInfo_type(ptr)))
0119 #define sk_CMS_RecipientInfo_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr))
0120 #define sk_CMS_RecipientInfo_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr))
0121 #define sk_CMS_RecipientInfo_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr), pnum)
0122 #define sk_CMS_RecipientInfo_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_RecipientInfo_sk_type(sk))
0123 #define sk_CMS_RecipientInfo_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_RecipientInfo_sk_type(sk))
0124 #define sk_CMS_RecipientInfo_dup(sk) ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_dup(ossl_check_const_CMS_RecipientInfo_sk_type(sk)))
0125 #define sk_CMS_RecipientInfo_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_RecipientInfo) *)OPENSSL_sk_deep_copy(ossl_check_const_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_copyfunc_type(copyfunc), ossl_check_CMS_RecipientInfo_freefunc_type(freefunc)))
0126 #define sk_CMS_RecipientInfo_set_cmp_func(sk, cmp) ((sk_CMS_RecipientInfo_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_compfunc_type(cmp)))
0127 SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, CMS_RevocationInfoChoice)
0128 #define sk_CMS_RevocationInfoChoice_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk))
0129 #define sk_CMS_RevocationInfoChoice_value(sk, idx) ((CMS_RevocationInfoChoice *)OPENSSL_sk_value(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk), (idx)))
0130 #define sk_CMS_RevocationInfoChoice_new(cmp) ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_new(ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp)))
0131 #define sk_CMS_RevocationInfoChoice_new_null() ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_new_null())
0132 #define sk_CMS_RevocationInfoChoice_new_reserve(cmp, n) ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_new_reserve(ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp), (n)))
0133 #define sk_CMS_RevocationInfoChoice_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), (n))
0134 #define sk_CMS_RevocationInfoChoice_free(sk) OPENSSL_sk_free(ossl_check_CMS_RevocationInfoChoice_sk_type(sk))
0135 #define sk_CMS_RevocationInfoChoice_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_RevocationInfoChoice_sk_type(sk))
0136 #define sk_CMS_RevocationInfoChoice_delete(sk, i) ((CMS_RevocationInfoChoice *)OPENSSL_sk_delete(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), (i)))
0137 #define sk_CMS_RevocationInfoChoice_delete_ptr(sk, ptr) ((CMS_RevocationInfoChoice *)OPENSSL_sk_delete_ptr(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr)))
0138 #define sk_CMS_RevocationInfoChoice_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr))
0139 #define sk_CMS_RevocationInfoChoice_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr))
0140 #define sk_CMS_RevocationInfoChoice_pop(sk) ((CMS_RevocationInfoChoice *)OPENSSL_sk_pop(ossl_check_CMS_RevocationInfoChoice_sk_type(sk)))
0141 #define sk_CMS_RevocationInfoChoice_shift(sk) ((CMS_RevocationInfoChoice *)OPENSSL_sk_shift(ossl_check_CMS_RevocationInfoChoice_sk_type(sk)))
0142 #define sk_CMS_RevocationInfoChoice_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_freefunc_type(freefunc))
0143 #define sk_CMS_RevocationInfoChoice_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr), (idx))
0144 #define sk_CMS_RevocationInfoChoice_set(sk, idx, ptr) ((CMS_RevocationInfoChoice *)OPENSSL_sk_set(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), (idx), ossl_check_CMS_RevocationInfoChoice_type(ptr)))
0145 #define sk_CMS_RevocationInfoChoice_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr))
0146 #define sk_CMS_RevocationInfoChoice_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr))
0147 #define sk_CMS_RevocationInfoChoice_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr), pnum)
0148 #define sk_CMS_RevocationInfoChoice_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_RevocationInfoChoice_sk_type(sk))
0149 #define sk_CMS_RevocationInfoChoice_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk))
0150 #define sk_CMS_RevocationInfoChoice_dup(sk) ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_dup(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk)))
0151 #define sk_CMS_RevocationInfoChoice_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_RevocationInfoChoice) *)OPENSSL_sk_deep_copy(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_copyfunc_type(copyfunc), ossl_check_CMS_RevocationInfoChoice_freefunc_type(freefunc)))
0152 #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp)))
0153
0154
0155
0156 DECLARE_ASN1_ITEM(CMS_EnvelopedData)
0157 DECLARE_ASN1_ALLOC_FUNCTIONS(CMS_SignedData)
0158 DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo)
0159 DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest)
0160 DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo)
0161
0162 DECLARE_ASN1_DUP_FUNCTION(CMS_EnvelopedData)
0163
0164 CMS_ContentInfo *CMS_ContentInfo_new_ex(OSSL_LIB_CTX *libctx, const char *propq);
0165
0166 #define CMS_SIGNERINFO_ISSUER_SERIAL 0
0167 #define CMS_SIGNERINFO_KEYIDENTIFIER 1
0168
0169 #define CMS_RECIPINFO_NONE -1
0170 #define CMS_RECIPINFO_TRANS 0
0171 #define CMS_RECIPINFO_AGREE 1
0172 #define CMS_RECIPINFO_KEK 2
0173 #define CMS_RECIPINFO_PASS 3
0174 #define CMS_RECIPINFO_OTHER 4
0175 #define CMS_RECIPINFO_KEM 5
0176
0177
0178
0179 #define CMS_TEXT 0x1
0180 #define CMS_NOCERTS 0x2
0181 #define CMS_NO_CONTENT_VERIFY 0x4
0182 #define CMS_NO_ATTR_VERIFY 0x8
0183 #define CMS_NOSIGS \
0184 (CMS_NO_CONTENT_VERIFY | CMS_NO_ATTR_VERIFY)
0185 #define CMS_NOINTERN 0x10
0186 #define CMS_NO_SIGNER_CERT_VERIFY 0x20
0187 #define CMS_NOVERIFY 0x20
0188 #define CMS_DETACHED 0x40
0189 #define CMS_BINARY 0x80
0190 #define CMS_NOATTR 0x100
0191 #define CMS_NOSMIMECAP 0x200
0192 #define CMS_NOOLDMIMETYPE 0x400
0193 #define CMS_CRLFEOL 0x800
0194 #define CMS_STREAM 0x1000
0195 #define CMS_NOCRL 0x2000
0196 #define CMS_PARTIAL 0x4000
0197 #define CMS_REUSE_DIGEST 0x8000
0198 #define CMS_USE_KEYID 0x10000
0199 #define CMS_DEBUG_DECRYPT 0x20000
0200 #define CMS_KEY_PARAM 0x40000
0201 #define CMS_ASCIICRLF 0x80000
0202 #define CMS_CADES 0x100000
0203 #define CMS_USE_ORIGINATOR_KEYID 0x200000
0204 #define CMS_NO_SIGNING_TIME 0x400000
0205
0206 const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms);
0207
0208 BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont);
0209 int CMS_dataFinal(CMS_ContentInfo *cms, BIO *bio);
0210
0211 ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms);
0212 int CMS_is_detached(CMS_ContentInfo *cms);
0213 int CMS_set_detached(CMS_ContentInfo *cms, int detached);
0214
0215 #ifdef OPENSSL_PEM_H
0216 DECLARE_PEM_rw(CMS, CMS_ContentInfo)
0217 #endif
0218 int CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms);
0219 CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms);
0220 int i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms);
0221
0222 BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms);
0223 int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int flags);
0224 int PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in,
0225 int flags);
0226 CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont);
0227 CMS_ContentInfo *SMIME_read_CMS_ex(BIO *bio, int flags, BIO **bcont, CMS_ContentInfo **ci);
0228 int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags);
0229
0230 int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont,
0231 unsigned int flags);
0232 int CMS_final_digest(CMS_ContentInfo *cms,
0233 const unsigned char *md, unsigned int mdlen, BIO *dcont,
0234 unsigned int flags);
0235
0236 CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey,
0237 STACK_OF(X509) *certs, BIO *data,
0238 unsigned int flags);
0239 CMS_ContentInfo *CMS_sign_ex(X509 *signcert, EVP_PKEY *pkey,
0240 STACK_OF(X509) *certs, BIO *data,
0241 unsigned int flags, OSSL_LIB_CTX *libctx,
0242 const char *propq);
0243
0244 CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si,
0245 X509 *signcert, EVP_PKEY *pkey,
0246 STACK_OF(X509) *certs, unsigned int flags);
0247
0248 int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags);
0249 CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags);
0250 CMS_ContentInfo *CMS_data_create_ex(BIO *in, unsigned int flags,
0251 OSSL_LIB_CTX *libctx, const char *propq);
0252
0253 int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out,
0254 unsigned int flags);
0255 CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md,
0256 unsigned int flags);
0257 CMS_ContentInfo *CMS_digest_create_ex(BIO *in, const EVP_MD *md,
0258 unsigned int flags, OSSL_LIB_CTX *libctx,
0259 const char *propq);
0260
0261 int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms,
0262 const unsigned char *key, size_t keylen,
0263 BIO *dcont, BIO *out, unsigned int flags);
0264 CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher,
0265 const unsigned char *key,
0266 size_t keylen, unsigned int flags);
0267 CMS_ContentInfo *CMS_EncryptedData_encrypt_ex(BIO *in, const EVP_CIPHER *cipher,
0268 const unsigned char *key,
0269 size_t keylen, unsigned int flags,
0270 OSSL_LIB_CTX *libctx,
0271 const char *propq);
0272
0273 int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph,
0274 const unsigned char *key, size_t keylen);
0275
0276 int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs,
0277 X509_STORE *store, BIO *dcont, BIO *out, unsigned int flags);
0278
0279 int CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms,
0280 STACK_OF(X509) *certs,
0281 X509_STORE *store, unsigned int flags);
0282
0283 STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms);
0284
0285 CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in,
0286 const EVP_CIPHER *cipher, unsigned int flags);
0287 CMS_ContentInfo *CMS_encrypt_ex(STACK_OF(X509) *certs, BIO *in,
0288 const EVP_CIPHER *cipher, unsigned int flags,
0289 OSSL_LIB_CTX *libctx, const char *propq);
0290
0291 int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert,
0292 BIO *dcont, BIO *out, unsigned int flags);
0293
0294 int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert);
0295 int CMS_decrypt_set1_pkey_and_peer(CMS_ContentInfo *cms, EVP_PKEY *pk,
0296 X509 *cert, X509 *peer);
0297 int CMS_decrypt_set1_key(CMS_ContentInfo *cms,
0298 unsigned char *key, size_t keylen,
0299 const unsigned char *id, size_t idlen);
0300 int CMS_decrypt_set1_password(CMS_ContentInfo *cms,
0301 unsigned char *pass, ossl_ssize_t passlen);
0302
0303 STACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms);
0304 int CMS_RecipientInfo_type(CMS_RecipientInfo *ri);
0305 EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri);
0306 CMS_ContentInfo *CMS_AuthEnvelopedData_create(const EVP_CIPHER *cipher);
0307 CMS_ContentInfo *
0308 CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER *cipher, OSSL_LIB_CTX *libctx,
0309 const char *propq);
0310 CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher);
0311 CMS_ContentInfo *CMS_EnvelopedData_create_ex(const EVP_CIPHER *cipher,
0312 OSSL_LIB_CTX *libctx,
0313 const char *propq);
0314 BIO *CMS_EnvelopedData_decrypt(CMS_EnvelopedData *env, BIO *detached_data,
0315 EVP_PKEY *pkey, X509 *cert,
0316 ASN1_OCTET_STRING *secret, unsigned int flags,
0317 OSSL_LIB_CTX *libctx, const char *propq);
0318
0319 CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms,
0320 X509 *recip, unsigned int flags);
0321 CMS_RecipientInfo *CMS_add1_recipient(CMS_ContentInfo *cms, X509 *recip,
0322 EVP_PKEY *originatorPrivKey, X509 *originator, unsigned int flags);
0323 int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey);
0324 int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert);
0325 int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri,
0326 EVP_PKEY **pk, X509 **recip,
0327 X509_ALGOR **palg);
0328 int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri,
0329 ASN1_OCTET_STRING **keyid,
0330 X509_NAME **issuer,
0331 ASN1_INTEGER **sno);
0332
0333 CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid,
0334 unsigned char *key, size_t keylen,
0335 unsigned char *id, size_t idlen,
0336 ASN1_GENERALIZEDTIME *date,
0337 ASN1_OBJECT *otherTypeId,
0338 ASN1_TYPE *otherType);
0339
0340 int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri,
0341 X509_ALGOR **palg,
0342 ASN1_OCTET_STRING **pid,
0343 ASN1_GENERALIZEDTIME **pdate,
0344 ASN1_OBJECT **potherid,
0345 ASN1_TYPE **pothertype);
0346
0347 int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri,
0348 unsigned char *key, size_t keylen);
0349
0350 int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri,
0351 const unsigned char *id, size_t idlen);
0352
0353 int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri,
0354 unsigned char *pass,
0355 ossl_ssize_t passlen);
0356
0357 CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms,
0358 int iter, int wrap_nid,
0359 int pbe_nid,
0360 unsigned char *pass,
0361 ossl_ssize_t passlen,
0362 const EVP_CIPHER *kekciph);
0363
0364 int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri);
0365 int CMS_RecipientInfo_encrypt(const CMS_ContentInfo *cms, CMS_RecipientInfo *ri);
0366
0367 int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out,
0368 unsigned int flags);
0369 CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags);
0370
0371 int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid);
0372 const ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms);
0373
0374 CMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo *cms);
0375 int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert);
0376 int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert);
0377 STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms);
0378
0379 CMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo *cms);
0380 int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl);
0381 int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl);
0382 STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms);
0383
0384 int CMS_SignedData_init(CMS_ContentInfo *cms);
0385 CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms,
0386 X509 *signer, EVP_PKEY *pk, const EVP_MD *md,
0387 unsigned int flags);
0388 EVP_PKEY_CTX *CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si);
0389 EVP_MD_CTX *CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si);
0390 STACK_OF(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo *cms);
0391
0392 void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer);
0393 int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si,
0394 ASN1_OCTET_STRING **keyid,
0395 X509_NAME **issuer, ASN1_INTEGER **sno);
0396 int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert);
0397 int CMS_set1_signers_certs(CMS_ContentInfo *cms, STACK_OF(X509) *certs,
0398 unsigned int flags);
0399 void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk,
0400 X509 **signer, X509_ALGOR **pdig,
0401 X509_ALGOR **psig);
0402 ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si);
0403 int CMS_SignerInfo_sign(CMS_SignerInfo *si);
0404 int CMS_SignerInfo_verify(CMS_SignerInfo *si);
0405 int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain);
0406 BIO *CMS_SignedData_verify(CMS_SignedData *sd, BIO *detached_data,
0407 STACK_OF(X509) *scerts, X509_STORE *store,
0408 STACK_OF(X509) *extra, STACK_OF(X509_CRL) *crls,
0409 unsigned int flags,
0410 OSSL_LIB_CTX *libctx, const char *propq);
0411
0412 int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs);
0413 int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs,
0414 int algnid, int keysize);
0415 int CMS_add_standard_smimecap(STACK_OF(X509_ALGOR) **smcap);
0416
0417 int CMS_signed_get_attr_count(const CMS_SignerInfo *si);
0418 int CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid,
0419 int lastpos);
0420 int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, const ASN1_OBJECT *obj,
0421 int lastpos);
0422 X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc);
0423 X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc);
0424 int CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr);
0425 int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si,
0426 const ASN1_OBJECT *obj, int type,
0427 const void *bytes, int len);
0428 int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si,
0429 int nid, int type,
0430 const void *bytes, int len);
0431 int CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si,
0432 const char *attrname, int type,
0433 const void *bytes, int len);
0434 void *CMS_signed_get0_data_by_OBJ(const CMS_SignerInfo *si,
0435 const ASN1_OBJECT *oid,
0436 int lastpos, int type);
0437
0438 int CMS_unsigned_get_attr_count(const CMS_SignerInfo *si);
0439 int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid,
0440 int lastpos);
0441 int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si,
0442 const ASN1_OBJECT *obj, int lastpos);
0443 X509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int loc);
0444 X509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc);
0445 int CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr);
0446 int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si,
0447 const ASN1_OBJECT *obj, int type,
0448 const void *bytes, int len);
0449 int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si,
0450 int nid, int type,
0451 const void *bytes, int len);
0452 int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si,
0453 const char *attrname, int type,
0454 const void *bytes, int len);
0455 void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid,
0456 int lastpos, int type);
0457
0458 int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr);
0459 CMS_ReceiptRequest *CMS_ReceiptRequest_create0(
0460 unsigned char *id, int idlen, int allorfirst,
0461 STACK_OF(GENERAL_NAMES) *receiptList,
0462 STACK_OF(GENERAL_NAMES) *receiptsTo);
0463 CMS_ReceiptRequest *CMS_ReceiptRequest_create0_ex(
0464 unsigned char *id, int idlen, int allorfirst,
0465 STACK_OF(GENERAL_NAMES) *receiptList,
0466 STACK_OF(GENERAL_NAMES) *receiptsTo,
0467 OSSL_LIB_CTX *libctx);
0468
0469 int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr);
0470 void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr,
0471 ASN1_STRING **pcid,
0472 int *pallorfirst,
0473 STACK_OF(GENERAL_NAMES) **plist,
0474 STACK_OF(GENERAL_NAMES) **prto);
0475 int CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo *ri,
0476 X509_ALGOR **palg,
0477 ASN1_OCTET_STRING **pukm);
0478 STACK_OF(CMS_RecipientEncryptedKey)
0479 *CMS_RecipientInfo_kari_get0_reks(CMS_RecipientInfo *ri);
0480
0481 int CMS_RecipientInfo_kari_get0_orig_id(CMS_RecipientInfo *ri,
0482 X509_ALGOR **pubalg,
0483 ASN1_BIT_STRING **pubkey,
0484 ASN1_OCTET_STRING **keyid,
0485 X509_NAME **issuer,
0486 ASN1_INTEGER **sno);
0487
0488 int CMS_RecipientInfo_kari_orig_id_cmp(CMS_RecipientInfo *ri, X509 *cert);
0489
0490 int CMS_RecipientEncryptedKey_get0_id(CMS_RecipientEncryptedKey *rek,
0491 ASN1_OCTET_STRING **keyid,
0492 ASN1_GENERALIZEDTIME **tm,
0493 CMS_OtherKeyAttribute **other,
0494 X509_NAME **issuer, ASN1_INTEGER **sno);
0495 int CMS_RecipientEncryptedKey_cert_cmp(CMS_RecipientEncryptedKey *rek,
0496 X509 *cert);
0497 int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk);
0498 int CMS_RecipientInfo_kari_set0_pkey_and_peer(CMS_RecipientInfo *ri, EVP_PKEY *pk, X509 *peer);
0499 EVP_CIPHER_CTX *CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo *ri);
0500 int CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo *cms,
0501 CMS_RecipientInfo *ri,
0502 CMS_RecipientEncryptedKey *rek);
0503
0504 int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg,
0505 ASN1_OCTET_STRING *ukm, int keylen);
0506
0507 int CMS_RecipientInfo_kemri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert);
0508 int CMS_RecipientInfo_kemri_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk);
0509 EVP_CIPHER_CTX *CMS_RecipientInfo_kemri_get0_ctx(CMS_RecipientInfo *ri);
0510 X509_ALGOR *CMS_RecipientInfo_kemri_get0_kdf_alg(CMS_RecipientInfo *ri);
0511 int CMS_RecipientInfo_kemri_set_ukm(CMS_RecipientInfo *ri,
0512 const unsigned char *ukm,
0513 int ukmLength);
0514
0515
0516 #define CMS_R_UNKNOWN_DIGEST_ALGORITM CMS_R_UNKNOWN_DIGEST_ALGORITHM
0517 #define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE \
0518 CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE
0519
0520 #ifdef __cplusplus
0521 }
0522 #endif
0523 #endif
0524 #endif