Artifact
bdd3d3d6072535f0f70ac42aa6ee1541699bf637:
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 70 61 tcltest::*.}..pa
0210: 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 74 6c ckage require tl
0220: 73 0a 0a 23 20 4f 6e 65 20 6f 66 20 74 68 65 73 s..# One of thes
0230: 65 20 73 68 6f 75 6c 64 20 3d 3d 20 31 2c 20 64 e should == 1, d
0240: 65 70 65 6e 64 69 6e 67 20 6f 6e 20 77 68 61 74 epending on what
0250: 20 74 79 70 65 20 6f 66 20 73 73 6c 20 6c 69 62 type of ssl lib
0260: 72 61 72 79 0a 23 20 74 6c 73 20 77 61 73 20 63 rary.# tls was c
0270: 6f 6d 70 69 6c 65 64 20 61 67 61 69 6e 73 74 2e ompiled against.
0280: 20 28 52 53 41 20 42 53 41 46 45 20 53 53 4c 2d (RSA BSAFE SSL-
0290: 43 20 6f 72 20 4f 70 65 6e 53 53 4c 29 2e 0a 23 C or OpenSSL)..#
02a0: 0a 73 65 74 20 3a 3a 74 63 6c 74 65 73 74 3a 3a .set ::tcltest::
02b0: 74 65 73 74 43 6f 6e 73 74 72 61 69 6e 74 73 28 testConstraints(
02c0: 72 73 61 62 73 61 66 65 29 20 31 0a 73 65 74 20 rsabsafe) 1.set
02d0: 3a 3a 74 63 6c 74 65 73 74 3a 3a 74 65 73 74 43 ::tcltest::testC
02e0: 6f 6e 73 74 72 61 69 6e 74 73 28 6f 70 65 6e 73 onstraints(opens
02f0: 73 6c 29 20 30 0a 0a 74 65 73 74 20 63 69 70 68 sl) 0..test ciph
0300: 65 72 73 2d 31 2e 31 20 7b 54 6c 73 3a 3a 63 69 ers-1.1 {Tls::ci
0310: 70 68 65 72 73 20 66 6f 72 20 73 73 6c 33 7d 20 phers for ssl3}
0320: 7b 72 73 61 62 73 61 66 65 7d 20 7b 0a 20 20 20 {rsabsafe} {.
0330: 20 23 20 54 68 69 73 20 77 69 6c 6c 20 66 61 69 # This will fai
0340: 6c 20 69 66 20 79 6f 75 20 63 6f 6d 70 69 6c 65 l if you compile
0350: 64 20 61 67 61 69 6e 73 74 20 4f 70 65 6e 53 53 d against OpenSS
0360: 4c 2e 0a 20 20 20 20 23 20 43 68 61 6e 67 65 20 L.. # Change
0370: 74 68 65 20 63 6f 6e 73 74 72 61 69 6e 74 20 73 the constraint s
0380: 65 74 74 69 6e 67 20 61 62 6f 76 65 2e 0a 20 20 etting above..
0390: 20 20 73 65 74 20 72 65 73 75 6c 74 20 5b 6a 6f set result [jo
03a0: 69 6e 20 5b 65 76 61 6c 20 74 6c 73 3a 3a 63 69 in [eval tls::ci
03b0: 70 68 65 72 73 20 73 73 6c 33 5d 20 5c 6e 20 5d phers ssl3] \n ]
03c0: 0a 7d 20 7b 45 44 48 2d 44 53 53 2d 52 43 34 2d .} {EDH-DSS-RC4-
03d0: 53 48 41 0a 45 44 48 2d 52 53 41 2d 44 45 53 2d SHA.EDH-RSA-DES-
03e0: 43 42 43 33 2d 53 48 41 0a 45 44 48 2d 44 53 53 CBC3-SHA.EDH-DSS
03f0: 2d 44 45 53 2d 43 42 43 33 2d 53 48 41 0a 44 45 -DES-CBC3-SHA.DE
0400: 53 2d 43 42 43 33 2d 53 48 41 0a 52 43 34 2d 53 S-CBC3-SHA.RC4-S
0410: 48 41 0a 52 43 34 2d 4d 44 35 0a 45 44 48 2d 52 HA.RC4-MD5.EDH-R
0420: 53 41 2d 44 45 53 2d 43 42 43 2d 53 48 41 0a 45 SA-DES-CBC-SHA.E
0430: 44 48 2d 44 53 53 2d 44 45 53 2d 43 42 43 2d 53 DH-DSS-DES-CBC-S
0440: 48 41 0a 44 45 53 2d 43 42 43 2d 53 48 41 0a 45 HA.DES-CBC-SHA.E
0450: 58 50 2d 45 44 48 2d 44 53 53 2d 44 45 53 2d 35 XP-EDH-DSS-DES-5
0460: 36 2d 53 48 41 0a 45 58 50 2d 45 44 48 2d 44 53 6-SHA.EXP-EDH-DS
0470: 53 2d 52 43 34 2d 35 36 2d 53 48 41 0a 45 58 50 S-RC4-56-SHA.EXP
0480: 2d 44 45 53 2d 35 36 2d 53 48 41 0a 45 58 50 2d -DES-56-SHA.EXP-
0490: 52 43 34 2d 35 36 2d 53 48 41 0a 45 58 50 2d 45 RC4-56-SHA.EXP-E
04a0: 44 48 2d 52 53 41 2d 44 45 53 2d 43 42 43 2d 53 DH-RSA-DES-CBC-S
04b0: 48 41 0a 45 58 50 2d 45 44 48 2d 44 53 53 2d 44 HA.EXP-EDH-DSS-D
04c0: 45 53 2d 43 42 43 2d 53 48 41 0a 45 58 50 2d 44 ES-CBC-SHA.EXP-D
04d0: 45 53 2d 43 42 43 2d 53 48 41 0a 45 58 50 2d 52 ES-CBC-SHA.EXP-R
04e0: 43 32 2d 43 42 43 2d 4d 44 35 0a 45 58 50 2d 52 C2-CBC-MD5.EXP-R
04f0: 43 34 2d 4d 44 35 7d 0a 0a 74 65 73 74 20 63 69 C4-MD5}..test ci
0500: 70 68 65 72 73 2d 31 2e 32 20 7b 54 6c 73 3a 3a phers-1.2 {Tls::
0510: 63 69 70 68 65 72 73 20 66 6f 72 20 74 6c 73 31 ciphers for tls1
0520: 7d 20 7b 72 73 61 62 73 61 66 65 7d 20 7b 0a 20 } {rsabsafe} {.
0530: 20 20 20 23 20 54 68 69 73 20 77 69 6c 6c 20 66 # This will f
0540: 61 69 6c 20 69 66 20 79 6f 75 20 63 6f 6d 70 69 ail if you compi
0550: 6c 65 64 20 61 67 61 69 6e 73 74 20 4f 70 65 6e led against Open
0560: 53 53 4c 2e 0a 20 20 20 20 23 20 43 68 61 6e 67 SSL.. # Chang
0570: 65 20 74 68 65 20 63 6f 6e 73 74 72 61 69 6e 74 e the constraint
0580: 20 73 65 74 74 69 6e 67 20 61 62 6f 76 65 2e 0a setting above..
0590: 20 20 20 20 73 65 74 20 72 65 73 75 6c 74 20 5b set result [
05a0: 6a 6f 69 6e 20 5b 65 76 61 6c 20 74 6c 73 3a 3a join [eval tls::
05b0: 63 69 70 68 65 72 73 20 74 6c 73 31 5d 20 5c 6e ciphers tls1] \n
05c0: 20 5d 0a 7d 20 7b 45 44 48 2d 44 53 53 2d 52 43 ].} {EDH-DSS-RC
05d0: 34 2d 53 48 41 0a 45 44 48 2d 52 53 41 2d 44 45 4-SHA.EDH-RSA-DE
05e0: 53 2d 43 42 43 33 2d 53 48 41 0a 45 44 48 2d 44 S-CBC3-SHA.EDH-D
05f0: 53 53 2d 44 45 53 2d 43 42 43 33 2d 53 48 41 0a SS-DES-CBC3-SHA.
0600: 44 45 53 2d 43 42 43 33 2d 53 48 41 0a 52 43 34 DES-CBC3-SHA.RC4
0610: 2d 53 48 41 0a 52 43 34 2d 4d 44 35 0a 45 44 48 -SHA.RC4-MD5.EDH
0620: 2d 52 53 41 2d 44 45 53 2d 43 42 43 2d 53 48 41 -RSA-DES-CBC-SHA
0630: 0a 45 44 48 2d 44 53 53 2d 44 45 53 2d 43 42 43 .EDH-DSS-DES-CBC
0640: 2d 53 48 41 0a 44 45 53 2d 43 42 43 2d 53 48 41 -SHA.DES-CBC-SHA
0650: 0a 45 58 50 2d 45 44 48 2d 44 53 53 2d 44 45 53 .EXP-EDH-DSS-DES
0660: 2d 35 36 2d 53 48 41 0a 45 58 50 2d 45 44 48 2d -56-SHA.EXP-EDH-
0670: 44 53 53 2d 52 43 34 2d 35 36 2d 53 48 41 0a 45 DSS-RC4-56-SHA.E
0680: 58 50 2d 44 45 53 2d 35 36 2d 53 48 41 0a 45 58 XP-DES-56-SHA.EX
0690: 50 2d 52 43 34 2d 35 36 2d 53 48 41 0a 45 58 50 P-RC4-56-SHA.EXP
06a0: 2d 45 44 48 2d 52 53 41 2d 44 45 53 2d 43 42 43 -EDH-RSA-DES-CBC
06b0: 2d 53 48 41 0a 45 58 50 2d 45 44 48 2d 44 53 53 -SHA.EXP-EDH-DSS
06c0: 2d 44 45 53 2d 43 42 43 2d 53 48 41 0a 45 58 50 -DES-CBC-SHA.EXP
06d0: 2d 44 45 53 2d 43 42 43 2d 53 48 41 0a 45 58 50 -DES-CBC-SHA.EXP
06e0: 2d 52 43 32 2d 43 42 43 2d 4d 44 35 0a 45 58 50 -RC2-CBC-MD5.EXP
06f0: 2d 52 43 34 2d 4d 44 35 7d 0a 0a 74 65 73 74 20 -RC4-MD5}..test
0700: 63 69 70 68 65 72 73 2d 31 2e 33 20 7b 54 6c 73 ciphers-1.3 {Tls
0710: 3a 3a 63 69 70 68 65 72 73 20 66 6f 72 20 73 73 ::ciphers for ss
0720: 6c 33 7d 20 7b 6f 70 65 6e 73 73 6c 7d 20 7b 0a l3} {openssl} {.
0730: 20 20 20 20 23 20 54 68 69 73 20 77 69 6c 6c 20 # This will
0740: 66 61 69 6c 20 69 66 20 79 6f 75 20 63 6f 6d 70 fail if you comp
0750: 69 6c 65 64 20 61 67 61 69 6e 73 74 20 52 53 41 iled against RSA
0760: 20 62 73 61 66 65 2e 0a 20 20 20 20 23 20 43 68 bsafe.. # Ch
0770: 61 6e 67 65 20 74 68 65 20 63 6f 6e 73 74 72 61 ange the constra
0780: 69 6e 74 20 73 65 74 74 69 6e 67 20 61 62 6f 76 int setting abov
0790: 65 2e 0a 20 20 20 20 73 65 74 20 72 65 73 75 6c e.. set resul
07a0: 74 20 5b 6a 6f 69 6e 20 5b 65 76 61 6c 20 74 6c t [join [eval tl
07b0: 73 3a 3a 63 69 70 68 65 72 73 20 73 73 6c 33 5d s::ciphers ssl3]
07c0: 20 5c 6e 20 5d 0a 7d 20 7b 45 44 48 2d 52 53 41 \n ].} {EDH-RSA
07d0: 2d 44 45 53 2d 43 42 43 33 2d 53 48 41 0a 45 44 -DES-CBC3-SHA.ED
07e0: 48 2d 44 53 53 2d 44 45 53 2d 43 42 43 33 2d 53 H-DSS-DES-CBC3-S
07f0: 48 41 0a 44 45 53 2d 43 42 43 33 2d 53 48 41 0a HA.DES-CBC3-SHA.
0800: 52 43 34 2d 53 48 41 0a 52 43 34 2d 4d 44 35 0a RC4-SHA.RC4-MD5.
0810: 45 44 48 2d 52 53 41 2d 44 45 53 2d 43 42 43 2d EDH-RSA-DES-CBC-
0820: 53 48 41 0a 45 44 48 2d 44 53 53 2d 44 45 53 2d SHA.EDH-DSS-DES-
0830: 43 42 43 2d 53 48 41 0a 44 45 53 2d 43 42 43 2d CBC-SHA.DES-CBC-
0840: 53 48 41 0a 45 58 50 2d 45 44 48 2d 52 53 41 2d SHA.EXP-EDH-RSA-
0850: 44 45 53 2d 43 42 43 2d 53 48 41 0a 45 58 50 2d DES-CBC-SHA.EXP-
0860: 45 44 48 2d 44 53 53 2d 44 45 53 2d 43 42 43 2d EDH-DSS-DES-CBC-
0870: 53 48 41 0a 45 58 50 2d 44 45 53 2d 43 42 43 2d SHA.EXP-DES-CBC-
0880: 53 48 41 0a 45 58 50 2d 52 43 32 2d 43 42 43 2d SHA.EXP-RC2-CBC-
0890: 4d 44 35 0a 45 58 50 2d 52 43 34 2d 4d 44 35 7d MD5.EXP-RC4-MD5}
08a0: 0a 0a 23 20 54 68 69 73 20 76 65 72 73 69 6f 6e ..# This version
08b0: 20 6f 66 20 74 68 65 20 74 65 73 74 20 69 73 20 of the test is
08c0: 63 6f 72 72 65 63 74 20 66 6f 72 20 4f 70 65 6e correct for Open
08d0: 53 53 4c 20 6f 6e 6c 79 2e 0a 23 20 41 6e 20 65 SSL only..# An e
08e0: 71 75 69 76 61 6c 65 6e 74 20 74 65 73 74 20 66 quivalent test f
08f0: 6f 72 20 74 68 65 20 52 53 41 20 42 53 41 46 45 or the RSA BSAFE
0900: 20 53 53 4c 2d 43 20 69 73 20 65 61 72 6c 69 65 SSL-C is earlie
0910: 72 20 69 6e 20 74 68 69 73 20 66 69 6c 65 2e 0a r in this file..
0920: 0a 74 65 73 74 20 63 69 70 68 65 72 73 2d 31 2e .test ciphers-1.
0930: 34 20 7b 54 6c 73 3a 3a 63 69 70 68 65 72 73 20 4 {Tls::ciphers
0940: 66 6f 72 20 74 6c 73 31 7d 20 7b 6f 70 65 6e 73 for tls1} {opens
0950: 73 6c 7d 20 7b 0a 20 20 20 20 23 20 54 68 69 73 sl} {. # This
0960: 20 77 69 6c 6c 20 66 61 69 6c 20 69 66 20 79 6f will fail if yo
0970: 75 20 63 6f 6d 70 69 6c 65 64 20 61 67 61 69 6e u compiled again
0980: 73 74 20 52 53 41 20 62 73 61 66 65 2e 0a 20 20 st RSA bsafe..
0990: 20 20 23 20 43 68 61 6e 67 65 20 74 68 65 20 63 # Change the c
09a0: 6f 6e 73 74 72 61 69 6e 74 20 73 65 74 74 69 6e onstraint settin
09b0: 67 20 69 6e 20 61 6c 6c 2e 74 63 6c 0a 20 20 20 g in all.tcl.
09c0: 20 73 65 74 20 72 65 73 75 6c 74 20 5b 6a 6f 69 set result [joi
09d0: 6e 20 5b 65 76 61 6c 20 74 6c 73 3a 3a 63 69 70 n [eval tls::cip
09e0: 68 65 72 73 20 74 6c 73 31 5d 20 5c 6e 20 5d 0a hers tls1] \n ].
09f0: 7d 20 7b 45 44 48 2d 52 53 41 2d 44 45 53 2d 43 } {EDH-RSA-DES-C
0a00: 42 43 33 2d 53 48 41 0a 45 44 48 2d 44 53 53 2d BC3-SHA.EDH-DSS-
0a10: 44 45 53 2d 43 42 43 33 2d 53 48 41 0a 44 45 53 DES-CBC3-SHA.DES
0a20: 2d 43 42 43 33 2d 53 48 41 0a 52 43 34 2d 53 48 -CBC3-SHA.RC4-SH
0a30: 41 0a 52 43 34 2d 4d 44 35 0a 45 44 48 2d 52 53 A.RC4-MD5.EDH-RS
0a40: 41 2d 44 45 53 2d 43 42 43 2d 53 48 41 0a 45 44 A-DES-CBC-SHA.ED
0a50: 48 2d 44 53 53 2d 44 45 53 2d 43 42 43 2d 53 48 H-DSS-DES-CBC-SH
0a60: 41 0a 44 45 53 2d 43 42 43 2d 53 48 41 0a 45 58 A.DES-CBC-SHA.EX
0a70: 50 2d 45 44 48 2d 52 53 41 2d 44 45 53 2d 43 42 P-EDH-RSA-DES-CB
0a80: 43 2d 53 48 41 0a 45 58 50 2d 45 44 48 2d 44 53 C-SHA.EXP-EDH-DS
0a90: 53 2d 44 45 53 2d 43 42 43 2d 53 48 41 0a 45 58 S-DES-CBC-SHA.EX
0aa0: 50 2d 44 45 53 2d 43 42 43 2d 53 48 41 0a 45 58 P-DES-CBC-SHA.EX
0ab0: 50 2d 52 43 32 2d 43 42 43 2d 4d 44 35 0a 45 58 P-RC2-CBC-MD5.EX
0ac0: 50 2d 52 43 34 2d 4d 44 35 7d 0a 0a 0a 0a 23 20 P-RC4-MD5}....#
0ad0: 63 6c 65 61 6e 75 70 0a 3a 3a 74 63 6c 74 65 73 cleanup.::tcltes
0ae0: 74 3a 3a 63 6c 65 61 6e 75 70 54 65 73 74 73 0a t::cleanupTests.
0af0: 72 65 74 75 72 6e 0a return.