diff options
Diffstat (limited to 'src/lib/libcrypto/pkcs7/pkcs7.h')
-rw-r--r-- | src/lib/libcrypto/pkcs7/pkcs7.h | 85 |
1 files changed, 83 insertions, 2 deletions
diff --git a/src/lib/libcrypto/pkcs7/pkcs7.h b/src/lib/libcrypto/pkcs7/pkcs7.h index c42bd6d391..3ec725d226 100644 --- a/src/lib/libcrypto/pkcs7/pkcs7.h +++ b/src/lib/libcrypto/pkcs7/pkcs7.h | |||
@@ -71,8 +71,9 @@ extern "C" { | |||
71 | #endif | 71 | #endif |
72 | 72 | ||
73 | #ifdef WIN32 | 73 | #ifdef WIN32 |
74 | /* Under Win32 this is defined in wincrypt.h */ | 74 | /* Under Win32 thes are defined in wincrypt.h */ |
75 | #undef PKCS7_ISSUER_AND_SERIAL | 75 | #undef PKCS7_ISSUER_AND_SERIAL |
76 | #undef PKCS7_SIGNER_INFO | ||
76 | #endif | 77 | #endif |
77 | 78 | ||
78 | /* | 79 | /* |
@@ -219,6 +220,7 @@ typedef struct pkcs7_st | |||
219 | #define PKCS7_get_attributes(si) ((si)->unauth_attr) | 220 | #define PKCS7_get_attributes(si) ((si)->unauth_attr) |
220 | 221 | ||
221 | #define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed) | 222 | #define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed) |
223 | #define PKCS7_type_is_enveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_enveloped) | ||
222 | #define PKCS7_type_is_signedAndEnveloped(a) \ | 224 | #define PKCS7_type_is_signedAndEnveloped(a) \ |
223 | (OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped) | 225 | (OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped) |
224 | #define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data) | 226 | #define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data) |
@@ -236,6 +238,29 @@ typedef struct pkcs7_st | |||
236 | #endif | 238 | #endif |
237 | #endif | 239 | #endif |
238 | 240 | ||
241 | /* S/MIME related flags */ | ||
242 | |||
243 | #define PKCS7_TEXT 0x1 | ||
244 | #define PKCS7_NOCERTS 0x2 | ||
245 | #define PKCS7_NOSIGS 0x4 | ||
246 | #define PKCS7_NOCHAIN 0x8 | ||
247 | #define PKCS7_NOINTERN 0x10 | ||
248 | #define PKCS7_NOVERIFY 0x20 | ||
249 | #define PKCS7_DETACHED 0x40 | ||
250 | #define PKCS7_BINARY 0x80 | ||
251 | #define PKCS7_NOATTR 0x100 | ||
252 | |||
253 | /* Flags: for compatibility with older code */ | ||
254 | |||
255 | #define SMIME_TEXT PKCS7_TEXT | ||
256 | #define SMIME_NOCERTS PKCS7_NOCERTS | ||
257 | #define SMIME_NOSIGS PKCS7_NOSIGS | ||
258 | #define SMIME_NOCHAIN PKCS7_NOCHAIN | ||
259 | #define SMIME_NOINTERN PKCS7_NOINTERN | ||
260 | #define SMIME_NOVERIFY PKCS7_NOVERIFY | ||
261 | #define SMIME_DETACHED PKCS7_DETACHED | ||
262 | #define SMIME_BINARY PKCS7_BINARY | ||
263 | #define SMIME_NOATTR PKCS7_NOATTR | ||
239 | 264 | ||
240 | PKCS7_ISSUER_AND_SERIAL *PKCS7_ISSUER_AND_SERIAL_new(void ); | 265 | PKCS7_ISSUER_AND_SERIAL *PKCS7_ISSUER_AND_SERIAL_new(void ); |
241 | void PKCS7_ISSUER_AND_SERIAL_free( | 266 | void PKCS7_ISSUER_AND_SERIAL_free( |
@@ -247,7 +272,7 @@ PKCS7_ISSUER_AND_SERIAL *d2i_PKCS7_ISSUER_AND_SERIAL( | |||
247 | unsigned char **pp, long length); | 272 | unsigned char **pp, long length); |
248 | 273 | ||
249 | #ifndef SSLEAY_MACROS | 274 | #ifndef SSLEAY_MACROS |
250 | int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data,EVP_MD *type, | 275 | int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data,const EVP_MD *type, |
251 | unsigned char *md,unsigned int *len); | 276 | unsigned char *md,unsigned int *len); |
252 | #ifndef NO_FP_API | 277 | #ifndef NO_FP_API |
253 | PKCS7 *d2i_PKCS7_fp(FILE *fp,PKCS7 **p7); | 278 | PKCS7 *d2i_PKCS7_fp(FILE *fp,PKCS7 **p7); |
@@ -368,6 +393,23 @@ int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, | |||
368 | int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si,STACK_OF(X509_ATTRIBUTE) *sk); | 393 | int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si,STACK_OF(X509_ATTRIBUTE) *sk); |
369 | 394 | ||
370 | 395 | ||
396 | PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, | ||
397 | BIO *data, int flags); | ||
398 | int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, | ||
399 | BIO *indata, BIO *out, int flags); | ||
400 | STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, int flags); | ||
401 | PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, EVP_CIPHER *cipher, | ||
402 | int flags); | ||
403 | int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, int flags); | ||
404 | |||
405 | int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, STACK *cap); | ||
406 | STACK *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); | ||
407 | int PKCS7_simple_smimecap(STACK *sk, int nid, int arg); | ||
408 | |||
409 | int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); | ||
410 | PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); | ||
411 | int SMIME_crlf_copy(BIO *in, BIO *out, int flags); | ||
412 | int SMIME_text(BIO *in, BIO *out); | ||
371 | 413 | ||
372 | /* BEGIN ERROR CODES */ | 414 | /* BEGIN ERROR CODES */ |
373 | /* The following lines are auto generated by the script mkerr.pl. Any changes | 415 | /* The following lines are auto generated by the script mkerr.pl. Any changes |
@@ -377,6 +419,9 @@ int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si,STACK_OF(X509_ATTRIBUTE) *sk); | |||
377 | /* Error codes for the PKCS7 functions. */ | 419 | /* Error codes for the PKCS7 functions. */ |
378 | 420 | ||
379 | /* Function codes. */ | 421 | /* Function codes. */ |
422 | #define PKCS7_F_B64_READ_PKCS7 120 | ||
423 | #define PKCS7_F_B64_WRITE_PKCS7 121 | ||
424 | #define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP 118 | ||
380 | #define PKCS7_F_PKCS7_ADD_CERTIFICATE 100 | 425 | #define PKCS7_F_PKCS7_ADD_CERTIFICATE 100 |
381 | #define PKCS7_F_PKCS7_ADD_CRL 101 | 426 | #define PKCS7_F_PKCS7_ADD_CRL 101 |
382 | #define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 102 | 427 | #define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 102 |
@@ -386,20 +431,56 @@ int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si,STACK_OF(X509_ATTRIBUTE) *sk); | |||
386 | #define PKCS7_F_PKCS7_DATAINIT 105 | 431 | #define PKCS7_F_PKCS7_DATAINIT 105 |
387 | #define PKCS7_F_PKCS7_DATASIGN 106 | 432 | #define PKCS7_F_PKCS7_DATASIGN 106 |
388 | #define PKCS7_F_PKCS7_DATAVERIFY 107 | 433 | #define PKCS7_F_PKCS7_DATAVERIFY 107 |
434 | #define PKCS7_F_PKCS7_DECRYPT 114 | ||
435 | #define PKCS7_F_PKCS7_ENCRYPT 115 | ||
436 | #define PKCS7_F_PKCS7_GET0_SIGNERS 124 | ||
389 | #define PKCS7_F_PKCS7_SET_CIPHER 108 | 437 | #define PKCS7_F_PKCS7_SET_CIPHER 108 |
390 | #define PKCS7_F_PKCS7_SET_CONTENT 109 | 438 | #define PKCS7_F_PKCS7_SET_CONTENT 109 |
391 | #define PKCS7_F_PKCS7_SET_TYPE 110 | 439 | #define PKCS7_F_PKCS7_SET_TYPE 110 |
440 | #define PKCS7_F_PKCS7_SIGN 116 | ||
392 | #define PKCS7_F_PKCS7_SIGNATUREVERIFY 113 | 441 | #define PKCS7_F_PKCS7_SIGNATUREVERIFY 113 |
442 | #define PKCS7_F_PKCS7_SIMPLE_SMIMECAP 119 | ||
443 | #define PKCS7_F_PKCS7_VERIFY 117 | ||
444 | #define PKCS7_F_SMIME_READ_PKCS7 122 | ||
445 | #define PKCS7_F_SMIME_TEXT 123 | ||
393 | 446 | ||
394 | /* Reason codes. */ | 447 | /* Reason codes. */ |
448 | #define PKCS7_R_CERTIFICATE_VERIFY_ERROR 117 | ||
449 | #define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 144 | ||
395 | #define PKCS7_R_CIPHER_NOT_INITIALIZED 116 | 450 | #define PKCS7_R_CIPHER_NOT_INITIALIZED 116 |
451 | #define PKCS7_R_CONTENT_AND_DATA_PRESENT 118 | ||
452 | #define PKCS7_R_DECODE_ERROR 130 | ||
396 | #define PKCS7_R_DECRYPTED_KEY_IS_WRONG_LENGTH 100 | 453 | #define PKCS7_R_DECRYPTED_KEY_IS_WRONG_LENGTH 100 |
454 | #define PKCS7_R_DECRYPT_ERROR 119 | ||
397 | #define PKCS7_R_DIGEST_FAILURE 101 | 455 | #define PKCS7_R_DIGEST_FAILURE 101 |
456 | #define PKCS7_R_ERROR_ADDING_RECIPIENT 120 | ||
457 | #define PKCS7_R_ERROR_SETTING_CIPHER 121 | ||
398 | #define PKCS7_R_INTERNAL_ERROR 102 | 458 | #define PKCS7_R_INTERNAL_ERROR 102 |
459 | #define PKCS7_R_INVALID_MIME_TYPE 131 | ||
460 | #define PKCS7_R_INVALID_NULL_POINTER 143 | ||
461 | #define PKCS7_R_MIME_NO_CONTENT_TYPE 132 | ||
462 | #define PKCS7_R_MIME_PARSE_ERROR 133 | ||
463 | #define PKCS7_R_MIME_SIG_PARSE_ERROR 134 | ||
399 | #define PKCS7_R_MISSING_CERIPEND_INFO 103 | 464 | #define PKCS7_R_MISSING_CERIPEND_INFO 103 |
465 | #define PKCS7_R_NO_CONTENT 122 | ||
466 | #define PKCS7_R_NO_CONTENT_TYPE 135 | ||
467 | #define PKCS7_R_NO_MULTIPART_BODY_FAILURE 136 | ||
468 | #define PKCS7_R_NO_MULTIPART_BOUNDARY 137 | ||
400 | #define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115 | 469 | #define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115 |
470 | #define PKCS7_R_NO_SIGNATURES_ON_DATA 123 | ||
471 | #define PKCS7_R_NO_SIGNERS 142 | ||
472 | #define PKCS7_R_NO_SIG_CONTENT_TYPE 138 | ||
401 | #define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104 | 473 | #define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104 |
474 | #define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR 124 | ||
475 | #define PKCS7_R_PKCS7_DATAFINAL_ERROR 125 | ||
476 | #define PKCS7_R_PKCS7_DATASIGN 126 | ||
477 | #define PKCS7_R_PKCS7_PARSE_ERROR 139 | ||
478 | #define PKCS7_R_PKCS7_SIG_PARSE_ERROR 140 | ||
479 | #define PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 127 | ||
402 | #define PKCS7_R_SIGNATURE_FAILURE 105 | 480 | #define PKCS7_R_SIGNATURE_FAILURE 105 |
481 | #define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND 128 | ||
482 | #define PKCS7_R_SIG_INVALID_MIME_TYPE 141 | ||
483 | #define PKCS7_R_SMIME_TEXT_ERROR 129 | ||
403 | #define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106 | 484 | #define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106 |
404 | #define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 107 | 485 | #define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 107 |
405 | #define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 108 | 486 | #define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 108 |