Hack one ssl test case to pass with current LibreSSL.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 9 May 2025 15:53:51 +0000 (11:53 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 9 May 2025 15:53:51 +0000 (11:53 -0400)
With LibreSSL, our test of error logging for cert chain depths > 0
reports the wrong certificate.  This is almost certainly their bug
not ours, so just tweak the test to accept their answer.

No back-patch needed, since this test case wasn't enabled before
e0f373ee4.

Reported-by: Thomas Munro <thomas.munro@gmail.com>
Author: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Discussion: https://postgr.es/m/CA+hUKG+fLqyweHqFSBcErueUVT0vDuSNWui-ySz3+d_APmq7dw@mail.gmail.com

src/test/ssl/t/001_ssltests.pl

index 60b5c3630b0c06d24195706af68ad287ddd067ae..2cb4d0ffd4199507b92779efffbd25b942b6b296 100644 (file)
@@ -900,7 +900,11 @@ $node->connect_fails(
    expected_stderr => qr/SSL error: tlsv1 alert unknown ca/,
    log_like => [
        qr{Client certificate verification failed at depth 1: unable to get local issuer certificate},
-       qr{Failed certificate data \(unverified\): subject "/CN=Test CA for PostgreSQL SSL regression test client certs", serial number \d+, issuer "/CN=Test root CA for PostgreSQL SSL regression test suite"},
+       # As of 5/2025, LibreSSL reports a different cert as being at fault;
+       # it's wrong, but seems to be their bug not ours
+       !$libressl
+       ? qr{Failed certificate data \(unverified\): subject "/CN=Test CA for PostgreSQL SSL regression test client certs", serial number \d+, issuer "/CN=Test root CA for PostgreSQL SSL regression test suite"}
+       : qr{Failed certificate data \(unverified\): subject "/CN=ssltestuser", serial number \d+, issuer "/CN=Test CA for PostgreSQL SSL regression test client certs"},
    ]);
 
 # test server-side CRL directory