ircbot/deimos/openssl/cms.d

507 lines
19 KiB
D

/* crypto/cms/cms.h */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project.
*/
/* ====================================================================
* Copyright (c) 2008 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. All advertising materials mentioning features or use of this
* software must display the following acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
*
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* licensing@OpenSSL.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
* permission of the OpenSSL Project.
*
* 6. Redistributions of any form whatsoever must retain the following
* acknowledgment:
* "This product includes software developed by the OpenSSL Project
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
*
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
* ====================================================================
*/
module deimos.openssl.cms;
import deimos.openssl._d_util;
import deimos.openssl.asn1; // Needed for DECLARE_ASN1_*.
import deimos.openssl.x509v3; // Needed for GENERAL_NAMES.
public import deimos.openssl.x509;
version (OPENSSL_NO_CMS) {
static assert(false, "CMS is disabled.");
}
extern (C):
nothrow:
struct CMS_ContentInfo_st;
alias CMS_ContentInfo_st CMS_ContentInfo;
struct CMS_SignerInfo_st;
alias CMS_SignerInfo_st CMS_SignerInfo;
// BUG/oversight in the original headers: _st suffix missing.
struct CMS_CertificateChoices;
struct CMS_RevocationInfoChoice_st;
alias CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice;
struct CMS_RecipientInfo_st;
alias CMS_RecipientInfo_st CMS_RecipientInfo;
struct CMS_ReceiptRequest_st;
alias CMS_ReceiptRequest_st CMS_ReceiptRequest;
struct CMS_Receipt_st;
alias CMS_Receipt_st CMS_Receipt;
/+mixin DECLARE_STACK_OF!(CMS_SignerInfo);+/
/+mixin DECLARE_STACK_OF!(GENERAL_NAMES);+/
mixin(DECLARE_ASN1_FUNCTIONS!"CMS_ContentInfo");
mixin(DECLARE_ASN1_FUNCTIONS!"CMS_ReceiptRequest");
mixin(DECLARE_ASN1_PRINT_FUNCTION!"CMS_ContentInfo");
enum CMS_SIGNERINFO_ISSUER_SERIAL = 0;
enum CMS_SIGNERINFO_KEYIDENTIFIER = 1;
enum CMS_RECIPINFO_TRANS = 0;
enum CMS_RECIPINFO_AGREE = 1;
enum CMS_RECIPINFO_KEK = 2;
enum CMS_RECIPINFO_PASS = 3;
enum CMS_RECIPINFO_OTHER = 4;
/* S/MIME related flags */
enum CMS_TEXT = 0x1;
enum CMS_NOCERTS = 0x2;
enum CMS_NO_CONTENT_VERIFY = 0x4;
enum CMS_NO_ATTR_VERIFY = 0x8;
enum CMS_NOSIGS = (CMS_NO_CONTENT_VERIFY|CMS_NO_ATTR_VERIFY);
enum CMS_NOINTERN = 0x10;
enum CMS_NO_SIGNER_CERT_VERIFY = 0x20;
enum CMS_NOVERIFY = 0x20;
enum CMS_DETACHED = 0x40;
enum CMS_BINARY = 0x80;
enum CMS_NOATTR = 0x100;
enum CMS_NOSMIMECAP = 0x200;
enum CMS_NOOLDMIMETYPE = 0x400;
enum CMS_CRLFEOL = 0x800;
enum CMS_STREAM = 0x1000;
enum CMS_NOCRL = 0x2000;
enum CMS_PARTIAL = 0x4000;
enum CMS_REUSE_DIGEST = 0x8000;
enum CMS_USE_KEYID = 0x10000;
enum CMS_DEBUG_DECRYPT = 0x20000;
const(ASN1_OBJECT)* CMS_get0_type(CMS_ContentInfo* cms);
BIO* CMS_dataInit(CMS_ContentInfo* cms, BIO* icont);
int CMS_dataFinal(CMS_ContentInfo* cms, BIO* bio);
ASN1_OCTET_STRING** CMS_get0_content(CMS_ContentInfo* cms);
int CMS_is_detached(CMS_ContentInfo* cms);
int CMS_set_detached(CMS_ContentInfo* cms, int detached);
// #ifdef HEADER_PEM_H
import deimos.openssl.pem;
mixin(DECLARE_PEM_rw_const!("CMS", "CMS_ContentInfo")());
// #endif
int CMS_stream(ubyte*** boundary, CMS_ContentInfo* cms);
CMS_ContentInfo* d2i_CMS_bio(BIO* bp, CMS_ContentInfo** cms);
int i2d_CMS_bio(BIO* bp, CMS_ContentInfo* cms);
BIO* BIO_new_CMS(BIO* out_, CMS_ContentInfo* cms);
int i2d_CMS_bio_stream(BIO* out_, CMS_ContentInfo* cms, BIO* in_, int flags);
int PEM_write_bio_CMS_stream(BIO* out_, CMS_ContentInfo* cms, BIO* in_, int flags);
CMS_ContentInfo* SMIME_read_CMS(BIO* bio, BIO** bcont);
int SMIME_write_CMS(BIO* bio, CMS_ContentInfo* cms, BIO* data, int flags);
int CMS_final(CMS_ContentInfo* cms, BIO* data, BIO* dcont, uint flags);
CMS_ContentInfo* CMS_sign(X509* signcert, EVP_PKEY* pkey, STACK_OF!(X509) *certs,
BIO* data, uint flags);
CMS_ContentInfo* CMS_sign_receipt(CMS_SignerInfo* si,
X509* signcert, EVP_PKEY* pkey,
STACK_OF!(X509) *certs,
uint flags);
int CMS_data(CMS_ContentInfo* cms, BIO* out_, uint flags);
CMS_ContentInfo* CMS_data_create(BIO* in_, uint flags);
int CMS_digest_verify(CMS_ContentInfo* cms, BIO* dcont, BIO* out_,
uint flags);
CMS_ContentInfo* CMS_digest_create(BIO* in_, const(EVP_MD)* md,
uint flags);
int CMS_EncryptedData_decrypt(CMS_ContentInfo* cms,
const(ubyte)* key, size_t keylen,
BIO* dcont, BIO* out_, uint flags);
CMS_ContentInfo* CMS_EncryptedData_encrypt(BIO* in_, const(EVP_CIPHER)* cipher,
const(ubyte)* key, size_t keylen,
uint flags);
int CMS_EncryptedData_set1_key(CMS_ContentInfo* cms, const(EVP_CIPHER)* ciph,
const(ubyte)* key, size_t keylen);
int CMS_verify(CMS_ContentInfo* cms, STACK_OF!(X509) *certs,
X509_STORE* store, BIO* dcont, BIO* out_, uint flags);
int CMS_verify_receipt(CMS_ContentInfo* rcms, CMS_ContentInfo* ocms,
STACK_OF!(X509) *certs,
X509_STORE* store, uint flags);
STACK_OF!(X509) *CMS_get0_signers(CMS_ContentInfo* cms);
CMS_ContentInfo* CMS_encrypt(STACK_OF!(X509) *certs, BIO* in_,
const(EVP_CIPHER)* cipher, uint flags);
int CMS_decrypt(CMS_ContentInfo* cms, EVP_PKEY* pkey, X509* cert,
BIO* dcont, BIO* out_,
uint flags);
int CMS_decrypt_set1_pkey(CMS_ContentInfo* cms, EVP_PKEY* pk, X509* cert);
int CMS_decrypt_set1_key(CMS_ContentInfo* cms,
ubyte* key, size_t keylen,
ubyte* id, size_t idlen);
int CMS_decrypt_set1_password(CMS_ContentInfo *cms,
ubyte *pass, ossl_ssize_t passlen);
STACK_OF!(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo* cms);
int CMS_RecipientInfo_type(CMS_RecipientInfo* ri);
CMS_ContentInfo* CMS_EnvelopedData_create(const(EVP_CIPHER)* cipher);
CMS_RecipientInfo* CMS_add1_recipient_cert(CMS_ContentInfo* cms,
X509* recip, uint flags);
int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo* ri, EVP_PKEY* pkey);
int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo* ri, X509* cert);
int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo* ri,
EVP_PKEY** pk, X509** recip,
X509_ALGOR** palg);
int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo* ri,
ASN1_OCTET_STRING** keyid,
X509_NAME** issuer, ASN1_INTEGER** sno);
CMS_RecipientInfo* CMS_add0_recipient_key(CMS_ContentInfo* cms, int nid,
ubyte* key, size_t keylen,
ubyte* id, size_t idlen,
ASN1_GENERALIZEDTIME* date,
ASN1_OBJECT* otherTypeId,
ASN1_TYPE* otherType);
int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo* ri,
X509_ALGOR** palg,
ASN1_OCTET_STRING** pid,
ASN1_GENERALIZEDTIME** pdate,
ASN1_OBJECT** potherid,
ASN1_TYPE** pothertype);
int CMS_RecipientInfo_set0_key(CMS_RecipientInfo* ri,
ubyte* key, size_t keylen);
int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo* ri,
const(ubyte)* id, size_t idlen);
int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri,
ubyte* pass,
ossl_ssize_t passlen);
CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms,
int iter, int wrap_nid, int pbe_nid,
ubyte* pass,
ossl_ssize_t passlen,
const(EVP_CIPHER)* kekciph);
int CMS_RecipientInfo_decrypt(CMS_ContentInfo* cms, CMS_RecipientInfo* ri);
int CMS_uncompress(CMS_ContentInfo* cms, BIO* dcont, BIO* out_,
uint flags);
CMS_ContentInfo* CMS_compress(BIO* in_, int comp_nid, uint flags);
int CMS_set1_eContentType(CMS_ContentInfo* cms, const(ASN1_OBJECT)* oid);
const(ASN1_OBJECT)* CMS_get0_eContentType(CMS_ContentInfo* cms);
CMS_CertificateChoices* CMS_add0_CertificateChoices(CMS_ContentInfo* cms);
int CMS_add0_cert(CMS_ContentInfo* cms, X509* cert);
int CMS_add1_cert(CMS_ContentInfo* cms, X509* cert);
STACK_OF!(X509) *CMS_get1_certs(CMS_ContentInfo* cms);
CMS_RevocationInfoChoice* CMS_add0_RevocationInfoChoice(CMS_ContentInfo* cms);
int CMS_add0_crl(CMS_ContentInfo* cms, X509_CRL* crl);
int CMS_add1_crl(CMS_ContentInfo* cms, X509_CRL* crl);
STACK_OF!(X509_CRL) *CMS_get1_crls(CMS_ContentInfo* cms);
int CMS_SignedData_init(CMS_ContentInfo* cms);
CMS_SignerInfo* CMS_add1_signer(CMS_ContentInfo* cms,
X509* signer, EVP_PKEY* pk, const(EVP_MD)* md,
uint flags);
STACK_OF!(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo* cms);
void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo* si, X509* signer);
int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo* si,
ASN1_OCTET_STRING** keyid,
X509_NAME** issuer, ASN1_INTEGER** sno);
int CMS_SignerInfo_cert_cmp(CMS_SignerInfo* si, X509* cert);
int CMS_set1_signers_certs(CMS_ContentInfo* cms, STACK_OF!(X509) *certs,
uint flags);
void CMS_SignerInfo_get0_algs(CMS_SignerInfo* si, EVP_PKEY** pk, X509** signer,
X509_ALGOR** pdig, X509_ALGOR** psig);
int CMS_SignerInfo_sign(CMS_SignerInfo* si);
int CMS_SignerInfo_verify(CMS_SignerInfo* si);
int CMS_SignerInfo_verify_content(CMS_SignerInfo* si, BIO* chain);
int CMS_add_smimecap(CMS_SignerInfo* si, STACK_OF!(X509_ALGOR) *algs);
int CMS_add_simple_smimecap(STACK_OF!(X509_ALGOR) **algs,
int algnid, int keysize);
int CMS_add_standard_smimecap(STACK_OF!(X509_ALGOR) **smcap);
int CMS_signed_get_attr_count(const(CMS_SignerInfo)* si);
int CMS_signed_get_attr_by_NID(const(CMS_SignerInfo)* si, int nid,
int lastpos);
int CMS_signed_get_attr_by_OBJ(const(CMS_SignerInfo)* si, ASN1_OBJECT* obj,
int lastpos);
X509_ATTRIBUTE* CMS_signed_get_attr(const(CMS_SignerInfo)* si, int loc);
X509_ATTRIBUTE* CMS_signed_delete_attr(CMS_SignerInfo* si, int loc);
int CMS_signed_add1_attr(CMS_SignerInfo* si, X509_ATTRIBUTE* attr);
int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo* si,
const(ASN1_OBJECT)* obj, int type,
const(void)* bytes, int len);
int CMS_signed_add1_attr_by_NID(CMS_SignerInfo* si,
int nid, int type,
const(void)* bytes, int len);
int CMS_signed_add1_attr_by_txt(CMS_SignerInfo* si,
const(char)* attrname, int type,
const(void)* bytes, int len);
void* CMS_signed_get0_data_by_OBJ(CMS_SignerInfo* si, ASN1_OBJECT* oid,
int lastpos, int type);
int CMS_unsigned_get_attr_count(const(CMS_SignerInfo)* si);
int CMS_unsigned_get_attr_by_NID(const(CMS_SignerInfo)* si, int nid,
int lastpos);
int CMS_unsigned_get_attr_by_OBJ(const(CMS_SignerInfo)* si, ASN1_OBJECT* obj,
int lastpos);
X509_ATTRIBUTE* CMS_unsigned_get_attr(const(CMS_SignerInfo)* si, int loc);
X509_ATTRIBUTE* CMS_unsigned_delete_attr(CMS_SignerInfo* si, int loc);
int CMS_unsigned_add1_attr(CMS_SignerInfo* si, X509_ATTRIBUTE* attr);
int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo* si,
const(ASN1_OBJECT)* obj, int type,
const(void)* bytes, int len);
int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo* si,
int nid, int type,
const(void)* bytes, int len);
int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo* si,
const(char)* attrname, int type,
const(void)* bytes, int len);
void* CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo* si, ASN1_OBJECT* oid,
int lastpos, int type);
// #ifdef HEADER_X509V3_H
int CMS_get1_ReceiptRequest(CMS_SignerInfo* si, CMS_ReceiptRequest** prr);
CMS_ReceiptRequest* CMS_ReceiptRequest_create0(ubyte* id, int idlen,
int allorfirst,
STACK_OF!(GENERAL_NAMES) *receiptList,
STACK_OF!(GENERAL_NAMES) *receiptsTo);
int CMS_add1_ReceiptRequest(CMS_SignerInfo* si, CMS_ReceiptRequest* rr);
void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest* rr,
ASN1_STRING** pcid,
int* pallorfirst,
STACK_OF!(GENERAL_NAMES) **plist,
STACK_OF!(GENERAL_NAMES) **prto);
// #endif
/* BEGIN ERROR CODES */
/* The following lines are auto generated by the script mkerr.pl. Any changes
* made after this point may be overwritten when the script is next run.
*/
void ERR_load_CMS_strings();
/* Error codes for the CMS functions. */
/* Function codes. */
enum CMS_F_CHECK_CONTENT = 99;
enum CMS_F_CMS_ADD0_CERT = 164;
enum CMS_F_CMS_ADD0_RECIPIENT_KEY = 100;
enum CMS_F_CMS_ADD0_RECIPIENT_PASSWORD = 165;
enum CMS_F_CMS_ADD1_RECEIPTREQUEST = 158;
enum CMS_F_CMS_ADD1_RECIPIENT_CERT = 101;
enum CMS_F_CMS_ADD1_SIGNER = 102;
enum CMS_F_CMS_ADD1_SIGNINGTIME = 103;
enum CMS_F_CMS_COMPRESS = 104;
enum CMS_F_CMS_COMPRESSEDDATA_CREATE = 105;
enum CMS_F_CMS_COMPRESSEDDATA_INIT_BIO = 106;
enum CMS_F_CMS_COPY_CONTENT = 107;
enum CMS_F_CMS_COPY_MESSAGEDIGEST = 108;
enum CMS_F_CMS_DATA = 109;
enum CMS_F_CMS_DATAFINAL = 110;
enum CMS_F_CMS_DATAINIT = 111;
enum CMS_F_CMS_DECRYPT = 112;
enum CMS_F_CMS_DECRYPT_SET1_KEY = 113;
enum CMS_F_CMS_DECRYPT_SET1_PASSWORD = 166;
enum CMS_F_CMS_DECRYPT_SET1_PKEY = 114;
enum CMS_F_CMS_DIGESTALGORITHM_FIND_CTX = 115;
enum CMS_F_CMS_DIGESTALGORITHM_INIT_BIO = 116;
enum CMS_F_CMS_DIGESTEDDATA_DO_FINAL = 117;
enum CMS_F_CMS_DIGEST_VERIFY = 118;
enum CMS_F_CMS_ENCODE_RECEIPT = 161;
enum CMS_F_CMS_ENCRYPT = 119;
enum CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO = 120;
enum CMS_F_CMS_ENCRYPTEDDATA_DECRYPT = 121;
enum CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT = 122;
enum CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY = 123;
enum CMS_F_CMS_ENVELOPEDDATA_CREATE = 124;
enum CMS_F_CMS_ENVELOPEDDATA_INIT_BIO = 125;
enum CMS_F_CMS_ENVELOPED_DATA_INIT = 126;
enum CMS_F_CMS_FINAL = 127;
enum CMS_F_CMS_GET0_CERTIFICATE_CHOICES = 128;
enum CMS_F_CMS_GET0_CONTENT = 129;
enum CMS_F_CMS_GET0_ECONTENT_TYPE = 130;
enum CMS_F_CMS_GET0_ENVELOPED = 131;
enum CMS_F_CMS_GET0_REVOCATION_CHOICES = 132;
enum CMS_F_CMS_GET0_SIGNED = 133;
enum CMS_F_CMS_MSGSIGDIGEST_ADD1 = 162;
enum CMS_F_CMS_RECEIPTREQUEST_CREATE0 = 159;
enum CMS_F_CMS_RECEIPT_VERIFY = 160;
enum CMS_F_CMS_RECIPIENTINFO_DECRYPT = 134;
enum CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT = 135;
enum CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT = 136;
enum CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID = 137;
enum CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP = 138;
enum CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP = 139;
enum CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT = 140;
enum CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT = 141;
enum CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS = 142;
enum CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID = 143;
enum CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT = 167;
enum CMS_F_CMS_RECIPIENTINFO_SET0_KEY = 144;
enum CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD = 168;
enum CMS_F_CMS_RECIPIENTINFO_SET0_PKEY = 145;
enum CMS_F_CMS_SET1_SIGNERIDENTIFIER = 146;
enum CMS_F_CMS_SET_DETACHED = 147;
enum CMS_F_CMS_SIGN = 148;
enum CMS_F_CMS_SIGNED_DATA_INIT = 149;
enum CMS_F_CMS_SIGNERINFO_CONTENT_SIGN = 150;
enum CMS_F_CMS_SIGNERINFO_SIGN = 151;
enum CMS_F_CMS_SIGNERINFO_VERIFY = 152;
enum CMS_F_CMS_SIGNERINFO_VERIFY_CERT = 153;
enum CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT = 154;
enum CMS_F_CMS_SIGN_RECEIPT = 163;
enum CMS_F_CMS_STREAM = 155;
enum CMS_F_CMS_UNCOMPRESS = 156;
enum CMS_F_CMS_VERIFY = 157;
/* Reason codes. */
enum CMS_R_ADD_SIGNER_ERROR = 99;
enum CMS_R_CERTIFICATE_ALREADY_PRESENT = 175;
enum CMS_R_CERTIFICATE_HAS_NO_KEYID = 160;
enum CMS_R_CERTIFICATE_VERIFY_ERROR = 100;
enum CMS_R_CIPHER_INITIALISATION_ERROR = 101;
enum CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR = 102;
enum CMS_R_CMS_DATAFINAL_ERROR = 103;
enum CMS_R_CMS_LIB = 104;
enum CMS_R_CONTENTIDENTIFIER_MISMATCH = 170;
enum CMS_R_CONTENT_NOT_FOUND = 105;
enum CMS_R_CONTENT_TYPE_MISMATCH = 171;
enum CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA = 106;
enum CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA = 107;
enum CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA = 108;
enum CMS_R_CONTENT_VERIFY_ERROR = 109;
enum CMS_R_CTRL_ERROR = 110;
enum CMS_R_CTRL_FAILURE = 111;
enum CMS_R_DECRYPT_ERROR = 112;
enum CMS_R_DIGEST_ERROR = 161;
enum CMS_R_ERROR_GETTING_PUBLIC_KEY = 113;
enum CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE = 114;
enum CMS_R_ERROR_SETTING_KEY = 115;
enum CMS_R_ERROR_SETTING_RECIPIENTINFO = 116;
enum CMS_R_INVALID_ENCRYPTED_KEY_LENGTH = 117;
enum CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER = 176;
enum CMS_R_INVALID_KEY_LENGTH = 118;
enum CMS_R_MD_BIO_INIT_ERROR = 119;
enum CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH = 120;
enum CMS_R_MESSAGEDIGEST_WRONG_LENGTH = 121;
enum CMS_R_MSGSIGDIGEST_ERROR = 172;
enum CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE = 162;
enum CMS_R_MSGSIGDIGEST_WRONG_LENGTH = 163;
enum CMS_R_NEED_ONE_SIGNER = 164;
enum CMS_R_NOT_A_SIGNED_RECEIPT = 165;
enum CMS_R_NOT_ENCRYPTED_DATA = 122;
enum CMS_R_NOT_KEK = 123;
enum CMS_R_NOT_KEY_TRANSPORT = 124;
enum CMS_R_NOT_PWRI = 177;
enum CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE = 125;
enum CMS_R_NO_CIPHER = 126;
enum CMS_R_NO_CONTENT = 127;
enum CMS_R_NO_CONTENT_TYPE = 173;
enum CMS_R_NO_DEFAULT_DIGEST = 128;
enum CMS_R_NO_DIGEST_SET = 129;
enum CMS_R_NO_KEY = 130;
enum CMS_R_NO_KEY_OR_CERT = 174;
enum CMS_R_NO_MATCHING_DIGEST = 131;
enum CMS_R_NO_MATCHING_RECIPIENT = 132;
enum CMS_R_NO_MATCHING_SIGNATURE = 166;
enum CMS_R_NO_MSGSIGDIGEST = 167;
enum CMS_R_NO_PASSWORD = 178;
enum CMS_R_NO_PRIVATE_KEY = 133;
enum CMS_R_NO_PUBLIC_KEY = 134;
enum CMS_R_NO_RECEIPT_REQUEST = 168;
enum CMS_R_NO_SIGNERS = 135;
enum CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE = 136;
enum CMS_R_RECEIPT_DECODE_ERROR = 169;
enum CMS_R_RECIPIENT_ERROR = 137;
enum CMS_R_SIGNER_CERTIFICATE_NOT_FOUND = 138;
enum CMS_R_SIGNFINAL_ERROR = 139;
enum CMS_R_SMIME_TEXT_ERROR = 140;
enum CMS_R_STORE_INIT_ERROR = 141;
enum CMS_R_TYPE_NOT_COMPRESSED_DATA = 142;
enum CMS_R_TYPE_NOT_DATA = 143;
enum CMS_R_TYPE_NOT_DIGESTED_DATA = 144;
enum CMS_R_TYPE_NOT_ENCRYPTED_DATA = 145;
enum CMS_R_TYPE_NOT_ENVELOPED_DATA = 146;
enum CMS_R_UNABLE_TO_FINALIZE_CONTEXT = 147;
enum CMS_R_UNKNOWN_CIPHER = 148;
enum CMS_R_UNKNOWN_DIGEST_ALGORIHM = 149;
enum CMS_R_UNKNOWN_ID = 150;
enum CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM = 151;
enum CMS_R_UNSUPPORTED_CONTENT_TYPE = 152;
enum CMS_R_UNSUPPORTED_KEK_ALGORITHM = 153;
enum CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM = 179;
enum CMS_R_UNSUPPORTED_RECIPIENT_TYPE = 154;
enum CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE = 155;
enum CMS_R_UNSUPPORTED_TYPE = 156;
enum CMS_R_UNWRAP_ERROR = 157;
enum CMS_R_UNWRAP_FAILURE = 180;
enum CMS_R_VERIFICATION_FAILURE = 158;
enum CMS_R_WRAP_ERROR = 159;