1183234Ssimon/* crypto/cms/cms.h */
2280304Sjkim/*
3280304Sjkim * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
4183234Ssimon * project.
5183234Ssimon */
6183234Ssimon/* ====================================================================
7183234Ssimon * Copyright (c) 2008 The OpenSSL Project.  All rights reserved.
8183234Ssimon *
9183234Ssimon * Redistribution and use in source and binary forms, with or without
10183234Ssimon * modification, are permitted provided that the following conditions
11183234Ssimon * are met:
12183234Ssimon *
13183234Ssimon * 1. Redistributions of source code must retain the above copyright
14280304Sjkim *    notice, this list of conditions and the following disclaimer.
15183234Ssimon *
16183234Ssimon * 2. Redistributions in binary form must reproduce the above copyright
17183234Ssimon *    notice, this list of conditions and the following disclaimer in
18183234Ssimon *    the documentation and/or other materials provided with the
19183234Ssimon *    distribution.
20183234Ssimon *
21183234Ssimon * 3. All advertising materials mentioning features or use of this
22183234Ssimon *    software must display the following acknowledgment:
23183234Ssimon *    "This product includes software developed by the OpenSSL Project
24183234Ssimon *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
25183234Ssimon *
26183234Ssimon * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
27183234Ssimon *    endorse or promote products derived from this software without
28183234Ssimon *    prior written permission. For written permission, please contact
29183234Ssimon *    licensing@OpenSSL.org.
30183234Ssimon *
31183234Ssimon * 5. Products derived from this software may not be called "OpenSSL"
32183234Ssimon *    nor may "OpenSSL" appear in their names without prior written
33183234Ssimon *    permission of the OpenSSL Project.
34183234Ssimon *
35183234Ssimon * 6. Redistributions of any form whatsoever must retain the following
36183234Ssimon *    acknowledgment:
37183234Ssimon *    "This product includes software developed by the OpenSSL Project
38183234Ssimon *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
39183234Ssimon *
40183234Ssimon * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
41183234Ssimon * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42183234Ssimon * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
43183234Ssimon * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
44183234Ssimon * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
45183234Ssimon * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
46183234Ssimon * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
47183234Ssimon * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48183234Ssimon * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
49183234Ssimon * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
50183234Ssimon * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
51183234Ssimon * OF THE POSSIBILITY OF SUCH DAMAGE.
52183234Ssimon * ====================================================================
53183234Ssimon */
54183234Ssimon
55183234Ssimon#ifndef HEADER_CMS_H
56280304Sjkim# define HEADER_CMS_H
57183234Ssimon
58280304Sjkim# include <openssl/x509.h>
59183234Ssimon
60280304Sjkim# ifdef OPENSSL_NO_CMS
61280304Sjkim#  error CMS is disabled.
62280304Sjkim# endif
63183234Ssimon
64183234Ssimon#ifdef __cplusplus
65183234Ssimonextern "C" {
66183234Ssimon#endif
67183234Ssimon
68183234Ssimontypedef struct CMS_ContentInfo_st CMS_ContentInfo;
69183234Ssimontypedef struct CMS_SignerInfo_st CMS_SignerInfo;
70183234Ssimontypedef struct CMS_CertificateChoices CMS_CertificateChoices;
71183234Ssimontypedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice;
72183234Ssimontypedef struct CMS_RecipientInfo_st CMS_RecipientInfo;
73183234Ssimontypedef struct CMS_ReceiptRequest_st CMS_ReceiptRequest;
74183234Ssimontypedef struct CMS_Receipt_st CMS_Receipt;
75183234Ssimon
76183234SsimonDECLARE_STACK_OF(CMS_SignerInfo)
77183234SsimonDECLARE_STACK_OF(GENERAL_NAMES)
78238405SjkimDECLARE_ASN1_FUNCTIONS(CMS_ContentInfo)
79238405SjkimDECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest)
80238405SjkimDECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo)
81183234Ssimon
82280304Sjkim# define CMS_SIGNERINFO_ISSUER_SERIAL    0
83280304Sjkim# define CMS_SIGNERINFO_KEYIDENTIFIER    1
84183234Ssimon
85280304Sjkim# define CMS_RECIPINFO_TRANS             0
86280304Sjkim# define CMS_RECIPINFO_AGREE             1
87280304Sjkim# define CMS_RECIPINFO_KEK               2
88280304Sjkim# define CMS_RECIPINFO_PASS              3
89280304Sjkim# define CMS_RECIPINFO_OTHER             4
90183234Ssimon
91183234Ssimon/* S/MIME related flags */
92183234Ssimon
93280304Sjkim# define CMS_TEXT                        0x1
94280304Sjkim# define CMS_NOCERTS                     0x2
95280304Sjkim# define CMS_NO_CONTENT_VERIFY           0x4
96280304Sjkim# define CMS_NO_ATTR_VERIFY              0x8
97280304Sjkim# define CMS_NOSIGS                      \
98280304Sjkim                        (CMS_NO_CONTENT_VERIFY|CMS_NO_ATTR_VERIFY)
99280304Sjkim# define CMS_NOINTERN                    0x10
100280304Sjkim# define CMS_NO_SIGNER_CERT_VERIFY       0x20
101280304Sjkim# define CMS_NOVERIFY                    0x20
102280304Sjkim# define CMS_DETACHED                    0x40
103280304Sjkim# define CMS_BINARY                      0x80
104280304Sjkim# define CMS_NOATTR                      0x100
105280304Sjkim# define CMS_NOSMIMECAP                  0x200
106280304Sjkim# define CMS_NOOLDMIMETYPE               0x400
107280304Sjkim# define CMS_CRLFEOL                     0x800
108280304Sjkim# define CMS_STREAM                      0x1000
109280304Sjkim# define CMS_NOCRL                       0x2000
110280304Sjkim# define CMS_PARTIAL                     0x4000
111280304Sjkim# define CMS_REUSE_DIGEST                0x8000
112280304Sjkim# define CMS_USE_KEYID                   0x10000
113280304Sjkim# define CMS_DEBUG_DECRYPT               0x20000
114183234Ssimon
115183234Ssimonconst ASN1_OBJECT *CMS_get0_type(CMS_ContentInfo *cms);
116183234Ssimon
117183234SsimonBIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont);
118183234Ssimonint CMS_dataFinal(CMS_ContentInfo *cms, BIO *bio);
119183234Ssimon
120183234SsimonASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms);
121183234Ssimonint CMS_is_detached(CMS_ContentInfo *cms);
122183234Ssimonint CMS_set_detached(CMS_ContentInfo *cms, int detached);
123183234Ssimon
124280304Sjkim# ifdef HEADER_PEM_H
125183234SsimonDECLARE_PEM_rw_const(CMS, CMS_ContentInfo)
126280304Sjkim# endif
127238405Sjkimint CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms);
128183234SsimonCMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms);
129183234Ssimonint i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms);
130183234Ssimon
131238405SjkimBIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms);
132238405Sjkimint i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int flags);
133280304Sjkimint PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in,
134280304Sjkim                             int flags);
135183234SsimonCMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont);
136183234Ssimonint SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags);
137183234Ssimon
138280304Sjkimint CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont,
139280304Sjkim              unsigned int flags);
140183234Ssimon
141280304SjkimCMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey,
142280304Sjkim                          STACK_OF(X509) *certs, BIO *data,
143280304Sjkim                          unsigned int flags);
144183234Ssimon
145183234SsimonCMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si,
146280304Sjkim                                  X509 *signcert, EVP_PKEY *pkey,
147280304Sjkim                                  STACK_OF(X509) *certs, unsigned int flags);
148183234Ssimon
149183234Ssimonint CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags);
150183234SsimonCMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags);
151183234Ssimon
152183234Ssimonint CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out,
153280304Sjkim                      unsigned int flags);
154183234SsimonCMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md,
155280304Sjkim                                   unsigned int flags);
156183234Ssimon
157183234Ssimonint CMS_EncryptedData_decrypt(CMS_ContentInfo *cms,
158280304Sjkim                              const unsigned char *key, size_t keylen,
159280304Sjkim                              BIO *dcont, BIO *out, unsigned int flags);
160183234Ssimon
161183234SsimonCMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher,
162280304Sjkim                                           const unsigned char *key,
163280304Sjkim                                           size_t keylen, unsigned int flags);
164183234Ssimon
165183234Ssimonint CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph,
166280304Sjkim                               const unsigned char *key, size_t keylen);
167183234Ssimon
168183234Ssimonint CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs,
169280304Sjkim               X509_STORE *store, BIO *dcont, BIO *out, unsigned int flags);
170183234Ssimon
171183234Ssimonint CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms,
172280304Sjkim                       STACK_OF(X509) *certs,
173280304Sjkim                       X509_STORE *store, unsigned int flags);
174183234Ssimon
175183234SsimonSTACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms);
176183234Ssimon
177183234SsimonCMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in,
178280304Sjkim                             const EVP_CIPHER *cipher, unsigned int flags);
179183234Ssimon
180183234Ssimonint CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert,
181280304Sjkim                BIO *dcont, BIO *out, unsigned int flags);
182280304Sjkim
183183234Ssimonint CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert);
184280304Sjkimint CMS_decrypt_set1_key(CMS_ContentInfo *cms,
185280304Sjkim                         unsigned char *key, size_t keylen,
186280304Sjkim                         unsigned char *id, size_t idlen);
187280304Sjkimint CMS_decrypt_set1_password(CMS_ContentInfo *cms,
188280304Sjkim                              unsigned char *pass, ossl_ssize_t passlen);
189183234Ssimon
190183234SsimonSTACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms);
191183234Ssimonint CMS_RecipientInfo_type(CMS_RecipientInfo *ri);
192183234SsimonCMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher);
193183234SsimonCMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms,
194280304Sjkim                                           X509 *recip, unsigned int flags);
195183234Ssimonint CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey);
196183234Ssimonint CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert);
197183234Ssimonint CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri,
198280304Sjkim                                     EVP_PKEY **pk, X509 **recip,
199280304Sjkim                                     X509_ALGOR **palg);
200183234Ssimonint CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri,
201280304Sjkim                                          ASN1_OCTET_STRING **keyid,
202280304Sjkim                                          X509_NAME **issuer,
203280304Sjkim                                          ASN1_INTEGER **sno);
204183234Ssimon
205183234SsimonCMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid,
206280304Sjkim                                          unsigned char *key, size_t keylen,
207280304Sjkim                                          unsigned char *id, size_t idlen,
208280304Sjkim                                          ASN1_GENERALIZEDTIME *date,
209280304Sjkim                                          ASN1_OBJECT *otherTypeId,
210280304Sjkim                                          ASN1_TYPE *otherType);
211183234Ssimon
212183234Ssimonint CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri,
213280304Sjkim                                    X509_ALGOR **palg,
214280304Sjkim                                    ASN1_OCTET_STRING **pid,
215280304Sjkim                                    ASN1_GENERALIZEDTIME **pdate,
216280304Sjkim                                    ASN1_OBJECT **potherid,
217280304Sjkim                                    ASN1_TYPE **pothertype);
218183234Ssimon
219280304Sjkimint CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri,
220280304Sjkim                               unsigned char *key, size_t keylen);
221183234Ssimon
222280304Sjkimint CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri,
223280304Sjkim                                   const unsigned char *id, size_t idlen);
224183234Ssimon
225280304Sjkimint CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri,
226280304Sjkim                                    unsigned char *pass,
227280304Sjkim                                    ossl_ssize_t passlen);
228238405Sjkim
229238405SjkimCMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms,
230280304Sjkim                                               int iter, int wrap_nid,
231280304Sjkim                                               int pbe_nid,
232280304Sjkim                                               unsigned char *pass,
233280304Sjkim                                               ossl_ssize_t passlen,
234280304Sjkim                                               const EVP_CIPHER *kekciph);
235238405Sjkim
236183234Ssimonint CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri);
237280304Sjkim
238183234Ssimonint CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out,
239280304Sjkim                   unsigned int flags);
240183234SsimonCMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags);
241183234Ssimon
242183234Ssimonint CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid);
243183234Ssimonconst ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms);
244183234Ssimon
245183234SsimonCMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo *cms);
246183234Ssimonint CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert);
247183234Ssimonint CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert);
248183234SsimonSTACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms);
249183234Ssimon
250183234SsimonCMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo *cms);
251183234Ssimonint CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl);
252238405Sjkimint CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl);
253183234SsimonSTACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms);
254183234Ssimon
255183234Ssimonint CMS_SignedData_init(CMS_ContentInfo *cms);
256183234SsimonCMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms,
257280304Sjkim                                X509 *signer, EVP_PKEY *pk, const EVP_MD *md,
258280304Sjkim                                unsigned int flags);
259183234SsimonSTACK_OF(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo *cms);
260183234Ssimon
261183234Ssimonvoid CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer);
262183234Ssimonint CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si,
263280304Sjkim                                  ASN1_OCTET_STRING **keyid,
264280304Sjkim                                  X509_NAME **issuer, ASN1_INTEGER **sno);
265183234Ssimonint CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert);
266183234Ssimonint CMS_set1_signers_certs(CMS_ContentInfo *cms, STACK_OF(X509) *certs,
267280304Sjkim                           unsigned int flags);
268280304Sjkimvoid CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk,
269280304Sjkim                              X509 **signer, X509_ALGOR **pdig,
270280304Sjkim                              X509_ALGOR **psig);
271183234Ssimonint CMS_SignerInfo_sign(CMS_SignerInfo *si);
272183234Ssimonint CMS_SignerInfo_verify(CMS_SignerInfo *si);
273183234Ssimonint CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain);
274183234Ssimon
275183234Ssimonint CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs);
276183234Ssimonint CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs,
277280304Sjkim                            int algnid, int keysize);
278183234Ssimonint CMS_add_standard_smimecap(STACK_OF(X509_ALGOR) **smcap);
279183234Ssimon
280183234Ssimonint CMS_signed_get_attr_count(const CMS_SignerInfo *si);
281183234Ssimonint CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid,
282280304Sjkim                               int lastpos);
283183234Ssimonint CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, ASN1_OBJECT *obj,
284280304Sjkim                               int lastpos);
285183234SsimonX509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc);
286183234SsimonX509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc);
287183234Ssimonint CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr);
288183234Ssimonint CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si,
289280304Sjkim                                const ASN1_OBJECT *obj, int type,
290280304Sjkim                                const void *bytes, int len);
291183234Ssimonint CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si,
292280304Sjkim                                int nid, int type,
293280304Sjkim                                const void *bytes, int len);
294183234Ssimonint CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si,
295280304Sjkim                                const char *attrname, int type,
296280304Sjkim                                const void *bytes, int len);
297183234Ssimonvoid *CMS_signed_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid,
298280304Sjkim                                  int lastpos, int type);
299183234Ssimon
300183234Ssimonint CMS_unsigned_get_attr_count(const CMS_SignerInfo *si);
301183234Ssimonint CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid,
302280304Sjkim                                 int lastpos);
303183234Ssimonint CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si, ASN1_OBJECT *obj,
304280304Sjkim                                 int lastpos);
305183234SsimonX509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int loc);
306183234SsimonX509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc);
307183234Ssimonint CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr);
308183234Ssimonint CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si,
309280304Sjkim                                  const ASN1_OBJECT *obj, int type,
310280304Sjkim                                  const void *bytes, int len);
311183234Ssimonint CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si,
312280304Sjkim                                  int nid, int type,
313280304Sjkim                                  const void *bytes, int len);
314183234Ssimonint CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si,
315280304Sjkim                                  const char *attrname, int type,
316280304Sjkim                                  const void *bytes, int len);
317183234Ssimonvoid *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid,
318280304Sjkim                                    int lastpos, int type);
319183234Ssimon
320280304Sjkim# ifdef HEADER_X509V3_H
321183234Ssimon
322183234Ssimonint CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr);
323183234SsimonCMS_ReceiptRequest *CMS_ReceiptRequest_create0(unsigned char *id, int idlen,
324280304Sjkim                                               int allorfirst,
325280304Sjkim                                               STACK_OF(GENERAL_NAMES)
326280304Sjkim                                               *receiptList, STACK_OF(GENERAL_NAMES)
327280304Sjkim                                               *receiptsTo);
328183234Ssimonint CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr);
329183234Ssimonvoid CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr,
330280304Sjkim                                    ASN1_STRING **pcid,
331280304Sjkim                                    int *pallorfirst,
332280304Sjkim                                    STACK_OF(GENERAL_NAMES) **plist,
333280304Sjkim                                    STACK_OF(GENERAL_NAMES) **prto);
334183234Ssimon
335280304Sjkim# endif
336183234Ssimon
337183234Ssimon/* BEGIN ERROR CODES */
338280304Sjkim/*
339280304Sjkim * The following lines are auto generated by the script mkerr.pl. Any changes
340183234Ssimon * made after this point may be overwritten when the script is next run.
341183234Ssimon */
342183234Ssimonvoid ERR_load_CMS_strings(void);
343183234Ssimon
344183234Ssimon/* Error codes for the CMS functions. */
345183234Ssimon
346183234Ssimon/* Function codes. */
347280304Sjkim# define CMS_F_CHECK_CONTENT                              99
348280304Sjkim# define CMS_F_CMS_ADD0_CERT                              164
349280304Sjkim# define CMS_F_CMS_ADD0_RECIPIENT_KEY                     100
350280304Sjkim# define CMS_F_CMS_ADD0_RECIPIENT_PASSWORD                165
351280304Sjkim# define CMS_F_CMS_ADD1_RECEIPTREQUEST                    158
352280304Sjkim# define CMS_F_CMS_ADD1_RECIPIENT_CERT                    101
353280304Sjkim# define CMS_F_CMS_ADD1_SIGNER                            102
354280304Sjkim# define CMS_F_CMS_ADD1_SIGNINGTIME                       103
355280304Sjkim# define CMS_F_CMS_COMPRESS                               104
356280304Sjkim# define CMS_F_CMS_COMPRESSEDDATA_CREATE                  105
357280304Sjkim# define CMS_F_CMS_COMPRESSEDDATA_INIT_BIO                106
358280304Sjkim# define CMS_F_CMS_COPY_CONTENT                           107
359280304Sjkim# define CMS_F_CMS_COPY_MESSAGEDIGEST                     108
360280304Sjkim# define CMS_F_CMS_DATA                                   109
361280304Sjkim# define CMS_F_CMS_DATAFINAL                              110
362280304Sjkim# define CMS_F_CMS_DATAINIT                               111
363280304Sjkim# define CMS_F_CMS_DECRYPT                                112
364280304Sjkim# define CMS_F_CMS_DECRYPT_SET1_KEY                       113
365280304Sjkim# define CMS_F_CMS_DECRYPT_SET1_PASSWORD                  166
366280304Sjkim# define CMS_F_CMS_DECRYPT_SET1_PKEY                      114
367280304Sjkim# define CMS_F_CMS_DIGESTALGORITHM_FIND_CTX               115
368280304Sjkim# define CMS_F_CMS_DIGESTALGORITHM_INIT_BIO               116
369280304Sjkim# define CMS_F_CMS_DIGESTEDDATA_DO_FINAL                  117
370280304Sjkim# define CMS_F_CMS_DIGEST_VERIFY                          118
371280304Sjkim# define CMS_F_CMS_ENCODE_RECEIPT                         161
372280304Sjkim# define CMS_F_CMS_ENCRYPT                                119
373280304Sjkim# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO              120
374280304Sjkim# define CMS_F_CMS_ENCRYPTEDDATA_DECRYPT                  121
375280304Sjkim# define CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT                  122
376280304Sjkim# define CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY                 123
377280304Sjkim# define CMS_F_CMS_ENVELOPEDDATA_CREATE                   124
378280304Sjkim# define CMS_F_CMS_ENVELOPEDDATA_INIT_BIO                 125
379280304Sjkim# define CMS_F_CMS_ENVELOPED_DATA_INIT                    126
380280304Sjkim# define CMS_F_CMS_FINAL                                  127
381280304Sjkim# define CMS_F_CMS_GET0_CERTIFICATE_CHOICES               128
382280304Sjkim# define CMS_F_CMS_GET0_CONTENT                           129
383280304Sjkim# define CMS_F_CMS_GET0_ECONTENT_TYPE                     130
384280304Sjkim# define CMS_F_CMS_GET0_ENVELOPED                         131
385280304Sjkim# define CMS_F_CMS_GET0_REVOCATION_CHOICES                132
386280304Sjkim# define CMS_F_CMS_GET0_SIGNED                            133
387280304Sjkim# define CMS_F_CMS_MSGSIGDIGEST_ADD1                      162
388280304Sjkim# define CMS_F_CMS_RECEIPTREQUEST_CREATE0                 159
389280304Sjkim# define CMS_F_CMS_RECEIPT_VERIFY                         160
390280304Sjkim# define CMS_F_CMS_RECIPIENTINFO_DECRYPT                  134
391280304Sjkim# define CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT            135
392280304Sjkim# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT            136
393280304Sjkim# define CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID            137
394280304Sjkim# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP             138
395280304Sjkim# define CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP            139
396280304Sjkim# define CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT             140
397280304Sjkim# define CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT             141
398280304Sjkim# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS           142
399280304Sjkim# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID      143
400280304Sjkim# define CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT               167
401280304Sjkim# define CMS_F_CMS_RECIPIENTINFO_SET0_KEY                 144
402280304Sjkim# define CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD            168
403280304Sjkim# define CMS_F_CMS_RECIPIENTINFO_SET0_PKEY                145
404280304Sjkim# define CMS_F_CMS_SET1_SIGNERIDENTIFIER                  146
405280304Sjkim# define CMS_F_CMS_SET_DETACHED                           147
406280304Sjkim# define CMS_F_CMS_SIGN                                   148
407280304Sjkim# define CMS_F_CMS_SIGNED_DATA_INIT                       149
408280304Sjkim# define CMS_F_CMS_SIGNERINFO_CONTENT_SIGN                150
409280304Sjkim# define CMS_F_CMS_SIGNERINFO_SIGN                        151
410280304Sjkim# define CMS_F_CMS_SIGNERINFO_VERIFY                      152
411280304Sjkim# define CMS_F_CMS_SIGNERINFO_VERIFY_CERT                 153
412280304Sjkim# define CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT              154
413280304Sjkim# define CMS_F_CMS_SIGN_RECEIPT                           163
414280304Sjkim# define CMS_F_CMS_STREAM                                 155
415280304Sjkim# define CMS_F_CMS_UNCOMPRESS                             156
416280304Sjkim# define CMS_F_CMS_VERIFY                                 157
417183234Ssimon
418183234Ssimon/* Reason codes. */
419280304Sjkim# define CMS_R_ADD_SIGNER_ERROR                           99
420280304Sjkim# define CMS_R_CERTIFICATE_ALREADY_PRESENT                175
421280304Sjkim# define CMS_R_CERTIFICATE_HAS_NO_KEYID                   160
422280304Sjkim# define CMS_R_CERTIFICATE_VERIFY_ERROR                   100
423280304Sjkim# define CMS_R_CIPHER_INITIALISATION_ERROR                101
424280304Sjkim# define CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR      102
425280304Sjkim# define CMS_R_CMS_DATAFINAL_ERROR                        103
426280304Sjkim# define CMS_R_CMS_LIB                                    104
427280304Sjkim# define CMS_R_CONTENTIDENTIFIER_MISMATCH                 170
428280304Sjkim# define CMS_R_CONTENT_NOT_FOUND                          105
429280304Sjkim# define CMS_R_CONTENT_TYPE_MISMATCH                      171
430280304Sjkim# define CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA           106
431280304Sjkim# define CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA            107
432280304Sjkim# define CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA               108
433280304Sjkim# define CMS_R_CONTENT_VERIFY_ERROR                       109
434280304Sjkim# define CMS_R_CTRL_ERROR                                 110
435280304Sjkim# define CMS_R_CTRL_FAILURE                               111
436280304Sjkim# define CMS_R_DECRYPT_ERROR                              112
437280304Sjkim# define CMS_R_DIGEST_ERROR                               161
438280304Sjkim# define CMS_R_ERROR_GETTING_PUBLIC_KEY                   113
439280304Sjkim# define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE      114
440280304Sjkim# define CMS_R_ERROR_SETTING_KEY                          115
441280304Sjkim# define CMS_R_ERROR_SETTING_RECIPIENTINFO                116
442280304Sjkim# define CMS_R_INVALID_ENCRYPTED_KEY_LENGTH               117
443280304Sjkim# define CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER           176
444280304Sjkim# define CMS_R_INVALID_KEY_LENGTH                         118
445280304Sjkim# define CMS_R_MD_BIO_INIT_ERROR                          119
446280304Sjkim# define CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH       120
447280304Sjkim# define CMS_R_MESSAGEDIGEST_WRONG_LENGTH                 121
448280304Sjkim# define CMS_R_MSGSIGDIGEST_ERROR                         172
449280304Sjkim# define CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE          162
450280304Sjkim# define CMS_R_MSGSIGDIGEST_WRONG_LENGTH                  163
451280304Sjkim# define CMS_R_NEED_ONE_SIGNER                            164
452280304Sjkim# define CMS_R_NOT_A_SIGNED_RECEIPT                       165
453280304Sjkim# define CMS_R_NOT_ENCRYPTED_DATA                         122
454280304Sjkim# define CMS_R_NOT_KEK                                    123
455280304Sjkim# define CMS_R_NOT_KEY_TRANSPORT                          124
456280304Sjkim# define CMS_R_NOT_PWRI                                   177
457280304Sjkim# define CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE            125
458280304Sjkim# define CMS_R_NO_CIPHER                                  126
459280304Sjkim# define CMS_R_NO_CONTENT                                 127
460280304Sjkim# define CMS_R_NO_CONTENT_TYPE                            173
461280304Sjkim# define CMS_R_NO_DEFAULT_DIGEST                          128
462280304Sjkim# define CMS_R_NO_DIGEST_SET                              129
463280304Sjkim# define CMS_R_NO_KEY                                     130
464280304Sjkim# define CMS_R_NO_KEY_OR_CERT                             174
465280304Sjkim# define CMS_R_NO_MATCHING_DIGEST                         131
466280304Sjkim# define CMS_R_NO_MATCHING_RECIPIENT                      132
467280304Sjkim# define CMS_R_NO_MATCHING_SIGNATURE                      166
468280304Sjkim# define CMS_R_NO_MSGSIGDIGEST                            167
469280304Sjkim# define CMS_R_NO_PASSWORD                                178
470280304Sjkim# define CMS_R_NO_PRIVATE_KEY                             133
471280304Sjkim# define CMS_R_NO_PUBLIC_KEY                              134
472280304Sjkim# define CMS_R_NO_RECEIPT_REQUEST                         168
473280304Sjkim# define CMS_R_NO_SIGNERS                                 135
474280304Sjkim# define CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE     136
475280304Sjkim# define CMS_R_RECEIPT_DECODE_ERROR                       169
476280304Sjkim# define CMS_R_RECIPIENT_ERROR                            137
477280304Sjkim# define CMS_R_SIGNER_CERTIFICATE_NOT_FOUND               138
478280304Sjkim# define CMS_R_SIGNFINAL_ERROR                            139
479280304Sjkim# define CMS_R_SMIME_TEXT_ERROR                           140
480280304Sjkim# define CMS_R_STORE_INIT_ERROR                           141
481280304Sjkim# define CMS_R_TYPE_NOT_COMPRESSED_DATA                   142
482280304Sjkim# define CMS_R_TYPE_NOT_DATA                              143
483280304Sjkim# define CMS_R_TYPE_NOT_DIGESTED_DATA                     144
484280304Sjkim# define CMS_R_TYPE_NOT_ENCRYPTED_DATA                    145
485280304Sjkim# define CMS_R_TYPE_NOT_ENVELOPED_DATA                    146
486280304Sjkim# define CMS_R_UNABLE_TO_FINALIZE_CONTEXT                 147
487280304Sjkim# define CMS_R_UNKNOWN_CIPHER                             148
488280304Sjkim# define CMS_R_UNKNOWN_DIGEST_ALGORIHM                    149
489280304Sjkim# define CMS_R_UNKNOWN_ID                                 150
490280304Sjkim# define CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM          151
491280304Sjkim# define CMS_R_UNSUPPORTED_CONTENT_TYPE                   152
492280304Sjkim# define CMS_R_UNSUPPORTED_KEK_ALGORITHM                  153
493280304Sjkim# define CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM       179
494280304Sjkim# define CMS_R_UNSUPPORTED_RECIPIENT_TYPE                 154
495280304Sjkim# define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE              155
496280304Sjkim# define CMS_R_UNSUPPORTED_TYPE                           156
497280304Sjkim# define CMS_R_UNWRAP_ERROR                               157
498280304Sjkim# define CMS_R_UNWRAP_FAILURE                             180
499280304Sjkim# define CMS_R_VERIFICATION_FAILURE                       158
500280304Sjkim# define CMS_R_WRAP_ERROR                                 159
501183234Ssimon
502183234Ssimon#ifdef  __cplusplus
503183234Ssimon}
504183234Ssimon#endif
505183234Ssimon#endif
506