Commit 2e86f0d8 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Use correct headers for signed receipts. Use consistent naming.

Update cms-test.pl to support OpenSSL 0.9.8.
parent e2a29d49
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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);

+5 −3
Original line number Diff line number Diff line
@@ -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;
+3 −2
Original line number Diff line number Diff line
@@ -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));
	}
+2 −2
Original line number Diff line number Diff line
@@ -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));
	}
+12 −0
Original line number Diff line number Diff line
@@ -74,6 +74,7 @@ my $smdir = "smime-certs";
my $halt_err = 1;

my $badcmd = 0;
my $ossl8 = `$ossl_path version -v` =~ /0\.9\.8/;

my @smime_pkcs7_tests = (

@@ -333,6 +334,8 @@ else {
    print "Zlib not supported: compression tests skipped\n";
}

print "Running modified tests for OpenSSL 0.9.8 cms backport\n" if($ossl8);

if ($badcmd) {
    print "$badcmd TESTS FAILED!!\n";
}
@@ -351,6 +354,15 @@ sub run_smime_tests {

    foreach $smtst (@$aref) {
        my ( $tnam, $rscmd, $rvcmd ) = @$smtst;
	if ($ossl8)
		{
		# Skip smime resign: 0.9.8 smime doesn't support -resign	
		next if ($scmd =~ /smime/ && $rscmd =~ /-resign/);
		# Disable streaming: option not supported in 0.9.8
		$tnam =~ s/streaming//;	
		$rscmd =~ s/-stream//;	
		$rvcmd =~ s/-stream//;
		}
        system("$scmd$rscmd 2>cms.err 1>cms.out");
        if ($?) {
            print "$tnam: generation error\n";