Hex Artifact Content

Artifact 6f8c36e170e3a0eb3958543fb9977c23b80c6d71:


0000: 23 20 43 6f 6d 6d 61 6e 64 73 20 63 6f 76 65 72  # Commands cover
0010: 65 64 3a 20 20 74 6c 73 3a 3a 63 69 70 68 65 72  ed:  tls::cipher
0020: 73 0a 23 0a 23 20 54 68 69 73 20 66 69 6c 65 20  s.#.# This file 
0030: 63 6f 6e 74 61 69 6e 73 20 61 20 63 6f 6c 6c 65  contains a colle
0040: 63 74 69 6f 6e 20 6f 66 20 74 65 73 74 73 20 66  ction of tests f
0050: 6f 72 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6f  or one or more o
0060: 66 20 74 68 65 20 54 63 6c 0a 23 20 62 75 69 6c  f the Tcl.# buil
0070: 74 2d 69 6e 20 63 6f 6d 6d 61 6e 64 73 2e 20 20  t-in commands.  
0080: 53 6f 75 72 63 69 6e 67 20 74 68 69 73 20 66 69  Sourcing this fi
0090: 6c 65 20 69 6e 74 6f 20 54 63 6c 20 72 75 6e 73  le into Tcl runs
00a0: 20 74 68 65 20 74 65 73 74 73 20 61 6e 64 0a 23   the tests and.#
00b0: 20 67 65 6e 65 72 61 74 65 73 20 6f 75 74 70 75   generates outpu
00c0: 74 20 66 6f 72 20 65 72 72 6f 72 73 2e 20 20 4e  t for errors.  N
00d0: 6f 20 6f 75 74 70 75 74 20 6d 65 61 6e 73 20 6e  o output means n
00e0: 6f 20 65 72 72 6f 72 73 20 77 65 72 65 20 66 6f  o errors were fo
00f0: 75 6e 64 2e 0a 23 0a 0a 23 20 41 6c 6c 20 72 69  und..#..# All ri
0100: 67 68 74 73 20 72 65 73 65 72 76 65 64 2e 0a 23  ghts reserved..#
0110: 0a 23 20 53 65 65 20 74 68 65 20 66 69 6c 65 20  .# See the file 
0120: 22 6c 69 63 65 6e 73 65 2e 74 65 72 6d 73 22 20  "license.terms" 
0130: 66 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20  for information 
0140: 6f 6e 20 75 73 61 67 65 20 61 6e 64 20 72 65 64  on usage and red
0150: 69 73 74 72 69 62 75 74 69 6f 6e 0a 23 20 6f 66  istribution.# of
0160: 20 74 68 69 73 20 66 69 6c 65 2c 20 61 6e 64 20   this file, and 
0170: 66 6f 72 20 61 20 44 49 53 43 4c 41 49 4d 45 52  for a DISCLAIMER
0180: 20 4f 46 20 41 4c 4c 20 57 41 52 52 41 4e 54 49   OF ALL WARRANTI
0190: 45 53 2e 0a 23 0a 0a 69 66 20 7b 5b 6c 73 65 61  ES..#..if {[lsea
01a0: 72 63 68 20 5b 6e 61 6d 65 73 70 61 63 65 20 63  rch [namespace c
01b0: 68 69 6c 64 72 65 6e 5d 20 3a 3a 74 63 6c 74 65  hildren] ::tclte
01c0: 73 74 5d 20 3d 3d 20 2d 31 7d 20 7b 0a 20 20 20  st] == -1} {.   
01d0: 20 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65   package require
01e0: 20 74 63 6c 74 65 73 74 0a 20 20 20 20 6e 61 6d   tcltest.    nam
01f0: 65 73 70 61 63 65 20 69 6d 70 6f 72 74 20 3a 3a  espace import ::
0200: 74 63 6c 74 65 73 74 3a 3a 2a 0a 7d 0a 0a 23 20  tcltest::*.}..# 
0210: 54 68 65 20 62 75 69 6c 64 20 64 69 72 20 69 73  The build dir is
0220: 20 61 64 64 65 64 20 61 73 20 74 68 65 20 66 69   added as the fi
0230: 72 73 74 20 65 6c 65 6d 65 6e 74 20 6f 66 20 24  rst element of $
0240: 50 41 54 48 0a 73 65 74 20 61 75 74 6f 5f 70 61  PATH.set auto_pa
0250: 74 68 20 5b 6c 69 6e 73 65 72 74 20 24 61 75 74  th [linsert $aut
0260: 6f 5f 70 61 74 68 20 30 20 5b 6c 69 6e 64 65 78  o_path 0 [lindex
0270: 20 5b 73 70 6c 69 74 20 24 65 6e 76 28 50 41 54   [split $env(PAT
0280: 48 29 20 22 3b 3a 22 5d 20 30 5d 5d 0a 0a 70 61  H) ";:"] 0]]..pa
0290: 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 74 6c  ckage require tl
02a0: 73 0a 0a 23 20 4f 6e 65 20 6f 66 20 74 68 65 73  s..# One of thes
02b0: 65 20 73 68 6f 75 6c 64 20 3d 3d 20 31 2c 20 64  e should == 1, d
02c0: 65 70 65 6e 64 69 6e 67 20 6f 6e 20 77 68 61 74  epending on what
02d0: 20 74 79 70 65 20 6f 66 20 73 73 6c 20 6c 69 62   type of ssl lib
02e0: 72 61 72 79 0a 23 20 74 6c 73 20 77 61 73 20 63  rary.# tls was c
02f0: 6f 6d 70 69 6c 65 64 20 61 67 61 69 6e 73 74 2e  ompiled against.
0300: 20 28 52 53 41 20 42 53 41 46 45 20 53 53 4c 2d   (RSA BSAFE SSL-
0310: 43 20 6f 72 20 4f 70 65 6e 53 53 4c 29 2e 0a 23  C or OpenSSL)..#
0320: 0a 73 65 74 20 3a 3a 74 63 6c 74 65 73 74 3a 3a  .set ::tcltest::
0330: 74 65 73 74 43 6f 6e 73 74 72 61 69 6e 74 73 28  testConstraints(
0340: 72 73 61 62 73 61 66 65 29 20 30 0a 73 65 74 20  rsabsafe) 0.set 
0350: 3a 3a 74 63 6c 74 65 73 74 3a 3a 74 65 73 74 43  ::tcltest::testC
0360: 6f 6e 73 74 72 61 69 6e 74 73 28 6f 70 65 6e 73  onstraints(opens
0370: 73 6c 29 20 31 0a 0a 73 65 74 20 3a 3a 45 58 50  sl) 1..set ::EXP
0380: 45 43 54 45 44 43 49 50 48 45 52 53 28 72 73 61  ECTEDCIPHERS(rsa
0390: 62 73 61 66 65 29 20 7b 0a 20 20 20 20 45 44 48  bsafe) {.    EDH
03a0: 2d 44 53 53 2d 52 43 34 2d 53 48 41 0a 20 20 20  -DSS-RC4-SHA.   
03b0: 20 45 44 48 2d 52 53 41 2d 44 45 53 2d 43 42 43   EDH-RSA-DES-CBC
03c0: 33 2d 53 48 41 0a 20 20 20 20 45 44 48 2d 44 53  3-SHA.    EDH-DS
03d0: 53 2d 44 45 53 2d 43 42 43 33 2d 53 48 41 0a 20  S-DES-CBC3-SHA. 
03e0: 20 20 20 44 45 53 2d 43 42 43 33 2d 53 48 41 0a     DES-CBC3-SHA.
03f0: 20 20 20 20 52 43 34 2d 53 48 41 0a 20 20 20 20      RC4-SHA.    
0400: 52 43 34 2d 4d 44 35 0a 20 20 20 20 45 44 48 2d  RC4-MD5.    EDH-
0410: 52 53 41 2d 44 45 53 2d 43 42 43 2d 53 48 41 0a  RSA-DES-CBC-SHA.
0420: 20 20 20 20 45 44 48 2d 44 53 53 2d 44 45 53 2d      EDH-DSS-DES-
0430: 43 42 43 2d 53 48 41 0a 20 20 20 20 44 45 53 2d  CBC-SHA.    DES-
0440: 43 42 43 2d 53 48 41 0a 20 20 20 20 45 58 50 2d  CBC-SHA.    EXP-
0450: 45 44 48 2d 44 53 53 2d 44 45 53 2d 35 36 2d 53  EDH-DSS-DES-56-S
0460: 48 41 0a 20 20 20 20 45 58 50 2d 45 44 48 2d 44  HA.    EXP-EDH-D
0470: 53 53 2d 52 43 34 2d 35 36 2d 53 48 41 0a 20 20  SS-RC4-56-SHA.  
0480: 20 20 45 58 50 2d 44 45 53 2d 35 36 2d 53 48 41    EXP-DES-56-SHA
0490: 0a 20 20 20 20 45 58 50 2d 52 43 34 2d 35 36 2d  .    EXP-RC4-56-
04a0: 53 48 41 0a 20 20 20 20 45 58 50 2d 45 44 48 2d  SHA.    EXP-EDH-
04b0: 52 53 41 2d 44 45 53 2d 43 42 43 2d 53 48 41 0a  RSA-DES-CBC-SHA.
04c0: 20 20 20 20 45 58 50 2d 45 44 48 2d 44 53 53 2d      EXP-EDH-DSS-
04d0: 44 45 53 2d 43 42 43 2d 53 48 41 0a 20 20 20 20  DES-CBC-SHA.    
04e0: 45 58 50 2d 44 45 53 2d 43 42 43 2d 53 48 41 0a  EXP-DES-CBC-SHA.
04f0: 20 20 20 20 45 58 50 2d 52 43 32 2d 43 42 43 2d      EXP-RC2-CBC-
0500: 4d 44 35 0a 20 20 20 20 45 58 50 2d 52 43 34 2d  MD5.    EXP-RC4-
0510: 4d 44 35 0a 7d 0a 0a 73 65 74 20 3a 3a 45 58 50  MD5.}..set ::EXP
0520: 45 43 54 45 44 43 49 50 48 45 52 53 28 6f 70 65  ECTEDCIPHERS(ope
0530: 6e 73 73 6c 29 20 7b 0a 20 20 20 20 41 45 53 31  nssl) {.    AES1
0540: 32 38 2d 53 48 41 0a 20 20 20 20 41 45 53 32 35  28-SHA.    AES25
0550: 36 2d 53 48 41 0a 20 20 20 20 44 45 53 2d 43 42  6-SHA.    DES-CB
0560: 43 2d 53 48 41 0a 20 20 20 20 44 45 53 2d 43 42  C-SHA.    DES-CB
0570: 43 33 2d 53 48 41 0a 20 20 20 20 44 48 45 2d 44  C3-SHA.    DHE-D
0580: 53 53 2d 41 45 53 31 32 38 2d 53 48 41 0a 20 20  SS-AES128-SHA.  
0590: 20 20 44 48 45 2d 44 53 53 2d 41 45 53 32 35 36    DHE-DSS-AES256
05a0: 2d 53 48 41 0a 20 20 20 20 44 48 45 2d 44 53 53  -SHA.    DHE-DSS
05b0: 2d 52 43 34 2d 53 48 41 0a 20 20 20 20 44 48 45  -RC4-SHA.    DHE
05c0: 2d 52 53 41 2d 41 45 53 31 32 38 2d 53 48 41 0a  -RSA-AES128-SHA.
05d0: 20 20 20 20 44 48 45 2d 52 53 41 2d 41 45 53 32      DHE-RSA-AES2
05e0: 35 36 2d 53 48 41 0a 20 20 20 20 45 44 48 2d 44  56-SHA.    EDH-D
05f0: 53 53 2d 44 45 53 2d 43 42 43 2d 53 48 41 0a 20  SS-DES-CBC-SHA. 
0600: 20 20 20 45 44 48 2d 44 53 53 2d 44 45 53 2d 43     EDH-DSS-DES-C
0610: 42 43 33 2d 53 48 41 0a 20 20 20 20 45 44 48 2d  BC3-SHA.    EDH-
0620: 52 53 41 2d 44 45 53 2d 43 42 43 2d 53 48 41 0a  RSA-DES-CBC-SHA.
0630: 20 20 20 20 45 44 48 2d 52 53 41 2d 44 45 53 2d      EDH-RSA-DES-
0640: 43 42 43 33 2d 53 48 41 0a 20 20 20 20 45 58 50  CBC3-SHA.    EXP
0650: 2d 44 45 53 2d 43 42 43 2d 53 48 41 0a 20 20 20  -DES-CBC-SHA.   
0660: 20 45 58 50 2d 45 44 48 2d 44 53 53 2d 44 45 53   EXP-EDH-DSS-DES
0670: 2d 43 42 43 2d 53 48 41 0a 20 20 20 20 45 58 50  -CBC-SHA.    EXP
0680: 2d 45 44 48 2d 52 53 41 2d 44 45 53 2d 43 42 43  -EDH-RSA-DES-CBC
0690: 2d 53 48 41 0a 20 20 20 20 45 58 50 2d 52 43 32  -SHA.    EXP-RC2
06a0: 2d 43 42 43 2d 4d 44 35 0a 20 20 20 20 45 58 50  -CBC-MD5.    EXP
06b0: 2d 52 43 34 2d 4d 44 35 0a 20 20 20 20 45 58 50  -RC4-MD5.    EXP
06c0: 31 30 32 34 2d 44 45 53 2d 43 42 43 2d 53 48 41  1024-DES-CBC-SHA
06d0: 0a 20 20 20 20 45 58 50 31 30 32 34 2d 44 48 45  .    EXP1024-DHE
06e0: 2d 44 53 53 2d 44 45 53 2d 43 42 43 2d 53 48 41  -DSS-DES-CBC-SHA
06f0: 0a 20 20 20 20 45 58 50 31 30 32 34 2d 44 48 45  .    EXP1024-DHE
0700: 2d 44 53 53 2d 52 43 34 2d 53 48 41 0a 20 20 20  -DSS-RC4-SHA.   
0710: 20 45 58 50 31 30 32 34 2d 52 43 32 2d 43 42 43   EXP1024-RC2-CBC
0720: 2d 4d 44 35 0a 20 20 20 20 45 58 50 31 30 32 34  -MD5.    EXP1024
0730: 2d 52 43 34 2d 4d 44 35 0a 20 20 20 20 45 58 50  -RC4-MD5.    EXP
0740: 31 30 32 34 2d 52 43 34 2d 53 48 41 0a 20 20 20  1024-RC4-SHA.   
0750: 20 49 44 45 41 2d 43 42 43 2d 53 48 41 0a 20 20   IDEA-CBC-SHA.  
0760: 20 20 52 43 34 2d 4d 44 35 0a 20 20 20 20 52 43    RC4-MD5.    RC
0770: 34 2d 53 48 41 0a 7d 0a 0a 70 72 6f 63 20 6c 69  4-SHA.}..proc li
0780: 73 74 63 6f 6d 70 61 72 65 20 7b 77 61 6e 74 73  stcompare {wants
0790: 20 68 61 76 65 73 7d 20 7b 0a 20 20 20 20 61 72   haves} {.    ar
07a0: 72 61 79 20 73 65 74 20 77 61 6e 74 20 7b 7d 0a  ray set want {}.
07b0: 20 20 20 20 61 72 72 61 79 20 73 65 74 20 68 61      array set ha
07c0: 76 65 20 7b 7d 0a 20 20 20 20 66 6f 72 65 61 63  ve {}.    foreac
07d0: 68 20 69 74 65 6d 20 24 77 61 6e 74 73 20 7b 20  h item $wants { 
07e0: 73 65 74 20 77 61 6e 74 28 24 69 74 65 6d 29 20  set want($item) 
07f0: 31 20 7d 0a 20 20 20 20 66 6f 72 65 61 63 68 20  1 }.    foreach 
0800: 69 74 65 6d 20 24 68 61 76 65 73 20 7b 20 73 65  item $haves { se
0810: 74 20 68 61 76 65 28 24 69 74 65 6d 29 20 31 20  t have($item) 1 
0820: 7d 0a 20 20 20 20 66 6f 72 65 61 63 68 20 69 74  }.    foreach it
0830: 65 6d 20 5b 6c 73 6f 72 74 20 2d 64 69 63 74 69  em [lsort -dicti
0840: 6f 6e 61 72 79 20 5b 61 72 72 61 79 20 6e 61 6d  onary [array nam
0850: 65 73 20 68 61 76 65 5d 5d 20 7b 0a 09 69 66 20  es have]] {..if 
0860: 7b 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 77 61  {[info exists wa
0870: 6e 74 28 24 69 74 65 6d 29 5d 7d 20 7b 0a 09 20  nt($item)]} {.. 
0880: 20 20 20 75 6e 73 65 74 20 77 61 6e 74 28 24 69     unset want($i
0890: 74 65 6d 29 20 68 61 76 65 28 24 69 74 65 6d 29  tem) have($item)
08a0: 0a 09 7d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66  ..}.    }.    if
08b0: 20 7b 5b 61 72 72 61 79 20 73 69 7a 65 20 77 61   {[array size wa
08c0: 6e 74 5d 20 7c 7c 20 5b 61 72 72 61 79 20 73 69  nt] || [array si
08d0: 7a 65 20 68 61 76 65 5d 7d 20 7b 0a 09 72 65 74  ze have]} {..ret
08e0: 75 72 6e 20 5b 6c 69 73 74 20 4d 49 53 53 49 4e  urn [list MISSIN
08f0: 47 20 5b 61 72 72 61 79 20 6e 61 6d 65 73 20 77  G [array names w
0900: 61 6e 74 5d 20 55 4e 45 58 50 45 43 54 45 44 20  ant] UNEXPECTED 
0910: 5b 61 72 72 61 79 20 6e 61 6d 65 73 20 68 61 76  [array names hav
0920: 65 5d 5d 0a 20 20 20 20 7d 0a 7d 0a 0a 74 65 73  e]].    }.}..tes
0930: 74 20 63 69 70 68 65 72 73 2d 31 2e 31 20 7b 54  t ciphers-1.1 {T
0940: 6c 73 3a 3a 63 69 70 68 65 72 73 20 66 6f 72 20  ls::ciphers for 
0950: 73 73 6c 33 7d 20 7b 72 73 61 62 73 61 66 65 7d  ssl3} {rsabsafe}
0960: 20 7b 0a 20 20 20 20 23 20 54 68 69 73 20 77 69   {.    # This wi
0970: 6c 6c 20 66 61 69 6c 20 69 66 20 79 6f 75 20 63  ll fail if you c
0980: 6f 6d 70 69 6c 65 64 20 61 67 61 69 6e 73 74 20  ompiled against 
0990: 4f 70 65 6e 53 53 4c 2e 0a 20 20 20 20 23 20 43  OpenSSL..    # C
09a0: 68 61 6e 67 65 20 74 68 65 20 63 6f 6e 73 74 72  hange the constr
09b0: 61 69 6e 74 20 73 65 74 74 69 6e 67 20 61 62 6f  aint setting abo
09c0: 76 65 2e 0a 20 20 20 20 6c 69 73 74 63 6f 6d 70  ve..    listcomp
09d0: 61 72 65 20 24 3a 3a 45 58 50 45 43 54 45 44 43  are $::EXPECTEDC
09e0: 49 50 48 45 52 53 28 72 73 61 62 73 61 66 65 29  IPHERS(rsabsafe)
09f0: 20 5b 74 6c 73 3a 3a 63 69 70 68 65 72 73 20 73   [tls::ciphers s
0a00: 73 6c 33 5d 0a 7d 20 7b 7d 0a 0a 74 65 73 74 20  sl3].} {}..test 
0a10: 63 69 70 68 65 72 73 2d 31 2e 32 20 7b 54 6c 73  ciphers-1.2 {Tls
0a20: 3a 3a 63 69 70 68 65 72 73 20 66 6f 72 20 74 6c  ::ciphers for tl
0a30: 73 31 7d 20 7b 72 73 61 62 73 61 66 65 7d 20 7b  s1} {rsabsafe} {
0a40: 0a 20 20 20 20 23 20 54 68 69 73 20 77 69 6c 6c  .    # This will
0a50: 20 66 61 69 6c 20 69 66 20 79 6f 75 20 63 6f 6d   fail if you com
0a60: 70 69 6c 65 64 20 61 67 61 69 6e 73 74 20 4f 70  piled against Op
0a70: 65 6e 53 53 4c 2e 0a 20 20 20 20 23 20 43 68 61  enSSL..    # Cha
0a80: 6e 67 65 20 74 68 65 20 63 6f 6e 73 74 72 61 69  nge the constrai
0a90: 6e 74 20 73 65 74 74 69 6e 67 20 61 62 6f 76 65  nt setting above
0aa0: 2e 0a 20 20 20 20 6c 69 73 74 63 6f 6d 70 61 72  ..    listcompar
0ab0: 65 20 24 3a 3a 45 58 50 45 43 54 45 44 43 49 50  e $::EXPECTEDCIP
0ac0: 48 45 52 53 28 72 73 61 62 73 61 66 65 29 20 5b  HERS(rsabsafe) [
0ad0: 74 6c 73 3a 3a 63 69 70 68 65 72 73 20 74 6c 73  tls::ciphers tls
0ae0: 31 5d 0a 7d 20 7b 7d 0a 0a 74 65 73 74 20 63 69  1].} {}..test ci
0af0: 70 68 65 72 73 2d 31 2e 33 20 7b 54 6c 73 3a 3a  phers-1.3 {Tls::
0b00: 63 69 70 68 65 72 73 20 66 6f 72 20 73 73 6c 33  ciphers for ssl3
0b10: 7d 20 7b 6f 70 65 6e 73 73 6c 7d 20 7b 0a 20 20  } {openssl} {.  
0b20: 20 20 23 20 54 68 69 73 20 77 69 6c 6c 20 66 61    # This will fa
0b30: 69 6c 20 69 66 20 79 6f 75 20 63 6f 6d 70 69 6c  il if you compil
0b40: 65 64 20 61 67 61 69 6e 73 74 20 52 53 41 20 62  ed against RSA b
0b50: 73 61 66 65 20 6f 72 20 77 69 74 68 20 61 0a 20  safe or with a. 
0b60: 20 20 20 23 20 64 69 66 66 65 72 65 6e 74 20 73     # different s
0b70: 65 74 20 6f 66 20 64 65 66 69 6e 65 73 20 74 68  et of defines th
0b80: 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 2e 0a  an the default..
0b90: 20 20 20 20 23 20 43 68 61 6e 67 65 20 74 68 65      # Change the
0ba0: 20 63 6f 6e 73 74 72 61 69 6e 74 20 73 65 74 74   constraint sett
0bb0: 69 6e 67 20 61 62 6f 76 65 2e 0a 20 20 20 20 6c  ing above..    l
0bc0: 69 73 74 63 6f 6d 70 61 72 65 20 24 3a 3a 45 58  istcompare $::EX
0bd0: 50 45 43 54 45 44 43 49 50 48 45 52 53 28 6f 70  PECTEDCIPHERS(op
0be0: 65 6e 73 73 6c 29 20 5b 74 6c 73 3a 3a 63 69 70  enssl) [tls::cip
0bf0: 68 65 72 73 20 73 73 6c 33 5d 0a 7d 20 7b 7d 0a  hers ssl3].} {}.
0c00: 0a 23 20 54 68 69 73 20 76 65 72 73 69 6f 6e 20  .# This version 
0c10: 6f 66 20 74 68 65 20 74 65 73 74 20 69 73 20 63  of the test is c
0c20: 6f 72 72 65 63 74 20 66 6f 72 20 4f 70 65 6e 53  orrect for OpenS
0c30: 53 4c 20 6f 6e 6c 79 2e 0a 23 20 41 6e 20 65 71  SL only..# An eq
0c40: 75 69 76 61 6c 65 6e 74 20 74 65 73 74 20 66 6f  uivalent test fo
0c50: 72 20 74 68 65 20 52 53 41 20 42 53 41 46 45 20  r the RSA BSAFE 
0c60: 53 53 4c 2d 43 20 69 73 20 65 61 72 6c 69 65 72  SSL-C is earlier
0c70: 20 69 6e 20 74 68 69 73 20 66 69 6c 65 2e 0a 0a   in this file...
0c80: 74 65 73 74 20 63 69 70 68 65 72 73 2d 31 2e 34  test ciphers-1.4
0c90: 20 7b 54 6c 73 3a 3a 63 69 70 68 65 72 73 20 66   {Tls::ciphers f
0ca0: 6f 72 20 74 6c 73 31 7d 20 7b 6f 70 65 6e 73 73  or tls1} {openss
0cb0: 6c 7d 20 7b 0a 20 20 20 20 23 20 54 68 69 73 20  l} {.    # This 
0cc0: 77 69 6c 6c 20 66 61 69 6c 20 69 66 20 79 6f 75  will fail if you
0cd0: 20 63 6f 6d 70 69 6c 65 64 20 61 67 61 69 6e 73   compiled agains
0ce0: 74 20 52 53 41 20 62 73 61 66 65 20 6f 72 20 77  t RSA bsafe or w
0cf0: 69 74 68 20 61 0a 20 20 20 20 23 20 64 69 66 66  ith a.    # diff
0d00: 65 72 65 6e 74 20 73 65 74 20 6f 66 20 64 65 66  erent set of def
0d10: 69 6e 65 73 20 74 68 61 6e 20 74 68 65 20 64 65  ines than the de
0d20: 66 61 75 6c 74 2e 0a 20 20 20 20 23 20 43 68 61  fault..    # Cha
0d30: 6e 67 65 20 74 68 65 20 63 6f 6e 73 74 72 61 69  nge the constrai
0d40: 6e 74 20 73 65 74 74 69 6e 67 20 69 6e 20 61 6c  nt setting in al
0d50: 6c 2e 74 63 6c 0a 20 20 20 20 6c 69 73 74 63 6f  l.tcl.    listco
0d60: 6d 70 61 72 65 20 24 3a 3a 45 58 50 45 43 54 45  mpare $::EXPECTE
0d70: 44 43 49 50 48 45 52 53 28 6f 70 65 6e 73 73 6c  DCIPHERS(openssl
0d80: 29 20 5b 74 6c 73 3a 3a 63 69 70 68 65 72 73 20  ) [tls::ciphers 
0d90: 74 6c 73 31 5d 0a 7d 20 7b 7d 0a 0a 0a 23 20 63  tls1].} {}...# c
0da0: 6c 65 61 6e 75 70 0a 3a 3a 74 63 6c 74 65 73 74  leanup.::tcltest
0db0: 3a 3a 63 6c 65 61 6e 75 70 54 65 73 74 73 0a 72  ::cleanupTests.r
0dc0: 65 74 75 72 6e 0a                                eturn.