Use correct headers for signed receipts. Use consistent naming.
Update cms-test.pl to support OpenSSL 0.9.8.
This commit is contained in:
@@ -324,7 +324,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE;
|
||||
|
||||
#define DECLARE_ASN1_FUNCTIONS_const(name) \
|
||||
name *name##_new(void); \
|
||||
void name##_free(name *a);
|
||||
void name##_free(name *a); \
|
||||
|
||||
#define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \
|
||||
type *name##_new(void); \
|
||||
@@ -1126,10 +1126,10 @@ int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags,
|
||||
const char *hdr,
|
||||
const ASN1_ITEM *it);
|
||||
int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags,
|
||||
int ctype_nid,
|
||||
int ctype_nid, int econt_nid,
|
||||
STACK_OF(X509_ALGOR) *mdalgs,
|
||||
const ASN1_ITEM *it);
|
||||
ASN1_VALUE *SMIME_read_asn1(BIO *bio, BIO **bcont, const ASN1_ITEM *it);
|
||||
ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it);
|
||||
int SMIME_crlf_copy(BIO *in, BIO *out, int flags);
|
||||
int SMIME_text(BIO *in, BIO *out);
|
||||
|
||||
|
||||
@@ -276,7 +276,7 @@ static int asn1_write_micalg(BIO *out, STACK_OF(X509_ALGOR) *mdalgs)
|
||||
/* SMIME sender */
|
||||
|
||||
int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags,
|
||||
int ctype_nid,
|
||||
int ctype_nid, int econt_nid,
|
||||
STACK_OF(X509_ALGOR) *mdalgs,
|
||||
const ASN1_ITEM *it)
|
||||
{
|
||||
@@ -340,7 +340,9 @@ int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags,
|
||||
msg_type = "enveloped-data";
|
||||
else if (ctype_nid == NID_pkcs7_signed)
|
||||
{
|
||||
if (sk_X509_ALGOR_num(mdalgs) >= 0)
|
||||
if (econt_nid == NID_id_smime_ct_receipt)
|
||||
msg_type = "signed-receipt";
|
||||
else if (sk_X509_ALGOR_num(mdalgs) >= 0)
|
||||
msg_type = "signed-data";
|
||||
else
|
||||
msg_type = "certs-only";
|
||||
@@ -423,7 +425,7 @@ static int asn1_output_data(BIO *out, BIO *data, ASN1_VALUE *val, int flags,
|
||||
* pointed to by "bcont". In opaque this is set to NULL
|
||||
*/
|
||||
|
||||
ASN1_VALUE *SMIME_read_asn1(BIO *bio, BIO **bcont, const ASN1_ITEM *it)
|
||||
ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it)
|
||||
{
|
||||
BIO *asnin;
|
||||
STACK_OF(MIME_HEADER) *headers = NULL;
|
||||
|
||||
@@ -114,19 +114,20 @@ int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags)
|
||||
{
|
||||
STACK_OF(X509_ALGOR) *mdalgs;
|
||||
int ctype_nid = OBJ_obj2nid(cms->contentType);
|
||||
int econt_nid = OBJ_obj2nid(CMS_get0_eContentType(cms));
|
||||
if (ctype_nid == NID_pkcs7_signed)
|
||||
mdalgs = cms->d.signedData->digestAlgorithms;
|
||||
else
|
||||
mdalgs = NULL;
|
||||
|
||||
return SMIME_write_ASN1(bio, (ASN1_VALUE *)cms, data, flags,
|
||||
ctype_nid, mdalgs,
|
||||
ctype_nid, econt_nid, mdalgs,
|
||||
ASN1_ITEM_rptr(CMS_ContentInfo));
|
||||
}
|
||||
|
||||
CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont)
|
||||
{
|
||||
return (CMS_ContentInfo *)SMIME_read_asn1(bio, bcont,
|
||||
return (CMS_ContentInfo *)SMIME_read_ASN1(bio, bcont,
|
||||
ASN1_ITEM_rptr(CMS_ContentInfo));
|
||||
}
|
||||
|
||||
|
||||
@@ -87,11 +87,11 @@ int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags)
|
||||
|
||||
|
||||
return SMIME_write_ASN1(bio, (ASN1_VALUE *)p7, data, flags,
|
||||
ctype_nid, mdalgs,
|
||||
ctype_nid, NID_undef, mdalgs,
|
||||
ASN1_ITEM_rptr(PKCS7));
|
||||
}
|
||||
|
||||
PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont)
|
||||
{
|
||||
return (PKCS7 *)SMIME_read_asn1(bio, bcont, ASN1_ITEM_rptr(PKCS7));
|
||||
return (PKCS7 *)SMIME_read_ASN1(bio, bcont, ASN1_ITEM_rptr(PKCS7));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user