59 #ifndef HEADER_PKCS7_H
60 #define HEADER_PKCS7_H
73 #ifdef OPENSSL_SYS_WIN32
75 #undef PKCS7_ISSUER_AND_SERIAL
76 #undef PKCS7_SIGNER_INFO
182 #define PKCS7_S_HEADER 0
183 #define PKCS7_S_BODY 1
184 #define PKCS7_S_TAIL 2
223 #define PKCS7_OP_SET_DETACHED_SIGNATURE 1
224 #define PKCS7_OP_GET_DETACHED_SIGNATURE 2
226 #define PKCS7_get_signed_attributes(si) ((si)->auth_attr)
227 #define PKCS7_get_attributes(si) ((si)->unauth_attr)
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)
234 #define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data)
235 #define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest)
236 #define PKCS7_type_is_encrypted(a) \
237 (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted)
239 #define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest)
241 #define PKCS7_set_detached(p,v) \
242 PKCS7_ctrl(p,PKCS7_OP_SET_DETACHED_SIGNATURE,v,NULL)
243 #define PKCS7_get_detached(p) \
244 PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL)
246 #define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7))
250 #define PKCS7_TEXT 0x1
251 #define PKCS7_NOCERTS 0x2
252 #define PKCS7_NOSIGS 0x4
253 #define PKCS7_NOCHAIN 0x8
254 #define PKCS7_NOINTERN 0x10
255 #define PKCS7_NOVERIFY 0x20
256 #define PKCS7_DETACHED 0x40
257 #define PKCS7_BINARY 0x80
258 #define PKCS7_NOATTR 0x100
259 #define PKCS7_NOSMIMECAP 0x200
260 #define PKCS7_NOOLDMIMETYPE 0x400
261 #define PKCS7_CRLFEOL 0x800
262 #define PKCS7_STREAM 0x1000
263 #define PKCS7_NOCRL 0x2000
264 #define PKCS7_PARTIAL 0x4000
265 #define PKCS7_REUSE_DIGEST 0x8000
269 #define SMIME_TEXT PKCS7_TEXT
270 #define SMIME_NOCERTS PKCS7_NOCERTS
271 #define SMIME_NOSIGS PKCS7_NOSIGS
272 #define SMIME_NOCHAIN PKCS7_NOCHAIN
273 #define SMIME_NOINTERN PKCS7_NOINTERN
274 #define SMIME_NOVERIFY PKCS7_NOVERIFY
275 #define SMIME_DETACHED PKCS7_DETACHED
276 #define SMIME_BINARY PKCS7_BINARY
277 #define SMIME_NOATTR PKCS7_NOATTR
282 unsigned char *md,
unsigned int *
len);
283 #ifndef OPENSSL_NO_FP_API
368 BIO *indata,
BIO *out,
int flags);
382 const
unsigned char *md,
int mdlen);
399 #define PKCS7_F_B64_READ_PKCS7 120
400 #define PKCS7_F_B64_WRITE_PKCS7 121
401 #define PKCS7_F_DO_PKCS7_SIGNED_ATTRIB 136
402 #define PKCS7_F_I2D_PKCS7_BIO_STREAM 140
403 #define PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME 135
404 #define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP 118
405 #define PKCS7_F_PKCS7_ADD_CERTIFICATE 100
406 #define PKCS7_F_PKCS7_ADD_CRL 101
407 #define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 102
408 #define PKCS7_F_PKCS7_ADD_SIGNATURE 131
409 #define PKCS7_F_PKCS7_ADD_SIGNER 103
410 #define PKCS7_F_PKCS7_BIO_ADD_DIGEST 125
411 #define PKCS7_F_PKCS7_COPY_EXISTING_DIGEST 138
412 #define PKCS7_F_PKCS7_CTRL 104
413 #define PKCS7_F_PKCS7_DATADECODE 112
414 #define PKCS7_F_PKCS7_DATAFINAL 128
415 #define PKCS7_F_PKCS7_DATAINIT 105
416 #define PKCS7_F_PKCS7_DATASIGN 106
417 #define PKCS7_F_PKCS7_DATAVERIFY 107
418 #define PKCS7_F_PKCS7_DECRYPT 114
419 #define PKCS7_F_PKCS7_DECRYPT_RINFO 133
420 #define PKCS7_F_PKCS7_ENCODE_RINFO 132
421 #define PKCS7_F_PKCS7_ENCRYPT 115
422 #define PKCS7_F_PKCS7_FINAL 134
423 #define PKCS7_F_PKCS7_FIND_DIGEST 127
424 #define PKCS7_F_PKCS7_GET0_SIGNERS 124
425 #define PKCS7_F_PKCS7_RECIP_INFO_SET 130
426 #define PKCS7_F_PKCS7_SET_CIPHER 108
427 #define PKCS7_F_PKCS7_SET_CONTENT 109
428 #define PKCS7_F_PKCS7_SET_DIGEST 126
429 #define PKCS7_F_PKCS7_SET_TYPE 110
430 #define PKCS7_F_PKCS7_SIGN 116
431 #define PKCS7_F_PKCS7_SIGNATUREVERIFY 113
432 #define PKCS7_F_PKCS7_SIGNER_INFO_SET 129
433 #define PKCS7_F_PKCS7_SIGNER_INFO_SIGN 139
434 #define PKCS7_F_PKCS7_SIGN_ADD_SIGNER 137
435 #define PKCS7_F_PKCS7_SIMPLE_SMIMECAP 119
436 #define PKCS7_F_PKCS7_VERIFY 117
437 #define PKCS7_F_SMIME_READ_PKCS7 122
438 #define PKCS7_F_SMIME_TEXT 123
441 #define PKCS7_R_CERTIFICATE_VERIFY_ERROR 117
442 #define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 144
443 #define PKCS7_R_CIPHER_NOT_INITIALIZED 116
444 #define PKCS7_R_CONTENT_AND_DATA_PRESENT 118
445 #define PKCS7_R_CTRL_ERROR 152
446 #define PKCS7_R_DECODE_ERROR 130
447 #define PKCS7_R_DECRYPTED_KEY_IS_WRONG_LENGTH 100
448 #define PKCS7_R_DECRYPT_ERROR 119
449 #define PKCS7_R_DIGEST_FAILURE 101
450 #define PKCS7_R_ENCRYPTION_CTRL_FAILURE 149
451 #define PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 150
452 #define PKCS7_R_ERROR_ADDING_RECIPIENT 120
453 #define PKCS7_R_ERROR_SETTING_CIPHER 121
454 #define PKCS7_R_INVALID_MIME_TYPE 131
455 #define PKCS7_R_INVALID_NULL_POINTER 143
456 #define PKCS7_R_MIME_NO_CONTENT_TYPE 132
457 #define PKCS7_R_MIME_PARSE_ERROR 133
458 #define PKCS7_R_MIME_SIG_PARSE_ERROR 134
459 #define PKCS7_R_MISSING_CERIPEND_INFO 103
460 #define PKCS7_R_NO_CONTENT 122
461 #define PKCS7_R_NO_CONTENT_TYPE 135
462 #define PKCS7_R_NO_DEFAULT_DIGEST 151
463 #define PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND 154
464 #define PKCS7_R_NO_MULTIPART_BODY_FAILURE 136
465 #define PKCS7_R_NO_MULTIPART_BOUNDARY 137
466 #define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115
467 #define PKCS7_R_NO_RECIPIENT_MATCHES_KEY 146
468 #define PKCS7_R_NO_SIGNATURES_ON_DATA 123
469 #define PKCS7_R_NO_SIGNERS 142
470 #define PKCS7_R_NO_SIG_CONTENT_TYPE 138
471 #define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104
472 #define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR 124
473 #define PKCS7_R_PKCS7_ADD_SIGNER_ERROR 153
474 #define PKCS7_R_PKCS7_DATAFINAL 126
475 #define PKCS7_R_PKCS7_DATAFINAL_ERROR 125
476 #define PKCS7_R_PKCS7_DATASIGN 145
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
480 #define PKCS7_R_SIGNATURE_FAILURE 105
481 #define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND 128
482 #define PKCS7_R_SIGNING_CTRL_FAILURE 147
483 #define PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 148
484 #define PKCS7_R_SIG_INVALID_MIME_TYPE 141
485 #define PKCS7_R_SMIME_TEXT_ERROR 129
486 #define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106
487 #define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 107
488 #define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 108
489 #define PKCS7_R_UNKNOWN_DIGEST_TYPE 109
490 #define PKCS7_R_UNKNOWN_OPERATION 110
491 #define PKCS7_R_UNSUPPORTED_CIPHER_TYPE 111
492 #define PKCS7_R_UNSUPPORTED_CONTENT_TYPE 112
493 #define PKCS7_R_WRONG_CONTENT_TYPE 113
494 #define PKCS7_R_WRONG_PKCS7_TYPE 114