The build against Tcl9.0 went fine.

See appended the results of "make test".

System specs:
OpenSuSE 15.4
OpenSSL 3.0.7 1 Nov 2022 (Library: OpenSSL 3.0.7 1 Nov 2022)

--
TCL_LIBRARY=`echo `echo \
    -load "package ifneeded tls 2.0b2 \
	[list load libtcl9tls2.0b2.so [string totitle tls]]; \
	source
Tests running in interp:
Tests located in:
Tests running in:
Temporary files stored in
Test files run in separate interpreters
Running tests that match:  *
Skipping test files that match:  l.*.test
Only running test files that match:  *.test
Tests began at Mon Oct 13 22:36:00 CEST 2025
badssl.test


==== BadSSL-1.1 1000 sans FAILED
==== Contents of test case:

	badssl

---- Result was:
handshake failed: certificate verify failed due to "unable to get local issuer certificate"
---- Result should have been (exact matching):
handshake failed: certificate verify failed due to "certificate has expired"
==== BadSSL-1.1 FAILED


==== BadSSL-1.5 captive portal FAILED
==== Contents of test case:

	badssl

---- Result was:
handshake failed: certificate verify failed due to "unable to get local issuer certificate"
---- Result should have been (exact matching):
handshake failed: certificate verify failed due to "hostname mismatch"
==== BadSSL-1.5 FAILED


==== BadSSL-1.6 cbc FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.6 FAILED


==== BadSSL-1.7 client cert missing FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.7 FAILED


==== BadSSL-1.8 client FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.8 FAILED


==== BadSSL-1.10 dh composite FAILED
==== Contents of test case:

	badssl

---- Result was:
handshake failed: certificate verify failed due to "unable to get local issuer certificate"
---- Result should have been (exact matching):
handshake failed: dh key too small
==== BadSSL-1.10 FAILED


==== BadSSL-1.11 dh small subgroup FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.11 FAILED


==== BadSSL-1.13 dh480 FAILED
==== Contents of test case:

	badssl

---- Result was:
handshake failed: certificate verify failed due to "unable to get local issuer certificate"
---- Result should have been (exact matching):
handshake failed: modulus too small
==== BadSSL-1.13 FAILED


==== BadSSL-1.17 dh1024 FAILED
==== Contents of test case:

	badssl

---- Result was:
handshake failed: certificate verify failed due to "unable to get local issuer certificate"
---- Result should have been (exact matching):
handshake failed: dh key too small
==== BadSSL-1.17 FAILED


==== BadSSL-1.18 dh2048 FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.18 FAILED


==== BadSSL-1.20 ecc256 FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.20 FAILED


==== BadSSL-1.21 ecc384 FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.21 FAILED


==== BadSSL-1.23 expired FAILED
==== Contents of test case:

	badssl

---- Result was:
handshake failed: certificate verify failed due to "unable to get local issuer certificate"
---- Result should have been (exact matching):
handshake failed: certificate verify failed due to "certificate has expired"
==== BadSSL-1.23 FAILED


==== BadSSL-1.24 extended validation FAILED
==== Contents of test case:

	badssl

---- Result was:
handshake failed: certificate verify failed due to "unable to get local issuer certificate"
---- Result should have been (exact matching):
handshake failed: certificate verify failed due to "certificate has expired"
==== BadSSL-1.24 FAILED


==== BadSSL-1.25 hsts FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.25 FAILED


==== BadSSL-1.26 https everywhere FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.26 FAILED


==== BadSSL-1.29 long extended subdomain name containing many letters and dashes FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.29 FAILED


==== BadSSL-1.30 longextendedsubdomainnamewithoutdashesinordertotestwordwrapping FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.30 FAILED


==== BadSSL-1.32 no common name FAILED
==== Contents of test case:

	badssl

---- Result was:
handshake failed: certificate verify failed due to "unable to get local issuer certificate"
---- Result should have been (exact matching):
handshake failed: certificate verify failed due to "certificate has expired"
==== BadSSL-1.32 FAILED


==== BadSSL-1.33 no sct FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.33 FAILED


==== BadSSL-1.34 no subject FAILED
==== Contents of test case:

	badssl

---- Result was:
handshake failed: certificate verify failed due to "unable to get local issuer certificate"
---- Result should have been (exact matching):
handshake failed: certificate verify failed due to "certificate has expired"
==== BadSSL-1.34 FAILED


==== BadSSL-1.36 pinning test FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.36 FAILED


==== BadSSL-1.38 preloaded hsts FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.38 FAILED


==== BadSSL-1.41 revoked FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.41 FAILED


==== BadSSL-1.42 rsa2048 FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.42 FAILED


==== BadSSL-1.43 rsa4096 FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.43 FAILED


==== BadSSL-1.44 rsa8192 FAILED
==== Contents of test case:

	badssl

---- Result was:
handshake failed: certificate verify failed due to "unable to get local issuer certificate"
---- Result should have been (exact matching):
handshake failed: certificate verify failed due to "certificate has expired"
==== BadSSL-1.44 FAILED


==== BadSSL-1.49 sha1 2017 FAILED
==== Contents of test case:

	badssl

---- Result was:
handshake failed: certificate verify failed due to "unable to get local issuer certificate"
---- Result should have been (exact matching):
handshake failed: certificate verify failed due to "CA signature digest algorithm too weak"
==== BadSSL-1.49 FAILED


==== BadSSL-1.51 sha256 FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.51 FAILED


==== BadSSL-1.52 sha384 FAILED
==== Contents of test case:

	badssl

---- Result was:
handshake failed: certificate verify failed due to "unable to get local issuer certificate"
---- Result should have been (exact matching):
handshake failed: certificate verify failed due to "certificate has expired"
==== BadSSL-1.52 FAILED


==== BadSSL-1.53 sha512 FAILED
==== Contents of test case:

	badssl

---- Result was:
handshake failed: certificate verify failed due to "unable to get local issuer certificate"
---- Result should have been (exact matching):
handshake failed: certificate verify failed due to "certificate has expired"
==== BadSSL-1.53 FAILED


==== BadSSL-1.54 static rsa FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.54 FAILED


==== BadSSL-1.56 subdomain.preloaded hsts FAILED
==== Contents of test case:

	badssl

---- Result was:
handshake failed: certificate verify failed due to "unable to get local issuer certificate"
---- Result should have been (exact matching):
handshake failed: certificate verify failed due to "hostname mismatch"
==== BadSSL-1.56 FAILED


==== BadSSL-1.62 tls v1 2:1012 FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.62 FAILED


==== BadSSL-1.65 upgrade FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.65 FAILED


==== BadSSL-1.68 wrong.host FAILED
==== Contents of test case:

	badssl

---- Result was:
handshake failed: certificate verify failed due to "unable to get local issuer certificate"
---- Result should have been (exact matching):
handshake failed: certificate verify failed due to "hostname mismatch"
==== BadSSL-1.68 FAILED


==== BadSSL-1.69 mozilla modern FAILED
==== Contents of test case:

	badssl

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: handshake failed: certificate verify failed due to "unable to get local issuer certificate"
    while executing
"badssl
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== BadSSL-1.69 FAILED

ciphers.test
tlsIO.test


==== tlsIO-8.1 testing -async flag on sockets FAILED
==== Contents of test case:

    # NOTE: This test may fail on some Solaris 2.4 systems.
    # See notes in Tcl's socket.test.
    set s [tls::socket -server accept -require 0  -certfile $serverCert -cafile $caCert -keyfile $serverKey 8830]
    proc accept {s a p} {
	global x
	# when doing an in-process client/server test, both sides need
	# to be non-blocking for the TLS handshake.  Also make sure
	# to return the channel to line buffering mode.
	fconfigure $s -blocking 0 -buffering line
	puts $s bye
	# Only OpenSSL 0.9.5a on Windows seems to need the after (delayed)
	# close, but it works just the same for all others. -hobbs
	after 500 close $s
	set x done
    }
    set s1 [tls::socket -require 0  -certfile $clientCert -cafile $caCert -keyfile $clientKey  -async localhost 8830]
    # when doing an in-process client/server test, both sides need
    # to be non-blocking for the TLS handshake  Also make sure to
    # return the channel to line buffering mode (TLS sets it to 'none').
    fconfigure $s1 -blocking 0 -buffering line
    vwait x
    # TLS handshaking needs one byte from the client...
    puts $s1 a
    # need update to complete TLS handshake in-process
    update
    fconfigure $s1 -blocking 1
    set z [gets $s1]
    close $s
    close $s1
    set z

---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: error reading "sock21ea320": software caused connection abort
    while executing
"gets $s1"
    ("uplevel" body line 28)
    invoked from within
"uplevel 1 $script"
---- errorCode: POSIX ECONNABORTED {software caused connection abort}
==== tlsIO-8.1 FAILED


==== tlsIO-9.1 testing spurious (0 byte read) events FAILED
==== Contents of test case:

    set len 0
    set spurious 0
    set done 0
    proc readlittle {s} {
	global spurious done len
	set l [read $s 1]
	if {[string length $l] == 0} {
	    if {![eof $s]} {
		incr spurious
	    } else {
		close $s
		set done 1
	    }
	} else {
	    incr len [string length $l]
	}
    }
    proc accept {s a p} {
	fconfigure $s -blocking 0
	fileevent $s readable [list do_handshake $s readable readlittle  -buffering none]
    }
    set s [tls::socket -server accept -require 0  -certfile $serverCert -cafile $caCert -keyfile $serverKey 8831]
    set c [tls::socket -require 0  -certfile $clientCert -cafile $caCert -keyfile $clientKey  localhost 8831]
    # This differs from socket-9.1 in that both sides need to be
    # non-blocking because of TLS' required handshake
    fconfigure $c -blocking 0
    puts -nonewline $c
    flush $c
    set timer [after 10000 [list set done timed_out]]
    after 1000 [list close $c]
    vwait done
    after cancel $timer
    catch {close $s}
    list $spurious $len

---- Result was:
1 50
---- Result should have been (exact matching):
0 50
==== tlsIO-9.1 FAILED

Test file error: software caused connection abort
    while executing
"close sock213c5d0"
    ("after" script)

Tests ended at Mon Oct 13 22:36:48 CEST 2025
all.tcl:	Total	155	Passed	74	Skipped	42	Failed	39
Sourced 3 Test Files.
Files with failing tests: badssl.test tlsIO.test
Number of tests skipped for each constraint:
	12	doTestsWithRemoteServer
	1	mac
	20	old_api
	3	ssl2
	3	ssl3
	1	testthread
	2	unexplainedFailure

Test files exiting with errors:

  tlsIO.test

-- end of message --