Commit 3c6a7cd4 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

PR: 2742

Reported by: Dmitry Belyavsky <beldmit@gmail.com>

If resigning with detached content in CMS just copy data across.
parent dc4f678c
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -377,8 +377,12 @@ static int asn1_output_data(BIO *out, BIO *data, ASN1_VALUE *val, int flags,
	BIO *tmpbio;
	const ASN1_AUX *aux = it->funcs;
	ASN1_STREAM_ARG sarg;
	int rv = 1;

	if (!(flags & SMIME_DETACHED))
	/* If data is not deteched or resigning then the output BIO is
	 * already set up to finalise when it is written through.
	 */
	if (!(flags & SMIME_DETACHED) || (flags & PKCS7_REUSE_DIGEST))
		{
		SMIME_crlf_copy(data, out, flags);
		return 1;
@@ -405,7 +409,7 @@ static int asn1_output_data(BIO *out, BIO *data, ASN1_VALUE *val, int flags,

	/* Finalize structure */
	if (aux->asn1_cb(ASN1_OP_DETACHED_POST, &val, it, &sarg) <= 0)
		return 0;
		rv = 0;

	/* Now remove any digests prepended to the BIO */

@@ -416,7 +420,7 @@ static int asn1_output_data(BIO *out, BIO *data, ASN1_VALUE *val, int flags,
		sarg.ndef_bio = tmpbio;
		}

	return 1;
	return rv;

	}