Artifact
0dd6643de1d11b51b468c80beae94b8b89f688e29b9491180bed068d65147e18:
0000: 23 20 41 75 74 6f 20 67 65 6e 65 72 61 74 65 64 # Auto generated
0010: 20 74 65 73 74 20 63 61 73 65 73 20 66 6f 72 20 test cases for
0020: 73 73 6c 6c 61 62 73 2e 63 73 76 0a 0a 23 20 4c ssllabs.csv..# L
0030: 6f 61 64 20 54 63 6c 20 54 65 73 74 20 70 61 63 oad Tcl Test pac
0040: 6b 61 67 65 0a 69 66 20 7b 5b 6c 73 65 61 72 63 kage.if {[lsearc
0050: 68 20 5b 6e 61 6d 65 73 70 61 63 65 20 63 68 69 h [namespace chi
0060: 6c 64 72 65 6e 5d 20 3a 3a 74 63 6c 74 65 73 74 ldren] ::tcltest
0070: 5d 20 3c 20 30 7d 20 7b 0a 09 70 61 63 6b 61 67 ] < 0} {..packag
0080: 65 20 72 65 71 75 69 72 65 20 74 63 6c 74 65 73 e require tcltes
0090: 74 0a 09 6e 61 6d 65 73 70 61 63 65 20 69 6d 70 t..namespace imp
00a0: 6f 72 74 20 3a 3a 74 63 6c 74 65 73 74 3a 3a 2a ort ::tcltest::*
00b0: 0a 7d 0a 0a 73 65 74 20 3a 3a 61 75 74 6f 5f 70 .}..set ::auto_p
00c0: 61 74 68 20 5b 63 6f 6e 63 61 74 20 5b 6c 69 73 ath [concat [lis
00d0: 74 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 t [file dirname
00e0: 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 5b 69 [file dirname [i
00f0: 6e 66 6f 20 73 63 72 69 70 74 5d 5d 5d 5d 20 24 nfo script]]]] $
0100: 3a 3a 61 75 74 6f 5f 70 61 74 68 5d 0a 0a 70 61 ::auto_path]..pa
0110: 63 6b 61 67 65 20 70 72 65 66 65 72 20 6c 61 74 ckage prefer lat
0120: 65 73 74 0a 70 61 63 6b 61 67 65 20 72 65 71 75 est.package requ
0130: 69 72 65 20 74 6c 73 0a 0a 23 20 43 6f 6e 73 74 ire tls..# Const
0140: 72 61 69 6e 74 73 0a 73 6f 75 72 63 65 20 5b 66 raints.source [f
0150: 69 6c 65 20 6a 6f 69 6e 20 5b 66 69 6c 65 20 64 ile join [file d
0160: 69 72 6e 61 6d 65 20 5b 69 6e 66 6f 20 73 63 72 irname [info scr
0170: 69 70 74 5d 5d 20 63 6f 6d 6d 6f 6e 2e 74 63 6c ipt]] common.tcl
0180: 5d 0a 0a 23 20 48 65 6c 70 65 72 20 66 75 6e 63 ]..# Helper func
0190: 74 69 6f 6e 73 0a 70 72 6f 63 20 63 6f 6e 6e 65 tions.proc conne
01a0: 63 74 20 7b 75 72 6c 7d 20 7b 0a 20 20 20 20 73 ct {url} {. s
01b0: 65 74 20 70 6f 72 74 20 34 34 33 0a 20 20 20 20 et port 443.
01c0: 6c 61 73 73 69 67 6e 20 5b 73 70 6c 69 74 20 24 lassign [split $
01d0: 75 72 6c 20 22 3a 22 5d 20 75 72 6c 20 70 6f 72 url ":"] url por
01e0: 74 0a 20 20 20 20 69 66 20 7b 24 70 6f 72 74 20 t. if {$port
01f0: 65 71 20 22 22 7d 20 7b 0a 20 73 65 74 20 70 6f eq ""} {. set po
0200: 72 74 20 34 34 33 0a 20 20 20 20 7d 0a 20 20 20 rt 443. }.
0210: 20 73 65 74 20 63 6d 64 20 5b 6c 69 73 74 20 74 set cmd [list t
0220: 6c 73 3a 3a 73 6f 63 6b 65 74 20 2d 61 75 74 6f ls::socket -auto
0230: 73 65 72 76 65 72 6e 61 6d 65 20 31 20 2d 72 65 servername 1 -re
0240: 71 75 69 72 65 20 31 5d 0a 20 20 20 20 69 66 20 quire 1]. if
0250: 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 3a 3a {[info exists ::
0260: 65 6e 76 28 53 53 4c 5f 43 45 52 54 5f 46 49 4c env(SSL_CERT_FIL
0270: 45 29 5d 7d 20 7b 0a 20 6c 61 70 70 65 6e 64 20 E)]} {. lappend
0280: 63 6d 64 20 2d 63 61 66 69 6c 65 20 24 3a 3a 65 cmd -cafile $::e
0290: 6e 76 28 53 53 4c 5f 43 45 52 54 5f 46 49 4c 45 nv(SSL_CERT_FILE
02a0: 29 0a 20 20 20 20 7d 0a 20 20 20 20 6c 61 70 70 ). }. lapp
02b0: 65 6e 64 20 63 6d 64 20 24 75 72 6c 20 24 70 6f end cmd $url $po
02c0: 72 74 0a 20 20 20 20 73 65 74 20 63 68 20 5b 65 rt. set ch [e
02d0: 76 61 6c 20 24 63 6d 64 5d 0a 20 20 20 20 69 66 val $cmd]. if
02e0: 20 7b 5b 63 61 74 63 68 20 7b 74 6c 73 3a 3a 68 {[catch {tls::h
02f0: 61 6e 64 73 68 61 6b 65 20 24 63 68 7d 20 65 72 andshake $ch} er
0300: 72 5d 7d 20 7b 0a 20 63 6c 6f 73 65 20 24 63 68 r]} {. close $ch
0310: 0a 20 72 65 74 75 72 6e 20 2d 63 6f 64 65 20 65 . return -code e
0320: 72 72 6f 72 20 24 65 72 72 0a 20 20 20 20 7d 20 rror $err. }
0330: 65 6c 73 65 20 7b 0a 20 63 6c 6f 73 65 20 24 63 else {. close $c
0340: 68 0a 20 20 20 20 7d 0a 7d 0a 0a 0a 23 20 63 6c h. }.}...# cl
0350: 69 65 6e 74 74 65 73 74 2e 73 73 6c 6c 61 62 73 ienttest.ssllabs
0360: 2e 63 6f 6d 20 54 65 73 74 73 0a 0a 0a 74 65 73 .com Tests...tes
0370: 74 20 53 53 4c 4c 61 62 73 2d 31 2e 31 20 7b 43 t SSLLabs-1.1 {C
0380: 56 45 5f 32 30 32 30 5f 30 36 30 31 20 28 43 75 VE_2020_0601 (Cu
0390: 72 76 65 42 61 6c 6c 29 20 56 75 6c 6e 65 72 61 rveBall) Vulnera
03a0: 62 69 6c 69 74 79 7d 20 2d 63 6f 6e 73 74 72 61 bility} -constra
03b0: 69 6e 74 73 20 7b 77 69 6e 20 4f 70 65 6e 53 53 ints {win OpenSS
03c0: 4c 31 2e 31 2e 31 7d 20 2d 62 6f 64 79 20 7b 0a L1.1.1} -body {.
03d0: 09 63 6f 6e 6e 65 63 74 20 77 77 77 2e 73 73 6c .connect www.ssl
03e0: 6c 61 62 73 2e 63 6f 6d 3a 31 30 34 34 36 0a 20 labs.com:10446.
03f0: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 68 61 } -result {ha
0400: 6e 64 73 68 61 6b 65 20 66 61 69 6c 65 64 3a 20 ndshake failed:
0410: 63 65 72 74 69 66 69 63 61 74 65 20 76 65 72 69 certificate veri
0420: 66 79 20 66 61 69 6c 65 64 20 64 75 65 20 74 6f fy failed due to
0430: 20 22 73 65 6c 66 20 73 69 67 6e 65 64 20 63 65 "self signed ce
0440: 72 74 69 66 69 63 61 74 65 20 69 6e 20 63 65 72 rtificate in cer
0450: 74 69 66 69 63 61 74 65 20 63 68 61 69 6e 22 7d tificate chain"}
0460: 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 -returnCodes {1
0470: 7d 0a 0a 74 65 73 74 20 53 53 4c 4c 61 62 73 2d }..test SSLLabs-
0480: 31 2e 32 20 7b 43 56 45 5f 32 30 32 30 5f 30 36 1.2 {CVE_2020_06
0490: 30 31 20 28 43 75 72 76 65 42 61 6c 6c 29 20 56 01 (CurveBall) V
04a0: 75 6c 6e 65 72 61 62 69 6c 69 74 79 7d 20 2d 63 ulnerability} -c
04b0: 6f 6e 73 74 72 61 69 6e 74 73 20 7b 77 69 6e 20 onstraints {win
04c0: 21 4f 70 65 6e 53 53 4c 31 2e 31 2e 31 7d 20 2d !OpenSSL1.1.1} -
04d0: 62 6f 64 79 20 7b 0a 09 63 6f 6e 6e 65 63 74 20 body {..connect
04e0: 77 77 77 2e 73 73 6c 6c 61 62 73 2e 63 6f 6d 3a www.ssllabs.com:
04f0: 31 30 34 34 36 0a 20 20 20 20 7d 20 2d 72 65 73 10446. } -res
0500: 75 6c 74 20 7b 68 61 6e 64 73 68 61 6b 65 20 66 ult {handshake f
0510: 61 69 6c 65 64 3a 20 63 65 72 74 69 66 69 63 61 ailed: certifica
0520: 74 65 20 76 65 72 69 66 79 20 66 61 69 6c 65 64 te verify failed
0530: 20 64 75 65 20 74 6f 20 22 73 65 6c 66 2d 73 69 due to "self-si
0540: 67 6e 65 64 20 63 65 72 74 69 66 69 63 61 74 65 gned certificate
0550: 20 69 6e 20 63 65 72 74 69 66 69 63 61 74 65 20 in certificate
0560: 63 68 61 69 6e 22 7d 20 2d 72 65 74 75 72 6e 43 chain"} -returnC
0570: 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 74 20 53 odes {1}..test S
0580: 53 4c 4c 61 62 73 2d 31 2e 33 20 7b 43 56 45 5f SLLabs-1.3 {CVE_
0590: 32 30 32 30 5f 30 36 30 31 20 28 43 75 72 76 65 2020_0601 (Curve
05a0: 42 61 6c 6c 29 20 56 75 6c 6e 65 72 61 62 69 6c Ball) Vulnerabil
05b0: 69 74 79 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 ity} -constraint
05c0: 73 20 7b 6d 61 63 7d 20 2d 62 6f 64 79 20 7b 0a s {mac} -body {.
05d0: 09 63 6f 6e 6e 65 63 74 20 77 77 77 2e 73 73 6c .connect www.ssl
05e0: 6c 61 62 73 2e 63 6f 6d 3a 31 30 34 34 36 0a 20 labs.com:10446.
05f0: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 68 61 } -result {ha
0600: 6e 64 73 68 61 6b 65 20 66 61 69 6c 65 64 3a 20 ndshake failed:
0610: 63 65 72 74 69 66 69 63 61 74 65 20 76 65 72 69 certificate veri
0620: 66 79 20 66 61 69 6c 65 64 20 64 75 65 20 74 6f fy failed due to
0630: 20 22 73 65 6c 66 2d 73 69 67 6e 65 64 20 63 65 "self-signed ce
0640: 72 74 69 66 69 63 61 74 65 20 69 6e 20 63 65 72 rtificate in cer
0650: 74 69 66 69 63 61 74 65 20 63 68 61 69 6e 22 7d tificate chain"}
0660: 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 -returnCodes {1
0670: 7d 0a 0a 74 65 73 74 20 53 53 4c 4c 61 62 73 2d }..test SSLLabs-
0680: 31 2e 34 20 7b 43 56 45 5f 32 30 32 30 5f 30 36 1.4 {CVE_2020_06
0690: 30 31 20 28 43 75 72 76 65 42 61 6c 6c 29 20 56 01 (CurveBall) V
06a0: 75 6c 6e 65 72 61 62 69 6c 69 74 79 7d 20 2d 63 ulnerability} -c
06b0: 6f 6e 73 74 72 61 69 6e 74 73 20 7b 75 6e 69 78 onstraints {unix
06c0: 20 21 6d 61 63 7d 20 2d 62 6f 64 79 20 7b 0a 09 !mac} -body {..
06d0: 63 6f 6e 6e 65 63 74 20 77 77 77 2e 73 73 6c 6c connect www.ssll
06e0: 61 62 73 2e 63 6f 6d 3a 31 30 34 34 36 0a 20 20 abs.com:10446.
06f0: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 68 61 6e } -result {han
0700: 64 73 68 61 6b 65 20 66 61 69 6c 65 64 3a 20 64 dshake failed: d
0710: 65 63 6f 64 65 20 65 72 72 6f 72 20 64 75 65 20 ecode error due
0720: 74 6f 20 22 75 6e 61 62 6c 65 20 74 6f 20 67 65 to "unable to ge
0730: 74 20 6c 6f 63 61 6c 20 69 73 73 75 65 72 20 63 t local issuer c
0740: 65 72 74 69 66 69 63 61 74 65 22 7d 20 2d 72 65 ertificate"} -re
0750: 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 74 turnCodes {1}..t
0760: 65 73 74 20 53 53 4c 4c 61 62 73 2d 31 2e 35 20 est SSLLabs-1.5
0770: 7b 4c 6f 67 6a 61 6d 20 56 75 6c 6e 65 72 61 62 {Logjam Vulnerab
0780: 69 6c 69 74 79 7d 20 2d 63 6f 6e 73 74 72 61 69 ility} -constrai
0790: 6e 74 73 20 7b 77 69 6e 20 4f 70 65 6e 53 53 4c nts {win OpenSSL
07a0: 33 2e 30 7d 20 2d 62 6f 64 79 20 7b 0a 09 63 6f 3.0} -body {..co
07b0: 6e 6e 65 63 74 20 77 77 77 2e 73 73 6c 6c 61 62 nnect www.ssllab
07c0: 73 2e 63 6f 6d 3a 31 30 34 34 35 0a 20 20 20 20 s.com:10445.
07d0: 7d 20 2d 72 65 73 75 6c 74 20 7b 68 61 6e 64 73 } -result {hands
07e0: 68 61 6b 65 20 66 61 69 6c 65 64 3a 20 63 65 72 hake failed: cer
07f0: 74 69 66 69 63 61 74 65 20 76 65 72 69 66 79 20 tificate verify
0800: 66 61 69 6c 65 64 20 64 75 65 20 74 6f 20 22 75 failed due to "u
0810: 6e 61 62 6c 65 20 74 6f 20 67 65 74 20 6c 6f 63 nable to get loc
0820: 61 6c 20 69 73 73 75 65 72 20 63 65 72 74 69 66 al issuer certif
0830: 69 63 61 74 65 22 7d 20 2d 72 65 74 75 72 6e 43 icate"} -returnC
0840: 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 74 20 53 odes {1}..test S
0850: 53 4c 4c 61 62 73 2d 31 2e 36 20 7b 4c 6f 67 6a SLLabs-1.6 {Logj
0860: 61 6d 20 56 75 6c 6e 65 72 61 62 69 6c 69 74 79 am Vulnerability
0870: 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 7b } -constraints {
0880: 75 6e 69 78 20 4f 70 65 6e 53 53 4c 33 2e 30 7d unix OpenSSL3.0}
0890: 20 2d 62 6f 64 79 20 7b 0a 09 63 6f 6e 6e 65 63 -body {..connec
08a0: 74 20 77 77 77 2e 73 73 6c 6c 61 62 73 2e 63 6f t www.ssllabs.co
08b0: 6d 3a 31 30 34 34 35 0a 20 20 20 20 7d 20 2d 72 m:10445. } -r
08c0: 65 73 75 6c 74 20 7b 68 61 6e 64 73 68 61 6b 65 esult {handshake
08d0: 20 66 61 69 6c 65 64 3a 20 64 68 20 6b 65 79 20 failed: dh key
08e0: 74 6f 6f 20 73 6d 61 6c 6c 7d 20 2d 72 65 74 75 too small} -retu
08f0: 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 rnCodes {1}..tes
0900: 74 20 53 53 4c 4c 61 62 73 2d 31 2e 37 20 7b 4c t SSLLabs-1.7 {L
0910: 6f 67 6a 61 6d 20 56 75 6c 6e 65 72 61 62 69 6c ogjam Vulnerabil
0920: 69 74 79 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 ity} -constraint
0930: 73 20 7b 77 69 6e 20 4f 70 65 6e 53 53 4c 33 2e s {win OpenSSL3.
0940: 32 7d 20 2d 62 6f 64 79 20 7b 0a 09 63 6f 6e 6e 2} -body {..conn
0950: 65 63 74 20 77 77 77 2e 73 73 6c 6c 61 62 73 2e ect www.ssllabs.
0960: 63 6f 6d 3a 31 30 34 34 35 0a 20 20 20 20 7d 20 com:10445. }
0970: 2d 72 65 73 75 6c 74 20 7b 68 61 6e 64 73 68 61 -result {handsha
0980: 6b 65 20 66 61 69 6c 65 64 3a 20 75 6e 6b 6e 6f ke failed: unkno
0990: 77 6e 20 73 65 63 75 72 69 74 79 20 62 69 74 73 wn security bits
09a0: 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b } -returnCodes {
09b0: 31 7d 0a 0a 74 65 73 74 20 53 53 4c 4c 61 62 73 1}..test SSLLabs
09c0: 2d 31 2e 38 20 7b 4c 6f 67 6a 61 6d 20 56 75 6c -1.8 {Logjam Vul
09d0: 6e 65 72 61 62 69 6c 69 74 79 7d 20 2d 63 6f 6e nerability} -con
09e0: 73 74 72 61 69 6e 74 73 20 7b 75 6e 69 78 20 21 straints {unix !
09f0: 6d 61 63 20 4f 70 65 6e 53 53 4c 33 2e 32 7d 20 mac OpenSSL3.2}
0a00: 2d 62 6f 64 79 20 7b 0a 09 63 6f 6e 6e 65 63 74 -body {..connect
0a10: 20 77 77 77 2e 73 73 6c 6c 61 62 73 2e 63 6f 6d www.ssllabs.com
0a20: 3a 31 30 34 34 35 0a 20 20 20 20 7d 20 2d 72 65 :10445. } -re
0a30: 73 75 6c 74 20 7b 68 61 6e 64 73 68 61 6b 65 20 sult {handshake
0a40: 66 61 69 6c 65 64 3a 20 75 6e 6b 6e 6f 77 6e 20 failed: unknown
0a50: 73 65 63 75 72 69 74 79 20 62 69 74 73 7d 20 2d security bits} -
0a60: 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a returnCodes {1}.
0a70: 0a 74 65 73 74 20 53 53 4c 4c 61 62 73 2d 31 2e .test SSLLabs-1.
0a80: 39 20 7b 4c 6f 67 6a 61 6d 20 56 75 6c 6e 65 72 9 {Logjam Vulner
0a90: 61 62 69 6c 69 74 79 7d 20 2d 63 6f 6e 73 74 72 ability} -constr
0aa0: 61 69 6e 74 73 20 7b 6d 61 63 20 4f 70 65 6e 53 aints {mac OpenS
0ab0: 53 4c 33 2e 32 7d 20 2d 62 6f 64 79 20 7b 0a 09 SL3.2} -body {..
0ac0: 63 6f 6e 6e 65 63 74 20 77 77 77 2e 73 73 6c 6c connect www.ssll
0ad0: 61 62 73 2e 63 6f 6d 3a 31 30 34 34 35 0a 20 20 abs.com:10445.
0ae0: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 68 61 6e } -result {han
0af0: 64 73 68 61 6b 65 20 66 61 69 6c 65 64 3a 20 63 dshake failed: c
0b00: 65 72 74 69 66 69 63 61 74 65 20 76 65 72 69 66 ertificate verif
0b10: 79 20 66 61 69 6c 65 64 20 64 75 65 20 74 6f 20 y failed due to
0b20: 22 75 6e 61 62 6c 65 20 74 6f 20 67 65 74 20 6c "unable to get l
0b30: 6f 63 61 6c 20 69 73 73 75 65 72 20 63 65 72 74 ocal issuer cert
0b40: 69 66 69 63 61 74 65 22 7d 20 2d 72 65 74 75 72 ificate"} -retur
0b50: 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 74 nCodes {1}..test
0b60: 20 53 53 4c 4c 61 62 73 2d 31 2e 31 30 20 7b 46 SSLLabs-1.10 {F
0b70: 52 45 41 4b 20 56 75 6c 6e 65 72 61 62 69 6c 69 REAK Vulnerabili
0b80: 74 79 7d 20 2d 62 6f 64 79 20 7b 0a 09 63 6f 6e ty} -body {..con
0b90: 6e 65 63 74 20 77 77 77 2e 73 73 6c 6c 61 62 73 nect www.ssllabs
0ba0: 2e 63 6f 6d 3a 31 30 34 34 34 0a 20 20 20 20 7d .com:10444. }
0bb0: 20 2d 72 65 73 75 6c 74 20 7b 68 61 6e 64 73 68 -result {handsh
0bc0: 61 6b 65 20 66 61 69 6c 65 64 3a 20 75 6e 73 75 ake failed: unsu
0bd0: 70 70 6f 72 74 65 64 20 70 72 6f 74 6f 63 6f 6c pported protocol
0be0: 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b } -returnCodes {
0bf0: 31 7d 0a 0a 74 65 73 74 20 53 53 4c 4c 61 62 73 1}..test SSLLabs
0c00: 2d 31 2e 31 31 20 7b 50 4f 4f 44 4c 45 20 56 75 -1.11 {POODLE Vu
0c10: 6c 6e 65 72 61 62 69 6c 69 74 79 7d 20 2d 62 6f lnerability} -bo
0c20: 64 79 20 7b 0a 09 63 6f 6e 6e 65 63 74 20 77 77 dy {..connect ww
0c30: 77 2e 73 73 6c 6c 61 62 73 2e 63 6f 6d 3a 31 30 w.ssllabs.com:10
0c40: 34 34 33 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 443. } -resul
0c50: 74 20 7b 68 61 6e 64 73 68 61 6b 65 20 66 61 69 t {handshake fai
0c60: 6c 65 64 3a 20 75 6e 73 75 70 70 6f 72 74 65 64 led: unsupported
0c70: 20 70 72 6f 74 6f 63 6f 6c 7d 20 2d 72 65 74 75 protocol} -retu
0c80: 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 23 20 43 rnCodes {1}..# C
0c90: 6c 65 61 6e 75 70 0a 3a 3a 74 63 6c 74 65 73 74 leanup.::tcltest
0ca0: 3a 3a 63 6c 65 61 6e 75 70 54 65 73 74 73 0a 72 ::cleanupTests.r
0cb0: 65 74 75 72 6e 0a eturn.