diff options
author | Daniel Fiala <daniel@openssl.org> | 2022-03-28 12:53:08 +0000 |
---|---|---|
committer | Tomas Mraz <tomas@openssl.org> | 2022-04-21 08:38:13 +0200 |
commit | 45a3c592b94b66cab72e5bffbaf9d810c3fb29c0 (patch) | |
tree | b82da08711920dddade0c57e040cd03b6d2d2b9a /test/cmsapitest.c | |
parent | 3f075967f664aac12951a1d7aa3124d9235cd299 (diff) |
Clear incorrectly reported errors in cms_io.
Fixes openssl#17841.
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18109)
Diffstat (limited to 'test/cmsapitest.c')
-rw-r--r-- | test/cmsapitest.c | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/test/cmsapitest.c b/test/cmsapitest.c index 683dad4835..28b0d48992 100644 --- a/test/cmsapitest.c +++ b/test/cmsapitest.c @@ -18,6 +18,7 @@ static X509 *cert = NULL; static EVP_PKEY *privkey = NULL; +static char *derin = NULL; static int test_encrypt_decrypt(const EVP_CIPHER *cipher) { @@ -288,7 +289,30 @@ static int test_d2i_CMS_bio_NULL(void) return ret; } -OPT_TEST_DECLARE_USAGE("certfile privkeyfile\n") +static int test_d2i_CMS_bio_file_encrypted_data(void) +{ + BIO *bio = NULL; + CMS_ContentInfo *cms = NULL; + int ret = 0; + + ERR_clear_error(); + + if (!TEST_ptr(bio = BIO_new_file(derin, "r")) + || !TEST_ptr(cms = d2i_CMS_bio(bio, NULL))) + goto end; + + if (!TEST_int_eq(ERR_peek_error(), 0)) + goto end; + + ret = 1; +end: + CMS_ContentInfo_free(cms); + BIO_free(bio); + + return ret; +} + +OPT_TEST_DECLARE_USAGE("certfile privkeyfile derfile\n") int setup_tests(void) { @@ -301,7 +325,8 @@ int setup_tests(void) } if (!TEST_ptr(certin = test_get_argument(0)) - || !TEST_ptr(privkeyin = test_get_argument(1))) + || !TEST_ptr(privkeyin = test_get_argument(1)) + || !TEST_ptr(derin = test_get_argument(2))) return 0; certbio = BIO_new_file(certin, "r"); @@ -332,6 +357,7 @@ int setup_tests(void) ADD_TEST(test_encrypt_decrypt_aes_192_gcm); ADD_TEST(test_encrypt_decrypt_aes_256_gcm); ADD_TEST(test_d2i_CMS_bio_NULL); + ADD_TEST(test_d2i_CMS_bio_file_encrypted_data); return 1; } |