~ubuntu-branches/ubuntu/lucid/openssl/lucid-proposed

« back to all changes in this revision

Viewing changes to crypto/cms/cms.h

  • Committer: Bazaar Package Importer
  • Author(s): Kurt Roeckx
  • Date: 2009-06-13 18:15:46 UTC
  • mto: (11.1.5 squeeze)
  • mto: This revision was merged to the branch mainline in revision 34.
  • Revision ID: james.westby@ubuntu.com-20090613181546-vbfntai3b009dl1u
Tags: upstream-0.9.8k
ImportĀ upstreamĀ versionĀ 0.9.8k

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* crypto/cms/cms.h */
 
2
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
 
3
 * project.
 
4
 */
 
5
/* ====================================================================
 
6
 * Copyright (c) 2008 The OpenSSL Project.  All rights reserved.
 
7
 *
 
8
 * Redistribution and use in source and binary forms, with or without
 
9
 * modification, are permitted provided that the following conditions
 
10
 * are met:
 
11
 *
 
12
 * 1. Redistributions of source code must retain the above copyright
 
13
 *    notice, this list of conditions and the following disclaimer. 
 
14
 *
 
15
 * 2. Redistributions in binary form must reproduce the above copyright
 
16
 *    notice, this list of conditions and the following disclaimer in
 
17
 *    the documentation and/or other materials provided with the
 
18
 *    distribution.
 
19
 *
 
20
 * 3. All advertising materials mentioning features or use of this
 
21
 *    software must display the following acknowledgment:
 
22
 *    "This product includes software developed by the OpenSSL Project
 
23
 *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
 
24
 *
 
25
 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
 
26
 *    endorse or promote products derived from this software without
 
27
 *    prior written permission. For written permission, please contact
 
28
 *    licensing@OpenSSL.org.
 
29
 *
 
30
 * 5. Products derived from this software may not be called "OpenSSL"
 
31
 *    nor may "OpenSSL" appear in their names without prior written
 
32
 *    permission of the OpenSSL Project.
 
33
 *
 
34
 * 6. Redistributions of any form whatsoever must retain the following
 
35
 *    acknowledgment:
 
36
 *    "This product includes software developed by the OpenSSL Project
 
37
 *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
 
38
 *
 
39
 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
 
40
 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 
41
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 
42
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
 
43
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 
44
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 
45
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 
46
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 
47
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 
48
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 
49
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 
50
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 
51
 * ====================================================================
 
52
 */
 
53
 
 
54
 
 
55
#ifndef HEADER_CMS_H
 
56
#define HEADER_CMS_H
 
57
 
 
58
#include <openssl/x509.h>
 
59
 
 
60
#ifdef OPENSSL_NO_CMS
 
61
#error CMS is disabled.
 
62
#endif
 
63
 
 
64
#ifdef __cplusplus
 
65
extern "C" {
 
66
#endif
 
67
 
 
68
 
 
69
typedef struct CMS_ContentInfo_st CMS_ContentInfo;
 
70
typedef struct CMS_SignerInfo_st CMS_SignerInfo;
 
71
typedef struct CMS_CertificateChoices CMS_CertificateChoices;
 
72
typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice;
 
73
typedef struct CMS_RecipientInfo_st CMS_RecipientInfo;
 
74
typedef struct CMS_ReceiptRequest_st CMS_ReceiptRequest;
 
75
typedef struct CMS_Receipt_st CMS_Receipt;
 
76
 
 
77
DECLARE_STACK_OF(CMS_SignerInfo)
 
78
DECLARE_STACK_OF(GENERAL_NAMES)
 
79
DECLARE_ASN1_FUNCTIONS_const(CMS_ContentInfo)
 
80
DECLARE_ASN1_FUNCTIONS_const(CMS_ReceiptRequest)
 
81
 
 
82
#define CMS_SIGNERINFO_ISSUER_SERIAL    0
 
83
#define CMS_SIGNERINFO_KEYIDENTIFIER    1
 
84
 
 
85
#define CMS_RECIPINFO_TRANS             0
 
86
#define CMS_RECIPINFO_AGREE             1
 
87
#define CMS_RECIPINFO_KEK               2
 
88
#define CMS_RECIPINFO_PASS              3
 
89
#define CMS_RECIPINFO_OTHER             4
 
90
 
 
91
/* S/MIME related flags */
 
92
 
 
93
#define CMS_TEXT                        0x1
 
94
#define CMS_NOCERTS                     0x2
 
95
#define CMS_NO_CONTENT_VERIFY           0x4
 
96
#define CMS_NO_ATTR_VERIFY              0x8
 
97
#define CMS_NOSIGS                      \
 
98
                        (CMS_NO_CONTENT_VERIFY|CMS_NO_ATTR_VERIFY)
 
99
#define CMS_NOINTERN                    0x10
 
100
#define CMS_NO_SIGNER_CERT_VERIFY       0x20
 
101
#define CMS_NOVERIFY                    0x20
 
102
#define CMS_DETACHED                    0x40
 
103
#define CMS_BINARY                      0x80
 
104
#define CMS_NOATTR                      0x100
 
105
#define CMS_NOSMIMECAP                  0x200
 
106
#define CMS_NOOLDMIMETYPE               0x400
 
107
#define CMS_CRLFEOL                     0x800
 
108
#define CMS_STREAM                      0x1000
 
109
#define CMS_NOCRL                       0x2000
 
110
#define CMS_PARTIAL                     0x4000
 
111
#define CMS_REUSE_DIGEST                0x8000
 
112
#define CMS_USE_KEYID                   0x10000
 
113
 
 
114
const ASN1_OBJECT *CMS_get0_type(CMS_ContentInfo *cms);
 
115
 
 
116
BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont);
 
117
int CMS_dataFinal(CMS_ContentInfo *cms, BIO *bio);
 
118
 
 
119
ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms);
 
120
int CMS_is_detached(CMS_ContentInfo *cms);
 
121
int CMS_set_detached(CMS_ContentInfo *cms, int detached);
 
122
 
 
123
#ifdef HEADER_PEM_H
 
124
DECLARE_PEM_rw_const(CMS, CMS_ContentInfo)
 
125
#endif
 
126
 
 
127
CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms);
 
128
int i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms);
 
129
 
 
130
CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont);
 
131
int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags);
 
132
 
 
133
int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags);
 
134
 
 
135
CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs,
 
136
                                                BIO *data, unsigned int flags);
 
137
 
 
138
CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si,
 
139
                                        X509 *signcert, EVP_PKEY *pkey,
 
140
                                        STACK_OF(X509) *certs,
 
141
                                        unsigned int flags);
 
142
 
 
143
int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags);
 
144
CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags);
 
145
 
 
146
int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out,
 
147
                                                        unsigned int flags);
 
148
CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md,
 
149
                                                        unsigned int flags);
 
150
 
 
151
int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms,
 
152
                                const unsigned char *key, size_t keylen,
 
153
                                BIO *dcont, BIO *out, unsigned int flags);
 
154
 
 
155
CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher,
 
156
                                        const unsigned char *key, size_t keylen,
 
157
                                        unsigned int flags);
 
158
 
 
159
int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph,
 
160
                                const unsigned char *key, size_t keylen);
 
161
 
 
162
int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs,
 
163
                 X509_STORE *store, BIO *dcont, BIO *out, unsigned int flags);
 
164
 
 
165
int CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms,
 
166
                        STACK_OF(X509) *certs,
 
167
                        X509_STORE *store, unsigned int flags);
 
168
 
 
169
STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms);
 
170
 
 
171
CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in,
 
172
                                const EVP_CIPHER *cipher, unsigned int flags);
 
173
 
 
174
int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert,
 
175
                                BIO *dcont, BIO *out,
 
176
                                unsigned int flags);
 
177
        
 
178
int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert);
 
179
int CMS_decrypt_set1_key(CMS_ContentInfo *cms, 
 
180
                                unsigned char *key, size_t keylen,
 
181
                                unsigned char *id, size_t idlen);
 
182
 
 
183
STACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms);
 
184
int CMS_RecipientInfo_type(CMS_RecipientInfo *ri);
 
185
CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher);
 
186
CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms,
 
187
                                        X509 *recip, unsigned int flags);
 
188
int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey);
 
189
int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert);
 
190
int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri,
 
191
                                        EVP_PKEY **pk, X509 **recip,
 
192
                                        X509_ALGOR **palg);
 
193
int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri,
 
194
                                        ASN1_OCTET_STRING **keyid,
 
195
                                        X509_NAME **issuer, ASN1_INTEGER **sno);
 
196
 
 
197
CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid,
 
198
                                        unsigned char *key, size_t keylen,
 
199
                                        unsigned char *id, size_t idlen,
 
200
                                        ASN1_GENERALIZEDTIME *date,
 
201
                                        ASN1_OBJECT *otherTypeId,
 
202
                                        ASN1_TYPE *otherType);
 
203
 
 
204
int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri,
 
205
                                        X509_ALGOR **palg,
 
206
                                        ASN1_OCTET_STRING **pid,
 
207
                                        ASN1_GENERALIZEDTIME **pdate,
 
208
                                        ASN1_OBJECT **potherid,
 
209
                                        ASN1_TYPE **pothertype);
 
210
 
 
211
int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri, 
 
212
                                unsigned char *key, size_t keylen);
 
213
 
 
214
int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri, 
 
215
                                        const unsigned char *id, size_t idlen);
 
216
 
 
217
int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri);
 
218
        
 
219
int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out,
 
220
                                                        unsigned int flags);
 
221
CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags);
 
222
 
 
223
int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid);
 
224
const ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms);
 
225
 
 
226
CMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo *cms);
 
227
int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert);
 
228
int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert);
 
229
STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms);
 
230
 
 
231
CMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo *cms);
 
232
int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl);
 
233
STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms);
 
234
 
 
235
int CMS_SignedData_init(CMS_ContentInfo *cms);
 
236
CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms,
 
237
                        X509 *signer, EVP_PKEY *pk, const EVP_MD *md,
 
238
                        unsigned int flags);
 
239
STACK_OF(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo *cms);
 
240
 
 
241
void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer);
 
242
int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si,
 
243
                                        ASN1_OCTET_STRING **keyid,
 
244
                                        X509_NAME **issuer, ASN1_INTEGER **sno);
 
245
int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert);
 
246
int CMS_set1_signers_certs(CMS_ContentInfo *cms, STACK_OF(X509) *certs,
 
247
                                        unsigned int flags);
 
248
void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk, X509 **signer,
 
249
                                        X509_ALGOR **pdig, X509_ALGOR **psig);
 
250
int CMS_SignerInfo_sign(CMS_SignerInfo *si);
 
251
int CMS_SignerInfo_verify(CMS_SignerInfo *si);
 
252
int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain);
 
253
 
 
254
int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs);
 
255
int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs,
 
256
                                int algnid, int keysize);
 
257
int CMS_add_standard_smimecap(STACK_OF(X509_ALGOR) **smcap);
 
258
 
 
259
int CMS_signed_get_attr_count(const CMS_SignerInfo *si);
 
260
int CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid,
 
261
                          int lastpos);
 
262
int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, ASN1_OBJECT *obj,
 
263
                          int lastpos);
 
264
X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc);
 
265
X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc);
 
266
int CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr);
 
267
int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si,
 
268
                        const ASN1_OBJECT *obj, int type,
 
269
                        const void *bytes, int len);
 
270
int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si,
 
271
                        int nid, int type,
 
272
                        const void *bytes, int len);
 
273
int CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si,
 
274
                        const char *attrname, int type,
 
275
                        const void *bytes, int len);
 
276
void *CMS_signed_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid,
 
277
                                        int lastpos, int type);
 
278
 
 
279
int CMS_unsigned_get_attr_count(const CMS_SignerInfo *si);
 
280
int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid,
 
281
                          int lastpos);
 
282
int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si, ASN1_OBJECT *obj,
 
283
                          int lastpos);
 
284
X509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int loc);
 
285
X509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc);
 
286
int CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr);
 
287
int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si,
 
288
                        const ASN1_OBJECT *obj, int type,
 
289
                        const void *bytes, int len);
 
290
int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si,
 
291
                        int nid, int type,
 
292
                        const void *bytes, int len);
 
293
int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si,
 
294
                        const char *attrname, int type,
 
295
                        const void *bytes, int len);
 
296
void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid,
 
297
                                        int lastpos, int type);
 
298
 
 
299
#ifdef HEADER_X509V3_H
 
300
 
 
301
int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr);
 
302
CMS_ReceiptRequest *CMS_ReceiptRequest_create0(unsigned char *id, int idlen,
 
303
                                int allorfirst,
 
304
                                STACK_OF(GENERAL_NAMES) *receiptList,
 
305
                                STACK_OF(GENERAL_NAMES) *receiptsTo);
 
306
int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr);
 
307
void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr,
 
308
                                        ASN1_STRING **pcid,
 
309
                                        int *pallorfirst,
 
310
                                        STACK_OF(GENERAL_NAMES) **plist,
 
311
                                        STACK_OF(GENERAL_NAMES) **prto);
 
312
 
 
313
#endif
 
314
 
 
315
/* BEGIN ERROR CODES */
 
316
/* The following lines are auto generated by the script mkerr.pl. Any changes
 
317
 * made after this point may be overwritten when the script is next run.
 
318
 */
 
319
void ERR_load_CMS_strings(void);
 
320
 
 
321
/* Error codes for the CMS functions. */
 
322
 
 
323
/* Function codes. */
 
324
#define CMS_F_CHECK_CONTENT                              99
 
325
#define CMS_F_CMS_ADD0_CERT                              164
 
326
#define CMS_F_CMS_ADD0_RECIPIENT_KEY                     100
 
327
#define CMS_F_CMS_ADD1_RECEIPTREQUEST                    158
 
328
#define CMS_F_CMS_ADD1_RECIPIENT_CERT                    101
 
329
#define CMS_F_CMS_ADD1_SIGNER                            102
 
330
#define CMS_F_CMS_ADD1_SIGNINGTIME                       103
 
331
#define CMS_F_CMS_COMPRESS                               104
 
332
#define CMS_F_CMS_COMPRESSEDDATA_CREATE                  105
 
333
#define CMS_F_CMS_COMPRESSEDDATA_INIT_BIO                106
 
334
#define CMS_F_CMS_COPY_CONTENT                           107
 
335
#define CMS_F_CMS_COPY_MESSAGEDIGEST                     108
 
336
#define CMS_F_CMS_DATA                                   109
 
337
#define CMS_F_CMS_DATAFINAL                              110
 
338
#define CMS_F_CMS_DATAINIT                               111
 
339
#define CMS_F_CMS_DECRYPT                                112
 
340
#define CMS_F_CMS_DECRYPT_SET1_KEY                       113
 
341
#define CMS_F_CMS_DECRYPT_SET1_PKEY                      114
 
342
#define CMS_F_CMS_DIGESTALGORITHM_FIND_CTX               115
 
343
#define CMS_F_CMS_DIGESTALGORITHM_INIT_BIO               116
 
344
#define CMS_F_CMS_DIGESTEDDATA_DO_FINAL                  117
 
345
#define CMS_F_CMS_DIGEST_VERIFY                          118
 
346
#define CMS_F_CMS_ENCODE_RECEIPT                         161
 
347
#define CMS_F_CMS_ENCRYPT                                119
 
348
#define CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO              120
 
349
#define CMS_F_CMS_ENCRYPTEDDATA_DECRYPT                  121
 
350
#define CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT                  122
 
351
#define CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY                 123
 
352
#define CMS_F_CMS_ENVELOPEDDATA_CREATE                   124
 
353
#define CMS_F_CMS_ENVELOPEDDATA_INIT_BIO                 125
 
354
#define CMS_F_CMS_ENVELOPED_DATA_INIT                    126
 
355
#define CMS_F_CMS_FINAL                                  127
 
356
#define CMS_F_CMS_GET0_CERTIFICATE_CHOICES               128
 
357
#define CMS_F_CMS_GET0_CONTENT                           129
 
358
#define CMS_F_CMS_GET0_ECONTENT_TYPE                     130
 
359
#define CMS_F_CMS_GET0_ENVELOPED                         131
 
360
#define CMS_F_CMS_GET0_REVOCATION_CHOICES                132
 
361
#define CMS_F_CMS_GET0_SIGNED                            133
 
362
#define CMS_F_CMS_MSGSIGDIGEST_ADD1                      162
 
363
#define CMS_F_CMS_RECEIPTREQUEST_CREATE0                 159
 
364
#define CMS_F_CMS_RECEIPT_VERIFY                         160
 
365
#define CMS_F_CMS_RECIPIENTINFO_DECRYPT                  134
 
366
#define CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT            135
 
367
#define CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT            136
 
368
#define CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID            137
 
369
#define CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP             138
 
370
#define CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP            139
 
371
#define CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT             140
 
372
#define CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT             141
 
373
#define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS           142
 
374
#define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID      143
 
375
#define CMS_F_CMS_RECIPIENTINFO_SET0_KEY                 144
 
376
#define CMS_F_CMS_RECIPIENTINFO_SET0_PKEY                145
 
377
#define CMS_F_CMS_SET1_SIGNERIDENTIFIER                  146
 
378
#define CMS_F_CMS_SET_DETACHED                           147
 
379
#define CMS_F_CMS_SIGN                                   148
 
380
#define CMS_F_CMS_SIGNED_DATA_INIT                       149
 
381
#define CMS_F_CMS_SIGNERINFO_CONTENT_SIGN                150
 
382
#define CMS_F_CMS_SIGNERINFO_SIGN                        151
 
383
#define CMS_F_CMS_SIGNERINFO_VERIFY                      152
 
384
#define CMS_F_CMS_SIGNERINFO_VERIFY_CERT                 153
 
385
#define CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT              154
 
386
#define CMS_F_CMS_SIGN_RECEIPT                           163
 
387
#define CMS_F_CMS_STREAM                                 155
 
388
#define CMS_F_CMS_UNCOMPRESS                             156
 
389
#define CMS_F_CMS_VERIFY                                 157
 
390
 
 
391
/* Reason codes. */
 
392
#define CMS_R_ADD_SIGNER_ERROR                           99
 
393
#define CMS_R_CERTIFICATE_ALREADY_PRESENT                175
 
394
#define CMS_R_CERTIFICATE_HAS_NO_KEYID                   160
 
395
#define CMS_R_CERTIFICATE_VERIFY_ERROR                   100
 
396
#define CMS_R_CIPHER_INITIALISATION_ERROR                101
 
397
#define CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR      102
 
398
#define CMS_R_CMS_DATAFINAL_ERROR                        103
 
399
#define CMS_R_CMS_LIB                                    104
 
400
#define CMS_R_CONTENTIDENTIFIER_MISMATCH                 170
 
401
#define CMS_R_CONTENT_NOT_FOUND                          105
 
402
#define CMS_R_CONTENT_TYPE_MISMATCH                      171
 
403
#define CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA           106
 
404
#define CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA            107
 
405
#define CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA               108
 
406
#define CMS_R_CONTENT_VERIFY_ERROR                       109
 
407
#define CMS_R_CTRL_ERROR                                 110
 
408
#define CMS_R_CTRL_FAILURE                               111
 
409
#define CMS_R_DECRYPT_ERROR                              112
 
410
#define CMS_R_DIGEST_ERROR                               161
 
411
#define CMS_R_ERROR_GETTING_PUBLIC_KEY                   113
 
412
#define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE      114
 
413
#define CMS_R_ERROR_SETTING_KEY                          115
 
414
#define CMS_R_ERROR_SETTING_RECIPIENTINFO                116
 
415
#define CMS_R_INVALID_ENCRYPTED_KEY_LENGTH               117
 
416
#define CMS_R_INVALID_KEY_LENGTH                         118
 
417
#define CMS_R_MD_BIO_INIT_ERROR                          119
 
418
#define CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH       120
 
419
#define CMS_R_MESSAGEDIGEST_WRONG_LENGTH                 121
 
420
#define CMS_R_MSGSIGDIGEST_ERROR                         172
 
421
#define CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE          162
 
422
#define CMS_R_MSGSIGDIGEST_WRONG_LENGTH                  163
 
423
#define CMS_R_NEED_ONE_SIGNER                            164
 
424
#define CMS_R_NOT_A_SIGNED_RECEIPT                       165
 
425
#define CMS_R_NOT_ENCRYPTED_DATA                         122
 
426
#define CMS_R_NOT_KEK                                    123
 
427
#define CMS_R_NOT_KEY_TRANSPORT                          124
 
428
#define CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE            125
 
429
#define CMS_R_NO_CIPHER                                  126
 
430
#define CMS_R_NO_CONTENT                                 127
 
431
#define CMS_R_NO_CONTENT_TYPE                            173
 
432
#define CMS_R_NO_DEFAULT_DIGEST                          128
 
433
#define CMS_R_NO_DIGEST_SET                              129
 
434
#define CMS_R_NO_KEY                                     130
 
435
#define CMS_R_NO_KEY_OR_CERT                             174
 
436
#define CMS_R_NO_MATCHING_DIGEST                         131
 
437
#define CMS_R_NO_MATCHING_RECIPIENT                      132
 
438
#define CMS_R_NO_MATCHING_SIGNATURE                      166
 
439
#define CMS_R_NO_MSGSIGDIGEST                            167
 
440
#define CMS_R_NO_PRIVATE_KEY                             133
 
441
#define CMS_R_NO_PUBLIC_KEY                              134
 
442
#define CMS_R_NO_RECEIPT_REQUEST                         168
 
443
#define CMS_R_NO_SIGNERS                                 135
 
444
#define CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE     136
 
445
#define CMS_R_RECEIPT_DECODE_ERROR                       169
 
446
#define CMS_R_RECIPIENT_ERROR                            137
 
447
#define CMS_R_SIGNER_CERTIFICATE_NOT_FOUND               138
 
448
#define CMS_R_SIGNFINAL_ERROR                            139
 
449
#define CMS_R_SMIME_TEXT_ERROR                           140
 
450
#define CMS_R_STORE_INIT_ERROR                           141
 
451
#define CMS_R_TYPE_NOT_COMPRESSED_DATA                   142
 
452
#define CMS_R_TYPE_NOT_DATA                              143
 
453
#define CMS_R_TYPE_NOT_DIGESTED_DATA                     144
 
454
#define CMS_R_TYPE_NOT_ENCRYPTED_DATA                    145
 
455
#define CMS_R_TYPE_NOT_ENVELOPED_DATA                    146
 
456
#define CMS_R_UNABLE_TO_FINALIZE_CONTEXT                 147
 
457
#define CMS_R_UNKNOWN_CIPHER                             148
 
458
#define CMS_R_UNKNOWN_DIGEST_ALGORIHM                    149
 
459
#define CMS_R_UNKNOWN_ID                                 150
 
460
#define CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM          151
 
461
#define CMS_R_UNSUPPORTED_CONTENT_TYPE                   152
 
462
#define CMS_R_UNSUPPORTED_KEK_ALGORITHM                  153
 
463
#define CMS_R_UNSUPPORTED_RECIPIENT_TYPE                 154
 
464
#define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE              155
 
465
#define CMS_R_UNSUPPORTED_TYPE                           156
 
466
#define CMS_R_UNWRAP_ERROR                               157
 
467
#define CMS_R_VERIFICATION_FAILURE                       158
 
468
#define CMS_R_WRAP_ERROR                                 159
 
469
 
 
470
#ifdef  __cplusplus
 
471
}
 
472
#endif
 
473
#endif