diff --git a/test/recipes/15-test_ec.t b/test/recipes/15-test_ec.t index 34846e2d33..327a8850e0 100644 --- a/test/recipes/15-test_ec.t +++ b/test/recipes/15-test_ec.t @@ -16,23 +16,51 @@ use OpenSSL::Test::Utils; setup("test_ec"); -plan tests => 5; +plan tests => 11; require_ok(srctop_file('test','recipes','tconversion.pl')); ok(run(test(["ectest"])), "running ectest"); - SKIP: { - skip "Skipping ec conversion test", 3 - if disabled("ec"); +SKIP: { + skip "Skipping EC conversion test", 3 + if disabled("ec"); - subtest 'ec conversions -- private key' => sub { - tconversion("ec", srctop_file("test","testec-p256.pem")); - }; - subtest 'ec conversions -- private key PKCS#8' => sub { - tconversion("ec", srctop_file("test","testec-p256.pem"), "pkey"); - }; - subtest 'ec conversions -- public key' => sub { - tconversion("ec", srctop_file("test","testecpub-p256.pem"), "ec", "-pubin", "-pubout"); - }; + subtest 'EC conversions -- private key' => sub { + tconversion("ec", srctop_file("test","testec-p256.pem")); + }; + subtest 'EC conversions -- private key PKCS#8' => sub { + tconversion("ec", srctop_file("test","testec-p256.pem"), "pkey"); + }; + subtest 'EC conversions -- public key' => sub { + tconversion("ec", srctop_file("test","testecpub-p256.pem"), + "ec", "-pubin", "-pubout"); + }; +} + +SKIP: { + skip "Skipping EdDSA conversion test", 6 + if disabled("ec"); + + subtest 'Ed25519 conversions -- private key' => sub { + tconversion("pkey", srctop_file("test","tested25519.pem")); + }; + subtest 'Ed25519 conversions -- private key PKCS#8' => sub { + tconversion("pkey", srctop_file("test","tested25519.pem"), "pkey"); + }; + subtest 'Ed25519 conversions -- public key' => sub { + tconversion("pkey", srctop_file("test","tested25519pub.pem"), + "pkey", "-pubin", "-pubout"); + }; + + subtest 'Ed448 conversions -- private key' => sub { + tconversion("pkey", srctop_file("test","tested448.pem")); + }; + subtest 'Ed448 conversions -- private key PKCS#8' => sub { + tconversion("pkey", srctop_file("test","tested448.pem"), "pkey"); + }; + subtest 'Ed448 conversions -- public key' => sub { + tconversion("pkey", srctop_file("test","tested448pub.pem"), + "pkey", "-pubin", "-pubout"); + }; } diff --git a/test/recipes/25-test_req.t b/test/recipes/25-test_req.t index 0e085b435d..075c09db6d 100644 --- a/test/recipes/25-test_req.t +++ b/test/recipes/25-test_req.t @@ -15,7 +15,7 @@ use OpenSSL::Test qw/:DEFAULT srctop_file/; setup("test_req"); -plan tests => 13; +plan tests => 15; require_ok(srctop_file('test','recipes','tconversion.pl')); @@ -102,6 +102,46 @@ subtest "generating certificate requests with ECDSA" => sub { } }; +subtest "generating certificate requests with Ed25519" => sub { + plan tests => 2; + + SKIP: { + skip "Ed25519 is not supported by this OpenSSL build", 2 + if disabled("ec"); + + ok(run(app(["openssl", "req", + "-config", srctop_file("test", "test.cnf"), + "-new", "-out", "testreq.pem", "-utf8", + "-key", srctop_file("test", "tested25519.pem")])), + "Generating request"); + + ok(run(app(["openssl", "req", + "-config", srctop_file("test", "test.cnf"), + "-verify", "-in", "testreq.pem", "-noout"])), + "Verifying signature on request"); + } +}; + +subtest "generating certificate requests with Ed448" => sub { + plan tests => 2; + + SKIP: { + skip "Ed448 is not supported by this OpenSSL build", 2 + if disabled("ec"); + + ok(run(app(["openssl", "req", + "-config", srctop_file("test", "test.cnf"), + "-new", "-out", "testreq.pem", "-utf8", + "-key", srctop_file("test", "tested448.pem")])), + "Generating request"); + + ok(run(app(["openssl", "req", + "-config", srctop_file("test", "test.cnf"), + "-verify", "-in", "testreq.pem", "-noout"])), + "Verifying signature on request"); + } +}; + subtest "generating certificate requests" => sub { plan tests => 2; diff --git a/test/tested25519.pem b/test/tested25519.pem new file mode 100644 index 0000000000..e447080ae2 --- /dev/null +++ b/test/tested25519.pem @@ -0,0 +1,3 @@ +-----BEGIN PRIVATE KEY----- +MC4CAQAwBQYDK2VwBCIEINTuctv5E1hK1bbY8fdp+K06/nwoy/HU++CXqI9EdVhC +-----END PRIVATE KEY----- diff --git a/test/tested25519pub.pem b/test/tested25519pub.pem new file mode 100644 index 0000000000..41b0218e94 --- /dev/null +++ b/test/tested25519pub.pem @@ -0,0 +1,3 @@ +-----BEGIN PUBLIC KEY----- +MCowBQYDK2VwAyEAGb9ECWmEzf6FQbrBZ9w7lshQhqowtrbLDFw4rXAxZuE= +-----END PUBLIC KEY----- diff --git a/test/tested448.pem b/test/tested448.pem new file mode 100644 index 0000000000..98af16420a --- /dev/null +++ b/test/tested448.pem @@ -0,0 +1,4 @@ +-----BEGIN PRIVATE KEY----- +MEcCAQAwBQYDK2VxBDsEOWyCpWLLgI0Q1jK+ichRPr9skp803fqMn2PJlg7240ij +UoyKP8wvBE45o/xblEkvjwMudUmiAJj5Ww== +-----END PRIVATE KEY----- diff --git a/test/tested448pub.pem b/test/tested448pub.pem new file mode 100644 index 0000000000..640da6f2be --- /dev/null +++ b/test/tested448pub.pem @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +MEMwBQYDK2VxAzoAX9dEm1m0Yf0s54fsYWrUah2hNCSFpw4fig6nXYDpZ3jt8SR2 +m0bHBhvWeD3x5Q9s0foavq/oJWGA +-----END PUBLIC KEY-----