summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortb <>2024-03-29 06:42:42 +0000
committertb <>2024-03-29 06:42:42 +0000
commit6436c9adff80b7ce0419acbe536b83b8448e44c7 (patch)
tree2f4525a5e04a3c9140d220a7ceb3a97cae84712f
parentba67e7951125ac5d622f4ac87f8bd3dcb50690aa (diff)
downloadopenbsd-6436c9adff80b7ce0419acbe536b83b8448e44c7.tar.gz
openbsd-6436c9adff80b7ce0419acbe536b83b8448e44c7.tar.bz2
openbsd-6436c9adff80b7ce0419acbe536b83b8448e44c7.zip
Add regress coverage for EdDSA in CMS
-rw-r--r--src/regress/lib/libcrypto/cms/cmstest.c48
1 files changed, 42 insertions, 6 deletions
diff --git a/src/regress/lib/libcrypto/cms/cmstest.c b/src/regress/lib/libcrypto/cms/cmstest.c
index c207b9ebd8..8b2faf6891 100644
--- a/src/regress/lib/libcrypto/cms/cmstest.c
+++ b/src/regress/lib/libcrypto/cms/cmstest.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: cmstest.c,v 1.7 2023/03/02 21:08:14 tb Exp $ */ 1/* $OpenBSD: cmstest.c,v 1.8 2024/03/29 06:42:42 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2019 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2019 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -97,6 +97,40 @@ static const char cms_key_1[] =
97 "pFtLoXoGoVXRjAtpNvX7fh/G\n" 97 "pFtLoXoGoVXRjAtpNvX7fh/G\n"
98 "-----END PRIVATE KEY-----\n"; 98 "-----END PRIVATE KEY-----\n";
99 99
100const char cms_ca_2[] =
101 "-----BEGIN CERTIFICATE-----\n"
102 "MIIBvTCCAW+gAwIBAgIQHioe49U1R3LcahmTCOUmoTAFBgMrZXAwXTEUMBIGA1UE\n"
103 "ChMLQ01TIFRlc3QgQ0ExHTAbBgNVBAsMFGNtc3Rlc3RAbGlicmVzc2wub3JnMSYw\n"
104 "JAYDVQQDDB1DTVMgVGVzdCBjbXN0ZXN0QGxpYnJlc3NsLm9yZzAeFw0yMzEwMDkw\n"
105 "OTAzNDhaFw0zMzEwMDkwOTAzNDhaMF0xFDASBgNVBAoTC0NNUyBUZXN0IENBMR0w\n"
106 "GwYDVQQLDBRjbXN0ZXN0QGxpYnJlc3NsLm9yZzEmMCQGA1UEAwwdQ01TIFRlc3Qg\n"
107 "Y21zdGVzdEBsaWJyZXNzbC5vcmcwKjAFBgMrZXADIQAYj6pY7cN0DnwmsYHVDLqJ\n"
108 "7/Futy5p4QJDKA/FSZ6+6KNFMEMwDgYDVR0PAQH/BAQDAgIEMBIGA1UdEwEB/wQI\n"
109 "MAYBAf8CAQAwHQYDVR0OBBYEFE7G7c7O2Vj79+Q786M7ssMd/lflMAUGAytlcANB\n"
110 "AOk+RHgs8D82saBM1nQMgIwEsNhYwbj3HhrRFDezYcnZeorBgiZTV3uQd2EndFdU\n"
111 "hcs4OYMCRorxqpUXX6EMtwQ=\n"
112 "-----END CERTIFICATE-----\n";
113
114const char cms_cert_2[] =
115 "-----BEGIN CERTIFICATE-----\n"
116 "MIIB5DCCAZagAwIBAgIQevuGe7FBHIc2pnQ4b4dsIzAFBgMrZXAwXTEUMBIGA1UE\n"
117 "ChMLQ01TIFRlc3QgQ0ExHTAbBgNVBAsMFGNtc3Rlc3RAbGlicmVzc2wub3JnMSYw\n"
118 "JAYDVQQDDB1DTVMgVGVzdCBjbXN0ZXN0QGxpYnJlc3NsLm9yZzAeFw0yMzEwMDkw\n"
119 "OTAzNDhaFw0zMzEwMDkwOTAzNDhaMD4xHTAbBgNVBAoTFENNUyB0ZXN0IGNlcnRp\n"
120 "ZmljYXRlMR0wGwYDVQQLDBRjbXN0ZXN0QGxpYnJlc3NsLm9yZzAqMAUGAytlcAMh\n"
121 "AFH47Z54SuXMN+i5CCvMVUZJZzSYsDcRY+lPtc+J8h2ko4GKMIGHMA4GA1UdDwEB\n"
122 "/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwQwHwYDVR0jBBgw\n"
123 "FoAUTsbtzs7ZWPv35Dvzozuywx3+V+UwNQYDVR0RBC4wLIIUY21zdGVzdC5saWJy\n"
124 "ZXNzbC5vcmeBFGNtc3Rlc3RAbGlicmVzc2wub3JnMAUGAytlcANBAAEqYppowFjF\n"
125 "fTZhNM3cIyFfmQthJV/+krEE2VTSoKgCokll+fXz1K9P+R3asgrVDoHjnBtvksIE\n"
126 "wup36c05XQA=\n"
127 "-----END CERTIFICATE-----\n";
128
129const char cms_key_2[] =
130 "-----BEGIN PRIVATE KEY-----\n"
131 "MC4CAQAwBQYDK2VwBCIEIO88YApnGRDewzSwtxAnBvhlTPz9MjSz51mEpE2oi+9g\n"
132 "-----END PRIVATE KEY-----\n";
133
100static void 134static void
101hexdump(const unsigned char *buf, size_t len) 135hexdump(const unsigned char *buf, size_t len)
102{ 136{
@@ -204,7 +238,8 @@ test_cms_encrypt_decrypt(void)
204} 238}
205 239
206static int 240static int
207test_cms_sign_verify(void) 241test_cms_sign_verify(const char *ca_pem, const char *cert_pem,
242 const char *key_pem)
208{ 243{
209 STACK_OF(X509) *certs = NULL; 244 STACK_OF(X509) *certs = NULL;
210 CMS_ContentInfo *ci = NULL; 245 CMS_ContentInfo *ci = NULL;
@@ -224,7 +259,7 @@ test_cms_sign_verify(void)
224 259
225 if ((certs = sk_X509_new_null()) == NULL) 260 if ((certs = sk_X509_new_null()) == NULL)
226 errx(1, "failed to create certs"); 261 errx(1, "failed to create certs");
227 if ((bio_mem = BIO_new_mem_buf(cms_cert_1, -1)) == NULL) 262 if ((bio_mem = BIO_new_mem_buf(cert_pem, -1)) == NULL)
228 errx(1, "failed to create BIO for cert"); 263 errx(1, "failed to create BIO for cert");
229 if ((cert = PEM_read_bio_X509(bio_mem, NULL, NULL, NULL)) == NULL) 264 if ((cert = PEM_read_bio_X509(bio_mem, NULL, NULL, NULL)) == NULL)
230 errx(1, "failed to read cert"); 265 errx(1, "failed to read cert");
@@ -232,7 +267,7 @@ test_cms_sign_verify(void)
232 errx(1, "failed to push cert"); 267 errx(1, "failed to push cert");
233 268
234 BIO_free(bio_mem); 269 BIO_free(bio_mem);
235 if ((bio_mem = BIO_new_mem_buf(cms_ca_1, -1)) == NULL) 270 if ((bio_mem = BIO_new_mem_buf(ca_pem, -1)) == NULL)
236 errx(1, "failed to create BIO for cert"); 271 errx(1, "failed to create BIO for cert");
237 if ((ca = PEM_read_bio_X509(bio_mem, NULL, NULL, NULL)) == NULL) 272 if ((ca = PEM_read_bio_X509(bio_mem, NULL, NULL, NULL)) == NULL)
238 errx(1, "failed to read cert"); 273 errx(1, "failed to read cert");
@@ -242,7 +277,7 @@ test_cms_sign_verify(void)
242 errx(1, "failed to add cert to store"); 277 errx(1, "failed to add cert to store");
243 278
244 BIO_free(bio_mem); 279 BIO_free(bio_mem);
245 if ((bio_mem = BIO_new_mem_buf(cms_key_1, -1)) == NULL) 280 if ((bio_mem = BIO_new_mem_buf(key_pem, -1)) == NULL)
246 errx(1, "failed to create BIO for key"); 281 errx(1, "failed to create BIO for key");
247 if ((pkey = PEM_read_bio_PrivateKey(bio_mem, NULL, NULL, NULL)) == NULL) 282 if ((pkey = PEM_read_bio_PrivateKey(bio_mem, NULL, NULL, NULL)) == NULL)
248 errx(1, "failed to read key"); 283 errx(1, "failed to read key");
@@ -320,7 +355,8 @@ main(int argc, char **argv)
320 ERR_load_crypto_strings(); 355 ERR_load_crypto_strings();
321 356
322 failed |= test_cms_encrypt_decrypt(); 357 failed |= test_cms_encrypt_decrypt();
323 failed |= test_cms_sign_verify(); 358 failed |= test_cms_sign_verify(cms_ca_1, cms_cert_1, cms_key_1);
359 failed |= test_cms_sign_verify(cms_ca_2, cms_cert_2, cms_key_2);
324 360
325 return failed; 361 return failed;
326} 362}