Latest update.
This commit is contained in:
@@ -9,15 +9,29 @@ use warnings;
|
||||
package ssltests;
|
||||
use OpenSSL::Test::Utils;
|
||||
|
||||
my $server = {
|
||||
"ECDSA.Certificate" => test_pem("server-ecdsa-cert.pem"),
|
||||
"ECDSA.PrivateKey" => test_pem("server-ecdsa-key.pem"),
|
||||
"Ed25519.Certificate" => test_pem("server-ed25519-cert.pem"),
|
||||
"Ed25519.PrivateKey" => test_pem("server-ed25519-key.pem"),
|
||||
"Ed448.Certificate" => test_pem("server-ed448-cert.pem"),
|
||||
"Ed448.PrivateKey" => test_pem("server-ed448-key.pem"),
|
||||
"MaxProtocol" => "TLSv1.2"
|
||||
};
|
||||
our $fips_mode;
|
||||
our $no_deflt_libctx;
|
||||
|
||||
my $server;
|
||||
|
||||
if ($fips_mode) {
|
||||
#TODO(3.0): No EdDSA support in FIPS mode at the moment
|
||||
$server = {
|
||||
"ECDSA.Certificate" => test_pem("server-ecdsa-cert.pem"),
|
||||
"ECDSA.PrivateKey" => test_pem("server-ecdsa-key.pem"),
|
||||
"MaxProtocol" => "TLSv1.2"
|
||||
};
|
||||
} else {
|
||||
$server = {
|
||||
"ECDSA.Certificate" => test_pem("server-ecdsa-cert.pem"),
|
||||
"ECDSA.PrivateKey" => test_pem("server-ecdsa-key.pem"),
|
||||
"Ed25519.Certificate" => test_pem("server-ed25519-cert.pem"),
|
||||
"Ed25519.PrivateKey" => test_pem("server-ed25519-key.pem"),
|
||||
"Ed448.Certificate" => test_pem("server-ed448-cert.pem"),
|
||||
"Ed448.PrivateKey" => test_pem("server-ed448-key.pem"),
|
||||
"MaxProtocol" => "TLSv1.2"
|
||||
};
|
||||
}
|
||||
|
||||
my $server_pss = {
|
||||
"PSS.Certificate" => test_pem("server-pss-cert.pem"),
|
||||
@@ -41,13 +55,21 @@ my $server_pss_restrict_only = {
|
||||
"PrivateKey" => test_pem("server-pss-restrict-key.pem"),
|
||||
};
|
||||
|
||||
my $server_rsa_all;
|
||||
|
||||
my $server_rsa_all = {
|
||||
"PSS.Certificate" => test_pem("server-pss-cert.pem"),
|
||||
"PSS.PrivateKey" => test_pem("server-pss-key.pem"),
|
||||
"Certificate" => test_pem("servercert.pem"),
|
||||
"PrivateKey" => test_pem("serverkey.pem"),
|
||||
};
|
||||
if ($no_deflt_libctx) {
|
||||
$server_rsa_all = {
|
||||
"Certificate" => test_pem("servercert.pem"),
|
||||
"PrivateKey" => test_pem("serverkey.pem"),
|
||||
};
|
||||
} else {
|
||||
$server_rsa_all = {
|
||||
"PSS.Certificate" => test_pem("server-pss-cert.pem"),
|
||||
"PSS.PrivateKey" => test_pem("server-pss-key.pem"),
|
||||
"Certificate" => test_pem("servercert.pem"),
|
||||
"PrivateKey" => test_pem("serverkey.pem"),
|
||||
};
|
||||
}
|
||||
|
||||
our @tests = (
|
||||
{
|
||||
@@ -110,63 +132,6 @@ our @tests = (
|
||||
"ExpectedResult" => "ServerFail"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "Ed25519 CipherString and Signature Algorithm Selection",
|
||||
server => $server,
|
||||
client => {
|
||||
"CipherString" => "aECDSA",
|
||||
"MaxProtocol" => "TLSv1.2",
|
||||
"SignatureAlgorithms" => "ed25519:ECDSA+SHA256",
|
||||
"RequestCAFile" => test_pem("root-cert.pem"),
|
||||
},
|
||||
test => {
|
||||
"ExpectedServerCertType" =>, "Ed25519",
|
||||
"ExpectedServerSignType" =>, "Ed25519",
|
||||
# Note: certificate_authorities not sent for TLS < 1.3
|
||||
"ExpectedServerCANames" =>, "empty",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "Ed448 CipherString and Signature Algorithm Selection",
|
||||
server => $server,
|
||||
client => {
|
||||
"CipherString" => "aECDSA",
|
||||
"MaxProtocol" => "TLSv1.2",
|
||||
"SignatureAlgorithms" => "ed448:ECDSA+SHA256",
|
||||
"RequestCAFile" => test_pem("root-ed448-cert.pem"),
|
||||
"VerifyCAFile" => test_pem("root-ed448-cert.pem"),
|
||||
},
|
||||
test => {
|
||||
"ExpectedServerCertType" =>, "Ed448",
|
||||
"ExpectedServerSignType" =>, "Ed448",
|
||||
# Note: certificate_authorities not sent for TLS < 1.3
|
||||
"ExpectedServerCANames" =>, "empty",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "ECDSA with brainpool",
|
||||
server => {
|
||||
"Certificate" => test_pem("server-ecdsa-brainpoolP256r1-cert.pem"),
|
||||
"PrivateKey" => test_pem("server-ecdsa-brainpoolP256r1-key.pem"),
|
||||
"Groups" => "brainpoolP256r1",
|
||||
},
|
||||
client => {
|
||||
#We don't restrict this to TLSv1.2, although use of brainpool
|
||||
#should force this anyway so that this should succeed
|
||||
"CipherString" => "aECDSA",
|
||||
"RequestCAFile" => test_pem("root-cert.pem"),
|
||||
"Groups" => "brainpoolP256r1",
|
||||
},
|
||||
test => {
|
||||
"ExpectedServerCertType" =>, "brainpoolP256r1",
|
||||
"ExpectedServerSignType" =>, "EC",
|
||||
# Note: certificate_authorities not sent for TLS < 1.3
|
||||
"ExpectedServerCANames" =>, "empty",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "RSA CipherString Selection",
|
||||
server => $server,
|
||||
@@ -180,19 +145,6 @@ our @tests = (
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "RSA-PSS Certificate CipherString Selection",
|
||||
server => $server_pss,
|
||||
client => {
|
||||
"CipherString" => "aRSA",
|
||||
"MaxProtocol" => "TLSv1.2",
|
||||
},
|
||||
test => {
|
||||
"ExpectedServerCertType" =>, "RSA-PSS",
|
||||
"ExpectedServerSignType" =>, "RSA-PSS",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "P-256 CipherString and Signature Algorithm Selection",
|
||||
server => $server,
|
||||
@@ -208,41 +160,6 @@ our @tests = (
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "Ed25519 CipherString and Curves Selection",
|
||||
server => $server,
|
||||
client => {
|
||||
"CipherString" => "aECDSA",
|
||||
"MaxProtocol" => "TLSv1.2",
|
||||
"SignatureAlgorithms" => "ECDSA+SHA256:ed25519",
|
||||
# Excluding P-256 from the supported curves list means server
|
||||
# certificate should be Ed25519 and not P-256
|
||||
"Curves" => "X25519"
|
||||
},
|
||||
test => {
|
||||
"ExpectedServerCertType" =>, "Ed25519",
|
||||
"ExpectedServerSignType" =>, "Ed25519",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "Ed448 CipherString and Curves Selection",
|
||||
server => $server,
|
||||
client => {
|
||||
"CipherString" => "aECDSA",
|
||||
"MaxProtocol" => "TLSv1.2",
|
||||
"SignatureAlgorithms" => "ECDSA+SHA256:ed448",
|
||||
"VerifyCAFile" => test_pem("root-ed448-cert.pem"),
|
||||
# Excluding P-256 from the supported curves list means server
|
||||
# certificate should be Ed25519 and not P-256
|
||||
"Curves" => "X448"
|
||||
},
|
||||
test => {
|
||||
"ExpectedServerCertType" =>, "Ed448",
|
||||
"ExpectedServerSignType" =>, "Ed448",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "ECDSA CipherString Selection, no ECDSA certificate",
|
||||
server => {
|
||||
@@ -350,6 +267,204 @@ our @tests = (
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "RSA key exchange with all RSA certificate types",
|
||||
server => $server_rsa_all,
|
||||
client => {
|
||||
"CipherString" => "kRSA",
|
||||
"MaxProtocol" => "TLSv1.2",
|
||||
},
|
||||
test => {
|
||||
"ExpectedServerCertType" =>, "RSA",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "Suite B P-256 Hash Algorithm Selection",
|
||||
server => {
|
||||
"ECDSA.Certificate" => test_pem("p256-server-cert.pem"),
|
||||
"ECDSA.PrivateKey" => test_pem("p256-server-key.pem"),
|
||||
"MaxProtocol" => "TLSv1.2",
|
||||
"CipherString" => "SUITEB128"
|
||||
},
|
||||
client => {
|
||||
"VerifyCAFile" => test_pem("p384-root.pem"),
|
||||
"SignatureAlgorithms" => "ECDSA+SHA384:ECDSA+SHA256"
|
||||
},
|
||||
test => {
|
||||
"ExpectedServerCertType" => "P-256",
|
||||
"ExpectedServerSignHash" => "SHA256",
|
||||
"ExpectedServerSignType" => "EC",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "Suite B P-384 Hash Algorithm Selection",
|
||||
server => {
|
||||
"ECDSA.Certificate" => test_pem("p384-server-cert.pem"),
|
||||
"ECDSA.PrivateKey" => test_pem("p384-server-key.pem"),
|
||||
"MaxProtocol" => "TLSv1.2",
|
||||
"CipherString" => "SUITEB128"
|
||||
},
|
||||
client => {
|
||||
"VerifyCAFile" => test_pem("p384-root.pem"),
|
||||
"SignatureAlgorithms" => "ECDSA+SHA256:ECDSA+SHA384"
|
||||
},
|
||||
test => {
|
||||
"ExpectedServerCertType" => "P-384",
|
||||
"ExpectedServerSignHash" => "SHA384",
|
||||
"ExpectedServerSignType" => "EC",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
);
|
||||
|
||||
my @tests_non_fips = (
|
||||
# TODO(3.0) No Ed25519/Ed448 in FIPS mode at the moment
|
||||
{
|
||||
name => "Ed25519 CipherString and Signature Algorithm Selection",
|
||||
server => $server,
|
||||
client => {
|
||||
"CipherString" => "aECDSA",
|
||||
"MaxProtocol" => "TLSv1.2",
|
||||
"SignatureAlgorithms" => "ed25519:ECDSA+SHA256",
|
||||
"RequestCAFile" => test_pem("root-cert.pem"),
|
||||
},
|
||||
test => {
|
||||
"ExpectedServerCertType" =>, "Ed25519",
|
||||
"ExpectedServerSignType" =>, "Ed25519",
|
||||
# Note: certificate_authorities not sent for TLS < 1.3
|
||||
"ExpectedServerCANames" =>, "empty",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "Ed448 CipherString and Signature Algorithm Selection",
|
||||
server => $server,
|
||||
client => {
|
||||
"CipherString" => "aECDSA",
|
||||
"MaxProtocol" => "TLSv1.2",
|
||||
"SignatureAlgorithms" => "ed448:ECDSA+SHA256",
|
||||
"RequestCAFile" => test_pem("root-ed448-cert.pem"),
|
||||
"VerifyCAFile" => test_pem("root-ed448-cert.pem"),
|
||||
},
|
||||
test => {
|
||||
"ExpectedServerCertType" =>, "Ed448",
|
||||
"ExpectedServerSignType" =>, "Ed448",
|
||||
# Note: certificate_authorities not sent for TLS < 1.3
|
||||
"ExpectedServerCANames" =>, "empty",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "ECDSA with brainpool",
|
||||
server => {
|
||||
"Certificate" => test_pem("server-ecdsa-brainpoolP256r1-cert.pem"),
|
||||
"PrivateKey" => test_pem("server-ecdsa-brainpoolP256r1-key.pem"),
|
||||
"Groups" => "brainpoolP256r1",
|
||||
},
|
||||
client => {
|
||||
#We don't restrict this to TLSv1.2, although use of brainpool
|
||||
#should force this anyway so that this should succeed
|
||||
"CipherString" => "aECDSA",
|
||||
"RequestCAFile" => test_pem("root-cert.pem"),
|
||||
"Groups" => "brainpoolP256r1",
|
||||
},
|
||||
test => {
|
||||
"ExpectedServerCertType" =>, "brainpoolP256r1",
|
||||
"ExpectedServerSignType" =>, "EC",
|
||||
# Note: certificate_authorities not sent for TLS < 1.3
|
||||
"ExpectedServerCANames" =>, "empty",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "Ed25519 CipherString and Curves Selection",
|
||||
server => $server,
|
||||
client => {
|
||||
"CipherString" => "aECDSA",
|
||||
"MaxProtocol" => "TLSv1.2",
|
||||
"SignatureAlgorithms" => "ECDSA+SHA256:ed25519",
|
||||
# Excluding P-256 from the supported curves list means server
|
||||
# certificate should be Ed25519 and not P-256
|
||||
"Curves" => "X25519"
|
||||
},
|
||||
test => {
|
||||
"ExpectedServerCertType" =>, "Ed25519",
|
||||
"ExpectedServerSignType" =>, "Ed25519",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "Ed448 CipherString and Curves Selection",
|
||||
server => $server,
|
||||
client => {
|
||||
"CipherString" => "aECDSA",
|
||||
"MaxProtocol" => "TLSv1.2",
|
||||
"SignatureAlgorithms" => "ECDSA+SHA256:ed448",
|
||||
"VerifyCAFile" => test_pem("root-ed448-cert.pem"),
|
||||
# Excluding P-256 from the supported curves list means server
|
||||
# certificate should be Ed25519 and not P-256
|
||||
"Curves" => "X448"
|
||||
},
|
||||
test => {
|
||||
"ExpectedServerCertType" =>, "Ed448",
|
||||
"ExpectedServerSignType" =>, "Ed448",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "TLS 1.2 Ed25519 Client Auth",
|
||||
server => {
|
||||
"VerifyCAFile" => test_pem("root-cert.pem"),
|
||||
"VerifyMode" => "Require"
|
||||
},
|
||||
client => {
|
||||
"Ed25519.Certificate" => test_pem("client-ed25519-cert.pem"),
|
||||
"Ed25519.PrivateKey" => test_pem("client-ed25519-key.pem"),
|
||||
"MinProtocol" => "TLSv1.2",
|
||||
"MaxProtocol" => "TLSv1.2"
|
||||
},
|
||||
test => {
|
||||
"ExpectedClientCertType" => "Ed25519",
|
||||
"ExpectedClientSignType" => "Ed25519",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "TLS 1.2 Ed448 Client Auth",
|
||||
server => {
|
||||
"VerifyCAFile" => test_pem("root-cert.pem"),
|
||||
"VerifyMode" => "Require"
|
||||
},
|
||||
client => {
|
||||
"Ed448.Certificate" => test_pem("client-ed448-cert.pem"),
|
||||
"Ed448.PrivateKey" => test_pem("client-ed448-key.pem"),
|
||||
"MinProtocol" => "TLSv1.2",
|
||||
"MaxProtocol" => "TLSv1.2"
|
||||
},
|
||||
test => {
|
||||
"ExpectedClientCertType" => "Ed448",
|
||||
"ExpectedClientSignType" => "Ed448",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
);
|
||||
|
||||
my @tests_pss = (
|
||||
{
|
||||
name => "RSA-PSS Certificate CipherString Selection",
|
||||
server => $server_pss,
|
||||
client => {
|
||||
"CipherString" => "aRSA",
|
||||
"MaxProtocol" => "TLSv1.2",
|
||||
},
|
||||
test => {
|
||||
"ExpectedServerCertType" =>, "RSA-PSS",
|
||||
"ExpectedServerSignType" =>, "RSA-PSS",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "RSA-PSS Certificate Legacy Signature Algorithm Selection",
|
||||
server => $server_pss,
|
||||
@@ -457,18 +572,6 @@ our @tests = (
|
||||
"ExpectedResult" => "ServerFail"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "RSA key exchange with all RSA certificate types",
|
||||
server => $server_rsa_all,
|
||||
client => {
|
||||
"CipherString" => "kRSA",
|
||||
"MaxProtocol" => "TLSv1.2",
|
||||
},
|
||||
test => {
|
||||
"ExpectedServerCertType" =>, "RSA",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "RSA key exchange with only RSA-PSS certificate",
|
||||
server => $server_pss_only,
|
||||
@@ -480,80 +583,6 @@ our @tests = (
|
||||
"ExpectedResult" => "ServerFail"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "Suite B P-256 Hash Algorithm Selection",
|
||||
server => {
|
||||
"ECDSA.Certificate" => test_pem("p256-server-cert.pem"),
|
||||
"ECDSA.PrivateKey" => test_pem("p256-server-key.pem"),
|
||||
"MaxProtocol" => "TLSv1.2",
|
||||
"CipherString" => "SUITEB128"
|
||||
},
|
||||
client => {
|
||||
"VerifyCAFile" => test_pem("p384-root.pem"),
|
||||
"SignatureAlgorithms" => "ECDSA+SHA384:ECDSA+SHA256"
|
||||
},
|
||||
test => {
|
||||
"ExpectedServerCertType" => "P-256",
|
||||
"ExpectedServerSignHash" => "SHA256",
|
||||
"ExpectedServerSignType" => "EC",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "Suite B P-384 Hash Algorithm Selection",
|
||||
server => {
|
||||
"ECDSA.Certificate" => test_pem("p384-server-cert.pem"),
|
||||
"ECDSA.PrivateKey" => test_pem("p384-server-key.pem"),
|
||||
"MaxProtocol" => "TLSv1.2",
|
||||
"CipherString" => "SUITEB128"
|
||||
},
|
||||
client => {
|
||||
"VerifyCAFile" => test_pem("p384-root.pem"),
|
||||
"SignatureAlgorithms" => "ECDSA+SHA256:ECDSA+SHA384"
|
||||
},
|
||||
test => {
|
||||
"ExpectedServerCertType" => "P-384",
|
||||
"ExpectedServerSignHash" => "SHA384",
|
||||
"ExpectedServerSignType" => "EC",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "TLS 1.2 Ed25519 Client Auth",
|
||||
server => {
|
||||
"VerifyCAFile" => test_pem("root-cert.pem"),
|
||||
"VerifyMode" => "Require"
|
||||
},
|
||||
client => {
|
||||
"Ed25519.Certificate" => test_pem("client-ed25519-cert.pem"),
|
||||
"Ed25519.PrivateKey" => test_pem("client-ed25519-key.pem"),
|
||||
"MinProtocol" => "TLSv1.2",
|
||||
"MaxProtocol" => "TLSv1.2"
|
||||
},
|
||||
test => {
|
||||
"ExpectedClientCertType" => "Ed25519",
|
||||
"ExpectedClientSignType" => "Ed25519",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "TLS 1.2 Ed448 Client Auth",
|
||||
server => {
|
||||
"VerifyCAFile" => test_pem("root-cert.pem"),
|
||||
"VerifyMode" => "Require"
|
||||
},
|
||||
client => {
|
||||
"Ed448.Certificate" => test_pem("client-ed448-cert.pem"),
|
||||
"Ed448.PrivateKey" => test_pem("client-ed448-key.pem"),
|
||||
"MinProtocol" => "TLSv1.2",
|
||||
"MaxProtocol" => "TLSv1.2"
|
||||
},
|
||||
test => {
|
||||
"ExpectedClientCertType" => "Ed448",
|
||||
"ExpectedClientSignType" => "Ed448",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
);
|
||||
|
||||
my @tests_tls_1_1 = (
|
||||
@@ -569,31 +598,34 @@ my @tests_tls_1_1 = (
|
||||
},
|
||||
);
|
||||
|
||||
push @tests, @tests_tls_1_1 unless disabled("tls1_1");
|
||||
push @tests, @tests_non_fips unless $fips_mode;
|
||||
|
||||
my $server_tls_1_3 = {
|
||||
"ECDSA.Certificate" => test_pem("server-ecdsa-cert.pem"),
|
||||
"ECDSA.PrivateKey" => test_pem("server-ecdsa-key.pem"),
|
||||
"Ed25519.Certificate" => test_pem("server-ed25519-cert.pem"),
|
||||
"Ed25519.PrivateKey" => test_pem("server-ed25519-key.pem"),
|
||||
"Ed448.Certificate" => test_pem("server-ed448-cert.pem"),
|
||||
"Ed448.PrivateKey" => test_pem("server-ed448-key.pem"),
|
||||
"MinProtocol" => "TLSv1.3",
|
||||
"MaxProtocol" => "TLSv1.3"
|
||||
};
|
||||
#TODO(3.0): Re-enable these PSS tests in a $no_deflt_libctx build once we have
|
||||
# support for it
|
||||
push @tests, @tests_pss unless $no_deflt_libctx;
|
||||
push @tests, @tests_tls_1_1 unless disabled("tls1_1") || $no_deflt_libctx;
|
||||
|
||||
my $server_tls_1_3_pss = {
|
||||
"PSS.Certificate" => test_pem("server-pss-cert.pem"),
|
||||
"PSS.PrivateKey" => test_pem("server-pss-key.pem"),
|
||||
"ECDSA.Certificate" => test_pem("server-ecdsa-cert.pem"),
|
||||
"ECDSA.PrivateKey" => test_pem("server-ecdsa-key.pem"),
|
||||
"Ed25519.Certificate" => test_pem("server-ed25519-cert.pem"),
|
||||
"Ed25519.PrivateKey" => test_pem("server-ed25519-key.pem"),
|
||||
"Ed448.Certificate" => test_pem("server-ed448-cert.pem"),
|
||||
"Ed448.PrivateKey" => test_pem("server-ed449-key.pem"),
|
||||
"MinProtocol" => "TLSv1.3",
|
||||
"MaxProtocol" => "TLSv1.3"
|
||||
};
|
||||
my $server_tls_1_3;
|
||||
|
||||
if ($fips_mode) {
|
||||
$server_tls_1_3 = {
|
||||
"ECDSA.Certificate" => test_pem("server-ecdsa-cert.pem"),
|
||||
"ECDSA.PrivateKey" => test_pem("server-ecdsa-key.pem"),
|
||||
"MinProtocol" => "TLSv1.3",
|
||||
"MaxProtocol" => "TLSv1.3"
|
||||
};
|
||||
} else {
|
||||
$server_tls_1_3 = {
|
||||
"ECDSA.Certificate" => test_pem("server-ecdsa-cert.pem"),
|
||||
"ECDSA.PrivateKey" => test_pem("server-ecdsa-key.pem"),
|
||||
"Ed25519.Certificate" => test_pem("server-ed25519-cert.pem"),
|
||||
"Ed25519.PrivateKey" => test_pem("server-ed25519-key.pem"),
|
||||
"Ed448.Certificate" => test_pem("server-ed448-cert.pem"),
|
||||
"Ed448.PrivateKey" => test_pem("server-ed448-key.pem"),
|
||||
"MinProtocol" => "TLSv1.3",
|
||||
"MaxProtocol" => "TLSv1.3"
|
||||
};
|
||||
}
|
||||
|
||||
my $client_tls_1_3 = {
|
||||
"RSA.Certificate" => test_pem("ee-client-chain.pem"),
|
||||
@@ -712,6 +744,57 @@ my @tests_tls_1_3 = (
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "TLS 1.3 RSA Client Auth Signature Algorithm Selection",
|
||||
server => {
|
||||
"ClientSignatureAlgorithms" => "PSS+SHA256",
|
||||
"VerifyCAFile" => test_pem("root-cert.pem"),
|
||||
"VerifyMode" => "Require"
|
||||
},
|
||||
client => $client_tls_1_3,
|
||||
test => {
|
||||
"ExpectedClientCertType" => "RSA",
|
||||
"ExpectedClientSignHash" => "SHA256",
|
||||
"ExpectedClientSignType" => "RSA-PSS",
|
||||
"ExpectedClientCANames" => "empty",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names",
|
||||
server => {
|
||||
"ClientSignatureAlgorithms" => "PSS+SHA256",
|
||||
"VerifyCAFile" => test_pem("root-cert.pem"),
|
||||
"RequestCAFile" => test_pem("root-cert.pem"),
|
||||
"VerifyMode" => "Require"
|
||||
},
|
||||
client => $client_tls_1_3,
|
||||
test => {
|
||||
"ExpectedClientCertType" => "RSA",
|
||||
"ExpectedClientSignHash" => "SHA256",
|
||||
"ExpectedClientSignType" => "RSA-PSS",
|
||||
"ExpectedClientCANames" => test_pem("root-cert.pem"),
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "TLS 1.3 ECDSA Client Auth Signature Algorithm Selection",
|
||||
server => {
|
||||
"ClientSignatureAlgorithms" => "ECDSA+SHA256",
|
||||
"VerifyCAFile" => test_pem("root-cert.pem"),
|
||||
"VerifyMode" => "Require"
|
||||
},
|
||||
client => $client_tls_1_3,
|
||||
test => {
|
||||
"ExpectedClientCertType" => "P-256",
|
||||
"ExpectedClientSignHash" => "SHA256",
|
||||
"ExpectedClientSignType" => "EC",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
);
|
||||
|
||||
my @tests_tls_1_3_non_fips = (
|
||||
{
|
||||
name => "TLS 1.3 Ed25519 Signature Algorithm Selection",
|
||||
server => $server_tls_1_3,
|
||||
@@ -769,54 +852,6 @@ my @tests_tls_1_3 = (
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "TLS 1.3 RSA Client Auth Signature Algorithm Selection",
|
||||
server => {
|
||||
"ClientSignatureAlgorithms" => "PSS+SHA256",
|
||||
"VerifyCAFile" => test_pem("root-cert.pem"),
|
||||
"VerifyMode" => "Require"
|
||||
},
|
||||
client => $client_tls_1_3,
|
||||
test => {
|
||||
"ExpectedClientCertType" => "RSA",
|
||||
"ExpectedClientSignHash" => "SHA256",
|
||||
"ExpectedClientSignType" => "RSA-PSS",
|
||||
"ExpectedClientCANames" => "empty",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names",
|
||||
server => {
|
||||
"ClientSignatureAlgorithms" => "PSS+SHA256",
|
||||
"VerifyCAFile" => test_pem("root-cert.pem"),
|
||||
"RequestCAFile" => test_pem("root-cert.pem"),
|
||||
"VerifyMode" => "Require"
|
||||
},
|
||||
client => $client_tls_1_3,
|
||||
test => {
|
||||
"ExpectedClientCertType" => "RSA",
|
||||
"ExpectedClientSignHash" => "SHA256",
|
||||
"ExpectedClientSignType" => "RSA-PSS",
|
||||
"ExpectedClientCANames" => test_pem("root-cert.pem"),
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "TLS 1.3 ECDSA Client Auth Signature Algorithm Selection",
|
||||
server => {
|
||||
"ClientSignatureAlgorithms" => "ECDSA+SHA256",
|
||||
"VerifyCAFile" => test_pem("root-cert.pem"),
|
||||
"VerifyMode" => "Require"
|
||||
},
|
||||
client => $client_tls_1_3,
|
||||
test => {
|
||||
"ExpectedClientCertType" => "P-256",
|
||||
"ExpectedClientSignHash" => "SHA256",
|
||||
"ExpectedClientSignType" => "EC",
|
||||
"ExpectedResult" => "Success"
|
||||
},
|
||||
},
|
||||
{
|
||||
name => "TLS 1.3 Ed25519 Client Auth",
|
||||
server => {
|
||||
@@ -873,6 +908,7 @@ my @tests_tls_1_3 = (
|
||||
);
|
||||
|
||||
push @tests, @tests_tls_1_3 unless disabled("tls1_3");
|
||||
push @tests, @tests_tls_1_3_non_fips unless disabled("tls1_3") || $fips_mode;
|
||||
|
||||
my @tests_dsa_tls_1_2 = (
|
||||
{
|
||||
@@ -928,6 +964,7 @@ my @tests_dsa_tls_1_3 = (
|
||||
);
|
||||
|
||||
if (!disabled("dsa")) {
|
||||
push @tests, @tests_dsa_tls_1_2 unless disabled("dh");
|
||||
#TODO(3.0): Temporary workaround for DH issues in FIPS. Needs investigation
|
||||
push @tests, @tests_dsa_tls_1_2 unless disabled("dh") || $fips_mode;
|
||||
push @tests, @tests_dsa_tls_1_3 unless disabled("tls1_3");
|
||||
}
|
||||
Reference in New Issue
Block a user