cmsapitest.c: add test case for CMS_EnvelopedData_decrypt()

Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: David von Oheimb <david.von.oheimb@siemens.com>
(Merged from https://github.com/openssl/openssl/pull/18667)
This commit is contained in:
Dr. David von Oheimb 2022-07-14 17:11:22 +02:00 committed by Dr. David von Oheimb
parent d7d3dae694
commit 98b183d3c6

View File

@ -13,7 +13,7 @@
#include <openssl/bio.h>
#include <openssl/x509.h>
#include <openssl/pem.h>
#include "../crypto/cms/cms_local.h" /* for access to cms->d.signedData */
#include "../crypto/cms/cms_local.h" /* for d.signedData and d.envelopedData */
#include "testutil.h"
@ -29,6 +29,7 @@ static int test_encrypt_decrypt(const EVP_CIPHER *cipher)
BIO *msgbio = BIO_new_mem_buf(msg, strlen(msg));
BIO *outmsgbio = BIO_new(BIO_s_mem());
CMS_ContentInfo* content = NULL;
BIO *contentbio = NULL;
char buf[80];
if (!TEST_ptr(certstack) || !TEST_ptr(msgbio) || !TEST_ptr(outmsgbio))
@ -45,6 +46,12 @@ static int test_encrypt_decrypt(const EVP_CIPHER *cipher)
CMS_TEXT)))
goto end;
if (!TEST_ptr(contentbio =
CMS_EnvelopedData_decrypt(content->d.envelopedData,
NULL, privkey, cert, NULL,
CMS_TEXT, NULL, NULL)))
goto end;
/* Check we got the message we first started with */
if (!TEST_int_eq(BIO_gets(outmsgbio, buf, sizeof(buf)), strlen(msg))
|| !TEST_int_eq(strcmp(buf, msg), 0))
@ -52,6 +59,7 @@ static int test_encrypt_decrypt(const EVP_CIPHER *cipher)
testresult = 1;
end:
BIO_free(contentbio);
sk_X509_free(certstack);
BIO_free(msgbio);
BIO_free(outmsgbio);