| Index: openssl/crypto/pkcs7/pkcs7.h
|
| ===================================================================
|
| --- openssl/crypto/pkcs7/pkcs7.h (revision 105093)
|
| +++ openssl/crypto/pkcs7/pkcs7.h (working copy)
|
| @@ -232,6 +232,9 @@
|
| #define PKCS7_type_is_signedAndEnveloped(a) \
|
| (OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped)
|
| #define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data)
|
| +#define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest)
|
| +#define PKCS7_type_is_encrypted(a) \
|
| + (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted)
|
|
|
| #define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest)
|
|
|
| @@ -242,14 +245,6 @@
|
|
|
| #define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7))
|
|
|
| -#ifdef SSLEAY_MACROS
|
| -#ifndef PKCS7_ISSUER_AND_SERIAL_digest
|
| -#define PKCS7_ISSUER_AND_SERIAL_digest(data,type,md,len) \
|
| - ASN1_digest((int (*)())i2d_PKCS7_ISSUER_AND_SERIAL,type,\
|
| - (char *)data,md,len)
|
| -#endif
|
| -#endif
|
| -
|
| /* S/MIME related flags */
|
|
|
| #define PKCS7_TEXT 0x1
|
| @@ -266,6 +261,8 @@
|
| #define PKCS7_CRLFEOL 0x800
|
| #define PKCS7_STREAM 0x1000
|
| #define PKCS7_NOCRL 0x2000
|
| +#define PKCS7_PARTIAL 0x4000
|
| +#define PKCS7_REUSE_DIGEST 0x8000
|
|
|
| /* Flags: for compatibility with older code */
|
|
|
| @@ -281,7 +278,6 @@
|
|
|
| DECLARE_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL)
|
|
|
| -#ifndef SSLEAY_MACROS
|
| int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data,const EVP_MD *type,
|
| unsigned char *md,unsigned int *len);
|
| #ifndef OPENSSL_NO_FP_API
|
| @@ -291,7 +287,8 @@
|
| PKCS7 *PKCS7_dup(PKCS7 *p7);
|
| PKCS7 *d2i_PKCS7_bio(BIO *bp,PKCS7 **p7);
|
| int i2d_PKCS7_bio(BIO *bp,PKCS7 *p7);
|
| -#endif
|
| +int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags);
|
| +int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags);
|
|
|
| DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO)
|
| DECLARE_ASN1_FUNCTIONS(PKCS7_RECIP_INFO)
|
| @@ -307,6 +304,7 @@
|
| DECLARE_ASN1_ITEM(PKCS7_ATTR_VERIFY)
|
|
|
| DECLARE_ASN1_NDEF_FUNCTION(PKCS7)
|
| +DECLARE_ASN1_PRINT_FUNCTION(PKCS7)
|
|
|
| long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg);
|
|
|
| @@ -315,6 +313,7 @@
|
| int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data);
|
| int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey,
|
| const EVP_MD *dgst);
|
| +int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si);
|
| int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i);
|
| int PKCS7_add_certificate(PKCS7 *p7, X509 *x509);
|
| int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509);
|
| @@ -336,9 +335,13 @@
|
| STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7);
|
|
|
| PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509);
|
| +void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk,
|
| + X509_ALGOR **pdig, X509_ALGOR **psig);
|
| +void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc);
|
| int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri);
|
| int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509);
|
| int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher);
|
| +int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7);
|
|
|
| PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx);
|
| ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk);
|
| @@ -355,6 +358,12 @@
|
|
|
| PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs,
|
| BIO *data, int flags);
|
| +
|
| +PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7,
|
| + X509 *signcert, EVP_PKEY *pkey, const EVP_MD *md,
|
| + int flags);
|
| +
|
| +int PKCS7_final(PKCS7 *p7, BIO *data, int flags);
|
| int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store,
|
| BIO *indata, BIO *out, int flags);
|
| STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, int flags);
|
| @@ -367,11 +376,17 @@
|
| STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si);
|
| int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg);
|
|
|
| +int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid);
|
| +int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t);
|
| +int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si,
|
| + const unsigned char *md, int mdlen);
|
| +
|
| int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags);
|
| PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont);
|
| -int SMIME_crlf_copy(BIO *in, BIO *out, int flags);
|
| -int SMIME_text(BIO *in, BIO *out);
|
|
|
| +BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7);
|
| +
|
| +
|
| /* BEGIN ERROR CODES */
|
| /* The following lines are auto generated by the script mkerr.pl. Any changes
|
| * made after this point may be overwritten when the script is next run.
|
| @@ -383,12 +398,17 @@
|
| /* Function codes. */
|
| #define PKCS7_F_B64_READ_PKCS7 120
|
| #define PKCS7_F_B64_WRITE_PKCS7 121
|
| +#define PKCS7_F_DO_PKCS7_SIGNED_ATTRIB 136
|
| +#define PKCS7_F_I2D_PKCS7_BIO_STREAM 140
|
| +#define PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME 135
|
| #define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP 118
|
| #define PKCS7_F_PKCS7_ADD_CERTIFICATE 100
|
| #define PKCS7_F_PKCS7_ADD_CRL 101
|
| #define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 102
|
| +#define PKCS7_F_PKCS7_ADD_SIGNATURE 131
|
| #define PKCS7_F_PKCS7_ADD_SIGNER 103
|
| #define PKCS7_F_PKCS7_BIO_ADD_DIGEST 125
|
| +#define PKCS7_F_PKCS7_COPY_EXISTING_DIGEST 138
|
| #define PKCS7_F_PKCS7_CTRL 104
|
| #define PKCS7_F_PKCS7_DATADECODE 112
|
| #define PKCS7_F_PKCS7_DATAFINAL 128
|
| @@ -396,15 +416,22 @@
|
| #define PKCS7_F_PKCS7_DATASIGN 106
|
| #define PKCS7_F_PKCS7_DATAVERIFY 107
|
| #define PKCS7_F_PKCS7_DECRYPT 114
|
| +#define PKCS7_F_PKCS7_DECRYPT_RINFO 133
|
| +#define PKCS7_F_PKCS7_ENCODE_RINFO 132
|
| #define PKCS7_F_PKCS7_ENCRYPT 115
|
| +#define PKCS7_F_PKCS7_FINAL 134
|
| #define PKCS7_F_PKCS7_FIND_DIGEST 127
|
| #define PKCS7_F_PKCS7_GET0_SIGNERS 124
|
| +#define PKCS7_F_PKCS7_RECIP_INFO_SET 130
|
| #define PKCS7_F_PKCS7_SET_CIPHER 108
|
| #define PKCS7_F_PKCS7_SET_CONTENT 109
|
| #define PKCS7_F_PKCS7_SET_DIGEST 126
|
| #define PKCS7_F_PKCS7_SET_TYPE 110
|
| #define PKCS7_F_PKCS7_SIGN 116
|
| #define PKCS7_F_PKCS7_SIGNATUREVERIFY 113
|
| +#define PKCS7_F_PKCS7_SIGNER_INFO_SET 129
|
| +#define PKCS7_F_PKCS7_SIGNER_INFO_SIGN 139
|
| +#define PKCS7_F_PKCS7_SIGN_ADD_SIGNER 137
|
| #define PKCS7_F_PKCS7_SIMPLE_SMIMECAP 119
|
| #define PKCS7_F_PKCS7_VERIFY 117
|
| #define PKCS7_F_SMIME_READ_PKCS7 122
|
| @@ -415,10 +442,13 @@
|
| #define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 144
|
| #define PKCS7_R_CIPHER_NOT_INITIALIZED 116
|
| #define PKCS7_R_CONTENT_AND_DATA_PRESENT 118
|
| +#define PKCS7_R_CTRL_ERROR 152
|
| #define PKCS7_R_DECODE_ERROR 130
|
| #define PKCS7_R_DECRYPTED_KEY_IS_WRONG_LENGTH 100
|
| #define PKCS7_R_DECRYPT_ERROR 119
|
| #define PKCS7_R_DIGEST_FAILURE 101
|
| +#define PKCS7_R_ENCRYPTION_CTRL_FAILURE 149
|
| +#define PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 150
|
| #define PKCS7_R_ERROR_ADDING_RECIPIENT 120
|
| #define PKCS7_R_ERROR_SETTING_CIPHER 121
|
| #define PKCS7_R_INVALID_MIME_TYPE 131
|
| @@ -429,6 +459,8 @@
|
| #define PKCS7_R_MISSING_CERIPEND_INFO 103
|
| #define PKCS7_R_NO_CONTENT 122
|
| #define PKCS7_R_NO_CONTENT_TYPE 135
|
| +#define PKCS7_R_NO_DEFAULT_DIGEST 151
|
| +#define PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND 154
|
| #define PKCS7_R_NO_MULTIPART_BODY_FAILURE 136
|
| #define PKCS7_R_NO_MULTIPART_BOUNDARY 137
|
| #define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115
|
| @@ -438,6 +470,7 @@
|
| #define PKCS7_R_NO_SIG_CONTENT_TYPE 138
|
| #define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104
|
| #define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR 124
|
| +#define PKCS7_R_PKCS7_ADD_SIGNER_ERROR 153
|
| #define PKCS7_R_PKCS7_DATAFINAL 126
|
| #define PKCS7_R_PKCS7_DATAFINAL_ERROR 125
|
| #define PKCS7_R_PKCS7_DATASIGN 145
|
| @@ -446,6 +479,8 @@
|
| #define PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 127
|
| #define PKCS7_R_SIGNATURE_FAILURE 105
|
| #define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND 128
|
| +#define PKCS7_R_SIGNING_CTRL_FAILURE 147
|
| +#define PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 148
|
| #define PKCS7_R_SIG_INVALID_MIME_TYPE 141
|
| #define PKCS7_R_SMIME_TEXT_ERROR 129
|
| #define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106
|
|
|