Hex Artifact Content

Artifact c72eccfcd4dfc3c4e21f9266bf41dc3c6cd85ba1bc783757677c2af63e1a2dd2:


0000: 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 74  #!/usr/bin/env t
0010: 63 6c 73 68 0a 0a 23 20 43 6f 6d 6d 6f 6e 20 43  clsh..# Common C
0020: 6f 6e 73 74 72 61 69 6e 74 73 0a 70 61 63 6b 61  onstraints.packa
0030: 67 65 20 72 65 71 75 69 72 65 20 74 6c 73 0a 0a  ge require tls..
0040: 23 20 53 75 70 70 6f 72 74 65 64 20 70 72 6f 74  # Supported prot
0050: 6f 63 6f 6c 73 0a 73 65 74 20 70 72 6f 74 6f 63  ocols.set protoc
0060: 6f 6c 73 20 5b 6c 69 73 74 20 73 73 6c 32 20 73  ols [list ssl2 s
0070: 73 6c 33 20 74 6c 73 31 20 74 6c 73 31 2e 31 20  sl3 tls1 tls1.1 
0080: 74 6c 73 31 2e 32 20 74 6c 73 31 2e 33 5d 0a 66  tls1.2 tls1.3].f
0090: 6f 72 65 61 63 68 20 70 72 6f 74 6f 63 6f 6c 20  oreach protocol 
00a0: 24 70 72 6f 74 6f 63 6f 6c 73 20 7b 0a 20 20 20  $protocols {.   
00b0: 20 3a 3a 74 63 6c 74 65 73 74 3a 3a 74 65 73 74   ::tcltest::test
00c0: 43 6f 6e 73 74 72 61 69 6e 74 20 24 70 72 6f 74  Constraint $prot
00d0: 6f 63 6f 6c 20 30 0a 20 20 20 20 3a 3a 74 63 6c  ocol 0.    ::tcl
00e0: 74 65 73 74 3a 3a 74 65 73 74 43 6f 6e 73 74 72  test::testConstr
00f0: 61 69 6e 74 20 21 24 70 72 6f 74 6f 63 6f 6c 20  aint !$protocol 
0100: 31 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 70 72 6f  1.}..foreach pro
0110: 74 6f 63 6f 6c 20 5b 3a 3a 74 6c 73 3a 3a 70 72  tocol [::tls::pr
0120: 6f 74 6f 63 6f 6c 73 5d 20 7b 0a 20 20 20 20 3a  otocols] {.    :
0130: 3a 74 63 6c 74 65 73 74 3a 3a 74 65 73 74 43 6f  :tcltest::testCo
0140: 6e 73 74 72 61 69 6e 74 20 24 70 72 6f 74 6f 63  nstraint $protoc
0150: 6f 6c 20 31 0a 20 20 20 20 3a 3a 74 63 6c 74 65  ol 1.    ::tclte
0160: 73 74 3a 3a 74 65 73 74 43 6f 6e 73 74 72 61 69  st::testConstrai
0170: 6e 74 20 21 24 70 72 6f 74 6f 63 6f 6c 20 30 0a  nt !$protocol 0.
0180: 7d 0a 0a 23 20 4f 70 65 6e 53 53 4c 20 76 65 72  }..# OpenSSL ver
0190: 73 69 6f 6e 0a 3a 3a 74 63 6c 74 65 73 74 3a 3a  sion.::tcltest::
01a0: 74 65 73 74 43 6f 6e 73 74 72 61 69 6e 74 20 4f  testConstraint O
01b0: 70 65 6e 53 53 4c 20 5b 73 74 72 69 6e 67 20 6d  penSSL [string m
01c0: 61 74 63 68 20 22 4f 70 65 6e 53 53 4c 2a 22 20  atch "OpenSSL*" 
01d0: 5b 3a 3a 74 6c 73 3a 3a 76 65 72 73 69 6f 6e 5d  [::tls::version]
01e0: 5d 0a 0a 23 20 4c 65 67 61 63 79 20 4f 70 65 6e  ]..# Legacy Open
01f0: 53 53 4c 20 76 31 2e 31 2e 31 20 76 73 20 6e 65  SSL v1.1.1 vs ne
0200: 77 20 76 33 2e 78 0a 73 63 61 6e 20 5b 6c 69 6e  w v3.x.scan [lin
0210: 64 65 78 20 5b 73 70 6c 69 74 20 5b 3a 3a 74 6c  dex [split [::tl
0220: 73 3a 3a 76 65 72 73 69 6f 6e 5d 5d 20 31 5d 20  s::version]] 1] 
0230: 25 66 20 76 65 72 73 69 6f 6e 0a 3a 3a 74 63 6c  %f version.::tcl
0240: 74 65 73 74 3a 3a 74 65 73 74 43 6f 6e 73 74 72  test::testConstr
0250: 61 69 6e 74 20 6e 65 77 5f 61 70 69 20 5b 65 78  aint new_api [ex
0260: 70 72 20 7b 24 76 65 72 73 69 6f 6e 20 3e 3d 20  pr {$version >= 
0270: 33 2e 30 7d 5d 0a 3a 3a 74 63 6c 74 65 73 74 3a  3.0}].::tcltest:
0280: 3a 74 65 73 74 43 6f 6e 73 74 72 61 69 6e 74 20  :testConstraint 
0290: 6f 6c 64 5f 61 70 69 20 5b 65 78 70 72 20 7b 24  old_api [expr {$
02a0: 76 65 72 73 69 6f 6e 20 3c 20 33 2e 30 7d 5d 0a  version < 3.0}].