Artifact
6a27bcfa89f79d6772c5dfbdb76cabd908055b1e6c7c981636dfe99ff42d6a2b:
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 65 74 20 64 69 72 20 5b raints.set dir [
0150: 66 69 6c 65 20 6a 6f 69 6e 20 5b 70 77 64 5d 20 file join [pwd]
0160: 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 5b 69 [file dirname [i
0170: 6e 66 6f 20 73 63 72 69 70 74 5d 5d 5d 0a 73 6f nfo script]]].so
0180: 75 72 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 urce [file join
0190: 24 64 69 72 20 63 6f 6d 6d 6f 6e 2e 74 63 6c 5d $dir common.tcl]
01a0: 0a 0a 23 20 48 65 6c 70 65 72 20 66 75 6e 63 74 ..# Helper funct
01b0: 69 6f 6e 73 0a 73 65 74 20 3a 3a 63 61 66 69 6c ions.set ::cafil
01c0: 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69 e [file join $di
01d0: 72 20 63 65 72 74 73 20 63 61 63 65 72 74 2e 70 r certs cacert.p
01e0: 65 6d 5d 0a 73 65 74 20 3a 3a 65 6e 76 28 53 53 em].set ::env(SS
01f0: 4c 5f 43 45 52 54 5f 46 49 4c 45 29 20 24 3a 3a L_CERT_FILE) $::
0200: 63 61 66 69 6c 65 0a 70 72 6f 63 20 63 6f 6e 6e cafile.proc conn
0210: 65 63 74 20 7b 75 72 6c 7d 20 7b 0a 20 20 20 20 ect {url} {.
0220: 73 65 74 20 70 6f 72 74 20 34 34 33 0a 20 20 20 set port 443.
0230: 20 6c 61 73 73 69 67 6e 20 5b 73 70 6c 69 74 20 lassign [split
0240: 24 75 72 6c 20 22 3a 22 5d 20 75 72 6c 20 70 6f $url ":"] url po
0250: 72 74 0a 20 20 20 20 69 66 20 7b 24 70 6f 72 74 rt. if {$port
0260: 20 65 71 20 22 22 7d 20 7b 0a 09 73 65 74 20 70 eq ""} {..set p
0270: 6f 72 74 20 34 34 33 0a 20 20 20 20 7d 0a 20 20 ort 443. }.
0280: 20 20 73 65 74 20 63 68 20 5b 74 6c 73 3a 3a 73 set ch [tls::s
0290: 6f 63 6b 65 74 20 2d 61 75 74 6f 73 65 72 76 65 ocket -autoserve
02a0: 72 6e 61 6d 65 20 31 20 2d 72 65 71 75 69 72 65 rname 1 -require
02b0: 20 31 20 2d 63 61 66 69 6c 65 20 24 3a 3a 63 61 1 -cafile $::ca
02c0: 66 69 6c 65 20 24 75 72 6c 20 24 70 6f 72 74 5d file $url $port]
02d0: 0a 20 20 20 20 69 66 20 7b 5b 63 61 74 63 68 20 . if {[catch
02e0: 7b 74 6c 73 3a 3a 68 61 6e 64 73 68 61 6b 65 20 {tls::handshake
02f0: 24 63 68 7d 20 65 72 72 5d 7d 20 7b 0a 09 63 6c $ch} err]} {..cl
0300: 6f 73 65 20 24 63 68 0a 09 72 65 74 75 72 6e 20 ose $ch..return
0310: 2d 63 6f 64 65 20 65 72 72 6f 72 20 24 65 72 72 -code error $err
0320: 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 09 63 . } else {..c
0330: 6c 6f 73 65 20 24 63 68 0a 20 20 20 20 7d 0a 7d lose $ch. }.}
0340: 0a 0a 23 20 63 6c 69 65 6e 74 74 65 73 74 2e 73 ..# clienttest.s
0350: 73 6c 6c 61 62 73 2e 63 6f 6d 20 54 65 73 74 73 sllabs.com Tests
0360: 0a 0a 0a 74 65 73 74 20 53 53 4c 4c 61 62 73 2d ...test SSLLabs-
0370: 31 2e 31 20 7b 43 56 45 5f 32 30 32 30 5f 30 36 1.1 {CVE_2020_06
0380: 30 31 20 28 43 75 72 76 65 42 61 6c 6c 29 20 56 01 (CurveBall) V
0390: 75 6c 6e 65 72 61 62 69 6c 69 74 79 7d 20 2d 63 ulnerability} -c
03a0: 6f 6e 73 74 72 61 69 6e 74 73 20 7b 77 69 6e 20 onstraints {win
03b0: 4f 70 65 6e 53 53 4c 31 2e 31 2e 31 7d 20 2d 62 OpenSSL1.1.1} -b
03c0: 6f 64 79 20 7b 0a 09 63 6f 6e 6e 65 63 74 20 77 ody {..connect w
03d0: 77 77 2e 73 73 6c 6c 61 62 73 2e 63 6f 6d 3a 31 ww.ssllabs.com:1
03e0: 30 34 34 36 0a 20 20 20 20 7d 20 2d 72 65 73 75 0446. } -resu
03f0: 6c 74 20 7b 68 61 6e 64 73 68 61 6b 65 20 66 61 lt {handshake fa
0400: 69 6c 65 64 3a 20 63 65 72 74 69 66 69 63 61 74 iled: certificat
0410: 65 20 76 65 72 69 66 79 20 66 61 69 6c 65 64 20 e verify failed
0420: 64 75 65 20 74 6f 20 22 73 65 6c 66 20 73 69 67 due to "self sig
0430: 6e 65 64 20 63 65 72 74 69 66 69 63 61 74 65 20 ned certificate
0440: 69 6e 20 63 65 72 74 69 66 69 63 61 74 65 20 63 in certificate c
0450: 68 61 69 6e 22 7d 20 2d 72 65 74 75 72 6e 43 6f hain"} -returnCo
0460: 64 65 73 20 7b 31 7d 0a 0a 74 65 73 74 20 53 53 des {1}..test SS
0470: 4c 4c 61 62 73 2d 31 2e 32 20 7b 43 56 45 5f 32 LLabs-1.2 {CVE_2
0480: 30 32 30 5f 30 36 30 31 20 28 43 75 72 76 65 42 020_0601 (CurveB
0490: 61 6c 6c 29 20 56 75 6c 6e 65 72 61 62 69 6c 69 all) Vulnerabili
04a0: 74 79 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 ty} -constraints
04b0: 20 7b 77 69 6e 20 21 4f 70 65 6e 53 53 4c 31 2e {win !OpenSSL1.
04c0: 31 2e 31 7d 20 2d 62 6f 64 79 20 7b 0a 09 63 6f 1.1} -body {..co
04d0: 6e 6e 65 63 74 20 77 77 77 2e 73 73 6c 6c 61 62 nnect www.ssllab
04e0: 73 2e 63 6f 6d 3a 31 30 34 34 36 0a 20 20 20 20 s.com:10446.
04f0: 7d 20 2d 72 65 73 75 6c 74 20 7b 68 61 6e 64 73 } -result {hands
0500: 68 61 6b 65 20 66 61 69 6c 65 64 3a 20 63 65 72 hake failed: cer
0510: 74 69 66 69 63 61 74 65 20 76 65 72 69 66 79 20 tificate verify
0520: 66 61 69 6c 65 64 20 64 75 65 20 74 6f 20 22 73 failed due to "s
0530: 65 6c 66 2d 73 69 67 6e 65 64 20 63 65 72 74 69 elf-signed certi
0540: 66 69 63 61 74 65 20 69 6e 20 63 65 72 74 69 66 ficate in certif
0550: 69 63 61 74 65 20 63 68 61 69 6e 22 7d 20 2d 72 icate chain"} -r
0560: 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a eturnCodes {1}..
0570: 74 65 73 74 20 53 53 4c 4c 61 62 73 2d 31 2e 33 test SSLLabs-1.3
0580: 20 7b 43 56 45 5f 32 30 32 30 5f 30 36 30 31 20 {CVE_2020_0601
0590: 28 43 75 72 76 65 42 61 6c 6c 29 20 56 75 6c 6e (CurveBall) Vuln
05a0: 65 72 61 62 69 6c 69 74 79 7d 20 2d 63 6f 6e 73 erability} -cons
05b0: 74 72 61 69 6e 74 73 20 7b 6d 61 63 7d 20 2d 62 traints {mac} -b
05c0: 6f 64 79 20 7b 0a 09 63 6f 6e 6e 65 63 74 20 77 ody {..connect w
05d0: 77 77 2e 73 73 6c 6c 61 62 73 2e 63 6f 6d 3a 31 ww.ssllabs.com:1
05e0: 30 34 34 36 0a 20 20 20 20 7d 20 2d 72 65 73 75 0446. } -resu
05f0: 6c 74 20 7b 68 61 6e 64 73 68 61 6b 65 20 66 61 lt {handshake fa
0600: 69 6c 65 64 3a 20 63 65 72 74 69 66 69 63 61 74 iled: certificat
0610: 65 20 76 65 72 69 66 79 20 66 61 69 6c 65 64 20 e verify failed
0620: 64 75 65 20 74 6f 20 22 73 65 6c 66 2d 73 69 67 due to "self-sig
0630: 6e 65 64 20 63 65 72 74 69 66 69 63 61 74 65 20 ned certificate
0640: 69 6e 20 63 65 72 74 69 66 69 63 61 74 65 20 63 in certificate c
0650: 68 61 69 6e 22 7d 20 2d 72 65 74 75 72 6e 43 6f hain"} -returnCo
0660: 64 65 73 20 7b 31 7d 0a 0a 74 65 73 74 20 53 53 des {1}..test SS
0670: 4c 4c 61 62 73 2d 31 2e 34 20 7b 43 56 45 5f 32 LLabs-1.4 {CVE_2
0680: 30 32 30 5f 30 36 30 31 20 28 43 75 72 76 65 42 020_0601 (CurveB
0690: 61 6c 6c 29 20 56 75 6c 6e 65 72 61 62 69 6c 69 all) Vulnerabili
06a0: 74 79 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 ty} -constraints
06b0: 20 7b 75 6e 69 78 20 21 6d 61 63 7d 20 2d 62 6f {unix !mac} -bo
06c0: 64 79 20 7b 0a 09 63 6f 6e 6e 65 63 74 20 77 77 dy {..connect ww
06d0: 77 2e 73 73 6c 6c 61 62 73 2e 63 6f 6d 3a 31 30 w.ssllabs.com:10
06e0: 34 34 36 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 446. } -resul
06f0: 74 20 7b 68 61 6e 64 73 68 61 6b 65 20 66 61 69 t {handshake fai
0700: 6c 65 64 3a 20 64 65 63 6f 64 65 20 65 72 72 6f led: decode erro
0710: 72 20 64 75 65 20 74 6f 20 22 75 6e 61 62 6c 65 r due to "unable
0720: 20 74 6f 20 67 65 74 20 6c 6f 63 61 6c 20 69 73 to get local is
0730: 73 75 65 72 20 63 65 72 74 69 66 69 63 61 74 65 suer certificate
0740: 22 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 "} -returnCodes
0750: 7b 31 7d 0a 0a 74 65 73 74 20 53 53 4c 4c 61 62 {1}..test SSLLab
0760: 73 2d 31 2e 35 20 7b 4c 6f 67 6a 61 6d 20 56 75 s-1.5 {Logjam Vu
0770: 6c 6e 65 72 61 62 69 6c 69 74 79 7d 20 2d 63 6f lnerability} -co
0780: 6e 73 74 72 61 69 6e 74 73 20 7b 77 69 6e 20 4f nstraints {win O
0790: 70 65 6e 53 53 4c 33 2e 30 7d 20 2d 62 6f 64 79 penSSL3.0} -body
07a0: 20 7b 0a 09 63 6f 6e 6e 65 63 74 20 77 77 77 2e {..connect www.
07b0: 73 73 6c 6c 61 62 73 2e 63 6f 6d 3a 31 30 34 34 ssllabs.com:1044
07c0: 35 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 5. } -result
07d0: 7b 68 61 6e 64 73 68 61 6b 65 20 66 61 69 6c 65 {handshake faile
07e0: 64 3a 20 63 65 72 74 69 66 69 63 61 74 65 20 76 d: certificate v
07f0: 65 72 69 66 79 20 66 61 69 6c 65 64 20 64 75 65 erify failed due
0800: 20 74 6f 20 22 75 6e 61 62 6c 65 20 74 6f 20 67 to "unable to g
0810: 65 74 20 6c 6f 63 61 6c 20 69 73 73 75 65 72 20 et local issuer
0820: 63 65 72 74 69 66 69 63 61 74 65 22 7d 20 2d 72 certificate"} -r
0830: 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a eturnCodes {1}..
0840: 74 65 73 74 20 53 53 4c 4c 61 62 73 2d 31 2e 36 test SSLLabs-1.6
0850: 20 7b 4c 6f 67 6a 61 6d 20 56 75 6c 6e 65 72 61 {Logjam Vulnera
0860: 62 69 6c 69 74 79 7d 20 2d 63 6f 6e 73 74 72 61 bility} -constra
0870: 69 6e 74 73 20 7b 75 6e 69 78 20 4f 70 65 6e 53 ints {unix OpenS
0880: 53 4c 33 2e 30 7d 20 2d 62 6f 64 79 20 7b 0a 09 SL3.0} -body {..
0890: 63 6f 6e 6e 65 63 74 20 77 77 77 2e 73 73 6c 6c connect www.ssll
08a0: 61 62 73 2e 63 6f 6d 3a 31 30 34 34 35 0a 20 20 abs.com:10445.
08b0: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 68 61 6e } -result {han
08c0: 64 73 68 61 6b 65 20 66 61 69 6c 65 64 3a 20 64 dshake failed: d
08d0: 68 20 6b 65 79 20 74 6f 6f 20 73 6d 61 6c 6c 7d h key too small}
08e0: 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 -returnCodes {1
08f0: 7d 0a 0a 74 65 73 74 20 53 53 4c 4c 61 62 73 2d }..test SSLLabs-
0900: 31 2e 37 20 7b 4c 6f 67 6a 61 6d 20 56 75 6c 6e 1.7 {Logjam Vuln
0910: 65 72 61 62 69 6c 69 74 79 7d 20 2d 63 6f 6e 73 erability} -cons
0920: 74 72 61 69 6e 74 73 20 7b 77 69 6e 20 4f 70 65 traints {win Ope
0930: 6e 53 53 4c 33 2e 32 7d 20 2d 62 6f 64 79 20 7b nSSL3.2} -body {
0940: 0a 09 63 6f 6e 6e 65 63 74 20 77 77 77 2e 73 73 ..connect www.ss
0950: 6c 6c 61 62 73 2e 63 6f 6d 3a 31 30 34 34 35 0a llabs.com:10445.
0960: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 68 } -result {h
0970: 61 6e 64 73 68 61 6b 65 20 66 61 69 6c 65 64 3a andshake failed:
0980: 20 75 6e 6b 6e 6f 77 6e 20 73 65 63 75 72 69 74 unknown securit
0990: 79 20 62 69 74 73 7d 20 2d 72 65 74 75 72 6e 43 y bits} -returnC
09a0: 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 74 20 53 odes {1}..test S
09b0: 53 4c 4c 61 62 73 2d 31 2e 38 20 7b 4c 6f 67 6a SLLabs-1.8 {Logj
09c0: 61 6d 20 56 75 6c 6e 65 72 61 62 69 6c 69 74 79 am Vulnerability
09d0: 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 7b } -constraints {
09e0: 75 6e 69 78 20 21 6d 61 63 20 4f 70 65 6e 53 53 unix !mac OpenSS
09f0: 4c 33 2e 32 7d 20 2d 62 6f 64 79 20 7b 0a 09 63 L3.2} -body {..c
0a00: 6f 6e 6e 65 63 74 20 77 77 77 2e 73 73 6c 6c 61 onnect www.sslla
0a10: 62 73 2e 63 6f 6d 3a 31 30 34 34 35 0a 20 20 20 bs.com:10445.
0a20: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 68 61 6e 64 } -result {hand
0a30: 73 68 61 6b 65 20 66 61 69 6c 65 64 3a 20 75 6e shake failed: un
0a40: 6b 6e 6f 77 6e 20 73 65 63 75 72 69 74 79 20 62 known security b
0a50: 69 74 73 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 its} -returnCode
0a60: 73 20 7b 31 7d 0a 0a 74 65 73 74 20 53 53 4c 4c s {1}..test SSLL
0a70: 61 62 73 2d 31 2e 39 20 7b 4c 6f 67 6a 61 6d 20 abs-1.9 {Logjam
0a80: 56 75 6c 6e 65 72 61 62 69 6c 69 74 79 7d 20 2d Vulnerability} -
0a90: 63 6f 6e 73 74 72 61 69 6e 74 73 20 7b 6d 61 63 constraints {mac
0aa0: 20 4f 70 65 6e 53 53 4c 33 2e 32 7d 20 2d 62 6f OpenSSL3.2} -bo
0ab0: 64 79 20 7b 0a 09 63 6f 6e 6e 65 63 74 20 77 77 dy {..connect ww
0ac0: 77 2e 73 73 6c 6c 61 62 73 2e 63 6f 6d 3a 31 30 w.ssllabs.com:10
0ad0: 34 34 35 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 445. } -resul
0ae0: 74 20 7b 68 61 6e 64 73 68 61 6b 65 20 66 61 69 t {handshake fai
0af0: 6c 65 64 3a 20 75 6e 6b 6e 6f 77 6e 20 73 65 63 led: unknown sec
0b00: 75 72 69 74 79 20 62 69 74 73 7d 20 2d 72 65 74 urity bits} -ret
0b10: 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 urnCodes {1}..te
0b20: 73 74 20 53 53 4c 4c 61 62 73 2d 31 2e 31 30 20 st SSLLabs-1.10
0b30: 7b 46 52 45 41 4b 20 56 75 6c 6e 65 72 61 62 69 {FREAK Vulnerabi
0b40: 6c 69 74 79 7d 20 2d 62 6f 64 79 20 7b 0a 09 63 lity} -body {..c
0b50: 6f 6e 6e 65 63 74 20 77 77 77 2e 73 73 6c 6c 61 onnect www.sslla
0b60: 62 73 2e 63 6f 6d 3a 31 30 34 34 34 0a 20 20 20 bs.com:10444.
0b70: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 68 61 6e 64 } -result {hand
0b80: 73 68 61 6b 65 20 66 61 69 6c 65 64 3a 20 75 6e shake failed: un
0b90: 73 75 70 70 6f 72 74 65 64 20 70 72 6f 74 6f 63 supported protoc
0ba0: 6f 6c 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 ol} -returnCodes
0bb0: 20 7b 31 7d 0a 0a 74 65 73 74 20 53 53 4c 4c 61 {1}..test SSLLa
0bc0: 62 73 2d 31 2e 31 31 20 7b 50 4f 4f 44 4c 45 20 bs-1.11 {POODLE
0bd0: 56 75 6c 6e 65 72 61 62 69 6c 69 74 79 7d 20 2d Vulnerability} -
0be0: 62 6f 64 79 20 7b 0a 09 63 6f 6e 6e 65 63 74 20 body {..connect
0bf0: 77 77 77 2e 73 73 6c 6c 61 62 73 2e 63 6f 6d 3a www.ssllabs.com:
0c00: 31 30 34 34 33 0a 20 20 20 20 7d 20 2d 72 65 73 10443. } -res
0c10: 75 6c 74 20 7b 68 61 6e 64 73 68 61 6b 65 20 66 ult {handshake f
0c20: 61 69 6c 65 64 3a 20 75 6e 73 75 70 70 6f 72 74 ailed: unsupport
0c30: 65 64 20 70 72 6f 74 6f 63 6f 6c 7d 20 2d 72 65 ed protocol} -re
0c40: 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 23 turnCodes {1}..#
0c50: 20 43 6c 65 61 6e 75 70 0a 3a 3a 74 63 6c 74 65 Cleanup.::tclte
0c60: 73 74 3a 3a 63 6c 65 61 6e 75 70 54 65 73 74 73 st::cleanupTests
0c70: 0a 72 65 74 75 72 6e 0a .return.