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 |