diff options
Diffstat (limited to 'src/lib/libcrypto/pkcs7/pkcs7.h')
-rw-r--r-- | src/lib/libcrypto/pkcs7/pkcs7.h | 390 |
1 files changed, 195 insertions, 195 deletions
diff --git a/src/lib/libcrypto/pkcs7/pkcs7.h b/src/lib/libcrypto/pkcs7/pkcs7.h index ee12f670a8..5819700a85 100644 --- a/src/lib/libcrypto/pkcs7/pkcs7.h +++ b/src/lib/libcrypto/pkcs7/pkcs7.h | |||
@@ -59,12 +59,22 @@ | |||
59 | #ifndef HEADER_PKCS7_H | 59 | #ifndef HEADER_PKCS7_H |
60 | #define HEADER_PKCS7_H | 60 | #define HEADER_PKCS7_H |
61 | 61 | ||
62 | #include <openssl/asn1.h> | ||
63 | #include <openssl/bio.h> | ||
64 | #include <openssl/e_os2.h> | ||
65 | |||
66 | #include <openssl/symhacks.h> | ||
67 | #include <openssl/ossl_typ.h> | ||
68 | |||
62 | #ifdef __cplusplus | 69 | #ifdef __cplusplus |
63 | extern "C" { | 70 | extern "C" { |
64 | #endif | 71 | #endif |
65 | 72 | ||
66 | #include "bio.h" | 73 | #ifdef OPENSSL_SYS_WIN32 |
67 | #include "x509.h" | 74 | /* Under Win32 thes are defined in wincrypt.h */ |
75 | #undef PKCS7_ISSUER_AND_SERIAL | ||
76 | #undef PKCS7_SIGNER_INFO | ||
77 | #endif | ||
68 | 78 | ||
69 | /* | 79 | /* |
70 | Encryption_ID DES-CBC | 80 | Encryption_ID DES-CBC |
@@ -84,15 +94,18 @@ typedef struct pkcs7_signer_info_st | |||
84 | ASN1_INTEGER *version; /* version 1 */ | 94 | ASN1_INTEGER *version; /* version 1 */ |
85 | PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; | 95 | PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; |
86 | X509_ALGOR *digest_alg; | 96 | X509_ALGOR *digest_alg; |
87 | STACK /* X509_ATTRIBUTE */ *auth_attr; /* [ 0 ] */ | 97 | STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ |
88 | X509_ALGOR *digest_enc_alg; | 98 | X509_ALGOR *digest_enc_alg; |
89 | ASN1_OCTET_STRING *enc_digest; | 99 | ASN1_OCTET_STRING *enc_digest; |
90 | STACK /* X509_ATTRIBUTE */ *unauth_attr; /* [ 1 ] */ | 100 | STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ |
91 | 101 | ||
92 | /* The private key to sign with */ | 102 | /* The private key to sign with */ |
93 | EVP_PKEY *pkey; | 103 | EVP_PKEY *pkey; |
94 | } PKCS7_SIGNER_INFO; | 104 | } PKCS7_SIGNER_INFO; |
95 | 105 | ||
106 | DECLARE_STACK_OF(PKCS7_SIGNER_INFO) | ||
107 | DECLARE_ASN1_SET_OF(PKCS7_SIGNER_INFO) | ||
108 | |||
96 | typedef struct pkcs7_recip_info_st | 109 | typedef struct pkcs7_recip_info_st |
97 | { | 110 | { |
98 | ASN1_INTEGER *version; /* version 0 */ | 111 | ASN1_INTEGER *version; /* version 0 */ |
@@ -102,13 +115,16 @@ typedef struct pkcs7_recip_info_st | |||
102 | X509 *cert; /* get the pub-key from this */ | 115 | X509 *cert; /* get the pub-key from this */ |
103 | } PKCS7_RECIP_INFO; | 116 | } PKCS7_RECIP_INFO; |
104 | 117 | ||
118 | DECLARE_STACK_OF(PKCS7_RECIP_INFO) | ||
119 | DECLARE_ASN1_SET_OF(PKCS7_RECIP_INFO) | ||
120 | |||
105 | typedef struct pkcs7_signed_st | 121 | typedef struct pkcs7_signed_st |
106 | { | 122 | { |
107 | ASN1_INTEGER *version; /* version 1 */ | 123 | ASN1_INTEGER *version; /* version 1 */ |
108 | STACK /* X509_ALGOR's */ *md_algs; /* md used */ | 124 | STACK_OF(X509_ALGOR) *md_algs; /* md used */ |
109 | STACK /* X509 */ *cert; /* [ 0 ] */ | 125 | STACK_OF(X509) *cert; /* [ 0 ] */ |
110 | STACK /* X509_CRL */ *crl; /* [ 1 ] */ | 126 | STACK_OF(X509_CRL) *crl; /* [ 1 ] */ |
111 | STACK /* PKCS7_SIGNER_INFO */ *signer_info; | 127 | STACK_OF(PKCS7_SIGNER_INFO) *signer_info; |
112 | 128 | ||
113 | struct pkcs7_st *contents; | 129 | struct pkcs7_st *contents; |
114 | } PKCS7_SIGNED; | 130 | } PKCS7_SIGNED; |
@@ -120,25 +136,26 @@ typedef struct pkcs7_enc_content_st | |||
120 | ASN1_OBJECT *content_type; | 136 | ASN1_OBJECT *content_type; |
121 | X509_ALGOR *algorithm; | 137 | X509_ALGOR *algorithm; |
122 | ASN1_OCTET_STRING *enc_data; /* [ 0 ] */ | 138 | ASN1_OCTET_STRING *enc_data; /* [ 0 ] */ |
139 | const EVP_CIPHER *cipher; | ||
123 | } PKCS7_ENC_CONTENT; | 140 | } PKCS7_ENC_CONTENT; |
124 | 141 | ||
125 | typedef struct pkcs7_enveloped_st | 142 | typedef struct pkcs7_enveloped_st |
126 | { | 143 | { |
127 | ASN1_INTEGER *version; /* version 0 */ | 144 | ASN1_INTEGER *version; /* version 0 */ |
128 | STACK /* PKCS7_RECIP_INFO */ *recipientinfo; | 145 | STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; |
129 | PKCS7_ENC_CONTENT *enc_data; | 146 | PKCS7_ENC_CONTENT *enc_data; |
130 | } PKCS7_ENVELOPE; | 147 | } PKCS7_ENVELOPE; |
131 | 148 | ||
132 | typedef struct pkcs7_signedandenveloped_st | 149 | typedef struct pkcs7_signedandenveloped_st |
133 | { | 150 | { |
134 | ASN1_INTEGER *version; /* version 1 */ | 151 | ASN1_INTEGER *version; /* version 1 */ |
135 | STACK /* X509_ALGOR's */ *md_algs; /* md used */ | 152 | STACK_OF(X509_ALGOR) *md_algs; /* md used */ |
136 | STACK /* X509 */ *cert; /* [ 0 ] */ | 153 | STACK_OF(X509) *cert; /* [ 0 ] */ |
137 | STACK /* X509_CRL */ *crl; /* [ 1 ] */ | 154 | STACK_OF(X509_CRL) *crl; /* [ 1 ] */ |
138 | STACK /* PKCS7_SIGNER_INFO */ *signer_info; | 155 | STACK_OF(PKCS7_SIGNER_INFO) *signer_info; |
139 | 156 | ||
140 | PKCS7_ENC_CONTENT *enc_data; | 157 | PKCS7_ENC_CONTENT *enc_data; |
141 | STACK /* PKCS7_RECIP_INFO */ *recipientinfo; | 158 | STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; |
142 | } PKCS7_SIGN_ENVELOPE; | 159 | } PKCS7_SIGN_ENVELOPE; |
143 | 160 | ||
144 | typedef struct pkcs7_digest_st | 161 | typedef struct pkcs7_digest_st |
@@ -193,13 +210,27 @@ typedef struct pkcs7_st | |||
193 | 210 | ||
194 | /* NID_pkcs7_encrypted */ | 211 | /* NID_pkcs7_encrypted */ |
195 | PKCS7_ENCRYPT *encrypted; | 212 | PKCS7_ENCRYPT *encrypted; |
213 | |||
214 | /* Anything else */ | ||
215 | ASN1_TYPE *other; | ||
196 | } d; | 216 | } d; |
197 | } PKCS7; | 217 | } PKCS7; |
198 | 218 | ||
219 | DECLARE_STACK_OF(PKCS7) | ||
220 | DECLARE_ASN1_SET_OF(PKCS7) | ||
221 | DECLARE_PKCS12_STACK_OF(PKCS7) | ||
222 | |||
199 | #define PKCS7_OP_SET_DETACHED_SIGNATURE 1 | 223 | #define PKCS7_OP_SET_DETACHED_SIGNATURE 1 |
200 | #define PKCS7_OP_GET_DETACHED_SIGNATURE 2 | 224 | #define PKCS7_OP_GET_DETACHED_SIGNATURE 2 |
201 | 225 | ||
226 | #define PKCS7_get_signed_attributes(si) ((si)->auth_attr) | ||
227 | #define PKCS7_get_attributes(si) ((si)->unauth_attr) | ||
228 | |||
202 | #define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed) | 229 | #define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed) |
230 | #define PKCS7_type_is_encrypted(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted) | ||
231 | #define PKCS7_type_is_enveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_enveloped) | ||
232 | #define PKCS7_type_is_signedAndEnveloped(a) \ | ||
233 | (OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped) | ||
203 | #define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data) | 234 | #define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data) |
204 | 235 | ||
205 | #define PKCS7_set_detached(p,v) \ | 236 | #define PKCS7_set_detached(p,v) \ |
@@ -207,101 +238,67 @@ typedef struct pkcs7_st | |||
207 | #define PKCS7_get_detached(p) \ | 238 | #define PKCS7_get_detached(p) \ |
208 | PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL) | 239 | PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL) |
209 | 240 | ||
210 | #ifdef SSLEAY_MACROS | 241 | #define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7)) |
211 | 242 | ||
243 | #ifdef SSLEAY_MACROS | ||
244 | #ifndef PKCS7_ISSUER_AND_SERIAL_digest | ||
212 | #define PKCS7_ISSUER_AND_SERIAL_digest(data,type,md,len) \ | 245 | #define PKCS7_ISSUER_AND_SERIAL_digest(data,type,md,len) \ |
213 | ASN1_digest((int (*)())i2d_PKCS7_ISSUER_AND_SERIAL,type,\ | 246 | ASN1_digest((int (*)())i2d_PKCS7_ISSUER_AND_SERIAL,type,\ |
214 | (char *)data,md,len) | 247 | (char *)data,md,len) |
215 | #endif | 248 | #endif |
249 | #endif | ||
216 | 250 | ||
217 | 251 | /* S/MIME related flags */ | |
218 | #ifndef NOPROTO | 252 | |
219 | PKCS7_ISSUER_AND_SERIAL *PKCS7_ISSUER_AND_SERIAL_new(void ); | 253 | #define PKCS7_TEXT 0x1 |
220 | void PKCS7_ISSUER_AND_SERIAL_free( | 254 | #define PKCS7_NOCERTS 0x2 |
221 | PKCS7_ISSUER_AND_SERIAL *a); | 255 | #define PKCS7_NOSIGS 0x4 |
222 | int i2d_PKCS7_ISSUER_AND_SERIAL( | 256 | #define PKCS7_NOCHAIN 0x8 |
223 | PKCS7_ISSUER_AND_SERIAL *a,unsigned char **pp); | 257 | #define PKCS7_NOINTERN 0x10 |
224 | PKCS7_ISSUER_AND_SERIAL *d2i_PKCS7_ISSUER_AND_SERIAL( | 258 | #define PKCS7_NOVERIFY 0x20 |
225 | PKCS7_ISSUER_AND_SERIAL **a, | 259 | #define PKCS7_DETACHED 0x40 |
226 | unsigned char **pp, long length); | 260 | #define PKCS7_BINARY 0x80 |
261 | #define PKCS7_NOATTR 0x100 | ||
262 | #define PKCS7_NOSMIMECAP 0x200 | ||
263 | |||
264 | /* Flags: for compatibility with older code */ | ||
265 | |||
266 | #define SMIME_TEXT PKCS7_TEXT | ||
267 | #define SMIME_NOCERTS PKCS7_NOCERTS | ||
268 | #define SMIME_NOSIGS PKCS7_NOSIGS | ||
269 | #define SMIME_NOCHAIN PKCS7_NOCHAIN | ||
270 | #define SMIME_NOINTERN PKCS7_NOINTERN | ||
271 | #define SMIME_NOVERIFY PKCS7_NOVERIFY | ||
272 | #define SMIME_DETACHED PKCS7_DETACHED | ||
273 | #define SMIME_BINARY PKCS7_BINARY | ||
274 | #define SMIME_NOATTR PKCS7_NOATTR | ||
275 | |||
276 | DECLARE_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL) | ||
227 | 277 | ||
228 | #ifndef SSLEAY_MACROS | 278 | #ifndef SSLEAY_MACROS |
229 | int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data,EVP_MD *type, | 279 | int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data,const EVP_MD *type, |
230 | unsigned char *md,unsigned int *len); | 280 | unsigned char *md,unsigned int *len); |
231 | #ifndef NO_FP_API | 281 | #ifndef OPENSSL_NO_FP_API |
232 | PKCS7 *d2i_PKCS7_fp(FILE *fp,PKCS7 *p7); | 282 | PKCS7 *d2i_PKCS7_fp(FILE *fp,PKCS7 **p7); |
233 | int i2d_PKCS7_fp(FILE *fp,PKCS7 *p7); | 283 | int i2d_PKCS7_fp(FILE *fp,PKCS7 *p7); |
234 | #endif | 284 | #endif |
235 | PKCS7 *PKCS7_dup(PKCS7 *p7); | 285 | PKCS7 *PKCS7_dup(PKCS7 *p7); |
236 | PKCS7 *d2i_PKCS7_bio(BIO *bp,PKCS7 *p7); | 286 | PKCS7 *d2i_PKCS7_bio(BIO *bp,PKCS7 **p7); |
237 | int i2d_PKCS7_bio(BIO *bp,PKCS7 *p7); | 287 | int i2d_PKCS7_bio(BIO *bp,PKCS7 *p7); |
238 | #endif | 288 | #endif |
239 | 289 | ||
240 | PKCS7_SIGNER_INFO *PKCS7_SIGNER_INFO_new(void); | 290 | DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO) |
241 | void PKCS7_SIGNER_INFO_free(PKCS7_SIGNER_INFO *a); | 291 | DECLARE_ASN1_FUNCTIONS(PKCS7_RECIP_INFO) |
242 | int i2d_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO *a, | 292 | DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNED) |
243 | unsigned char **pp); | 293 | DECLARE_ASN1_FUNCTIONS(PKCS7_ENC_CONTENT) |
244 | PKCS7_SIGNER_INFO *d2i_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO **a, | 294 | DECLARE_ASN1_FUNCTIONS(PKCS7_ENVELOPE) |
245 | unsigned char **pp,long length); | 295 | DECLARE_ASN1_FUNCTIONS(PKCS7_SIGN_ENVELOPE) |
246 | 296 | DECLARE_ASN1_FUNCTIONS(PKCS7_DIGEST) | |
247 | PKCS7_RECIP_INFO *PKCS7_RECIP_INFO_new(void); | 297 | DECLARE_ASN1_FUNCTIONS(PKCS7_ENCRYPT) |
248 | void PKCS7_RECIP_INFO_free(PKCS7_RECIP_INFO *a); | 298 | DECLARE_ASN1_FUNCTIONS(PKCS7) |
249 | int i2d_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO *a, | ||
250 | unsigned char **pp); | ||
251 | PKCS7_RECIP_INFO *d2i_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO **a, | ||
252 | unsigned char **pp,long length); | ||
253 | |||
254 | PKCS7_SIGNED *PKCS7_SIGNED_new(void); | ||
255 | void PKCS7_SIGNED_free(PKCS7_SIGNED *a); | ||
256 | int i2d_PKCS7_SIGNED(PKCS7_SIGNED *a, | ||
257 | unsigned char **pp); | ||
258 | PKCS7_SIGNED *d2i_PKCS7_SIGNED(PKCS7_SIGNED **a, | ||
259 | unsigned char **pp,long length); | ||
260 | |||
261 | PKCS7_ENC_CONTENT *PKCS7_ENC_CONTENT_new(void); | ||
262 | void PKCS7_ENC_CONTENT_free(PKCS7_ENC_CONTENT *a); | ||
263 | int i2d_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT *a, | ||
264 | unsigned char **pp); | ||
265 | PKCS7_ENC_CONTENT *d2i_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT **a, | ||
266 | unsigned char **pp,long length); | ||
267 | |||
268 | PKCS7_ENVELOPE *PKCS7_ENVELOPE_new(void); | ||
269 | void PKCS7_ENVELOPE_free(PKCS7_ENVELOPE *a); | ||
270 | int i2d_PKCS7_ENVELOPE(PKCS7_ENVELOPE *a, | ||
271 | unsigned char **pp); | ||
272 | PKCS7_ENVELOPE *d2i_PKCS7_ENVELOPE(PKCS7_ENVELOPE **a, | ||
273 | unsigned char **pp,long length); | ||
274 | |||
275 | PKCS7_SIGN_ENVELOPE *PKCS7_SIGN_ENVELOPE_new(void); | ||
276 | void PKCS7_SIGN_ENVELOPE_free(PKCS7_SIGN_ENVELOPE *a); | ||
277 | int i2d_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE *a, | ||
278 | unsigned char **pp); | ||
279 | PKCS7_SIGN_ENVELOPE *d2i_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE **a, | ||
280 | unsigned char **pp,long length); | ||
281 | |||
282 | PKCS7_DIGEST *PKCS7_DIGEST_new(void); | ||
283 | void PKCS7_DIGEST_free(PKCS7_DIGEST *a); | ||
284 | int i2d_PKCS7_DIGEST(PKCS7_DIGEST *a, | ||
285 | unsigned char **pp); | ||
286 | PKCS7_DIGEST *d2i_PKCS7_DIGEST(PKCS7_DIGEST **a, | ||
287 | unsigned char **pp,long length); | ||
288 | |||
289 | PKCS7_ENCRYPT *PKCS7_ENCRYPT_new(void); | ||
290 | void PKCS7_ENCRYPT_free(PKCS7_ENCRYPT *a); | ||
291 | int i2d_PKCS7_ENCRYPT(PKCS7_ENCRYPT *a, | ||
292 | unsigned char **pp); | ||
293 | PKCS7_ENCRYPT *d2i_PKCS7_ENCRYPT(PKCS7_ENCRYPT **a, | ||
294 | unsigned char **pp,long length); | ||
295 | |||
296 | PKCS7 *PKCS7_new(void); | ||
297 | void PKCS7_free(PKCS7 *a); | ||
298 | void PKCS7_content_free(PKCS7 *a); | ||
299 | int i2d_PKCS7(PKCS7 *a, | ||
300 | unsigned char **pp); | ||
301 | PKCS7 *d2i_PKCS7(PKCS7 **a, | ||
302 | unsigned char **pp,long length); | ||
303 | 299 | ||
304 | void ERR_load_PKCS7_strings(void); | 300 | DECLARE_ASN1_ITEM(PKCS7_ATTR_SIGN) |
301 | DECLARE_ASN1_ITEM(PKCS7_ATTR_VERIFY) | ||
305 | 302 | ||
306 | 303 | ||
307 | long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); | 304 | long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); |
@@ -309,141 +306,144 @@ long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); | |||
309 | int PKCS7_set_type(PKCS7 *p7, int type); | 306 | int PKCS7_set_type(PKCS7 *p7, int type); |
310 | int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); | 307 | int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); |
311 | int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, | 308 | int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, |
312 | EVP_MD *dgst); | 309 | const EVP_MD *dgst); |
313 | int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); | 310 | int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); |
314 | int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); | 311 | int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); |
315 | int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); | 312 | int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); |
316 | int PKCS7_content_new(PKCS7 *p7, int nid); | 313 | int PKCS7_content_new(PKCS7 *p7, int nid); |
317 | int PKCS7_dataSign(PKCS7 *p7, BIO *bio); | ||
318 | int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, | 314 | int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, |
319 | BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); | 315 | BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); |
316 | int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, | ||
317 | X509 *x509); | ||
320 | 318 | ||
321 | BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); | 319 | BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); |
322 | /*int PKCS7_DataFinal(PKCS7 *p7, BIO *bio); */ | 320 | int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); |
321 | BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); | ||
322 | |||
323 | 323 | ||
324 | PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, | 324 | PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, |
325 | EVP_PKEY *pkey, EVP_MD *dgst); | 325 | EVP_PKEY *pkey, const EVP_MD *dgst); |
326 | X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); | 326 | X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); |
327 | STACK *PKCS7_get_signer_info(PKCS7 *p7); | 327 | STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7); |
328 | 328 | ||
329 | PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); | 329 | PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); |
330 | int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); | 330 | int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); |
331 | int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); | 331 | int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); |
332 | int PKCS7_set_cipher(PKCS7 *p7, EVP_CIPHER *cipher); | 332 | int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); |
333 | 333 | ||
334 | 334 | PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); | |
335 | 335 | ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk); | |
336 | #else | 336 | int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si,int nid,int type, |
337 | 337 | void *data); | |
338 | PKCS7_ISSUER_AND_SERIAL *PKCS7_ISSUER_AND_SERIAL_new(); | 338 | int PKCS7_add_attribute (PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, |
339 | void PKCS7_ISSUER_AND_SERIAL_free(); | 339 | void *value); |
340 | int i2d_PKCS7_ISSUER_AND_SERIAL(); | 340 | ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid); |
341 | PKCS7_ISSUER_AND_SERIAL *d2i_PKCS7_ISSUER_AND_SERIAL(); | 341 | ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid); |
342 | 342 | int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, | |
343 | #ifndef SSLEAY_MACROS | 343 | STACK_OF(X509_ATTRIBUTE) *sk); |
344 | int PKCS7_ISSUER_AND_SERIAL_digest(); | 344 | int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si,STACK_OF(X509_ATTRIBUTE) *sk); |
345 | #ifndef NO_FP_API | 345 | |
346 | PKCS7 *d2i_PKCS7_fp(); | 346 | |
347 | int i2d_PKCS7_fp(); | 347 | PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, |
348 | #endif | 348 | BIO *data, int flags); |
349 | PKCS7 *PKCS7_dup(); | 349 | int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, |
350 | PKCS7 *d2i_PKCS7_bio(); | 350 | BIO *indata, BIO *out, int flags); |
351 | int i2d_PKCS7_bio(); | 351 | STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, int flags); |
352 | 352 | PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, | |
353 | #endif | 353 | int flags); |
354 | 354 | int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, int flags); | |
355 | PKCS7_SIGNER_INFO *PKCS7_SIGNER_INFO_new(); | 355 | |
356 | void PKCS7_SIGNER_INFO_free(); | 356 | int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, |
357 | int i2d_PKCS7_SIGNER_INFO(); | 357 | STACK_OF(X509_ALGOR) *cap); |
358 | PKCS7_SIGNER_INFO *d2i_PKCS7_SIGNER_INFO(); | 358 | STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); |
359 | PKCS7_RECIP_INFO *PKCS7_RECIP_INFO_new(); | 359 | int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg); |
360 | void PKCS7_RECIP_INFO_free(); | 360 | |
361 | int i2d_PKCS7_RECIP_INFO(); | 361 | int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); |
362 | PKCS7_RECIP_INFO *d2i_PKCS7_RECIP_INFO(); | 362 | PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); |
363 | PKCS7_SIGNED *PKCS7_SIGNED_new(); | 363 | int SMIME_crlf_copy(BIO *in, BIO *out, int flags); |
364 | void PKCS7_SIGNED_free(); | 364 | int SMIME_text(BIO *in, BIO *out); |
365 | int i2d_PKCS7_SIGNED(); | ||
366 | PKCS7_SIGNED *d2i_PKCS7_SIGNED(); | ||
367 | PKCS7_ENC_CONTENT *PKCS7_ENC_CONTENT_new(); | ||
368 | void PKCS7_ENC_CONTENT_free(); | ||
369 | int i2d_PKCS7_ENC_CONTENT(); | ||
370 | PKCS7_ENC_CONTENT *d2i_PKCS7_ENC_CONTENT(); | ||
371 | PKCS7_ENVELOPE *PKCS7_ENVELOPE_new(); | ||
372 | void PKCS7_ENVELOPE_free(); | ||
373 | int i2d_PKCS7_ENVELOPE(); | ||
374 | PKCS7_ENVELOPE *d2i_PKCS7_ENVELOPE(); | ||
375 | PKCS7_SIGN_ENVELOPE *PKCS7_SIGN_ENVELOPE_new(); | ||
376 | void PKCS7_SIGN_ENVELOPE_free(); | ||
377 | int i2d_PKCS7_SIGN_ENVELOPE(); | ||
378 | PKCS7_SIGN_ENVELOPE *d2i_PKCS7_SIGN_ENVELOPE(); | ||
379 | PKCS7_DIGEST *PKCS7_DIGEST_new(); | ||
380 | void PKCS7_DIGEST_free(); | ||
381 | int i2d_PKCS7_DIGEST(); | ||
382 | PKCS7_DIGEST *d2i_PKCS7_DIGEST(); | ||
383 | PKCS7_ENCRYPT *PKCS7_ENCRYPT_new(); | ||
384 | void PKCS7_ENCRYPT_free(); | ||
385 | int i2d_PKCS7_ENCRYPT(); | ||
386 | PKCS7_ENCRYPT *d2i_PKCS7_ENCRYPT(); | ||
387 | PKCS7 *PKCS7_new(); | ||
388 | void PKCS7_free(); | ||
389 | void PKCS7_content_free(); | ||
390 | int i2d_PKCS7(); | ||
391 | PKCS7 *d2i_PKCS7(); | ||
392 | |||
393 | void ERR_load_PKCS7_strings(); | ||
394 | |||
395 | long PKCS7_ctrl(); | ||
396 | int PKCS7_set_type(); | ||
397 | int PKCS7_set_content(); | ||
398 | int PKCS7_SIGNER_INFO_set(); | ||
399 | int PKCS7_add_signer(); | ||
400 | int PKCS7_add_certificate(); | ||
401 | int PKCS7_add_crl(); | ||
402 | int PKCS7_content_new(); | ||
403 | int PKCS7_dataSign(); | ||
404 | int PKCS7_dataVerify(); | ||
405 | BIO *PKCS7_dataInit(); | ||
406 | PKCS7_SIGNER_INFO *PKCS7_add_signature(); | ||
407 | X509 *PKCS7_cert_from_signer_info(); | ||
408 | STACK *PKCS7_get_signer_info(); | ||
409 | |||
410 | PKCS7_RECIP_INFO *PKCS7_add_recipient(); | ||
411 | int PKCS7_add_recipient_info(); | ||
412 | int PKCS7_RECIP_INFO_set(); | ||
413 | int PKCS7_set_cipher(); | ||
414 | |||
415 | #endif | ||
416 | 365 | ||
417 | /* BEGIN ERROR CODES */ | 366 | /* BEGIN ERROR CODES */ |
367 | /* The following lines are auto generated by the script mkerr.pl. Any changes | ||
368 | * made after this point may be overwritten when the script is next run. | ||
369 | */ | ||
370 | void ERR_load_PKCS7_strings(void); | ||
371 | |||
418 | /* Error codes for the PKCS7 functions. */ | 372 | /* Error codes for the PKCS7 functions. */ |
419 | 373 | ||
420 | /* Function codes. */ | 374 | /* Function codes. */ |
375 | #define PKCS7_F_B64_READ_PKCS7 120 | ||
376 | #define PKCS7_F_B64_WRITE_PKCS7 121 | ||
377 | #define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP 118 | ||
421 | #define PKCS7_F_PKCS7_ADD_CERTIFICATE 100 | 378 | #define PKCS7_F_PKCS7_ADD_CERTIFICATE 100 |
422 | #define PKCS7_F_PKCS7_ADD_CRL 101 | 379 | #define PKCS7_F_PKCS7_ADD_CRL 101 |
423 | #define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 102 | 380 | #define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 102 |
424 | #define PKCS7_F_PKCS7_ADD_SIGNER 103 | 381 | #define PKCS7_F_PKCS7_ADD_SIGNER 103 |
425 | #define PKCS7_F_PKCS7_CTRL 104 | 382 | #define PKCS7_F_PKCS7_CTRL 104 |
383 | #define PKCS7_F_PKCS7_DATADECODE 112 | ||
426 | #define PKCS7_F_PKCS7_DATAINIT 105 | 384 | #define PKCS7_F_PKCS7_DATAINIT 105 |
427 | #define PKCS7_F_PKCS7_DATASIGN 106 | 385 | #define PKCS7_F_PKCS7_DATASIGN 106 |
428 | #define PKCS7_F_PKCS7_DATAVERIFY 107 | 386 | #define PKCS7_F_PKCS7_DATAVERIFY 107 |
387 | #define PKCS7_F_PKCS7_DECRYPT 114 | ||
388 | #define PKCS7_F_PKCS7_ENCRYPT 115 | ||
389 | #define PKCS7_F_PKCS7_GET0_SIGNERS 124 | ||
429 | #define PKCS7_F_PKCS7_SET_CIPHER 108 | 390 | #define PKCS7_F_PKCS7_SET_CIPHER 108 |
430 | #define PKCS7_F_PKCS7_SET_CONTENT 109 | 391 | #define PKCS7_F_PKCS7_SET_CONTENT 109 |
431 | #define PKCS7_F_PKCS7_SET_TYPE 110 | 392 | #define PKCS7_F_PKCS7_SET_TYPE 110 |
393 | #define PKCS7_F_PKCS7_SIGN 116 | ||
394 | #define PKCS7_F_PKCS7_SIGNATUREVERIFY 113 | ||
395 | #define PKCS7_F_PKCS7_SIMPLE_SMIMECAP 119 | ||
396 | #define PKCS7_F_PKCS7_VERIFY 117 | ||
397 | #define PKCS7_F_SMIME_READ_PKCS7 122 | ||
398 | #define PKCS7_F_SMIME_TEXT 123 | ||
432 | 399 | ||
433 | /* Reason codes. */ | 400 | /* Reason codes. */ |
434 | #define PKCS7_R_INTERNAL_ERROR 100 | 401 | #define PKCS7_R_CERTIFICATE_VERIFY_ERROR 117 |
435 | #define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 101 | 402 | #define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 144 |
436 | #define PKCS7_R_SIGNATURE_FAILURE 102 | 403 | #define PKCS7_R_CIPHER_NOT_INITIALIZED 116 |
437 | #define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 103 | 404 | #define PKCS7_R_CONTENT_AND_DATA_PRESENT 118 |
438 | #define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 104 | 405 | #define PKCS7_R_DECODE_ERROR 130 |
439 | #define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 105 | 406 | #define PKCS7_R_DECRYPTED_KEY_IS_WRONG_LENGTH 100 |
440 | #define PKCS7_R_UNKNOWN_DIGEST_TYPE 106 | 407 | #define PKCS7_R_DECRYPT_ERROR 119 |
441 | #define PKCS7_R_UNSUPPORTED_CIPHER_TYPE 107 | 408 | #define PKCS7_R_DIGEST_FAILURE 101 |
442 | #define PKCS7_R_UNSUPPORTED_CONTENT_TYPE 108 | 409 | #define PKCS7_R_ERROR_ADDING_RECIPIENT 120 |
443 | #define PKCS7_R_WRONG_CONTENT_TYPE 109 | 410 | #define PKCS7_R_ERROR_SETTING_CIPHER 121 |
444 | 411 | #define PKCS7_R_INVALID_MIME_TYPE 131 | |
412 | #define PKCS7_R_INVALID_NULL_POINTER 143 | ||
413 | #define PKCS7_R_MIME_NO_CONTENT_TYPE 132 | ||
414 | #define PKCS7_R_MIME_PARSE_ERROR 133 | ||
415 | #define PKCS7_R_MIME_SIG_PARSE_ERROR 134 | ||
416 | #define PKCS7_R_MISSING_CERIPEND_INFO 103 | ||
417 | #define PKCS7_R_NO_CONTENT 122 | ||
418 | #define PKCS7_R_NO_CONTENT_TYPE 135 | ||
419 | #define PKCS7_R_NO_MULTIPART_BODY_FAILURE 136 | ||
420 | #define PKCS7_R_NO_MULTIPART_BOUNDARY 137 | ||
421 | #define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115 | ||
422 | #define PKCS7_R_NO_SIGNATURES_ON_DATA 123 | ||
423 | #define PKCS7_R_NO_SIGNERS 142 | ||
424 | #define PKCS7_R_NO_SIG_CONTENT_TYPE 138 | ||
425 | #define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104 | ||
426 | #define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR 124 | ||
427 | #define PKCS7_R_PKCS7_DATAFINAL_ERROR 125 | ||
428 | #define PKCS7_R_PKCS7_DATASIGN 126 | ||
429 | #define PKCS7_R_PKCS7_PARSE_ERROR 139 | ||
430 | #define PKCS7_R_PKCS7_SIG_PARSE_ERROR 140 | ||
431 | #define PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 127 | ||
432 | #define PKCS7_R_SIGNATURE_FAILURE 105 | ||
433 | #define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND 128 | ||
434 | #define PKCS7_R_SIG_INVALID_MIME_TYPE 141 | ||
435 | #define PKCS7_R_SMIME_TEXT_ERROR 129 | ||
436 | #define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106 | ||
437 | #define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 107 | ||
438 | #define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 108 | ||
439 | #define PKCS7_R_UNKNOWN_DIGEST_TYPE 109 | ||
440 | #define PKCS7_R_UNKNOWN_OPERATION 110 | ||
441 | #define PKCS7_R_UNSUPPORTED_CIPHER_TYPE 111 | ||
442 | #define PKCS7_R_UNSUPPORTED_CONTENT_TYPE 112 | ||
443 | #define PKCS7_R_WRONG_CONTENT_TYPE 113 | ||
444 | #define PKCS7_R_WRONG_PKCS7_TYPE 114 | ||
445 | |||
445 | #ifdef __cplusplus | 446 | #ifdef __cplusplus |
446 | } | 447 | } |
447 | #endif | 448 | #endif |
448 | #endif | 449 | #endif |
449 | |||