diff options
author | tb <> | 2024-03-29 06:42:42 +0000 |
---|---|---|
committer | tb <> | 2024-03-29 06:42:42 +0000 |
commit | 6436c9adff80b7ce0419acbe536b83b8448e44c7 (patch) | |
tree | 2f4525a5e04a3c9140d220a7ceb3a97cae84712f | |
parent | ba67e7951125ac5d622f4ac87f8bd3dcb50690aa (diff) | |
download | openbsd-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.c | 48 |
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 | ||
100 | const 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 | |||
114 | const 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 | |||
129 | const char cms_key_2[] = | ||
130 | "-----BEGIN PRIVATE KEY-----\n" | ||
131 | "MC4CAQAwBQYDK2VwBCIEIO88YApnGRDewzSwtxAnBvhlTPz9MjSz51mEpE2oi+9g\n" | ||
132 | "-----END PRIVATE KEY-----\n"; | ||
133 | |||
100 | static void | 134 | static void |
101 | hexdump(const unsigned char *buf, size_t len) | 135 | hexdump(const unsigned char *buf, size_t len) |
102 | { | 136 | { |
@@ -204,7 +238,8 @@ test_cms_encrypt_decrypt(void) | |||
204 | } | 238 | } |
205 | 239 | ||
206 | static int | 240 | static int |
207 | test_cms_sign_verify(void) | 241 | test_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 | } |