]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
cmsapitest.c: add test case for CMS_EnvelopedData_decrypt()
authorDr. David von Oheimb <David.von.Oheimb@siemens.com>
Thu, 14 Jul 2022 15:11:22 +0000 (17:11 +0200)
committerDr. David von Oheimb <dev@ddvo.net>
Sat, 16 Jul 2022 06:15:49 +0000 (08:15 +0200)
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)

test/cmsapitest.c

index 460e4693c2a56f7f68131292afbec78a10e03bb2..df54edb43d0302dcafec043a6e598e2733852963 100644 (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);