Hex Artifact Content

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.