Artifact
fa6ff50353aca406fdf43aec88319413027292f511f6374235342dc47fe999b1:
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: 64 69 67 65 73 74 2e 63 73 76 0a 0a 23 20 4c 6f digest.csv..# Lo
0030: 61 64 20 54 63 6c 20 54 65 73 74 20 70 61 63 6b ad Tcl Test pack
0040: 61 67 65 0a 69 66 20 7b 5b 6c 73 65 61 72 63 68 age.if {[lsearch
0050: 20 5b 6e 61 6d 65 73 70 61 63 65 20 63 68 69 6c [namespace chil
0060: 64 72 65 6e 5d 20 3a 3a 74 63 6c 74 65 73 74 5d dren] ::tcltest]
0070: 20 3d 3d 20 2d 31 7d 20 7b 0a 09 70 61 63 6b 61 == -1} {..packa
0080: 67 65 20 72 65 71 75 69 72 65 20 74 63 6c 74 65 ge require tclte
0090: 73 74 0a 09 6e 61 6d 65 73 70 61 63 65 20 69 6d st..namespace im
00a0: 70 6f 72 74 20 3a 3a 74 63 6c 74 65 73 74 3a 3a port ::tcltest::
00b0: 2a 0a 7d 0a 0a 73 65 74 20 61 75 74 6f 5f 70 61 *.}..set auto_pa
00c0: 74 68 20 5b 63 6f 6e 63 61 74 20 5b 6c 69 73 74 th [concat [list
00d0: 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 5b [file dirname [
00e0: 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 5b 69 6e file dirname [in
00f0: 66 6f 20 73 63 72 69 70 74 5d 5d 5d 5d 20 24 61 fo script]]]] $a
0100: 75 74 6f 5f 70 61 74 68 5d 0a 0a 70 61 63 6b 61 uto_path]..packa
0110: 67 65 20 72 65 71 75 69 72 65 20 74 6c 73 0a 0a ge require tls..
0120: 23 20 43 6f 6e 73 74 72 61 69 6e 74 73 0a 73 6f # Constraints.so
0130: 75 72 63 65 20 63 6f 6d 6d 6f 6e 2e 74 63 6c 0a urce common.tcl.
0140: 0a 23 20 48 65 6c 70 65 72 20 66 75 6e 63 74 69 .# Helper functi
0150: 6f 6e 73 20 2d 20 53 65 65 20 63 6f 6d 6d 6f 6e ons - See common
0160: 2e 74 63 6c 0a 70 72 6f 63 20 64 69 67 65 73 74 .tcl.proc digest
0170: 5f 72 65 61 64 5f 63 68 61 6e 20 7b 63 6d 64 20 _read_chan {cmd
0180: 66 69 6c 65 6e 61 6d 65 20 61 72 67 73 7d 20 7b filename args} {
0190: 3b 73 65 74 20 63 68 20 5b 6f 70 65 6e 20 24 66 ;set ch [open $f
01a0: 69 6c 65 6e 61 6d 65 20 72 62 5d 3b 73 65 74 20 ilename rb];set
01b0: 62 73 69 7a 65 20 5b 66 63 6f 6e 66 69 67 75 72 bsize [fconfigur
01c0: 65 20 24 63 68 20 2d 62 75 66 66 65 72 73 69 7a e $ch -buffersiz
01d0: 65 5d 3b 73 65 74 20 6e 65 77 20 5b 24 63 6d 64 e];set new [$cmd
01e0: 20 7b 2a 7d 24 61 72 67 73 20 2d 63 68 61 6e 20 {*}$args -chan
01f0: 24 63 68 5d 3b 77 68 69 6c 65 20 7b 21 5b 65 6f $ch];while {![eo
0200: 66 20 24 6e 65 77 5d 7d 20 7b 73 65 74 20 6d 64 f $new]} {set md
0210: 20 5b 72 65 61 64 20 24 6e 65 77 20 24 62 73 69 [read $new $bsi
0220: 7a 65 5d 7d 3b 63 6c 6f 73 65 20 24 6e 65 77 3b ze]};close $new;
0230: 72 65 74 75 72 6e 20 24 6d 64 7d 0a 70 72 6f 63 return $md}.proc
0240: 20 64 69 67 65 73 74 5f 77 72 69 74 65 5f 63 68 digest_write_ch
0250: 61 6e 20 7b 63 6d 64 20 66 69 6c 65 6e 61 6d 65 an {cmd filename
0260: 20 64 61 74 61 20 61 72 67 73 7d 20 7b 3b 73 65 data args} {;se
0270: 74 20 63 68 20 5b 6f 70 65 6e 20 24 66 69 6c 65 t ch [open $file
0280: 6e 61 6d 65 20 77 62 5d 3b 73 65 74 20 6e 65 77 name wb];set new
0290: 20 5b 24 63 6d 64 20 7b 2a 7d 24 61 72 67 73 20 [$cmd {*}$args
02a0: 2d 63 68 61 6e 20 24 63 68 5d 3b 70 75 74 73 20 -chan $ch];puts
02b0: 2d 6e 6f 6e 65 77 6c 69 6e 65 20 24 6e 65 77 20 -nonewline $new
02c0: 24 64 61 74 61 3b 66 6c 75 73 68 20 24 6e 65 77 $data;flush $new
02d0: 3b 63 6c 6f 73 65 20 24 6e 65 77 3b 73 65 74 20 ;close $new;set
02e0: 63 68 20 5b 6f 70 65 6e 20 24 66 69 6c 65 6e 61 ch [open $filena
02f0: 6d 65 20 72 62 5d 3b 73 65 74 20 6d 64 20 5b 72 me rb];set md [r
0300: 65 61 64 20 24 63 68 5d 3b 63 6c 6f 73 65 20 24 ead $ch];close $
0310: 63 68 3b 72 65 74 75 72 6e 20 24 6d 64 7d 0a 70 ch;return $md}.p
0320: 72 6f 63 20 64 69 67 65 73 74 5f 61 63 63 75 6d roc digest_accum
0330: 75 6c 61 74 65 20 7b 73 74 72 69 6e 67 20 61 72 ulate {string ar
0340: 67 73 7d 20 7b 3b 73 65 74 20 63 6d 64 20 5b 7b gs} {;set cmd [{
0350: 2a 7d 24 61 72 67 73 20 2d 63 6f 6d 6d 61 6e 64 *}$args -command
0360: 20 64 63 6d 64 5d 3b 20 24 63 6d 64 20 75 70 64 dcmd]; $cmd upd
0370: 61 74 65 20 5b 73 74 72 69 6e 67 20 72 61 6e 67 ate [string rang
0380: 65 20 24 73 74 72 69 6e 67 20 30 20 32 30 5d 3b e $string 0 20];
0390: 24 63 6d 64 20 75 70 64 61 74 65 20 5b 73 74 72 $cmd update [str
03a0: 69 6e 67 20 72 61 6e 67 65 20 24 73 74 72 69 6e ing range $strin
03b0: 67 20 32 31 20 65 6e 64 5d 3b 72 65 74 75 72 6e g 21 end];return
03c0: 20 5b 24 63 6d 64 20 66 69 6e 61 6c 69 7a 65 5d [$cmd finalize]
03d0: 7d 0a 0a 73 65 74 20 74 65 73 74 5f 64 61 74 61 }..set test_data
03e0: 20 22 45 78 61 6d 70 6c 65 20 73 74 72 69 6e 67 "Example string
03f0: 20 66 6f 72 20 6d 65 73 73 61 67 65 20 64 69 67 for message dig
0400: 65 73 74 20 74 65 73 74 73 2e 5c 6e 22 0a 73 65 est tests.\n".se
0410: 74 20 74 65 73 74 5f 66 69 6c 65 20 22 6d 64 5f t test_file "md_
0420: 64 61 74 61 2e 64 61 74 22 0a 73 65 74 20 74 65 data.dat".set te
0430: 73 74 5f 61 6c 74 5f 66 69 6c 65 20 22 6d 64 5f st_alt_file "md_
0440: 61 6c 74 5f 64 61 74 61 2e 64 61 74 22 0a 73 65 alt_data.dat".se
0450: 74 20 74 65 73 74 5f 6b 65 79 20 22 45 78 61 6d t test_key "Exam
0460: 70 6c 65 20 6b 65 79 22 0a 3a 3a 74 63 6c 74 65 ple key".::tclte
0470: 73 74 3a 3a 6d 61 6b 65 46 69 6c 65 20 24 74 65 st::makeFile $te
0480: 73 74 5f 64 61 74 61 20 24 74 65 73 74 5f 66 69 st_data $test_fi
0490: 6c 65 0a 0a 23 20 54 65 73 74 20 73 68 6f 72 74 le..# Test short
04a0: 2d 63 75 74 20 63 6f 6d 6d 61 6e 64 73 0a 0a 0a -cut commands...
04b0: 74 65 73 74 20 53 68 6f 72 74 63 75 74 5f 43 6d test Shortcut_Cm
04c0: 64 73 2d 31 2e 31 20 7b 6d 64 34 20 63 6d 64 7d ds-1.1 {md4 cmd}
04d0: 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a -body {..::tls:
04e0: 3a 6d 64 34 20 24 74 65 73 74 5f 64 61 74 61 0a :md4 $test_data.
04f0: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 37 } -result {7
0500: 39 33 33 39 39 66 37 39 32 65 63 61 32 37 35 32 93399f792eca2752
0510: 63 36 61 66 33 32 33 34 62 61 37 30 38 35 38 7d c6af3234ba70858}
0520: 0a 0a 74 65 73 74 20 53 68 6f 72 74 63 75 74 5f ..test Shortcut_
0530: 43 6d 64 73 2d 31 2e 32 20 7b 6d 64 35 20 63 6d Cmds-1.2 {md5 cm
0540: 64 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c d} -body {..::tl
0550: 73 3a 3a 6d 64 35 20 24 74 65 73 74 5f 64 61 74 s::md5 $test_dat
0560: 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 a. } -result
0570: 7b 39 36 32 62 66 30 38 30 33 62 34 32 33 32 65 {962bf0803b4232e
0580: 63 32 33 62 64 38 34 32 37 62 62 39 34 65 61 30 c23bd8427bb94ea0
0590: 39 7d 0a 0a 74 65 73 74 20 53 68 6f 72 74 63 75 9}..test Shortcu
05a0: 74 5f 43 6d 64 73 2d 31 2e 33 20 7b 73 68 61 31 t_Cmds-1.3 {sha1
05b0: 20 63 6d 64 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a cmd} -body {..:
05c0: 3a 74 6c 73 3a 3a 73 68 61 31 20 24 74 65 73 74 :tls::sha1 $test
05d0: 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 _data. } -res
05e0: 75 6c 74 20 7b 34 66 65 30 33 62 37 66 32 35 36 ult {4fe03b7f256
05f0: 38 35 35 31 64 66 61 66 62 39 38 63 61 36 30 30 8551dfafb98ca600
0600: 34 65 36 35 63 34 62 37 31 61 61 37 64 7d 0a 0a 4e65c4b71aa7d}..
0610: 74 65 73 74 20 53 68 6f 72 74 63 75 74 5f 43 6d test Shortcut_Cm
0620: 64 73 2d 31 2e 34 20 7b 73 68 61 32 35 36 20 63 ds-1.4 {sha256 c
0630: 6d 64 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 md} -body {..::t
0640: 6c 73 3a 3a 73 68 61 32 35 36 20 24 74 65 73 74 ls::sha256 $test
0650: 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 _data. } -res
0660: 75 6c 74 20 7b 39 64 33 35 37 38 66 63 31 33 38 ult {9d3578fc138
0670: 32 30 35 63 66 30 65 65 34 62 34 63 65 66 33 35 205cf0ee4b4cef35
0680: 66 65 31 30 31 62 62 34 65 63 61 63 37 62 31 36 fe101bb4ecac7b16
0690: 31 34 63 31 38 65 36 66 61 34 38 62 35 63 37 66 14c18e6fa48b5c7f
06a0: 39 35 65 31 39 7d 0a 0a 74 65 73 74 20 53 68 6f 95e19}..test Sho
06b0: 72 74 63 75 74 5f 43 6d 64 73 2d 31 2e 35 20 7b rtcut_Cmds-1.5 {
06c0: 73 68 61 35 31 32 20 63 6d 64 7d 20 2d 62 6f 64 sha512 cmd} -bod
06d0: 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 73 68 61 35 y {..::tls::sha5
06e0: 31 32 20 24 74 65 73 74 5f 64 61 74 61 0a 20 20 12 $test_data.
06f0: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 64 31 37 } -result {d17
0700: 38 65 37 35 39 64 63 35 39 31 32 37 30 37 31 35 8e759dc591270715
0710: 38 38 64 32 66 61 64 31 37 33 63 30 36 32 33 38 88d2fad173c06238
0720: 64 38 37 65 38 30 30 61 36 34 30 33 63 30 61 33 d87e800a6403c0a3
0730: 30 64 61 61 34 66 61 61 66 30 35 64 30 65 37 63 0daa4faaf05d0e7c
0740: 65 30 34 39 31 36 61 66 61 61 36 61 35 38 61 33 e04916afaa6a58a3
0750: 30 63 62 65 62 35 39 37 64 61 63 62 30 31 63 36 0cbeb597dacb01c6
0760: 32 66 39 66 62 39 64 38 39 62 61 62 39 64 61 36 2f9fb9d89bab9da6
0770: 33 30 63 36 39 39 65 34 38 31 36 66 31 7d 0a 0a 30c699e4816f1}..
0780: 0a 23 20 54 65 73 74 20 4d 44 20 63 6f 6d 6d 61 .# Test MD comma
0790: 6e 64 20 66 6f 72 20 72 65 61 64 20 63 68 61 6e nd for read chan
07a0: 6e 65 6c 0a 0a 0a 74 65 73 74 20 4d 44 5f 43 68 nel...test MD_Ch
07b0: 61 6e 5f 52 65 61 64 2d 32 2e 31 20 7b 6d 64 34 an_Read-2.1 {md4
07c0: 7d 20 2d 62 6f 64 79 20 7b 0a 09 64 69 67 65 73 } -body {..diges
07d0: 74 5f 72 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c t_read_chan ::tl
07e0: 73 3a 3a 6d 64 20 24 74 65 73 74 5f 66 69 6c 65 s::md $test_file
07f0: 20 2d 64 69 67 65 73 74 20 6d 64 34 0a 20 20 20 -digest md4.
0800: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 37 39 33 33 } -result {7933
0810: 39 39 66 37 39 32 65 63 61 32 37 35 32 63 36 61 99f792eca2752c6a
0820: 66 33 32 33 34 62 61 37 30 38 35 38 7d 0a 0a 74 f3234ba70858}..t
0830: 65 73 74 20 4d 44 5f 43 68 61 6e 5f 52 65 61 64 est MD_Chan_Read
0840: 2d 32 2e 32 20 7b 6d 64 35 7d 20 2d 62 6f 64 79 -2.2 {md5} -body
0850: 20 7b 0a 09 64 69 67 65 73 74 5f 72 65 61 64 5f {..digest_read_
0860: 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 chan ::tls::md $
0870: 74 65 73 74 5f 66 69 6c 65 20 2d 64 69 67 65 73 test_file -diges
0880: 74 20 6d 64 35 0a 20 20 20 20 7d 20 2d 72 65 73 t md5. } -res
0890: 75 6c 74 20 7b 39 36 32 62 66 30 38 30 33 62 34 ult {962bf0803b4
08a0: 32 33 32 65 63 32 33 62 64 38 34 32 37 62 62 39 232ec23bd8427bb9
08b0: 34 65 61 30 39 7d 0a 0a 74 65 73 74 20 4d 44 5f 4ea09}..test MD_
08c0: 43 68 61 6e 5f 52 65 61 64 2d 32 2e 33 20 7b 73 Chan_Read-2.3 {s
08d0: 68 61 31 7d 20 2d 62 6f 64 79 20 7b 0a 09 64 69 ha1} -body {..di
08e0: 67 65 73 74 5f 72 65 61 64 5f 63 68 61 6e 20 3a gest_read_chan :
08f0: 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74 5f 66 :tls::md $test_f
0900: 69 6c 65 20 2d 64 69 67 65 73 74 20 73 68 61 31 ile -digest sha1
0910: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
0920: 34 66 65 30 33 62 37 66 32 35 36 38 35 35 31 64 4fe03b7f2568551d
0930: 66 61 66 62 39 38 63 61 36 30 30 34 65 36 35 63 fafb98ca6004e65c
0940: 34 62 37 31 61 61 37 64 7d 0a 0a 74 65 73 74 20 4b71aa7d}..test
0950: 4d 44 5f 43 68 61 6e 5f 52 65 61 64 2d 32 2e 34 MD_Chan_Read-2.4
0960: 20 7b 73 68 61 32 35 36 7d 20 2d 62 6f 64 79 20 {sha256} -body
0970: 7b 0a 09 64 69 67 65 73 74 5f 72 65 61 64 5f 63 {..digest_read_c
0980: 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 han ::tls::md $t
0990: 65 73 74 5f 66 69 6c 65 20 2d 64 69 67 65 73 74 est_file -digest
09a0: 20 73 68 61 32 35 36 0a 20 20 20 20 7d 20 2d 72 sha256. } -r
09b0: 65 73 75 6c 74 20 7b 39 64 33 35 37 38 66 63 31 esult {9d3578fc1
09c0: 33 38 32 30 35 63 66 30 65 65 34 62 34 63 65 66 38205cf0ee4b4cef
09d0: 33 35 66 65 31 30 31 62 62 34 65 63 61 63 37 62 35fe101bb4ecac7b
09e0: 31 36 31 34 63 31 38 65 36 66 61 34 38 62 35 63 1614c18e6fa48b5c
09f0: 37 66 39 35 65 31 39 7d 0a 0a 74 65 73 74 20 4d 7f95e19}..test M
0a00: 44 5f 43 68 61 6e 5f 52 65 61 64 2d 32 2e 35 20 D_Chan_Read-2.5
0a10: 7b 73 68 61 35 31 32 7d 20 2d 62 6f 64 79 20 7b {sha512} -body {
0a20: 0a 09 64 69 67 65 73 74 5f 72 65 61 64 5f 63 68 ..digest_read_ch
0a30: 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 an ::tls::md $te
0a40: 73 74 5f 66 69 6c 65 20 2d 64 69 67 65 73 74 20 st_file -digest
0a50: 73 68 61 35 31 32 0a 20 20 20 20 7d 20 2d 72 65 sha512. } -re
0a60: 73 75 6c 74 20 7b 64 31 37 38 65 37 35 39 64 63 sult {d178e759dc
0a70: 35 39 31 32 37 30 37 31 35 38 38 64 32 66 61 64 59127071588d2fad
0a80: 31 37 33 63 30 36 32 33 38 64 38 37 65 38 30 30 173c06238d87e800
0a90: 61 36 34 30 33 63 30 61 33 30 64 61 61 34 66 61 a6403c0a30daa4fa
0aa0: 61 66 30 35 64 30 65 37 63 65 30 34 39 31 36 61 af05d0e7ce04916a
0ab0: 66 61 61 36 61 35 38 61 33 30 63 62 65 62 35 39 faa6a58a30cbeb59
0ac0: 37 64 61 63 62 30 31 63 36 32 66 39 66 62 39 64 7dacb01c62f9fb9d
0ad0: 38 39 62 61 62 39 64 61 36 33 30 63 36 39 39 65 89bab9da630c699e
0ae0: 34 38 31 36 66 31 7d 0a 0a 74 65 73 74 20 4d 44 4816f1}..test MD
0af0: 5f 43 68 61 6e 5f 52 65 61 64 2d 32 2e 36 20 7b _Chan_Read-2.6 {
0b00: 6d 64 35 20 62 69 6e 7d 20 2d 62 6f 64 79 20 7b md5 bin} -body {
0b10: 0a 09 62 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 ..binary encode
0b20: 68 65 78 20 5b 64 69 67 65 73 74 5f 72 65 61 64 hex [digest_read
0b30: 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 _chan ::tls::md
0b40: 24 74 65 73 74 5f 66 69 6c 65 20 2d 62 69 6e 20 $test_file -bin
0b50: 2d 64 69 67 65 73 74 20 6d 64 35 5d 0a 20 20 20 -digest md5].
0b60: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 39 36 32 62 } -result {962b
0b70: 66 30 38 30 33 62 34 32 33 32 65 63 32 33 62 64 f0803b4232ec23bd
0b80: 38 34 32 37 62 62 39 34 65 61 30 39 7d 0a 0a 74 8427bb94ea09}..t
0b90: 65 73 74 20 4d 44 5f 43 68 61 6e 5f 52 65 61 64 est MD_Chan_Read
0ba0: 2d 32 2e 37 20 7b 6d 64 35 20 68 65 78 7d 20 2d -2.7 {md5 hex} -
0bb0: 62 6f 64 79 20 7b 0a 09 64 69 67 65 73 74 5f 72 body {..digest_r
0bc0: 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a ead_chan ::tls::
0bd0: 6d 64 20 24 74 65 73 74 5f 66 69 6c 65 20 2d 68 md $test_file -h
0be0: 65 78 20 2d 64 69 67 65 73 74 20 6d 64 35 0a 20 ex -digest md5.
0bf0: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 39 36 } -result {96
0c00: 32 62 66 30 38 30 33 62 34 32 33 32 65 63 32 33 2bf0803b4232ec23
0c10: 62 64 38 34 32 37 62 62 39 34 65 61 30 39 7d 0a bd8427bb94ea09}.
0c20: 0a 23 20 54 65 73 74 20 4d 44 20 63 6f 6d 6d 61 .# Test MD comma
0c30: 6e 64 20 66 6f 72 20 77 72 69 74 65 20 63 68 61 nd for write cha
0c40: 6e 6e 65 6c 0a 0a 0a 74 65 73 74 20 4d 44 5f 43 nnel...test MD_C
0c50: 68 61 6e 5f 57 72 69 74 65 2d 33 2e 31 20 7b 6d han_Write-3.1 {m
0c60: 64 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 64 69 67 d4} -body {..dig
0c70: 65 73 74 5f 77 72 69 74 65 5f 63 68 61 6e 20 3a est_write_chan :
0c80: 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74 5f 61 :tls::md $test_a
0c90: 6c 74 5f 66 69 6c 65 20 24 74 65 73 74 5f 64 61 lt_file $test_da
0ca0: 74 61 20 2d 64 69 67 65 73 74 20 6d 64 34 0a 20 ta -digest md4.
0cb0: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 37 39 } -result {79
0cc0: 33 33 39 39 66 37 39 32 65 63 61 32 37 35 32 63 3399f792eca2752c
0cd0: 36 61 66 33 32 33 34 62 61 37 30 38 35 38 7d 0a 6af3234ba70858}.
0ce0: 0a 74 65 73 74 20 4d 44 5f 43 68 61 6e 5f 57 72 .test MD_Chan_Wr
0cf0: 69 74 65 2d 33 2e 32 20 7b 6d 64 35 7d 20 2d 62 ite-3.2 {md5} -b
0d00: 6f 64 79 20 7b 0a 09 64 69 67 65 73 74 5f 77 72 ody {..digest_wr
0d10: 69 74 65 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a ite_chan ::tls::
0d20: 6d 64 20 24 74 65 73 74 5f 61 6c 74 5f 66 69 6c md $test_alt_fil
0d30: 65 20 24 74 65 73 74 5f 64 61 74 61 20 2d 64 69 e $test_data -di
0d40: 67 65 73 74 20 6d 64 35 0a 20 20 20 20 7d 20 2d gest md5. } -
0d50: 72 65 73 75 6c 74 20 7b 39 36 32 62 66 30 38 30 result {962bf080
0d60: 33 62 34 32 33 32 65 63 32 33 62 64 38 34 32 37 3b4232ec23bd8427
0d70: 62 62 39 34 65 61 30 39 7d 0a 0a 74 65 73 74 20 bb94ea09}..test
0d80: 4d 44 5f 43 68 61 6e 5f 57 72 69 74 65 2d 33 2e MD_Chan_Write-3.
0d90: 33 20 7b 73 68 61 31 7d 20 2d 62 6f 64 79 20 7b 3 {sha1} -body {
0da0: 0a 09 64 69 67 65 73 74 5f 77 72 69 74 65 5f 63 ..digest_write_c
0db0: 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 han ::tls::md $t
0dc0: 65 73 74 5f 61 6c 74 5f 66 69 6c 65 20 24 74 65 est_alt_file $te
0dd0: 73 74 5f 64 61 74 61 20 2d 64 69 67 65 73 74 20 st_data -digest
0de0: 73 68 61 31 0a 20 20 20 20 7d 20 2d 72 65 73 75 sha1. } -resu
0df0: 6c 74 20 7b 34 66 65 30 33 62 37 66 32 35 36 38 lt {4fe03b7f2568
0e00: 35 35 31 64 66 61 66 62 39 38 63 61 36 30 30 34 551dfafb98ca6004
0e10: 65 36 35 63 34 62 37 31 61 61 37 64 7d 0a 0a 74 e65c4b71aa7d}..t
0e20: 65 73 74 20 4d 44 5f 43 68 61 6e 5f 57 72 69 74 est MD_Chan_Writ
0e30: 65 2d 33 2e 34 20 7b 73 68 61 32 35 36 7d 20 2d e-3.4 {sha256} -
0e40: 62 6f 64 79 20 7b 0a 09 64 69 67 65 73 74 5f 77 body {..digest_w
0e50: 72 69 74 65 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a rite_chan ::tls:
0e60: 3a 6d 64 20 24 74 65 73 74 5f 61 6c 74 5f 66 69 :md $test_alt_fi
0e70: 6c 65 20 24 74 65 73 74 5f 64 61 74 61 20 2d 64 le $test_data -d
0e80: 69 67 65 73 74 20 73 68 61 32 35 36 0a 20 20 20 igest sha256.
0e90: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 39 64 33 35 } -result {9d35
0ea0: 37 38 66 63 31 33 38 32 30 35 63 66 30 65 65 34 78fc138205cf0ee4
0eb0: 62 34 63 65 66 33 35 66 65 31 30 31 62 62 34 65 b4cef35fe101bb4e
0ec0: 63 61 63 37 62 31 36 31 34 63 31 38 65 36 66 61 cac7b1614c18e6fa
0ed0: 34 38 62 35 63 37 66 39 35 65 31 39 7d 0a 0a 74 48b5c7f95e19}..t
0ee0: 65 73 74 20 4d 44 5f 43 68 61 6e 5f 57 72 69 74 est MD_Chan_Writ
0ef0: 65 2d 33 2e 35 20 7b 73 68 61 35 31 32 7d 20 2d e-3.5 {sha512} -
0f00: 62 6f 64 79 20 7b 0a 09 64 69 67 65 73 74 5f 77 body {..digest_w
0f10: 72 69 74 65 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a rite_chan ::tls:
0f20: 3a 6d 64 20 24 74 65 73 74 5f 61 6c 74 5f 66 69 :md $test_alt_fi
0f30: 6c 65 20 24 74 65 73 74 5f 64 61 74 61 20 2d 64 le $test_data -d
0f40: 69 67 65 73 74 20 73 68 61 35 31 32 0a 20 20 20 igest sha512.
0f50: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 64 31 37 38 } -result {d178
0f60: 65 37 35 39 64 63 35 39 31 32 37 30 37 31 35 38 e759dc5912707158
0f70: 38 64 32 66 61 64 31 37 33 63 30 36 32 33 38 64 8d2fad173c06238d
0f80: 38 37 65 38 30 30 61 36 34 30 33 63 30 61 33 30 87e800a6403c0a30
0f90: 64 61 61 34 66 61 61 66 30 35 64 30 65 37 63 65 daa4faaf05d0e7ce
0fa0: 30 34 39 31 36 61 66 61 61 36 61 35 38 61 33 30 04916afaa6a58a30
0fb0: 63 62 65 62 35 39 37 64 61 63 62 30 31 63 36 32 cbeb597dacb01c62
0fc0: 66 39 66 62 39 64 38 39 62 61 62 39 64 61 36 33 f9fb9d89bab9da63
0fd0: 30 63 36 39 39 65 34 38 31 36 66 31 7d 0a 0a 74 0c699e4816f1}..t
0fe0: 65 73 74 20 4d 44 5f 43 68 61 6e 5f 57 72 69 74 est MD_Chan_Writ
0ff0: 65 2d 33 2e 36 20 7b 6d 64 35 20 62 69 6e 7d 20 e-3.6 {md5 bin}
1000: 2d 62 6f 64 79 20 7b 0a 09 62 69 6e 61 72 79 20 -body {..binary
1010: 65 6e 63 6f 64 65 20 68 65 78 20 5b 64 69 67 65 encode hex [dige
1020: 73 74 5f 77 72 69 74 65 5f 63 68 61 6e 20 3a 3a st_write_chan ::
1030: 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74 5f 61 6c tls::md $test_al
1040: 74 5f 66 69 6c 65 20 24 74 65 73 74 5f 64 61 74 t_file $test_dat
1050: 61 20 2d 62 69 6e 20 2d 64 69 67 65 73 74 20 6d a -bin -digest m
1060: 64 35 5d 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c d5]. } -resul
1070: 74 20 7b 39 36 32 62 66 30 38 30 33 62 34 32 33 t {962bf0803b423
1080: 32 65 63 32 33 62 64 38 34 32 37 62 62 39 34 65 2ec23bd8427bb94e
1090: 61 30 39 7d 0a 0a 74 65 73 74 20 4d 44 5f 43 68 a09}..test MD_Ch
10a0: 61 6e 5f 57 72 69 74 65 2d 33 2e 37 20 7b 6d 64 an_Write-3.7 {md
10b0: 35 20 68 65 78 7d 20 2d 62 6f 64 79 20 7b 0a 09 5 hex} -body {..
10c0: 64 69 67 65 73 74 5f 77 72 69 74 65 5f 63 68 61 digest_write_cha
10d0: 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73 n ::tls::md $tes
10e0: 74 5f 61 6c 74 5f 66 69 6c 65 20 24 74 65 73 74 t_alt_file $test
10f0: 5f 64 61 74 61 20 2d 68 65 78 20 2d 64 69 67 65 _data -hex -dige
1100: 73 74 20 6d 64 35 0a 20 20 20 20 7d 20 2d 72 65 st md5. } -re
1110: 73 75 6c 74 20 7b 39 36 32 62 66 30 38 30 33 62 sult {962bf0803b
1120: 34 32 33 32 65 63 32 33 62 64 38 34 32 37 62 62 4232ec23bd8427bb
1130: 39 34 65 61 30 39 7d 0a 0a 23 20 54 65 73 74 20 94ea09}..# Test
1140: 4d 44 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 6f MD command for o
1150: 62 6a 65 63 74 20 63 6f 6d 6d 61 6e 64 0a 0a 0a bject command...
1160: 74 65 73 74 20 4d 44 5f 43 6f 6d 6d 61 6e 64 2d test MD_Command-
1170: 34 2e 31 20 7b 6d 64 34 7d 20 2d 62 6f 64 79 20 4.1 {md4} -body
1180: 7b 0a 09 64 69 67 65 73 74 5f 61 63 63 75 6d 75 {..digest_accumu
1190: 6c 61 74 65 20 24 74 65 73 74 5f 64 61 74 61 20 late $test_data
11a0: 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 ::tls::md -diges
11b0: 74 20 6d 64 34 0a 20 20 20 20 7d 20 2d 72 65 73 t md4. } -res
11c0: 75 6c 74 20 7b 37 39 33 33 39 39 66 37 39 32 65 ult {793399f792e
11d0: 63 61 32 37 35 32 63 36 61 66 33 32 33 34 62 61 ca2752c6af3234ba
11e0: 37 30 38 35 38 7d 0a 0a 74 65 73 74 20 4d 44 5f 70858}..test MD_
11f0: 43 6f 6d 6d 61 6e 64 2d 34 2e 32 20 7b 6d 64 35 Command-4.2 {md5
1200: 7d 20 2d 62 6f 64 79 20 7b 0a 09 64 69 67 65 73 } -body {..diges
1210: 74 5f 61 63 63 75 6d 75 6c 61 74 65 20 24 74 65 t_accumulate $te
1220: 73 74 5f 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d st_data ::tls::m
1230: 64 20 2d 64 69 67 65 73 74 20 6d 64 35 0a 20 20 d -digest md5.
1240: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 39 36 32 } -result {962
1250: 62 66 30 38 30 33 62 34 32 33 32 65 63 32 33 62 bf0803b4232ec23b
1260: 64 38 34 32 37 62 62 39 34 65 61 30 39 7d 0a 0a d8427bb94ea09}..
1270: 74 65 73 74 20 4d 44 5f 43 6f 6d 6d 61 6e 64 2d test MD_Command-
1280: 34 2e 33 20 7b 73 68 61 31 7d 20 2d 62 6f 64 79 4.3 {sha1} -body
1290: 20 7b 0a 09 64 69 67 65 73 74 5f 61 63 63 75 6d {..digest_accum
12a0: 75 6c 61 74 65 20 24 74 65 73 74 5f 64 61 74 61 ulate $test_data
12b0: 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 ::tls::md -dige
12c0: 73 74 20 73 68 61 31 0a 20 20 20 20 7d 20 2d 72 st sha1. } -r
12d0: 65 73 75 6c 74 20 7b 34 66 65 30 33 62 37 66 32 esult {4fe03b7f2
12e0: 35 36 38 35 35 31 64 66 61 66 62 39 38 63 61 36 568551dfafb98ca6
12f0: 30 30 34 65 36 35 63 34 62 37 31 61 61 37 64 7d 004e65c4b71aa7d}
1300: 0a 0a 74 65 73 74 20 4d 44 5f 43 6f 6d 6d 61 6e ..test MD_Comman
1310: 64 2d 34 2e 34 20 7b 73 68 61 32 35 36 7d 20 2d d-4.4 {sha256} -
1320: 62 6f 64 79 20 7b 0a 09 64 69 67 65 73 74 5f 61 body {..digest_a
1330: 63 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f ccumulate $test_
1340: 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d data ::tls::md -
1350: 64 69 67 65 73 74 20 73 68 61 32 35 36 0a 20 20 digest sha256.
1360: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 39 64 33 } -result {9d3
1370: 35 37 38 66 63 31 33 38 32 30 35 63 66 30 65 65 578fc138205cf0ee
1380: 34 62 34 63 65 66 33 35 66 65 31 30 31 62 62 34 4b4cef35fe101bb4
1390: 65 63 61 63 37 62 31 36 31 34 63 31 38 65 36 66 ecac7b1614c18e6f
13a0: 61 34 38 62 35 63 37 66 39 35 65 31 39 7d 0a 0a a48b5c7f95e19}..
13b0: 74 65 73 74 20 4d 44 5f 43 6f 6d 6d 61 6e 64 2d test MD_Command-
13c0: 34 2e 35 20 7b 73 68 61 35 31 32 7d 20 2d 62 6f 4.5 {sha512} -bo
13d0: 64 79 20 7b 0a 09 64 69 67 65 73 74 5f 61 63 63 dy {..digest_acc
13e0: 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64 61 umulate $test_da
13f0: 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 ta ::tls::md -di
1400: 67 65 73 74 20 73 68 61 35 31 32 0a 20 20 20 20 gest sha512.
1410: 7d 20 2d 72 65 73 75 6c 74 20 7b 64 31 37 38 65 } -result {d178e
1420: 37 35 39 64 63 35 39 31 32 37 30 37 31 35 38 38 759dc59127071588
1430: 64 32 66 61 64 31 37 33 63 30 36 32 33 38 64 38 d2fad173c06238d8
1440: 37 65 38 30 30 61 36 34 30 33 63 30 61 33 30 64 7e800a6403c0a30d
1450: 61 61 34 66 61 61 66 30 35 64 30 65 37 63 65 30 aa4faaf05d0e7ce0
1460: 34 39 31 36 61 66 61 61 36 61 35 38 61 33 30 63 4916afaa6a58a30c
1470: 62 65 62 35 39 37 64 61 63 62 30 31 63 36 32 66 beb597dacb01c62f
1480: 39 66 62 39 64 38 39 62 61 62 39 64 61 36 33 30 9fb9d89bab9da630
1490: 63 36 39 39 65 34 38 31 36 66 31 7d 0a 0a 74 65 c699e4816f1}..te
14a0: 73 74 20 4d 44 5f 43 6f 6d 6d 61 6e 64 2d 34 2e st MD_Command-4.
14b0: 36 20 7b 6d 64 35 20 62 69 6e 7d 20 2d 62 6f 64 6 {md5 bin} -bod
14c0: 79 20 7b 0a 09 62 69 6e 61 72 79 20 65 6e 63 6f y {..binary enco
14d0: 64 65 20 68 65 78 20 5b 64 69 67 65 73 74 5f 61 de hex [digest_a
14e0: 63 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f ccumulate $test_
14f0: 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d data ::tls::md -
1500: 64 69 67 65 73 74 20 6d 64 35 20 2d 62 69 6e 5d digest md5 -bin]
1510: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
1520: 39 36 32 62 66 30 38 30 33 62 34 32 33 32 65 63 962bf0803b4232ec
1530: 32 33 62 64 38 34 32 37 62 62 39 34 65 61 30 39 23bd8427bb94ea09
1540: 7d 0a 0a 74 65 73 74 20 4d 44 5f 43 6f 6d 6d 61 }..test MD_Comma
1550: 6e 64 2d 34 2e 37 20 7b 6d 64 35 20 68 65 78 7d nd-4.7 {md5 hex}
1560: 20 2d 62 6f 64 79 20 7b 0a 09 64 69 67 65 73 74 -body {..digest
1570: 5f 61 63 63 75 6d 75 6c 61 74 65 20 24 74 65 73 _accumulate $tes
1580: 74 5f 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 t_data ::tls::md
1590: 20 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 68 65 -digest md5 -he
15a0: 78 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 x. } -result
15b0: 7b 39 36 32 62 66 30 38 30 33 62 34 32 33 32 65 {962bf0803b4232e
15c0: 63 32 33 62 64 38 34 32 37 62 62 39 34 65 61 30 c23bd8427bb94ea0
15d0: 39 7d 0a 0a 23 20 54 65 73 74 20 4d 44 20 63 6f 9}..# Test MD co
15e0: 6d 6d 61 6e 64 20 66 6f 72 20 64 61 74 61 20 73 mmand for data s
15f0: 68 6f 72 74 63 75 74 0a 0a 0a 74 65 73 74 20 4d hortcut...test M
1600: 44 5f 53 68 6f 72 74 63 75 74 2d 35 2e 31 20 7b D_Shortcut-5.1 {
1610: 6d 64 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a md4} -body {..::
1620: 74 6c 73 3a 3a 6d 64 20 6d 64 34 20 24 74 65 73 tls::md md4 $tes
1630: 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 t_data. } -re
1640: 73 75 6c 74 20 7b 37 39 33 33 39 39 66 37 39 32 sult {793399f792
1650: 65 63 61 32 37 35 32 63 36 61 66 33 32 33 34 62 eca2752c6af3234b
1660: 61 37 30 38 35 38 7d 0a 0a 74 65 73 74 20 4d 44 a70858}..test MD
1670: 5f 53 68 6f 72 74 63 75 74 2d 35 2e 32 20 7b 6d _Shortcut-5.2 {m
1680: 64 35 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 d5} -body {..::t
1690: 6c 73 3a 3a 6d 64 20 6d 64 35 20 24 74 65 73 74 ls::md md5 $test
16a0: 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 _data. } -res
16b0: 75 6c 74 20 7b 39 36 32 62 66 30 38 30 33 62 34 ult {962bf0803b4
16c0: 32 33 32 65 63 32 33 62 64 38 34 32 37 62 62 39 232ec23bd8427bb9
16d0: 34 65 61 30 39 7d 0a 0a 74 65 73 74 20 4d 44 5f 4ea09}..test MD_
16e0: 53 68 6f 72 74 63 75 74 2d 35 2e 33 20 7b 73 68 Shortcut-5.3 {sh
16f0: 61 31 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 a1} -body {..::t
1700: 6c 73 3a 3a 6d 64 20 73 68 61 31 20 24 74 65 73 ls::md sha1 $tes
1710: 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 t_data. } -re
1720: 73 75 6c 74 20 7b 34 66 65 30 33 62 37 66 32 35 sult {4fe03b7f25
1730: 36 38 35 35 31 64 66 61 66 62 39 38 63 61 36 30 68551dfafb98ca60
1740: 30 34 65 36 35 63 34 62 37 31 61 61 37 64 7d 0a 04e65c4b71aa7d}.
1750: 0a 74 65 73 74 20 4d 44 5f 53 68 6f 72 74 63 75 .test MD_Shortcu
1760: 74 2d 35 2e 34 20 7b 73 68 61 32 35 36 7d 20 2d t-5.4 {sha256} -
1770: 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d body {..::tls::m
1780: 64 20 73 68 61 32 35 36 20 24 74 65 73 74 5f 64 d sha256 $test_d
1790: 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c ata. } -resul
17a0: 74 20 7b 39 64 33 35 37 38 66 63 31 33 38 32 30 t {9d3578fc13820
17b0: 35 63 66 30 65 65 34 62 34 63 65 66 33 35 66 65 5cf0ee4b4cef35fe
17c0: 31 30 31 62 62 34 65 63 61 63 37 62 31 36 31 34 101bb4ecac7b1614
17d0: 63 31 38 65 36 66 61 34 38 62 35 63 37 66 39 35 c18e6fa48b5c7f95
17e0: 65 31 39 7d 0a 0a 74 65 73 74 20 4d 44 5f 53 68 e19}..test MD_Sh
17f0: 6f 72 74 63 75 74 2d 35 2e 35 20 7b 73 68 61 35 ortcut-5.5 {sha5
1800: 31 32 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 12} -body {..::t
1810: 6c 73 3a 3a 6d 64 20 73 68 61 35 31 32 20 24 74 ls::md sha512 $t
1820: 65 73 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d est_data. } -
1830: 72 65 73 75 6c 74 20 7b 64 31 37 38 65 37 35 39 result {d178e759
1840: 64 63 35 39 31 32 37 30 37 31 35 38 38 64 32 66 dc59127071588d2f
1850: 61 64 31 37 33 63 30 36 32 33 38 64 38 37 65 38 ad173c06238d87e8
1860: 30 30 61 36 34 30 33 63 30 61 33 30 64 61 61 34 00a6403c0a30daa4
1870: 66 61 61 66 30 35 64 30 65 37 63 65 30 34 39 31 faaf05d0e7ce0491
1880: 36 61 66 61 61 36 61 35 38 61 33 30 63 62 65 62 6afaa6a58a30cbeb
1890: 35 39 37 64 61 63 62 30 31 63 36 32 66 39 66 62 597dacb01c62f9fb
18a0: 39 64 38 39 62 61 62 39 64 61 36 33 30 63 36 39 9d89bab9da630c69
18b0: 39 65 34 38 31 36 66 31 7d 0a 0a 23 20 54 65 73 9e4816f1}..# Tes
18c0: 74 20 4d 44 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 t MD command for
18d0: 20 64 61 74 61 0a 0a 0a 74 65 73 74 20 4d 44 5f data...test MD_
18e0: 44 61 74 61 2d 36 2e 31 20 7b 6d 64 34 7d 20 2d Data-6.1 {md4} -
18f0: 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d body {..::tls::m
1900: 64 20 2d 64 69 67 65 73 74 20 6d 64 34 20 2d 64 d -digest md4 -d
1910: 61 74 61 20 24 74 65 73 74 5f 64 61 74 61 0a 20 ata $test_data.
1920: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 37 39 } -result {79
1930: 33 33 39 39 66 37 39 32 65 63 61 32 37 35 32 63 3399f792eca2752c
1940: 36 61 66 33 32 33 34 62 61 37 30 38 35 38 7d 0a 6af3234ba70858}.
1950: 0a 74 65 73 74 20 4d 44 5f 44 61 74 61 2d 36 2e .test MD_Data-6.
1960: 32 20 7b 6d 64 35 7d 20 2d 62 6f 64 79 20 7b 0a 2 {md5} -body {.
1970: 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 .::tls::md -dige
1980: 73 74 20 6d 64 35 20 2d 64 61 74 61 20 24 74 65 st md5 -data $te
1990: 73 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 st_data. } -r
19a0: 65 73 75 6c 74 20 7b 39 36 32 62 66 30 38 30 33 esult {962bf0803
19b0: 62 34 32 33 32 65 63 32 33 62 64 38 34 32 37 62 b4232ec23bd8427b
19c0: 62 39 34 65 61 30 39 7d 0a 0a 74 65 73 74 20 4d b94ea09}..test M
19d0: 44 5f 44 61 74 61 2d 36 2e 33 20 7b 73 68 61 31 D_Data-6.3 {sha1
19e0: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
19f0: 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 ::md -digest sha
1a00: 31 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 1 -data $test_da
1a10: 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 ta. } -result
1a20: 20 7b 34 66 65 30 33 62 37 66 32 35 36 38 35 35 {4fe03b7f256855
1a30: 31 64 66 61 66 62 39 38 63 61 36 30 30 34 65 36 1dfafb98ca6004e6
1a40: 35 63 34 62 37 31 61 61 37 64 7d 0a 0a 74 65 73 5c4b71aa7d}..tes
1a50: 74 20 4d 44 5f 44 61 74 61 2d 36 2e 34 20 7b 73 t MD_Data-6.4 {s
1a60: 68 61 32 35 36 7d 20 2d 62 6f 64 79 20 7b 0a 09 ha256} -body {..
1a70: 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 ::tls::md -diges
1a80: 74 20 73 68 61 32 35 36 20 2d 64 61 74 61 20 24 t sha256 -data $
1a90: 74 65 73 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 test_data. }
1aa0: 2d 72 65 73 75 6c 74 20 7b 39 64 33 35 37 38 66 -result {9d3578f
1ab0: 63 31 33 38 32 30 35 63 66 30 65 65 34 62 34 63 c138205cf0ee4b4c
1ac0: 65 66 33 35 66 65 31 30 31 62 62 34 65 63 61 63 ef35fe101bb4ecac
1ad0: 37 62 31 36 31 34 63 31 38 65 36 66 61 34 38 62 7b1614c18e6fa48b
1ae0: 35 63 37 66 39 35 65 31 39 7d 0a 0a 74 65 73 74 5c7f95e19}..test
1af0: 20 4d 44 5f 44 61 74 61 2d 36 2e 35 20 7b 73 68 MD_Data-6.5 {sh
1b00: 61 35 31 32 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a a512} -body {..:
1b10: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 :tls::md -digest
1b20: 20 73 68 61 35 31 32 20 2d 64 61 74 61 20 24 74 sha512 -data $t
1b30: 65 73 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d est_data. } -
1b40: 72 65 73 75 6c 74 20 7b 64 31 37 38 65 37 35 39 result {d178e759
1b50: 64 63 35 39 31 32 37 30 37 31 35 38 38 64 32 66 dc59127071588d2f
1b60: 61 64 31 37 33 63 30 36 32 33 38 64 38 37 65 38 ad173c06238d87e8
1b70: 30 30 61 36 34 30 33 63 30 61 33 30 64 61 61 34 00a6403c0a30daa4
1b80: 66 61 61 66 30 35 64 30 65 37 63 65 30 34 39 31 faaf05d0e7ce0491
1b90: 36 61 66 61 61 36 61 35 38 61 33 30 63 62 65 62 6afaa6a58a30cbeb
1ba0: 35 39 37 64 61 63 62 30 31 63 36 32 66 39 66 62 597dacb01c62f9fb
1bb0: 39 64 38 39 62 61 62 39 64 61 36 33 30 63 36 39 9d89bab9da630c69
1bc0: 39 65 34 38 31 36 66 31 7d 0a 0a 74 65 73 74 20 9e4816f1}..test
1bd0: 4d 44 5f 44 61 74 61 2d 36 2e 36 20 7b 6d 64 35 MD_Data-6.6 {md5
1be0: 20 62 69 6e 7d 20 2d 62 6f 64 79 20 7b 0a 09 62 bin} -body {..b
1bf0: 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 68 65 78 inary encode hex
1c00: 20 5b 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 [::tls::md -dig
1c10: 65 73 74 20 6d 64 35 20 2d 64 61 74 61 20 24 74 est md5 -data $t
1c20: 65 73 74 5f 64 61 74 61 20 2d 62 69 6e 5d 0a 20 est_data -bin].
1c30: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 39 36 } -result {96
1c40: 32 62 66 30 38 30 33 62 34 32 33 32 65 63 32 33 2bf0803b4232ec23
1c50: 62 64 38 34 32 37 62 62 39 34 65 61 30 39 7d 0a bd8427bb94ea09}.
1c60: 0a 74 65 73 74 20 4d 44 5f 44 61 74 61 2d 36 2e .test MD_Data-6.
1c70: 37 20 7b 6d 64 35 20 68 65 78 7d 20 2d 62 6f 64 7 {md5 hex} -bod
1c80: 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d y {..::tls::md -
1c90: 64 69 67 65 73 74 20 6d 64 35 20 2d 64 61 74 61 digest md5 -data
1ca0: 20 24 74 65 73 74 5f 64 61 74 61 20 2d 68 65 78 $test_data -hex
1cb0: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
1cc0: 39 36 32 62 66 30 38 30 33 62 34 32 33 32 65 63 962bf0803b4232ec
1cd0: 32 33 62 64 38 34 32 37 62 62 39 34 65 61 30 39 23bd8427bb94ea09
1ce0: 7d 0a 0a 23 20 54 65 73 74 20 4d 44 20 63 6f 6d }..# Test MD com
1cf0: 6d 61 6e 64 20 66 6f 72 20 66 69 6c 65 0a 0a 0a mand for file...
1d00: 74 65 73 74 20 4d 44 5f 46 69 6c 65 2d 37 2e 31 test MD_File-7.1
1d10: 20 7b 6d 64 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 {md4} -body {..
1d20: 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 ::tls::md -diges
1d30: 74 20 6d 64 34 20 2d 66 69 6c 65 20 24 74 65 73 t md4 -file $tes
1d40: 74 5f 66 69 6c 65 0a 20 20 20 20 7d 20 2d 72 65 t_file. } -re
1d50: 73 75 6c 74 20 7b 37 39 33 33 39 39 66 37 39 32 sult {793399f792
1d60: 65 63 61 32 37 35 32 63 36 61 66 33 32 33 34 62 eca2752c6af3234b
1d70: 61 37 30 38 35 38 7d 0a 0a 74 65 73 74 20 4d 44 a70858}..test MD
1d80: 5f 46 69 6c 65 2d 37 2e 32 20 7b 6d 64 35 7d 20 _File-7.2 {md5}
1d90: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
1da0: 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35 20 2d md -digest md5 -
1db0: 66 69 6c 65 20 24 74 65 73 74 5f 66 69 6c 65 0a file $test_file.
1dc0: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 39 } -result {9
1dd0: 36 32 62 66 30 38 30 33 62 34 32 33 32 65 63 32 62bf0803b4232ec2
1de0: 33 62 64 38 34 32 37 62 62 39 34 65 61 30 39 7d 3bd8427bb94ea09}
1df0: 0a 0a 74 65 73 74 20 4d 44 5f 46 69 6c 65 2d 37 ..test MD_File-7
1e00: 2e 33 20 7b 73 68 61 31 7d 20 2d 62 6f 64 79 20 .3 {sha1} -body
1e10: 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 {..::tls::md -di
1e20: 67 65 73 74 20 73 68 61 31 20 2d 66 69 6c 65 20 gest sha1 -file
1e30: 24 74 65 73 74 5f 66 69 6c 65 0a 20 20 20 20 7d $test_file. }
1e40: 20 2d 72 65 73 75 6c 74 20 7b 34 66 65 30 33 62 -result {4fe03b
1e50: 37 66 32 35 36 38 35 35 31 64 66 61 66 62 39 38 7f2568551dfafb98
1e60: 63 61 36 30 30 34 65 36 35 63 34 62 37 31 61 61 ca6004e65c4b71aa
1e70: 37 64 7d 0a 0a 74 65 73 74 20 4d 44 5f 46 69 6c 7d}..test MD_Fil
1e80: 65 2d 37 2e 34 20 7b 73 68 61 32 35 36 7d 20 2d e-7.4 {sha256} -
1e90: 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d body {..::tls::m
1ea0: 64 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 d -digest sha256
1eb0: 20 2d 66 69 6c 65 20 24 74 65 73 74 5f 66 69 6c -file $test_fil
1ec0: 65 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 e. } -result
1ed0: 7b 39 64 33 35 37 38 66 63 31 33 38 32 30 35 63 {9d3578fc138205c
1ee0: 66 30 65 65 34 62 34 63 65 66 33 35 66 65 31 30 f0ee4b4cef35fe10
1ef0: 31 62 62 34 65 63 61 63 37 62 31 36 31 34 63 31 1bb4ecac7b1614c1
1f00: 38 65 36 66 61 34 38 62 35 63 37 66 39 35 65 31 8e6fa48b5c7f95e1
1f10: 39 7d 0a 0a 74 65 73 74 20 4d 44 5f 46 69 6c 65 9}..test MD_File
1f20: 2d 37 2e 35 20 7b 73 68 61 35 31 32 7d 20 2d 62 -7.5 {sha512} -b
1f30: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 ody {..::tls::md
1f40: 20 2d 64 69 67 65 73 74 20 73 68 61 35 31 32 20 -digest sha512
1f50: 2d 66 69 6c 65 20 24 74 65 73 74 5f 66 69 6c 65 -file $test_file
1f60: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
1f70: 64 31 37 38 65 37 35 39 64 63 35 39 31 32 37 30 d178e759dc591270
1f80: 37 31 35 38 38 64 32 66 61 64 31 37 33 63 30 36 71588d2fad173c06
1f90: 32 33 38 64 38 37 65 38 30 30 61 36 34 30 33 63 238d87e800a6403c
1fa0: 30 61 33 30 64 61 61 34 66 61 61 66 30 35 64 30 0a30daa4faaf05d0
1fb0: 65 37 63 65 30 34 39 31 36 61 66 61 61 36 61 35 e7ce04916afaa6a5
1fc0: 38 61 33 30 63 62 65 62 35 39 37 64 61 63 62 30 8a30cbeb597dacb0
1fd0: 31 63 36 32 66 39 66 62 39 64 38 39 62 61 62 39 1c62f9fb9d89bab9
1fe0: 64 61 36 33 30 63 36 39 39 65 34 38 31 36 66 31 da630c699e4816f1
1ff0: 7d 0a 0a 74 65 73 74 20 4d 44 5f 46 69 6c 65 2d }..test MD_File-
2000: 37 2e 36 20 7b 6d 64 35 20 62 69 6e 7d 20 2d 62 7.6 {md5 bin} -b
2010: 6f 64 79 20 7b 0a 09 62 69 6e 61 72 79 20 65 6e ody {..binary en
2020: 63 6f 64 65 20 68 65 78 20 5b 3a 3a 74 6c 73 3a code hex [::tls:
2030: 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35 20 :md -digest md5
2040: 2d 66 69 6c 65 20 24 74 65 73 74 5f 66 69 6c 65 -file $test_file
2050: 20 2d 62 69 6e 5d 0a 20 20 20 20 7d 20 2d 72 65 -bin]. } -re
2060: 73 75 6c 74 20 7b 39 36 32 62 66 30 38 30 33 62 sult {962bf0803b
2070: 34 32 33 32 65 63 32 33 62 64 38 34 32 37 62 62 4232ec23bd8427bb
2080: 39 34 65 61 30 39 7d 0a 0a 74 65 73 74 20 4d 44 94ea09}..test MD
2090: 5f 46 69 6c 65 2d 37 2e 37 20 7b 6d 64 35 20 68 _File-7.7 {md5 h
20a0: 65 78 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 ex} -body {..::t
20b0: 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d ls::md -digest m
20c0: 64 35 20 2d 66 69 6c 65 20 24 74 65 73 74 5f 66 d5 -file $test_f
20d0: 69 6c 65 20 2d 68 65 78 0a 20 20 20 20 7d 20 2d ile -hex. } -
20e0: 72 65 73 75 6c 74 20 7b 39 36 32 62 66 30 38 30 result {962bf080
20f0: 33 62 34 32 33 32 65 63 32 33 62 64 38 34 32 37 3b4232ec23bd8427
2100: 62 62 39 34 65 61 30 39 7d 0a 0a 23 20 4d 44 20 bb94ea09}..# MD
2110: 45 72 72 6f 72 20 43 61 73 65 73 0a 0a 0a 74 65 Error Cases...te
2120: 73 74 20 4d 44 5f 45 72 72 6f 72 73 2d 38 2e 31 st MD_Errors-8.1
2130: 20 7b 54 6f 6f 20 66 65 77 20 61 72 67 73 7d 20 {Too few args}
2140: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
2150: 6d 64 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 md. } -result
2160: 20 7b 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 {wrong # args:
2170: 73 68 6f 75 6c 64 20 62 65 20 22 3a 3a 74 6c 73 should be "::tls
2180: 3a 3a 6d 64 20 3f 2d 62 69 6e 7c 2d 68 65 78 3f ::md ?-bin|-hex?
2190: 20 3f 2d 63 69 70 68 65 72 20 6e 61 6d 65 3f 20 ?-cipher name?
21a0: 3f 2d 64 69 67 65 73 74 20 6e 61 6d 65 3f 20 3f ?-digest name? ?
21b0: 2d 6b 65 79 20 6b 65 79 3f 20 3f 2d 6d 61 63 20 -key key? ?-mac
21c0: 6e 61 6d 65 3f 20 5b 2d 63 68 61 6e 6e 65 6c 20 name? [-channel
21d0: 63 68 61 6e 20 7c 20 2d 63 6f 6d 6d 61 6e 64 20 chan | -command
21e0: 63 6d 64 4e 61 6d 65 20 7c 20 2d 66 69 6c 65 20 cmdName | -file
21f0: 66 69 6c 65 6e 61 6d 65 20 7c 20 3f 2d 64 61 74 filename | ?-dat
2200: 61 3f 20 64 61 74 61 5d 22 7d 20 2d 72 65 74 75 a? data]"} -retu
2210: 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 rnCodes {1}..tes
2220: 74 20 4d 44 5f 45 72 72 6f 72 73 2d 38 2e 32 20 t MD_Errors-8.2
2230: 7b 54 6f 6f 20 6d 61 6e 79 20 61 72 67 73 7d 20 {Too many args}
2240: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
2250: 6d 64 20 74 6f 6f 20 6d 61 6e 79 20 63 6f 6d 6d md too many comm
2260: 61 6e 64 20 6c 69 6e 65 20 61 72 67 73 20 74 6f and line args to
2270: 20 70 61 73 73 20 74 68 65 20 74 65 73 74 20 77 pass the test w
2280: 69 74 68 6f 75 74 20 61 6e 20 65 72 72 6f 72 20 ithout an error
2290: 6f 72 20 66 61 69 6c 69 6e 67 0a 20 20 20 20 7d or failing. }
22a0: 20 2d 72 65 73 75 6c 74 20 7b 77 72 6f 6e 67 20 -result {wrong
22b0: 23 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 # args: should b
22c0: 65 20 22 3a 3a 74 6c 73 3a 3a 6d 64 20 3f 2d 62 e "::tls::md ?-b
22d0: 69 6e 7c 2d 68 65 78 3f 20 3f 2d 63 69 70 68 65 in|-hex? ?-ciphe
22e0: 72 20 6e 61 6d 65 3f 20 3f 2d 64 69 67 65 73 74 r name? ?-digest
22f0: 20 6e 61 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65 79 name? ?-key key
2300: 3f 20 3f 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b 2d ? ?-mac name? [-
2310: 63 68 61 6e 6e 65 6c 20 63 68 61 6e 20 7c 20 2d channel chan | -
2320: 63 6f 6d 6d 61 6e 64 20 63 6d 64 4e 61 6d 65 20 command cmdName
2330: 7c 20 2d 66 69 6c 65 20 66 69 6c 65 6e 61 6d 65 | -file filename
2340: 20 7c 20 3f 2d 64 61 74 61 3f 20 64 61 74 61 5d | ?-data? data]
2350: 22 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 "} -returnCodes
2360: 7b 31 7d 0a 0a 74 65 73 74 20 4d 44 5f 45 72 72 {1}..test MD_Err
2370: 6f 72 73 2d 38 2e 33 20 7b 49 6e 76 61 6c 69 64 ors-8.3 {Invalid
2380: 20 64 69 67 65 73 74 7d 20 2d 62 6f 64 79 20 7b digest} -body {
2390: 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 62 6f 67 75 ..::tls::md bogu
23a0: 73 20 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 s data. } -re
23b0: 73 75 6c 74 20 7b 49 6e 76 61 6c 69 64 20 64 69 sult {Invalid di
23c0: 67 65 73 74 20 22 62 6f 67 75 73 22 7d 20 2d 72 gest "bogus"} -r
23d0: 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a eturnCodes {1}..
23e0: 74 65 73 74 20 4d 44 5f 45 72 72 6f 72 73 2d 38 test MD_Errors-8
23f0: 2e 34 20 7b 49 6e 76 61 6c 69 64 20 64 69 67 65 .4 {Invalid dige
2400: 73 74 20 41 72 67 7d 20 2d 62 6f 64 79 20 7b 0a st Arg} -body {.
2410: 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 .::tls::md -dige
2420: 73 74 20 62 6f 67 75 73 20 2d 64 61 74 61 20 64 st bogus -data d
2430: 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c ata. } -resul
2440: 74 20 7b 49 6e 76 61 6c 69 64 20 64 69 67 65 73 t {Invalid diges
2450: 74 20 22 62 6f 67 75 73 22 7d 20 2d 72 65 74 75 t "bogus"} -retu
2460: 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 rnCodes {1}..tes
2470: 74 20 4d 44 5f 45 72 72 6f 72 73 2d 38 2e 35 20 t MD_Errors-8.5
2480: 7b 4e 6f 20 64 69 67 65 73 74 7d 20 2d 62 6f 64 {No digest} -bod
2490: 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d y {..::tls::md -
24a0: 68 65 78 20 2d 64 61 74 61 20 76 61 6c 75 65 0a hex -data value.
24b0: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 4e } -result {N
24c0: 6f 20 64 69 67 65 73 74 20 73 70 65 63 69 66 69 o digest specifi
24d0: 65 64 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 ed} -returnCodes
24e0: 20 7b 31 7d 0a 0a 74 65 73 74 20 4d 44 5f 45 72 {1}..test MD_Er
24f0: 72 6f 72 73 2d 38 2e 36 20 7b 49 6e 76 61 6c 69 rors-8.6 {Invali
2500: 64 20 6f 70 74 69 6f 6e 7d 20 2d 62 6f 64 79 20 d option} -body
2510: 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 {..::tls::md -di
2520: 67 65 73 74 20 73 68 61 32 35 36 20 2d 62 6f 67 gest sha256 -bog
2530: 75 73 20 76 61 6c 75 65 0a 20 20 20 20 7d 20 2d us value. } -
2540: 72 65 73 75 6c 74 20 7b 62 61 64 20 6f 70 74 69 result {bad opti
2550: 6f 6e 20 22 2d 62 6f 67 75 73 22 3a 20 6d 75 73 on "-bogus": mus
2560: 74 20 62 65 20 2d 62 69 6e 2c 20 2d 63 68 61 6e t be -bin, -chan
2570: 6e 65 6c 2c 20 2d 63 69 70 68 65 72 2c 20 2d 63 nel, -cipher, -c
2580: 6f 6d 6d 61 6e 64 2c 20 2d 64 61 74 61 2c 20 2d ommand, -data, -
2590: 64 69 67 65 73 74 2c 20 2d 66 69 6c 65 2c 20 2d digest, -file, -
25a0: 66 69 6c 65 6e 61 6d 65 2c 20 2d 68 65 78 2c 20 filename, -hex,
25b0: 2d 6b 65 79 2c 20 6f 72 20 2d 6d 61 63 7d 20 2d -key, or -mac} -
25c0: 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a returnCodes {1}.
25d0: 0a 74 65 73 74 20 4d 44 5f 45 72 72 6f 72 73 2d .test MD_Errors-
25e0: 38 2e 37 20 7b 49 6e 76 61 6c 69 64 20 66 69 6c 8.7 {Invalid fil
25f0: 65 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c e} -body {..::tl
2600: 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 s::md -digest sh
2610: 61 32 35 36 20 2d 66 69 6c 65 20 62 6f 67 75 73 a256 -file bogus
2620: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
2630: 63 6f 75 6c 64 6e 27 74 20 6f 70 65 6e 20 22 62 couldn't open "b
2640: 6f 67 75 73 22 3a 20 6e 6f 20 73 75 63 68 20 66 ogus": no such f
2650: 69 6c 65 20 6f 72 20 64 69 72 65 63 74 6f 72 79 ile or directory
2660: 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b } -returnCodes {
2670: 31 7d 0a 0a 74 65 73 74 20 4d 44 5f 45 72 72 6f 1}..test MD_Erro
2680: 72 73 2d 38 2e 38 20 7b 49 6e 76 61 6c 69 64 20 rs-8.8 {Invalid
2690: 63 68 61 6e 6e 65 6c 7d 20 2d 62 6f 64 79 20 7b channel} -body {
26a0: 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 ..::tls::md -dig
26b0: 65 73 74 20 73 68 61 32 35 36 20 2d 63 68 61 6e est sha256 -chan
26c0: 6e 65 6c 20 62 6f 67 75 73 0a 20 20 20 20 7d 20 nel bogus. }
26d0: 2d 72 65 73 75 6c 74 20 7b 63 61 6e 20 6e 6f 74 -result {can not
26e0: 20 66 69 6e 64 20 63 68 61 6e 6e 65 6c 20 6e 61 find channel na
26f0: 6d 65 64 20 22 62 6f 67 75 73 22 7d 20 2d 72 65 med "bogus"} -re
2700: 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 74 turnCodes {1}..t
2710: 65 73 74 20 4d 44 5f 45 72 72 6f 72 73 2d 38 2e est MD_Errors-8.
2720: 39 20 7b 4e 6f 20 6f 70 65 72 61 74 69 6f 6e 7d 9 {No operation}
2730: 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a -body {..::tls:
2740: 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 32 :md -digest sha2
2750: 35 36 20 2d 62 69 6e 0a 20 20 20 20 7d 20 2d 72 56 -bin. } -r
2760: 65 73 75 6c 74 20 7b 4e 6f 20 6f 70 65 72 61 74 esult {No operat
2770: 69 6f 6e 20 73 70 65 63 69 66 69 65 64 3a 20 55 ion specified: U
2780: 73 65 20 2d 63 68 61 6e 6e 65 6c 2c 20 2d 63 6f se -channel, -co
2790: 6d 6d 61 6e 64 2c 20 2d 64 61 74 61 2c 20 6f 72 mmand, -data, or
27a0: 20 2d 66 69 6c 65 20 6f 70 74 69 6f 6e 7d 20 2d -file option} -
27b0: 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a returnCodes {1}.
27c0: 0a 0a 23 20 54 65 73 74 20 43 4d 41 43 20 63 6f ..# Test CMAC co
27d0: 6d 6d 61 6e 64 0a 73 65 74 20 74 65 73 74 5f 63 mmand.set test_c
27e0: 69 70 68 65 72 20 22 61 65 73 2d 31 32 38 2d 63 ipher "aes-128-c
27f0: 62 63 22 0a 73 65 74 20 74 65 73 74 5f 6b 65 79 bc".set test_key
2800: 20 22 45 78 61 6d 70 6c 65 20 6b 65 79 20 31 32 "Example key 12
2810: 33 34 22 0a 0a 0a 74 65 73 74 20 43 4d 41 43 2d 34"...test CMAC-
2820: 39 2e 31 20 7b 64 61 74 61 7d 20 2d 62 6f 64 79 9.1 {data} -body
2830: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 {..::tls::cmac
2840: 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f 63 69 -cipher $test_ci
2850: 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74 5f pher -key $test_
2860: 6b 65 79 20 2d 64 61 74 61 20 24 74 65 73 74 5f key -data $test_
2870: 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 data. } -resu
2880: 6c 74 20 7b 62 61 66 35 63 32 30 66 39 39 37 33 lt {baf5c20f9973
2890: 65 32 64 36 30 36 62 31 34 63 37 65 66 64 66 65 e2d606b14c7efdfe
28a0: 35 32 66 61 7d 0a 0a 74 65 73 74 20 43 4d 41 43 52fa}..test CMAC
28b0: 2d 39 2e 32 20 7b 66 69 6c 65 7d 20 2d 62 6f 64 -9.2 {file} -bod
28c0: 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 y {..::tls::cmac
28d0: 20 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f 63 -cipher $test_c
28e0: 69 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74 ipher -key $test
28f0: 5f 6b 65 79 20 2d 66 69 6c 65 20 24 74 65 73 74 _key -file $test
2900: 5f 66 69 6c 65 0a 20 20 20 20 7d 20 2d 72 65 73 _file. } -res
2910: 75 6c 74 20 7b 62 61 66 35 63 32 30 66 39 39 37 ult {baf5c20f997
2920: 33 65 32 64 36 30 36 62 31 34 63 37 65 66 64 66 3e2d606b14c7efdf
2930: 65 35 32 66 61 7d 0a 0a 74 65 73 74 20 43 4d 41 e52fa}..test CMA
2940: 43 2d 39 2e 33 20 7b 63 68 61 6e 6e 65 6c 7d 20 C-9.3 {channel}
2950: 2d 62 6f 64 79 20 7b 0a 09 64 69 67 65 73 74 5f -body {..digest_
2960: 72 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a read_chan ::tls:
2970: 3a 63 6d 61 63 20 24 74 65 73 74 5f 66 69 6c 65 :cmac $test_file
2980: 20 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f 63 -cipher $test_c
2990: 69 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74 ipher -key $test
29a0: 5f 6b 65 79 0a 20 20 20 20 7d 20 2d 72 65 73 75 _key. } -resu
29b0: 6c 74 20 7b 62 61 66 35 63 32 30 66 39 39 37 33 lt {baf5c20f9973
29c0: 65 32 64 36 30 36 62 31 34 63 37 65 66 64 66 65 e2d606b14c7efdfe
29d0: 35 32 66 61 7d 0a 0a 74 65 73 74 20 43 4d 41 43 52fa}..test CMAC
29e0: 2d 39 2e 34 20 7b 63 6f 6d 6d 61 6e 64 7d 20 2d -9.4 {command} -
29f0: 62 6f 64 79 20 7b 0a 09 64 69 67 65 73 74 5f 61 body {..digest_a
2a00: 63 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f ccumulate $test_
2a10: 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 63 6d 61 63 data ::tls::cmac
2a20: 20 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f 63 -cipher $test_c
2a30: 69 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74 ipher -key $test
2a40: 5f 6b 65 79 0a 20 20 20 20 7d 20 2d 72 65 73 75 _key. } -resu
2a50: 6c 74 20 7b 62 61 66 35 63 32 30 66 39 39 37 33 lt {baf5c20f9973
2a60: 65 32 64 36 30 36 62 31 34 63 37 65 66 64 66 65 e2d606b14c7efdfe
2a70: 35 32 66 61 7d 0a 0a 74 65 73 74 20 43 4d 41 43 52fa}..test CMAC
2a80: 2d 39 2e 35 20 7b 64 61 74 61 20 62 69 6e 7d 20 -9.5 {data bin}
2a90: 2d 62 6f 64 79 20 7b 0a 09 62 69 6e 61 72 79 20 -body {..binary
2aa0: 65 6e 63 6f 64 65 20 68 65 78 20 5b 3a 3a 74 6c encode hex [::tl
2ab0: 73 3a 3a 63 6d 61 63 20 2d 62 69 6e 20 2d 63 69 s::cmac -bin -ci
2ac0: 70 68 65 72 20 24 74 65 73 74 5f 63 69 70 68 65 pher $test_ciphe
2ad0: 72 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 r -key $test_key
2ae0: 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 -data $test_dat
2af0: 61 5d 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 a]. } -result
2b00: 20 7b 62 61 66 35 63 32 30 66 39 39 37 33 65 32 {baf5c20f9973e2
2b10: 64 36 30 36 62 31 34 63 37 65 66 64 66 65 35 32 d606b14c7efdfe52
2b20: 66 61 7d 0a 0a 23 20 54 65 73 74 20 4d 44 20 43 fa}..# Test MD C
2b30: 4d 41 43 0a 0a 0a 74 65 73 74 20 4d 44 5f 43 4d MAC...test MD_CM
2b40: 41 43 2d 31 30 2e 31 20 7b 64 61 74 61 7d 20 2d AC-10.1 {data} -
2b50: 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d body {..::tls::m
2b60: 64 20 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f d -cipher $test_
2b70: 63 69 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 cipher -key $tes
2b80: 74 5f 6b 65 79 20 2d 64 61 74 61 20 24 74 65 73 t_key -data $tes
2b90: 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 t_data. } -re
2ba0: 73 75 6c 74 20 7b 62 61 66 35 63 32 30 66 39 39 sult {baf5c20f99
2bb0: 37 33 65 32 64 36 30 36 62 31 34 63 37 65 66 64 73e2d606b14c7efd
2bc0: 66 65 35 32 66 61 7d 0a 0a 74 65 73 74 20 4d 44 fe52fa}..test MD
2bd0: 5f 43 4d 41 43 2d 31 30 2e 32 20 7b 66 69 6c 65 _CMAC-10.2 {file
2be0: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
2bf0: 3a 3a 6d 64 20 2d 63 69 70 68 65 72 20 24 74 65 ::md -cipher $te
2c00: 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 20 24 st_cipher -key $
2c10: 74 65 73 74 5f 6b 65 79 20 2d 66 69 6c 65 20 24 test_key -file $
2c20: 74 65 73 74 5f 66 69 6c 65 0a 20 20 20 20 7d 20 test_file. }
2c30: 2d 72 65 73 75 6c 74 20 7b 62 61 66 35 63 32 30 -result {baf5c20
2c40: 66 39 39 37 33 65 32 64 36 30 36 62 31 34 63 37 f9973e2d606b14c7
2c50: 65 66 64 66 65 35 32 66 61 7d 0a 0a 74 65 73 74 efdfe52fa}..test
2c60: 20 4d 44 5f 43 4d 41 43 2d 31 30 2e 33 20 7b 63 MD_CMAC-10.3 {c
2c70: 68 61 6e 6e 65 6c 7d 20 2d 62 6f 64 79 20 7b 0a hannel} -body {.
2c80: 09 64 69 67 65 73 74 5f 72 65 61 64 5f 63 68 61 .digest_read_cha
2c90: 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73 n ::tls::md $tes
2ca0: 74 5f 66 69 6c 65 20 2d 63 69 70 68 65 72 20 24 t_file -cipher $
2cb0: 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 test_cipher -key
2cc0: 20 24 74 65 73 74 5f 6b 65 79 0a 20 20 20 20 7d $test_key. }
2cd0: 20 2d 72 65 73 75 6c 74 20 7b 62 61 66 35 63 32 -result {baf5c2
2ce0: 30 66 39 39 37 33 65 32 64 36 30 36 62 31 34 63 0f9973e2d606b14c
2cf0: 37 65 66 64 66 65 35 32 66 61 7d 0a 0a 74 65 73 7efdfe52fa}..tes
2d00: 74 20 4d 44 5f 43 4d 41 43 2d 31 30 2e 34 20 7b t MD_CMAC-10.4 {
2d10: 63 6f 6d 6d 61 6e 64 7d 20 2d 62 6f 64 79 20 7b command} -body {
2d20: 0a 09 64 69 67 65 73 74 5f 61 63 63 75 6d 75 6c ..digest_accumul
2d30: 61 74 65 20 24 74 65 73 74 5f 64 61 74 61 20 3a ate $test_data :
2d40: 3a 74 6c 73 3a 3a 6d 64 20 2d 63 69 70 68 65 72 :tls::md -cipher
2d50: 20 24 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b $test_cipher -k
2d60: 65 79 20 24 74 65 73 74 5f 6b 65 79 0a 20 20 20 ey $test_key.
2d70: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 62 61 66 35 } -result {baf5
2d80: 63 32 30 66 39 39 37 33 65 32 64 36 30 36 62 31 c20f9973e2d606b1
2d90: 34 63 37 65 66 64 66 65 35 32 66 61 7d 0a 0a 74 4c7efdfe52fa}..t
2da0: 65 73 74 20 4d 44 5f 43 4d 41 43 2d 31 30 2e 35 est MD_CMAC-10.5
2db0: 20 7b 64 61 74 61 20 62 69 6e 7d 20 2d 62 6f 64 {data bin} -bod
2dc0: 79 20 7b 0a 09 62 69 6e 61 72 79 20 65 6e 63 6f y {..binary enco
2dd0: 64 65 20 68 65 78 20 5b 3a 3a 74 6c 73 3a 3a 6d de hex [::tls::m
2de0: 64 20 2d 62 69 6e 20 2d 63 69 70 68 65 72 20 24 d -bin -cipher $
2df0: 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 test_cipher -key
2e00: 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 $test_key -data
2e10: 20 24 74 65 73 74 5f 64 61 74 61 5d 0a 20 20 20 $test_data].
2e20: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 62 61 66 35 } -result {baf5
2e30: 63 32 30 66 39 39 37 33 65 32 64 36 30 36 62 31 c20f9973e2d606b1
2e40: 34 63 37 65 66 64 66 65 35 32 66 61 7d 0a 0a 23 4c7efdfe52fa}..#
2e50: 20 54 65 73 74 20 43 4d 41 43 20 53 68 6f 72 74 Test CMAC Short
2e60: 63 75 74 0a 0a 0a 74 65 73 74 20 43 4d 41 43 5f cut...test CMAC_
2e70: 53 68 6f 72 74 63 75 74 2d 31 31 2e 31 20 7b 64 Shortcut-11.1 {d
2e80: 61 74 61 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a ata} -body {..::
2e90: 74 6c 73 3a 3a 63 6d 61 63 20 24 74 65 73 74 5f tls::cmac $test_
2ea0: 63 69 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 cipher -key $tes
2eb0: 74 5f 6b 65 79 20 24 74 65 73 74 5f 64 61 74 61 t_key $test_data
2ec0: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
2ed0: 62 61 66 35 63 32 30 66 39 39 37 33 65 32 64 36 baf5c20f9973e2d6
2ee0: 30 36 62 31 34 63 37 65 66 64 66 65 35 32 66 61 06b14c7efdfe52fa
2ef0: 7d 0a 0a 23 20 43 4d 41 43 20 45 72 72 6f 72 20 }..# CMAC Error
2f00: 43 61 73 65 73 0a 0a 0a 74 65 73 74 20 43 4d 41 Cases...test CMA
2f10: 43 5f 45 72 72 6f 72 73 2d 31 32 2e 31 20 7b 54 C_Errors-12.1 {T
2f20: 6f 6f 20 66 65 77 20 61 72 67 73 7d 20 2d 62 6f oo few args} -bo
2f30: 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 dy {..::tls::cma
2f40: 63 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 c. } -result
2f50: 7b 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 {wrong # args: s
2f60: 68 6f 75 6c 64 20 62 65 20 22 3a 3a 74 6c 73 3a hould be "::tls:
2f70: 3a 63 6d 61 63 20 3f 2d 62 69 6e 7c 2d 68 65 78 :cmac ?-bin|-hex
2f80: 3f 20 3f 2d 63 69 70 68 65 72 20 6e 61 6d 65 3f ? ?-cipher name?
2f90: 20 3f 2d 64 69 67 65 73 74 20 6e 61 6d 65 3f 20 ?-digest name?
2fa0: 3f 2d 6b 65 79 20 6b 65 79 3f 20 3f 2d 6d 61 63 ?-key key? ?-mac
2fb0: 20 6e 61 6d 65 3f 20 5b 2d 63 68 61 6e 6e 65 6c name? [-channel
2fc0: 20 63 68 61 6e 20 7c 20 2d 63 6f 6d 6d 61 6e 64 chan | -command
2fd0: 20 63 6d 64 4e 61 6d 65 20 7c 20 2d 66 69 6c 65 cmdName | -file
2fe0: 20 66 69 6c 65 6e 61 6d 65 20 7c 20 3f 2d 64 61 filename | ?-da
2ff0: 74 61 3f 20 64 61 74 61 5d 22 7d 20 2d 72 65 74 ta? data]"} -ret
3000: 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 urnCodes {1}..te
3010: 73 74 20 43 4d 41 43 5f 45 72 72 6f 72 73 2d 31 st CMAC_Errors-1
3020: 32 2e 32 20 7b 54 6f 6f 20 6d 61 6e 79 20 61 72 2.2 {Too many ar
3030: 67 73 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 gs} -body {..::t
3040: 6c 73 3a 3a 63 6d 61 63 20 74 6f 6f 20 6d 61 6e ls::cmac too man
3050: 79 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 y command line a
3060: 72 67 73 20 74 6f 20 70 61 73 73 20 74 68 65 20 rgs to pass the
3070: 74 65 73 74 20 77 69 74 68 6f 75 74 20 61 6e 20 test without an
3080: 65 72 72 6f 72 20 6f 72 20 66 61 69 6c 69 6e 67 error or failing
3090: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
30a0: 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 wrong # args: sh
30b0: 6f 75 6c 64 20 62 65 20 22 3a 3a 74 6c 73 3a 3a ould be "::tls::
30c0: 63 6d 61 63 20 3f 2d 62 69 6e 7c 2d 68 65 78 3f cmac ?-bin|-hex?
30d0: 20 3f 2d 63 69 70 68 65 72 20 6e 61 6d 65 3f 20 ?-cipher name?
30e0: 3f 2d 64 69 67 65 73 74 20 6e 61 6d 65 3f 20 3f ?-digest name? ?
30f0: 2d 6b 65 79 20 6b 65 79 3f 20 3f 2d 6d 61 63 20 -key key? ?-mac
3100: 6e 61 6d 65 3f 20 5b 2d 63 68 61 6e 6e 65 6c 20 name? [-channel
3110: 63 68 61 6e 20 7c 20 2d 63 6f 6d 6d 61 6e 64 20 chan | -command
3120: 63 6d 64 4e 61 6d 65 20 7c 20 2d 66 69 6c 65 20 cmdName | -file
3130: 66 69 6c 65 6e 61 6d 65 20 7c 20 3f 2d 64 61 74 filename | ?-dat
3140: 61 3f 20 64 61 74 61 5d 22 7d 20 2d 72 65 74 75 a? data]"} -retu
3150: 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 rnCodes {1}..tes
3160: 74 20 43 4d 41 43 5f 45 72 72 6f 72 73 2d 31 32 t CMAC_Errors-12
3170: 2e 33 20 7b 4e 6f 20 63 69 70 68 65 72 7d 20 2d .3 {No cipher} -
3180: 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 body {..::tls::c
3190: 6d 61 63 20 2d 68 65 78 20 2d 64 61 74 61 20 24 mac -hex -data $
31a0: 74 65 73 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 test_data. }
31b0: 2d 72 65 73 75 6c 74 20 7b 4e 6f 20 63 69 70 68 -result {No ciph
31c0: 65 72 20 73 70 65 63 69 66 69 65 64 7d 20 2d 72 er specified} -r
31d0: 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a eturnCodes {1}..
31e0: 74 65 73 74 20 43 4d 41 43 5f 45 72 72 6f 72 73 test CMAC_Errors
31f0: 2d 31 32 2e 34 20 7b 4e 6f 20 6b 65 79 7d 20 2d -12.4 {No key} -
3200: 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 body {..::tls::c
3210: 6d 61 63 20 2d 63 69 70 68 65 72 20 24 74 65 73 mac -cipher $tes
3220: 74 5f 63 69 70 68 65 72 20 2d 64 61 74 61 20 24 t_cipher -data $
3230: 74 65 73 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 test_data. }
3240: 2d 72 65 73 75 6c 74 20 7b 4e 6f 20 6b 65 79 20 -result {No key
3250: 73 70 65 63 69 66 69 65 64 7d 20 2d 72 65 74 75 specified} -retu
3260: 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 rnCodes {1}..tes
3270: 74 20 43 4d 41 43 5f 45 72 72 6f 72 73 2d 31 32 t CMAC_Errors-12
3280: 2e 35 20 7b 49 6e 76 61 6c 69 64 20 63 69 70 68 .5 {Invalid ciph
3290: 65 72 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 er} -body {..::t
32a0: 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 ls::cmac -cipher
32b0: 20 62 6f 67 75 73 20 2d 64 61 74 61 20 24 74 65 bogus -data $te
32c0: 73 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 st_data. } -r
32d0: 65 73 75 6c 74 20 7b 49 6e 76 61 6c 69 64 20 63 esult {Invalid c
32e0: 69 70 68 65 72 20 22 62 6f 67 75 73 22 7d 20 2d ipher "bogus"} -
32f0: 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a returnCodes {1}.
3300: 0a 0a 23 20 54 65 73 74 20 48 4d 41 43 20 63 6f ..# Test HMAC co
3310: 6d 6d 61 6e 64 0a 73 65 74 20 74 65 73 74 5f 64 mmand.set test_d
3320: 69 67 65 73 74 20 6d 64 35 0a 73 65 74 20 74 65 igest md5.set te
3330: 73 74 5f 6b 65 79 20 22 45 78 61 6d 70 6c 65 20 st_key "Example
3340: 6b 65 79 22 0a 0a 0a 74 65 73 74 20 48 4d 41 43 key"...test HMAC
3350: 2d 31 33 2e 31 20 7b 64 61 74 61 7d 20 2d 62 6f -13.1 {data} -bo
3360: 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 dy {..::tls::hma
3370: 63 20 2d 64 69 67 65 73 74 20 24 74 65 73 74 5f c -digest $test_
3380: 64 69 67 65 73 74 20 2d 6b 65 79 20 24 74 65 73 digest -key $tes
3390: 74 5f 6b 65 79 20 2d 64 61 74 61 20 24 74 65 73 t_key -data $tes
33a0: 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 t_data. } -re
33b0: 73 75 6c 74 20 7b 66 39 38 33 32 37 65 66 33 65 sult {f98327ef3e
33c0: 32 30 61 62 36 64 33 38 38 66 36 37 36 63 36 61 20ab6d388f676c6a
33d0: 37 39 64 39 33 64 7d 0a 0a 74 65 73 74 20 48 4d 79d93d}..test HM
33e0: 41 43 2d 31 33 2e 32 20 7b 66 69 6c 65 7d 20 2d AC-13.2 {file} -
33f0: 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 body {..::tls::h
3400: 6d 61 63 20 2d 64 69 67 65 73 74 20 24 74 65 73 mac -digest $tes
3410: 74 5f 64 69 67 65 73 74 20 2d 6b 65 79 20 24 74 t_digest -key $t
3420: 65 73 74 5f 6b 65 79 20 2d 66 69 6c 65 20 24 74 est_key -file $t
3430: 65 73 74 5f 66 69 6c 65 0a 20 20 20 20 7d 20 2d est_file. } -
3440: 72 65 73 75 6c 74 20 7b 66 39 38 33 32 37 65 66 result {f98327ef
3450: 33 65 32 30 61 62 36 64 33 38 38 66 36 37 36 63 3e20ab6d388f676c
3460: 36 61 37 39 64 39 33 64 7d 0a 0a 74 65 73 74 20 6a79d93d}..test
3470: 48 4d 41 43 2d 31 33 2e 33 20 7b 63 68 61 6e 6e HMAC-13.3 {chann
3480: 65 6c 7d 20 2d 62 6f 64 79 20 7b 0a 09 64 69 67 el} -body {..dig
3490: 65 73 74 5f 72 65 61 64 5f 63 68 61 6e 20 3a 3a est_read_chan ::
34a0: 74 6c 73 3a 3a 68 6d 61 63 20 24 74 65 73 74 5f tls::hmac $test_
34b0: 66 69 6c 65 20 2d 64 69 67 65 73 74 20 24 74 65 file -digest $te
34c0: 73 74 5f 64 69 67 65 73 74 20 2d 6b 65 79 20 24 st_digest -key $
34d0: 74 65 73 74 5f 6b 65 79 0a 20 20 20 20 7d 20 2d test_key. } -
34e0: 72 65 73 75 6c 74 20 7b 66 39 38 33 32 37 65 66 result {f98327ef
34f0: 33 65 32 30 61 62 36 64 33 38 38 66 36 37 36 63 3e20ab6d388f676c
3500: 36 61 37 39 64 39 33 64 7d 0a 0a 74 65 73 74 20 6a79d93d}..test
3510: 48 4d 41 43 2d 31 33 2e 34 20 7b 63 6f 6d 6d 61 HMAC-13.4 {comma
3520: 6e 64 7d 20 2d 62 6f 64 79 20 7b 0a 09 64 69 67 nd} -body {..dig
3530: 65 73 74 5f 61 63 63 75 6d 75 6c 61 74 65 20 24 est_accumulate $
3540: 74 65 73 74 5f 64 61 74 61 20 3a 3a 74 6c 73 3a test_data ::tls:
3550: 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 24 74 :hmac -digest $t
3560: 65 73 74 5f 64 69 67 65 73 74 20 2d 6b 65 79 20 est_digest -key
3570: 24 74 65 73 74 5f 6b 65 79 0a 20 20 20 20 7d 20 $test_key. }
3580: 2d 72 65 73 75 6c 74 20 7b 66 39 38 33 32 37 65 -result {f98327e
3590: 66 33 65 32 30 61 62 36 64 33 38 38 66 36 37 36 f3e20ab6d388f676
35a0: 63 36 61 37 39 64 39 33 64 7d 0a 0a 74 65 73 74 c6a79d93d}..test
35b0: 20 48 4d 41 43 2d 31 33 2e 35 20 7b 64 61 74 61 HMAC-13.5 {data
35c0: 20 62 69 6e 7d 20 2d 62 6f 64 79 20 7b 0a 09 62 bin} -body {..b
35d0: 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 68 65 78 inary encode hex
35e0: 20 5b 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 [::tls::hmac -d
35f0: 69 67 65 73 74 20 24 74 65 73 74 5f 64 69 67 65 igest $test_dige
3600: 73 74 20 2d 62 69 6e 20 2d 6b 65 79 20 24 74 65 st -bin -key $te
3610: 73 74 5f 6b 65 79 20 2d 64 61 74 61 20 24 74 65 st_key -data $te
3620: 73 74 5f 64 61 74 61 5d 0a 20 20 20 20 7d 20 2d st_data]. } -
3630: 72 65 73 75 6c 74 20 7b 66 39 38 33 32 37 65 66 result {f98327ef
3640: 33 65 32 30 61 62 36 64 33 38 38 66 36 37 36 63 3e20ab6d388f676c
3650: 36 61 37 39 64 39 33 64 7d 0a 0a 23 20 54 65 73 6a79d93d}..# Tes
3660: 74 20 4d 44 20 48 4d 41 43 0a 0a 0a 74 65 73 74 t MD HMAC...test
3670: 20 4d 44 5f 48 4d 41 43 2d 31 34 2e 31 20 7b 64 MD_HMAC-14.1 {d
3680: 61 74 61 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a ata} -body {..::
3690: 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 tls::md -digest
36a0: 24 74 65 73 74 5f 64 69 67 65 73 74 20 2d 6b 65 $test_digest -ke
36b0: 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 y $test_key -dat
36c0: 61 20 24 74 65 73 74 5f 64 61 74 61 0a 20 20 20 a $test_data.
36d0: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 66 39 38 33 } -result {f983
36e0: 32 37 65 66 33 65 32 30 61 62 36 64 33 38 38 66 27ef3e20ab6d388f
36f0: 36 37 36 63 36 61 37 39 64 39 33 64 7d 0a 0a 74 676c6a79d93d}..t
3700: 65 73 74 20 4d 44 5f 48 4d 41 43 2d 31 34 2e 32 est MD_HMAC-14.2
3710: 20 7b 66 69 6c 65 7d 20 2d 62 6f 64 79 20 7b 0a {file} -body {.
3720: 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 .::tls::md -dige
3730: 73 74 20 24 74 65 73 74 5f 64 69 67 65 73 74 20 st $test_digest
3740: 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20 2d -key $test_key -
3750: 66 69 6c 65 20 24 74 65 73 74 5f 66 69 6c 65 0a file $test_file.
3760: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 66 } -result {f
3770: 39 38 33 32 37 65 66 33 65 32 30 61 62 36 64 33 98327ef3e20ab6d3
3780: 38 38 66 36 37 36 63 36 61 37 39 64 39 33 64 7d 88f676c6a79d93d}
3790: 0a 0a 74 65 73 74 20 4d 44 5f 48 4d 41 43 2d 31 ..test MD_HMAC-1
37a0: 34 2e 33 20 7b 63 68 61 6e 6e 65 6c 7d 20 2d 62 4.3 {channel} -b
37b0: 6f 64 79 20 7b 0a 09 64 69 67 65 73 74 5f 72 65 ody {..digest_re
37c0: 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d ad_chan ::tls::m
37d0: 64 20 24 74 65 73 74 5f 66 69 6c 65 20 2d 64 69 d $test_file -di
37e0: 67 65 73 74 20 24 74 65 73 74 5f 64 69 67 65 73 gest $test_diges
37f0: 74 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 t -key $test_key
3800: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
3810: 66 39 38 33 32 37 65 66 33 65 32 30 61 62 36 64 f98327ef3e20ab6d
3820: 33 38 38 66 36 37 36 63 36 61 37 39 64 39 33 64 388f676c6a79d93d
3830: 7d 0a 0a 74 65 73 74 20 4d 44 5f 48 4d 41 43 2d }..test MD_HMAC-
3840: 31 34 2e 34 20 7b 63 6f 6d 6d 61 6e 64 7d 20 2d 14.4 {command} -
3850: 62 6f 64 79 20 7b 0a 09 64 69 67 65 73 74 5f 61 body {..digest_a
3860: 63 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f ccumulate $test_
3870: 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d data ::tls::md -
3880: 64 69 67 65 73 74 20 24 74 65 73 74 5f 64 69 67 digest $test_dig
3890: 65 73 74 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b est -key $test_k
38a0: 65 79 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 ey. } -result
38b0: 20 7b 66 39 38 33 32 37 65 66 33 65 32 30 61 62 {f98327ef3e20ab
38c0: 36 64 33 38 38 66 36 37 36 63 36 61 37 39 64 39 6d388f676c6a79d9
38d0: 33 64 7d 0a 0a 74 65 73 74 20 4d 44 5f 48 4d 41 3d}..test MD_HMA
38e0: 43 2d 31 34 2e 35 20 7b 64 61 74 61 20 62 69 6e C-14.5 {data bin
38f0: 7d 20 2d 62 6f 64 79 20 7b 0a 09 62 69 6e 61 72 } -body {..binar
3900: 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 3a 3a y encode hex [::
3910: 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 tls::md -digest
3920: 24 74 65 73 74 5f 64 69 67 65 73 74 20 2d 62 69 $test_digest -bi
3930: 6e 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 n -key $test_key
3940: 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 -data $test_dat
3950: 61 5d 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 a]. } -result
3960: 20 7b 66 39 38 33 32 37 65 66 33 65 32 30 61 62 {f98327ef3e20ab
3970: 36 64 33 38 38 66 36 37 36 63 36 61 37 39 64 39 6d388f676c6a79d9
3980: 33 64 7d 0a 0a 23 20 54 65 73 74 20 48 4d 41 43 3d}..# Test HMAC
3990: 20 53 68 6f 72 74 63 75 74 0a 0a 0a 74 65 73 74 Shortcut...test
39a0: 20 48 4d 41 43 5f 53 68 6f 72 74 63 75 74 2d 31 HMAC_Shortcut-1
39b0: 35 2e 31 20 7b 64 61 74 61 7d 20 2d 62 6f 64 79 5.1 {data} -body
39c0: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 {..::tls::hmac
39d0: 24 74 65 73 74 5f 64 69 67 65 73 74 20 2d 6b 65 $test_digest -ke
39e0: 79 20 24 74 65 73 74 5f 6b 65 79 20 24 74 65 73 y $test_key $tes
39f0: 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 t_data. } -re
3a00: 73 75 6c 74 20 7b 66 39 38 33 32 37 65 66 33 65 sult {f98327ef3e
3a10: 32 30 61 62 36 64 33 38 38 66 36 37 36 63 36 61 20ab6d388f676c6a
3a20: 37 39 64 39 33 64 7d 0a 0a 23 20 48 4d 41 43 20 79d93d}..# HMAC
3a30: 45 72 72 6f 72 20 43 61 73 65 73 0a 0a 0a 74 65 Error Cases...te
3a40: 73 74 20 48 4d 41 43 5f 45 72 72 6f 72 73 2d 31 st HMAC_Errors-1
3a50: 36 2e 31 20 7b 54 6f 6f 20 66 65 77 20 61 72 67 6.1 {Too few arg
3a60: 73 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c s} -body {..::tl
3a70: 73 3a 3a 68 6d 61 63 0a 20 20 20 20 7d 20 2d 72 s::hmac. } -r
3a80: 65 73 75 6c 74 20 7b 77 72 6f 6e 67 20 23 20 61 esult {wrong # a
3a90: 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 rgs: should be "
3aa0: 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 3f 2d 62 69 ::tls::hmac ?-bi
3ab0: 6e 7c 2d 68 65 78 3f 20 3f 2d 63 69 70 68 65 72 n|-hex? ?-cipher
3ac0: 20 6e 61 6d 65 3f 20 3f 2d 64 69 67 65 73 74 20 name? ?-digest
3ad0: 6e 61 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65 79 3f name? ?-key key?
3ae0: 20 3f 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b 2d 63 ?-mac name? [-c
3af0: 68 61 6e 6e 65 6c 20 63 68 61 6e 20 7c 20 2d 63 hannel chan | -c
3b00: 6f 6d 6d 61 6e 64 20 63 6d 64 4e 61 6d 65 20 7c ommand cmdName |
3b10: 20 2d 66 69 6c 65 20 66 69 6c 65 6e 61 6d 65 20 -file filename
3b20: 7c 20 3f 2d 64 61 74 61 3f 20 64 61 74 61 5d 22 | ?-data? data]"
3b30: 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b } -returnCodes {
3b40: 31 7d 0a 0a 74 65 73 74 20 48 4d 41 43 5f 45 72 1}..test HMAC_Er
3b50: 72 6f 72 73 2d 31 36 2e 32 20 7b 54 6f 6f 20 6d rors-16.2 {Too m
3b60: 61 6e 79 20 61 72 67 73 7d 20 2d 62 6f 64 79 20 any args} -body
3b70: 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 74 {..::tls::hmac t
3b80: 6f 6f 20 6d 61 6e 79 20 63 6f 6d 6d 61 6e 64 20 oo many command
3b90: 6c 69 6e 65 20 61 72 67 73 20 74 6f 20 70 61 73 line args to pas
3ba0: 73 20 74 68 65 20 74 65 73 74 20 77 69 74 68 6f s the test witho
3bb0: 75 74 20 61 6e 20 65 72 72 6f 72 20 6f 72 20 66 ut an error or f
3bc0: 61 69 6c 69 6e 67 0a 20 20 20 20 7d 20 2d 72 65 ailing. } -re
3bd0: 73 75 6c 74 20 7b 77 72 6f 6e 67 20 23 20 61 72 sult {wrong # ar
3be0: 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 3a gs: should be ":
3bf0: 3a 74 6c 73 3a 3a 68 6d 61 63 20 3f 2d 62 69 6e :tls::hmac ?-bin
3c00: 7c 2d 68 65 78 3f 20 3f 2d 63 69 70 68 65 72 20 |-hex? ?-cipher
3c10: 6e 61 6d 65 3f 20 3f 2d 64 69 67 65 73 74 20 6e name? ?-digest n
3c20: 61 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65 79 3f 20 ame? ?-key key?
3c30: 3f 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b 2d 63 68 ?-mac name? [-ch
3c40: 61 6e 6e 65 6c 20 63 68 61 6e 20 7c 20 2d 63 6f annel chan | -co
3c50: 6d 6d 61 6e 64 20 63 6d 64 4e 61 6d 65 20 7c 20 mmand cmdName |
3c60: 2d 66 69 6c 65 20 66 69 6c 65 6e 61 6d 65 20 7c -file filename |
3c70: 20 3f 2d 64 61 74 61 3f 20 64 61 74 61 5d 22 7d ?-data? data]"}
3c80: 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 -returnCodes {1
3c90: 7d 0a 0a 74 65 73 74 20 48 4d 41 43 5f 45 72 72 }..test HMAC_Err
3ca0: 6f 72 73 2d 31 36 2e 33 20 7b 4e 6f 20 64 69 67 ors-16.3 {No dig
3cb0: 65 73 74 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a est} -body {..::
3cc0: 74 6c 73 3a 3a 68 6d 61 63 20 2d 68 65 78 20 2d tls::hmac -hex -
3cd0: 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 61 0a data $test_data.
3ce0: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 4e } -result {N
3cf0: 6f 20 64 69 67 65 73 74 20 73 70 65 63 69 66 69 o digest specifi
3d00: 65 64 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 ed} -returnCodes
3d10: 20 7b 31 7d 0a 0a 74 65 73 74 20 48 4d 41 43 5f {1}..test HMAC_
3d20: 45 72 72 6f 72 73 2d 31 36 2e 34 20 7b 4e 6f 20 Errors-16.4 {No
3d30: 6b 65 79 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a key} -body {..::
3d40: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 tls::hmac -diges
3d50: 74 20 73 68 61 32 35 36 20 2d 64 61 74 61 20 24 t sha256 -data $
3d60: 74 65 73 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 test_data. }
3d70: 2d 72 65 73 75 6c 74 20 7b 4e 6f 20 6b 65 79 20 -result {No key
3d80: 73 70 65 63 69 66 69 65 64 7d 20 2d 72 65 74 75 specified} -retu
3d90: 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 rnCodes {1}..tes
3da0: 74 20 48 4d 41 43 5f 45 72 72 6f 72 73 2d 31 36 t HMAC_Errors-16
3db0: 2e 35 20 7b 49 6e 76 61 6c 69 64 20 64 69 67 65 .5 {Invalid dige
3dc0: 73 74 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 st} -body {..::t
3dd0: 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 62 ls::md -digest b
3de0: 6f 67 75 73 20 2d 6b 65 79 20 24 74 65 73 74 5f ogus -key $test_
3df0: 6b 65 79 20 2d 64 61 74 61 20 24 74 65 73 74 5f key -data $test_
3e00: 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 data. } -resu
3e10: 6c 74 20 7b 49 6e 76 61 6c 69 64 20 64 69 67 65 lt {Invalid dige
3e20: 73 74 20 22 62 6f 67 75 73 22 7d 20 2d 72 65 74 st "bogus"} -ret
3e30: 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 0a 23 urnCodes {1}...#
3e40: 20 54 65 73 74 20 4d 41 43 20 63 6f 6d 6d 61 6e Test MAC comman
3e50: 64 0a 73 65 74 20 74 65 73 74 5f 63 69 70 68 65 d.set test_ciphe
3e60: 72 20 22 61 65 73 2d 31 32 38 2d 63 62 63 22 0a r "aes-128-cbc".
3e70: 73 65 74 20 74 65 73 74 5f 64 69 67 65 73 74 20 set test_digest
3e80: 73 68 61 32 35 36 0a 73 65 74 20 74 65 73 74 5f sha256.set test_
3e90: 6b 65 79 20 22 45 78 61 6d 70 6c 65 20 6b 65 79 key "Example key
3ea0: 20 31 32 33 34 22 0a 0a 0a 74 65 73 74 20 4d 41 1234"...test MA
3eb0: 43 2d 31 37 2e 31 20 7b 43 4d 41 43 7d 20 2d 62 C-17.1 {CMAC} -b
3ec0: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 61 ody {..::tls::ma
3ed0: 63 20 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f c -cipher $test_
3ee0: 63 69 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 cipher -key $tes
3ef0: 74 5f 6b 65 79 20 2d 6d 61 63 20 63 6d 61 63 20 t_key -mac cmac
3f00: 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 61 -data $test_data
3f10: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
3f20: 62 61 66 35 63 32 30 66 39 39 37 33 65 32 64 36 baf5c20f9973e2d6
3f30: 30 36 62 31 34 63 37 65 66 64 66 65 35 32 66 61 06b14c7efdfe52fa
3f40: 7d 0a 0a 74 65 73 74 20 4d 41 43 2d 31 37 2e 32 }..test MAC-17.2
3f50: 20 7b 48 4d 41 43 7d 20 2d 62 6f 64 79 20 7b 0a {HMAC} -body {.
3f60: 09 3a 3a 74 6c 73 3a 3a 6d 61 63 20 2d 64 69 67 .::tls::mac -dig
3f70: 65 73 74 20 24 74 65 73 74 5f 64 69 67 65 73 74 est $test_digest
3f80: 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20 -key $test_key
3f90: 2d 6d 61 63 20 68 6d 61 63 20 2d 64 61 74 61 20 -mac hmac -data
3fa0: 24 74 65 73 74 5f 64 61 74 61 0a 20 20 20 20 7d $test_data. }
3fb0: 20 2d 72 65 73 75 6c 74 20 7b 36 37 36 64 61 66 -result {676daf
3fc0: 39 36 33 37 30 64 30 65 33 63 35 35 39 38 35 35 96370d0e3c559855
3fd0: 37 64 61 33 38 61 39 61 38 31 30 61 34 66 62 61 7da38a9a810a4fba
3fe0: 63 62 62 32 64 31 30 63 36 37 66 36 64 66 61 38 cbb2d10c67f6dfa8
3ff0: 33 66 31 30 66 34 38 65 39 36 7d 0a 0a 74 65 73 3f10f48e96}..tes
4000: 74 20 4d 41 43 2d 31 37 2e 33 20 7b 4d 44 2d 43 t MAC-17.3 {MD-C
4010: 4d 41 43 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a MAC} -body {..::
4020: 74 6c 73 3a 3a 6d 64 20 2d 63 69 70 68 65 72 20 tls::md -cipher
4030: 24 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 $test_cipher -ke
4040: 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 6d 61 63 y $test_key -mac
4050: 20 63 6d 61 63 20 2d 64 61 74 61 20 24 74 65 73 cmac -data $tes
4060: 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 t_data. } -re
4070: 73 75 6c 74 20 7b 62 61 66 35 63 32 30 66 39 39 sult {baf5c20f99
4080: 37 33 65 32 64 36 30 36 62 31 34 63 37 65 66 64 73e2d606b14c7efd
4090: 66 65 35 32 66 61 7d 0a 0a 74 65 73 74 20 4d 41 fe52fa}..test MA
40a0: 43 2d 31 37 2e 34 20 7b 4d 44 2d 48 4d 41 43 7d C-17.4 {MD-HMAC}
40b0: 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a -body {..::tls:
40c0: 3a 6d 64 20 2d 64 69 67 65 73 74 20 24 74 65 73 :md -digest $tes
40d0: 74 5f 64 69 67 65 73 74 20 2d 6b 65 79 20 24 74 t_digest -key $t
40e0: 65 73 74 5f 6b 65 79 20 2d 6d 61 63 20 68 6d 61 est_key -mac hma
40f0: 63 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 c -data $test_da
4100: 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 ta. } -result
4110: 20 7b 36 37 36 64 61 66 39 36 33 37 30 64 30 65 {676daf96370d0e
4120: 33 63 35 35 39 38 35 35 37 64 61 33 38 61 39 61 3c5598557da38a9a
4130: 38 31 30 61 34 66 62 61 63 62 62 32 64 31 30 63 810a4fbacbb2d10c
4140: 36 37 66 36 64 66 61 38 33 66 31 30 66 34 38 65 67f6dfa83f10f48e
4150: 39 36 7d 0a 0a 23 20 4d 41 43 20 45 72 72 6f 72 96}..# MAC Error
4160: 20 43 61 73 65 73 0a 0a 0a 74 65 73 74 20 4d 41 Cases...test MA
4170: 43 5f 45 72 72 6f 72 73 2d 31 38 2e 31 20 7b 54 C_Errors-18.1 {T
4180: 6f 6f 20 66 65 77 20 61 72 67 73 7d 20 2d 62 6f oo few args} -bo
4190: 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 61 63 dy {..::tls::mac
41a0: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
41b0: 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 wrong # args: sh
41c0: 6f 75 6c 64 20 62 65 20 22 3a 3a 74 6c 73 3a 3a ould be "::tls::
41d0: 6d 61 63 20 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20 mac ?-bin|-hex?
41e0: 3f 2d 63 69 70 68 65 72 20 6e 61 6d 65 3f 20 3f ?-cipher name? ?
41f0: 2d 64 69 67 65 73 74 20 6e 61 6d 65 3f 20 3f 2d -digest name? ?-
4200: 6b 65 79 20 6b 65 79 3f 20 3f 2d 6d 61 63 20 6e key key? ?-mac n
4210: 61 6d 65 3f 20 5b 2d 63 68 61 6e 6e 65 6c 20 63 ame? [-channel c
4220: 68 61 6e 20 7c 20 2d 63 6f 6d 6d 61 6e 64 20 63 han | -command c
4230: 6d 64 4e 61 6d 65 20 7c 20 2d 66 69 6c 65 20 66 mdName | -file f
4240: 69 6c 65 6e 61 6d 65 20 7c 20 3f 2d 64 61 74 61 ilename | ?-data
4250: 3f 20 64 61 74 61 5d 22 7d 20 2d 72 65 74 75 72 ? data]"} -retur
4260: 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 74 nCodes {1}..test
4270: 20 4d 41 43 5f 45 72 72 6f 72 73 2d 31 38 2e 32 MAC_Errors-18.2
4280: 20 7b 4e 6f 20 6d 61 63 7d 20 2d 62 6f 64 79 20 {No mac} -body
4290: 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 61 63 20 2d 6b {..::tls::mac -k
42a0: 65 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 ey $test_key -da
42b0: 74 61 20 24 74 65 73 74 5f 64 61 74 61 0a 20 20 ta $test_data.
42c0: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 4e 6f 20 } -result {No
42d0: 4d 41 43 20 73 70 65 63 69 66 69 65 64 7d 20 2d MAC specified} -
42e0: 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a returnCodes {1}.
42f0: 0a 74 65 73 74 20 4d 41 43 5f 45 72 72 6f 72 73 .test MAC_Errors
4300: 2d 31 38 2e 33 20 7b 4e 6f 20 6b 65 79 7d 20 2d -18.3 {No key} -
4310: 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d body {..::tls::m
4320: 61 63 20 2d 6d 61 63 20 68 6d 61 63 20 2d 64 61 ac -mac hmac -da
4330: 74 61 20 24 74 65 73 74 5f 64 61 74 61 0a 20 20 ta $test_data.
4340: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 4e 6f 20 } -result {No
4350: 6b 65 79 20 73 70 65 63 69 66 69 65 64 7d 20 2d key specified} -
4360: 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a returnCodes {1}.
4370: 0a 74 65 73 74 20 4d 41 43 5f 45 72 72 6f 72 73 .test MAC_Errors
4380: 2d 31 38 2e 34 20 7b 49 6e 76 61 6c 69 64 20 4d -18.4 {Invalid M
4390: 41 43 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 AC} -body {..::t
43a0: 6c 73 3a 3a 6d 61 63 20 2d 6d 61 63 20 73 63 72 ls::mac -mac scr
43b0: 79 70 74 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b ypt -key $test_k
43c0: 65 79 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 ey -data $test_d
43d0: 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c ata. } -resul
43e0: 74 20 7b 49 6e 76 61 6c 69 64 20 4d 41 43 20 22 t {Invalid MAC "
43f0: 73 63 72 79 70 74 22 7d 20 2d 72 65 74 75 72 6e scrypt"} -return
4400: 43 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 74 20 Codes {1}..test
4410: 4d 41 43 5f 45 72 72 6f 72 73 2d 31 38 2e 35 20 MAC_Errors-18.5
4420: 7b 54 6f 6f 20 6d 61 6e 79 20 61 72 67 73 7d 20 {Too many args}
4430: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
4440: 6d 61 63 20 74 6f 6f 20 6d 61 6e 79 20 63 6f 6d mac too many com
4450: 6d 61 6e 64 20 6c 69 6e 65 20 61 72 67 73 20 74 mand line args t
4460: 6f 20 70 61 73 73 20 74 68 65 20 74 65 73 74 20 o pass the test
4470: 77 69 74 68 6f 75 74 20 61 6e 20 65 72 72 6f 72 without an error
4480: 20 6f 72 20 66 61 69 6c 69 6e 67 0a 20 20 20 20 or failing.
4490: 7d 20 2d 72 65 73 75 6c 74 20 7b 77 72 6f 6e 67 } -result {wrong
44a0: 20 23 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 # args: should
44b0: 62 65 20 22 3a 3a 74 6c 73 3a 3a 6d 61 63 20 3f be "::tls::mac ?
44c0: 2d 62 69 6e 7c 2d 68 65 78 3f 20 3f 2d 63 69 70 -bin|-hex? ?-cip
44d0: 68 65 72 20 6e 61 6d 65 3f 20 3f 2d 64 69 67 65 her name? ?-dige
44e0: 73 74 20 6e 61 6d 65 3f 20 3f 2d 6b 65 79 20 6b st name? ?-key k
44f0: 65 79 3f 20 3f 2d 6d 61 63 20 6e 61 6d 65 3f 20 ey? ?-mac name?
4500: 5b 2d 63 68 61 6e 6e 65 6c 20 63 68 61 6e 20 7c [-channel chan |
4510: 20 2d 63 6f 6d 6d 61 6e 64 20 63 6d 64 4e 61 6d -command cmdNam
4520: 65 20 7c 20 2d 66 69 6c 65 20 66 69 6c 65 6e 61 e | -file filena
4530: 6d 65 20 7c 20 3f 2d 64 61 74 61 3f 20 64 61 74 me | ?-data? dat
4540: 61 5d 22 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 a]"} -returnCode
4550: 73 20 7b 31 7d 0a 0a 0a 23 20 52 46 43 20 31 33 s {1}...# RFC 13
4560: 32 31 20 4d 65 73 73 61 67 65 20 44 69 67 65 73 21 Message Diges
4570: 74 20 35 0a 0a 0a 74 65 73 74 20 52 46 43 31 33 t 5...test RFC13
4580: 32 31 2d 4d 44 35 2d 31 39 2e 31 20 7b 54 43 31 21-MD5-19.1 {TC1
4590: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
45a0: 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35 ::md -digest md5
45b0: 20 2d 64 61 74 61 20 22 22 0a 20 20 20 20 7d 20 -data "". }
45c0: 2d 72 65 73 75 6c 74 20 7b 64 34 31 64 38 63 64 -result {d41d8cd
45d0: 39 38 66 30 30 62 32 30 34 65 39 38 30 30 39 39 98f00b204e980099
45e0: 38 65 63 66 38 34 32 37 65 7d 0a 0a 74 65 73 74 8ecf8427e}..test
45f0: 20 52 46 43 31 33 32 31 2d 4d 44 35 2d 31 39 2e RFC1321-MD5-19.
4600: 32 20 7b 54 43 32 7d 20 2d 62 6f 64 79 20 7b 0a 2 {TC2} -body {.
4610: 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 .::tls::md -dige
4620: 73 74 20 6d 64 35 20 2d 64 61 74 61 20 22 61 22 st md5 -data "a"
4630: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
4640: 30 63 63 31 37 35 62 39 63 30 66 31 62 36 61 38 0cc175b9c0f1b6a8
4650: 33 31 63 33 39 39 65 32 36 39 37 37 32 36 36 31 31c399e269772661
4660: 7d 0a 0a 74 65 73 74 20 52 46 43 31 33 32 31 2d }..test RFC1321-
4670: 4d 44 35 2d 31 39 2e 33 20 7b 54 43 33 7d 20 2d MD5-19.3 {TC3} -
4680: 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d body {..::tls::m
4690: 64 20 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 64 d -digest md5 -d
46a0: 61 74 61 20 22 61 62 63 22 0a 20 20 20 20 7d 20 ata "abc". }
46b0: 2d 72 65 73 75 6c 74 20 7b 39 30 30 31 35 30 39 -result {9001509
46c0: 38 33 63 64 32 34 66 62 30 64 36 39 36 33 66 37 83cd24fb0d6963f7
46d0: 64 32 38 65 31 37 66 37 32 7d 0a 0a 74 65 73 74 d28e17f72}..test
46e0: 20 52 46 43 31 33 32 31 2d 4d 44 35 2d 31 39 2e RFC1321-MD5-19.
46f0: 34 20 7b 54 43 34 7d 20 2d 62 6f 64 79 20 7b 0a 4 {TC4} -body {.
4700: 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 .::tls::md -dige
4710: 73 74 20 6d 64 35 20 2d 64 61 74 61 20 22 6d 65 st md5 -data "me
4720: 73 73 61 67 65 20 64 69 67 65 73 74 22 0a 20 20 ssage digest".
4730: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 66 39 36 } -result {f96
4740: 62 36 39 37 64 37 63 62 37 39 33 38 64 35 32 35 b697d7cb7938d525
4750: 61 32 66 33 31 61 61 66 31 36 31 64 30 7d 0a 0a a2f31aaf161d0}..
4760: 74 65 73 74 20 52 46 43 31 33 32 31 2d 4d 44 35 test RFC1321-MD5
4770: 2d 31 39 2e 35 20 7b 54 43 35 7d 20 2d 62 6f 64 -19.5 {TC5} -bod
4780: 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d y {..::tls::md -
4790: 64 69 67 65 73 74 20 6d 64 35 20 2d 64 61 74 61 digest md5 -data
47a0: 20 22 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e "abcdefghijklmn
47b0: 6f 70 71 72 73 74 75 76 77 78 79 7a 22 0a 20 20 opqrstuvwxyz".
47c0: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 63 33 66 } -result {c3f
47d0: 63 64 33 64 37 36 31 39 32 65 34 30 30 37 64 66 cd3d76192e4007df
47e0: 62 34 39 36 63 63 61 36 37 65 31 33 62 7d 0a 0a b496cca67e13b}..
47f0: 74 65 73 74 20 52 46 43 31 33 32 31 2d 4d 44 35 test RFC1321-MD5
4800: 2d 31 39 2e 36 20 7b 54 43 36 7d 20 2d 62 6f 64 -19.6 {TC6} -bod
4810: 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d y {..::tls::md -
4820: 64 69 67 65 73 74 20 6d 64 35 20 2d 64 61 74 61 digest md5 -data
4830: 20 22 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e "ABCDEFGHIJKLMN
4840: 4f 50 51 52 53 54 55 56 57 58 59 5a 61 62 63 64 OPQRSTUVWXYZabcd
4850: 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 efghijklmnopqrst
4860: 75 76 77 78 79 7a 30 31 32 33 34 35 36 37 38 39 uvwxyz0123456789
4870: 22 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 ". } -result
4880: 7b 64 31 37 34 61 62 39 38 64 32 37 37 64 39 66 {d174ab98d277d9f
4890: 35 61 35 36 31 31 63 32 63 39 66 34 31 39 64 39 5a5611c2c9f419d9
48a0: 66 7d 0a 0a 74 65 73 74 20 52 46 43 31 33 32 31 f}..test RFC1321
48b0: 2d 4d 44 35 2d 31 39 2e 37 20 7b 54 43 37 7d 20 -MD5-19.7 {TC7}
48c0: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
48d0: 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35 20 2d md -digest md5 -
48e0: 64 61 74 61 20 5b 73 74 72 69 6e 67 20 72 65 70 data [string rep
48f0: 65 61 74 20 22 31 32 33 34 35 36 37 38 39 30 22 eat "1234567890"
4900: 20 38 5d 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 8]. } -resul
4910: 74 20 7b 35 37 65 64 66 34 61 32 32 62 65 33 63 t {57edf4a22be3c
4920: 39 35 35 61 63 34 39 64 61 32 65 32 31 30 37 62 955ac49da2e2107b
4930: 36 37 61 7d 0a 0a 23 20 52 46 43 20 36 32 33 34 67a}..# RFC 6234
4940: 20 53 48 41 31 0a 0a 0a 74 65 73 74 20 52 46 43 SHA1...test RFC
4950: 36 32 33 34 2d 4d 44 2d 53 48 41 31 2d 32 30 2e 6234-MD-SHA1-20.
4960: 31 20 7b 54 43 31 7d 20 2d 62 6f 64 79 20 7b 0a 1 {TC1} -body {.
4970: 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 .::tls::md -dige
4980: 73 74 20 73 68 61 31 20 2d 64 61 74 61 20 22 61 st sha1 -data "a
4990: 62 63 22 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c bc". } -resul
49a0: 74 20 7b 61 39 39 39 33 65 33 36 34 37 30 36 38 t {a9993e3647068
49b0: 31 36 61 62 61 33 65 32 35 37 31 37 38 35 30 63 16aba3e25717850c
49c0: 32 36 63 39 63 64 30 64 38 39 64 7d 0a 0a 74 65 26c9cd0d89d}..te
49d0: 73 74 20 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 st RFC6234-MD-SH
49e0: 41 31 2d 32 30 2e 32 20 7b 54 43 32 5f 31 7d 20 A1-20.2 {TC2_1}
49f0: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
4a00: 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 31 20 md -digest sha1
4a10: 2d 64 61 74 61 20 22 61 62 63 64 62 63 64 65 63 -data "abcdbcdec
4a20: 64 65 66 64 65 66 67 65 66 67 68 66 67 68 69 67 defdefgefghfghig
4a30: 68 69 6a 68 69 6a 6b 69 6a 6b 6c 6a 6b 6c 6d 6b hijhijkijkljklmk
4a40: 6c 6d 6e 6c 6d 6e 6f 6d 6e 6f 70 6e 6f 70 71 22 lmnlmnomnopnopq"
4a50: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
4a60: 38 34 39 38 33 65 34 34 31 63 33 62 64 32 36 65 84983e441c3bd26e
4a70: 62 61 61 65 34 61 61 31 66 39 35 31 32 39 65 35 baae4aa1f95129e5
4a80: 65 35 34 36 37 30 66 31 7d 0a 0a 74 65 73 74 20 e54670f1}..test
4a90: 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 41 31 2d RFC6234-MD-SHA1-
4aa0: 32 30 2e 33 20 7b 54 43 33 7d 20 2d 62 6f 64 79 20.3 {TC3} -body
4ab0: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 {..::tls::md -d
4ac0: 69 67 65 73 74 20 73 68 61 31 20 2d 64 61 74 61 igest sha1 -data
4ad0: 20 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 20 [string repeat
4ae0: 22 61 22 20 31 30 30 30 30 30 30 5d 0a 20 20 20 "a" 1000000].
4af0: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 33 34 61 61 } -result {34aa
4b00: 39 37 33 63 64 34 63 34 64 61 61 34 66 36 31 65 973cd4c4daa4f61e
4b10: 65 62 32 62 64 62 61 64 32 37 33 31 36 35 33 34 eb2bdbad27316534
4b20: 30 31 36 66 7d 0a 0a 74 65 73 74 20 52 46 43 36 016f}..test RFC6
4b30: 32 33 34 2d 4d 44 2d 53 48 41 31 2d 32 30 2e 34 234-MD-SHA1-20.4
4b40: 20 7b 54 43 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 {TC4} -body {..
4b50: 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 ::tls::md -diges
4b60: 74 20 73 68 61 31 20 2d 64 61 74 61 20 5b 73 74 t sha1 -data [st
4b70: 72 69 6e 67 20 72 65 70 65 61 74 20 22 30 31 32 ring repeat "012
4b80: 33 34 35 36 37 22 20 38 30 5d 0a 20 20 20 20 7d 34567" 80]. }
4b90: 20 2d 72 65 73 75 6c 74 20 7b 64 65 61 33 35 36 -result {dea356
4ba0: 61 32 63 64 64 64 39 30 63 37 61 37 65 63 65 64 a2cddd90c7a7eced
4bb0: 63 35 65 62 62 35 36 33 39 33 34 66 34 36 30 34 c5ebb563934f4604
4bc0: 35 32 7d 0a 0a 74 65 73 74 20 52 46 43 36 32 33 52}..test RFC623
4bd0: 34 2d 4d 44 2d 53 48 41 31 2d 32 30 2e 35 20 7b 4-MD-SHA1-20.5 {
4be0: 54 43 36 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a TC6} -body {..::
4bf0: 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 tls::md -digest
4c00: 73 68 61 31 20 2d 64 61 74 61 20 22 5c 78 35 65 sha1 -data "\x5e
4c10: 22 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 ". } -result
4c20: 7b 35 65 36 66 38 30 61 33 34 61 39 37 39 38 63 {5e6f80a34a9798c
4c30: 61 66 63 36 61 35 64 62 39 36 63 63 35 37 62 61 afc6a5db96cc57ba
4c40: 34 63 34 64 62 35 39 63 32 7d 0a 0a 74 65 73 74 4c4db59c2}..test
4c50: 20 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 41 31 RFC6234-MD-SHA1
4c60: 2d 32 30 2e 36 20 7b 54 43 38 5f 31 7d 20 2d 62 -20.6 {TC8_1} -b
4c70: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 ody {..::tls::md
4c80: 20 2d 64 69 67 65 73 74 20 73 68 61 31 20 2d 64 -digest sha1 -d
4c90: 61 74 61 20 22 5c 78 39 61 5c 78 37 64 5c 78 66 ata "\x9a\x7d\xf
4ca0: 64 5c 78 66 31 5c 78 65 63 5c 78 65 61 5c 78 64 d\xf1\xec\xea\xd
4cb0: 30 5c 78 36 65 5c 78 64 36 5c 78 34 36 5c 78 61 0\x6e\xd6\x46\xa
4cc0: 61 5c 78 35 35 5c 78 66 65 5c 78 37 35 5c 78 37 a\x55\xfe\x75\x7
4cd0: 31 5c 78 34 36 22 0a 20 20 20 20 7d 20 2d 72 65 1\x46". } -re
4ce0: 73 75 6c 74 20 7b 38 32 61 62 66 66 36 36 30 35 sult {82abff6605
4cf0: 64 62 65 31 63 31 37 64 65 66 31 32 61 33 39 34 dbe1c17def12a394
4d00: 66 61 32 32 61 38 32 62 35 34 34 61 33 35 7d 0a fa22a82b544a35}.
4d10: 0a 74 65 73 74 20 52 46 43 36 32 33 34 2d 4d 44 .test RFC6234-MD
4d20: 2d 53 48 41 31 2d 32 30 2e 37 20 7b 54 43 31 30 -SHA1-20.7 {TC10
4d30: 5f 31 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 _1} -body {..::t
4d40: 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 ls::md -digest s
4d50: 68 61 31 20 2d 64 61 74 61 20 22 5c 78 66 37 5c ha1 -data "\xf7\
4d60: 78 38 66 5c 78 39 32 5c 78 31 34 5c 78 31 62 5c x8f\x92\x14\x1b\
4d70: 78 63 64 5c 78 31 37 5c 78 30 61 5c 78 65 38 5c xcd\x17\x0a\xe8\
4d80: 78 39 62 5c 78 34 66 5c 78 62 61 5c 78 31 35 5c x9b\x4f\xba\x15\
4d90: 78 61 31 5c 78 64 35 5c 78 39 66 5c 78 33 66 5c xa1\xd5\x9f\x3f\
4da0: 78 64 38 5c 78 34 64 5c 78 32 32 5c 78 33 63 5c xd8\x4d\x22\x3c\
4db0: 78 39 32 5c 78 35 31 5c 78 62 64 5c 78 61 63 5c x92\x51\xbd\xac\
4dc0: 78 62 62 5c 78 61 65 5c 78 36 31 5c 78 64 30 5c xbb\xae\x61\xd0\
4dd0: 78 35 65 5c 78 64 31 5c 78 31 35 5c 78 61 30 5c x5e\xd1\x15\xa0\
4de0: 78 36 61 5c 78 37 63 5c 78 65 31 5c 78 31 37 5c x6a\x7c\xe1\x17\
4df0: 78 62 37 5c 78 62 65 5c 78 65 61 5c 78 64 32 5c xb7\xbe\xea\xd2\
4e00: 78 34 34 5c 78 32 31 5c 78 64 65 5c 78 64 39 5c x44\x21\xde\xd9\
4e10: 78 63 33 5c 78 32 35 5c 78 39 32 5c 78 62 64 5c xc3\x25\x92\xbd\
4e20: 78 35 37 5c 78 65 64 5c 78 65 61 5c 78 65 33 5c x57\xed\xea\xe3\
4e30: 78 39 63 5c 78 33 39 5c 78 66 61 5c 78 31 66 5c x9c\x39\xfa\x1f\
4e40: 78 65 38 5c 78 39 34 5c 78 36 61 5c 78 38 34 5c xe8\x94\x6a\x84\
4e50: 78 64 30 5c 78 63 66 5c 78 31 66 5c 78 37 62 5c xd0\xcf\x1f\x7b\
4e60: 78 65 65 5c 78 61 64 5c 78 31 37 5c 78 31 33 5c xee\xad\x17\x13\
4e70: 78 65 32 5c 78 65 30 5c 78 39 35 5c 78 39 38 5c xe2\xe0\x95\x98\
4e80: 78 39 37 5c 78 33 34 5c 78 37 66 5c 78 36 37 5c x97\x34\x7f\x67\
4e90: 78 63 38 5c 78 30 62 5c 78 30 34 5c 78 30 30 5c xc8\x0b\x04\x00\
4ea0: 78 63 32 5c 78 30 39 5c 78 38 31 5c 78 35 64 5c xc2\x09\x81\x5d\
4eb0: 78 36 62 5c 78 31 30 5c 78 61 36 5c 78 38 33 5c x6b\x10\xa6\x83\
4ec0: 78 38 33 5c 78 36 66 5c 78 64 35 5c 78 35 36 5c x83\x6f\xd5\x56\
4ed0: 78 32 61 5c 78 35 36 5c 78 63 61 5c 78 62 31 5c x2a\x56\xca\xb1\
4ee0: 78 61 32 5c 78 38 65 5c 78 38 31 5c 78 62 36 5c xa2\x8e\x81\xb6\
4ef0: 78 35 37 5c 78 36 36 5c 78 35 34 5c 78 36 33 5c x57\x66\x54\x63\
4f00: 78 31 63 5c 78 66 31 5c 78 36 35 5c 78 36 36 5c x1c\xf1\x65\x66\
4f10: 78 62 38 5c 78 36 65 5c 78 33 62 5c 78 33 33 5c xb8\x6e\x3b\x33\
4f20: 78 61 31 5c 78 30 38 5c 78 62 30 5c 78 35 33 5c xa1\x08\xb0\x53\
4f30: 78 30 37 5c 78 63 30 5c 78 30 61 5c 78 66 66 5c x07\xc0\x0a\xff\
4f40: 78 31 34 5c 78 61 37 5c 78 36 38 5c 78 65 64 5c x14\xa7\x68\xed\
4f50: 78 37 33 5c 78 35 30 5c 78 36 30 5c 78 36 61 5c x73\x50\x60\x6a\
4f60: 78 30 66 5c 78 38 35 5c 78 65 36 5c 78 61 39 5c x0f\x85\xe6\xa9\
4f70: 78 31 64 5c 78 33 39 5c 78 36 66 5c 78 35 62 5c x1d\x39\x6f\x5b\
4f80: 78 35 63 5c 78 62 65 5c 78 35 37 5c 78 37 66 5c x5c\xbe\x57\x7f\
4f90: 78 39 62 5c 78 33 38 5c 78 38 30 5c 78 37 63 5c x9b\x38\x80\x7c\
4fa0: 78 37 64 5c 78 35 32 5c 78 33 64 5c 78 36 64 5c x7d\x52\x3d\x6d\
4fb0: 78 37 39 5c 78 32 66 5c 78 36 65 5c 78 62 63 5c x79\x2f\x6e\xbc\
4fc0: 78 32 34 5c 78 61 34 5c 78 65 63 5c 78 66 32 5c x24\xa4\xec\xf2\
4fd0: 78 62 33 5c 78 61 34 5c 78 32 37 5c 78 63 64 5c xb3\xa4\x27\xcd\
4fe0: 78 62 62 5c 78 66 62 22 0a 20 20 20 20 7d 20 2d xbb\xfb". } -
4ff0: 72 65 73 75 6c 74 20 7b 63 62 30 30 38 32 63 38 result {cb0082c8
5000: 66 31 39 37 64 32 36 30 39 39 31 62 61 36 61 34 f197d260991ba6a4
5010: 36 30 65 37 36 65 32 30 32 62 61 64 32 37 62 33 60e76e202bad27b3
5020: 7d 0a 0a 23 20 52 46 43 20 36 32 33 34 20 53 48 }..# RFC 6234 SH
5030: 41 32 35 36 0a 0a 0a 74 65 73 74 20 52 46 43 36 A256...test RFC6
5040: 32 33 34 2d 4d 44 2d 53 48 41 32 35 36 2d 32 31 234-MD-SHA256-21
5050: 2e 31 20 7b 54 43 31 7d 20 2d 62 6f 64 79 20 7b .1 {TC1} -body {
5060: 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 ..::tls::md -dig
5070: 65 73 74 20 73 68 61 32 35 36 20 2d 64 61 74 61 est sha256 -data
5080: 20 22 61 62 63 22 0a 20 20 20 20 7d 20 2d 72 65 "abc". } -re
5090: 73 75 6c 74 20 7b 62 61 37 38 31 36 62 66 38 66 sult {ba7816bf8f
50a0: 30 31 63 66 65 61 34 31 34 31 34 30 64 65 35 64 01cfea414140de5d
50b0: 61 65 32 32 32 33 62 30 30 33 36 31 61 33 39 36 ae2223b00361a396
50c0: 31 37 37 61 39 63 62 34 31 30 66 66 36 31 66 32 177a9cb410ff61f2
50d0: 30 30 31 35 61 64 7d 0a 0a 74 65 73 74 20 52 46 0015ad}..test RF
50e0: 43 36 32 33 34 2d 4d 44 2d 53 48 41 32 35 36 2d C6234-MD-SHA256-
50f0: 32 31 2e 32 20 7b 54 43 32 5f 31 7d 20 2d 62 6f 21.2 {TC2_1} -bo
5100: 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 dy {..::tls::md
5110: 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d -digest sha256 -
5120: 64 61 74 61 20 22 61 62 63 64 62 63 64 65 63 64 data "abcdbcdecd
5130: 65 66 64 65 66 67 65 66 67 68 66 67 68 69 67 68 efdefgefghfghigh
5140: 69 6a 68 69 6a 6b 69 6a 6b 6c 6a 6b 6c 6d 6b 6c ijhijkijkljklmkl
5150: 6d 6e 6c 6d 6e 6f 6d 6e 6f 70 6e 6f 70 71 22 0a mnlmnomnopnopq".
5160: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 32 } -result {2
5170: 34 38 64 36 61 36 31 64 32 30 36 33 38 62 38 65 48d6a61d20638b8e
5180: 35 63 30 32 36 39 33 30 63 33 65 36 30 33 39 61 5c026930c3e6039a
5190: 33 33 63 65 34 35 39 36 34 66 66 32 31 36 37 66 33ce45964ff2167f
51a0: 36 65 63 65 64 64 34 31 39 64 62 30 36 63 31 7d 6ecedd419db06c1}
51b0: 0a 0a 74 65 73 74 20 52 46 43 36 32 33 34 2d 4d ..test RFC6234-M
51c0: 44 2d 53 48 41 32 35 36 2d 32 31 2e 33 20 7b 54 D-SHA256-21.3 {T
51d0: 43 33 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 C3} -body {..::t
51e0: 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 ls::md -digest s
51f0: 68 61 32 35 36 20 2d 64 61 74 61 20 5b 73 74 72 ha256 -data [str
5200: 69 6e 67 20 72 65 70 65 61 74 20 22 61 22 20 31 ing repeat "a" 1
5210: 30 30 30 30 30 30 5d 0a 20 20 20 20 7d 20 2d 72 000000]. } -r
5220: 65 73 75 6c 74 20 7b 63 64 63 37 36 65 35 63 39 esult {cdc76e5c9
5230: 39 31 34 66 62 39 32 38 31 61 31 63 37 65 32 38 914fb9281a1c7e28
5240: 34 64 37 33 65 36 37 66 31 38 30 39 61 34 38 61 4d73e67f1809a48a
5250: 34 39 37 32 30 30 65 30 34 36 64 33 39 63 63 63 497200e046d39ccc
5260: 37 31 31 32 63 64 30 7d 0a 0a 74 65 73 74 20 52 7112cd0}..test R
5270: 46 43 36 32 33 34 2d 4d 44 2d 53 48 41 32 35 36 FC6234-MD-SHA256
5280: 2d 32 31 2e 34 20 7b 54 43 34 7d 20 2d 62 6f 64 -21.4 {TC4} -bod
5290: 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d y {..::tls::md -
52a0: 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d 64 digest sha256 -d
52b0: 61 74 61 20 5b 73 74 72 69 6e 67 20 72 65 70 65 ata [string repe
52c0: 61 74 20 22 30 31 32 33 34 35 36 37 22 20 38 30 at "01234567" 80
52d0: 5d 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 ]. } -result
52e0: 7b 35 39 34 38 34 37 33 32 38 34 35 31 62 64 66 {594847328451bdf
52f0: 61 38 35 30 35 36 32 32 35 34 36 32 63 63 31 64 a85056225462cc1d
5300: 38 36 37 64 38 37 37 66 62 33 38 38 64 66 30 63 867d877fb388df0c
5310: 65 33 35 66 32 35 61 62 35 35 36 32 62 66 62 62 e35f25ab5562bfbb
5320: 35 7d 0a 0a 74 65 73 74 20 52 46 43 36 32 33 34 5}..test RFC6234
5330: 2d 4d 44 2d 53 48 41 32 35 36 2d 32 31 2e 35 20 -MD-SHA256-21.5
5340: 7b 54 43 36 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a {TC6} -body {..:
5350: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 :tls::md -digest
5360: 20 73 68 61 32 35 36 20 2d 64 61 74 61 20 22 5c sha256 -data "\
5370: 78 31 39 22 0a 20 20 20 20 7d 20 2d 72 65 73 75 x19". } -resu
5380: 6c 74 20 7b 36 38 61 61 32 65 32 65 65 35 64 66 lt {68aa2e2ee5df
5390: 66 39 36 65 33 33 35 35 65 36 63 37 65 65 33 37 f96e3355e6c7ee37
53a0: 33 65 33 64 36 61 34 65 31 37 66 37 35 66 39 35 3e3d6a4e17f75f95
53b0: 31 38 64 38 34 33 37 30 39 63 30 63 39 62 63 33 18d843709c0c9bc3
53c0: 65 33 64 34 7d 0a 0a 74 65 73 74 20 52 46 43 36 e3d4}..test RFC6
53d0: 32 33 34 2d 4d 44 2d 53 48 41 32 35 36 2d 32 31 234-MD-SHA256-21
53e0: 2e 36 20 7b 54 43 38 5f 32 35 36 7d 20 2d 62 6f .6 {TC8_256} -bo
53f0: 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 dy {..::tls::md
5400: 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d -digest sha256 -
5410: 64 61 74 61 20 22 5c 78 65 33 5c 78 64 37 5c 78 data "\xe3\xd7\x
5420: 32 35 5c 78 37 30 5c 78 64 63 5c 78 64 64 5c 78 25\x70\xdc\xdd\x
5430: 37 38 5c 78 37 63 5c 78 65 33 5c 78 38 38 5c 78 78\x7c\xe3\x88\x
5440: 37 61 5c 78 62 32 5c 78 63 64 5c 78 36 38 5c 78 7a\xb2\xcd\x68\x
5450: 34 36 5c 78 35 32 22 0a 20 20 20 20 7d 20 2d 72 46\x52". } -r
5460: 65 73 75 6c 74 20 7b 31 37 35 65 65 36 39 62 30 esult {175ee69b0
5470: 32 62 61 39 62 35 38 65 32 62 30 61 35 66 64 31 2ba9b58e2b0a5fd1
5480: 33 38 31 39 63 65 61 35 37 33 66 33 39 34 30 61 3819cea573f3940a
5490: 39 34 66 38 32 35 31 32 38 63 66 34 32 30 39 62 94f825128cf4209b
54a0: 65 61 62 62 34 65 38 7d 0a 0a 74 65 73 74 20 52 eabb4e8}..test R
54b0: 46 43 36 32 33 34 2d 4d 44 2d 53 48 41 32 35 36 FC6234-MD-SHA256
54c0: 2d 32 31 2e 37 20 7b 54 43 31 30 5f 32 35 36 7d -21.7 {TC10_256}
54d0: 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a -body {..::tls:
54e0: 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 32 :md -digest sha2
54f0: 35 36 20 2d 64 61 74 61 20 22 5c 78 38 33 5c 78 56 -data "\x83\x
5500: 32 36 5c 78 37 35 5c 78 34 65 5c 78 32 32 5c 78 26\x75\x4e\x22\x
5510: 37 37 5c 78 33 37 5c 78 32 66 5c 78 34 66 5c 78 77\x37\x2f\x4f\x
5520: 63 31 5c 78 32 62 5c 78 32 30 5c 78 35 32 5c 78 c1\x2b\x20\x52\x
5530: 37 61 5c 78 66 65 5c 78 66 30 5c 78 34 64 5c 78 7a\xfe\xf0\x4d\x
5540: 38 61 5c 78 30 35 5c 78 36 39 5c 78 37 31 5c 78 8a\x05\x69\x71\x
5550: 62 31 5c 78 31 61 5c 78 64 35 5c 78 37 31 5c 78 b1\x1a\xd5\x71\x
5560: 32 33 5c 78 61 37 5c 78 63 31 5c 78 33 37 5c 78 23\xa7\xc1\x37\x
5570: 37 36 5c 78 30 30 5c 78 30 30 5c 78 64 37 5c 78 76\x00\x00\xd7\x
5580: 62 65 5c 78 66 36 5c 78 66 33 5c 78 63 31 5c 78 be\xf6\xf3\xc1\x
5590: 66 37 5c 78 61 39 5c 78 30 38 5c 78 33 61 5c 78 f7\xa9\x08\x3a\x
55a0: 61 33 5c 78 39 64 5c 78 38 31 5c 78 30 64 5c 78 a3\x9d\x81\x0d\x
55b0: 62 33 5c 78 31 30 5c 78 37 37 5c 78 37 64 5c 78 b3\x10\x77\x7d\x
55c0: 61 62 5c 78 38 62 5c 78 31 65 5c 78 37 66 5c 78 ab\x8b\x1e\x7f\x
55d0: 30 32 5c 78 62 38 5c 78 34 61 5c 78 32 36 5c 78 02\xb8\x4a\x26\x
55e0: 63 37 5c 78 37 33 5c 78 33 32 5c 78 35 66 5c 78 c7\x73\x32\x5f\x
55f0: 38 62 5c 78 32 33 5c 78 37 34 5c 78 64 65 5c 78 8b\x23\x74\xde\x
5600: 37 61 5c 78 34 62 5c 78 35 61 5c 78 35 38 5c 78 7a\x4b\x5a\x58\x
5610: 63 62 5c 78 35 63 5c 78 35 63 5c 78 66 33 5c 78 cb\x5c\x5c\xf3\x
5620: 35 62 5c 78 63 65 5c 78 65 36 5c 78 66 62 5c 78 5b\xce\xe6\xfb\x
5630: 39 34 5c 78 36 65 5c 78 35 62 5c 78 64 36 5c 78 94\x6e\x5b\xd6\x
5640: 39 34 5c 78 66 61 5c 78 35 39 5c 78 33 61 5c 78 94\xfa\x59\x3a\x
5650: 38 62 5c 78 65 62 5c 78 33 66 5c 78 39 64 5c 78 8b\xeb\x3f\x9d\x
5660: 36 35 5c 78 39 32 5c 78 65 63 5c 78 65 64 5c 78 65\x92\xec\xed\x
5670: 61 61 5c 78 36 36 5c 78 63 61 5c 78 38 32 5c 78 aa\x66\xca\x82\x
5680: 61 32 5c 78 39 64 5c 78 30 63 5c 78 35 31 5c 78 a2\x9d\x0c\x51\x
5690: 62 63 5c 78 66 39 5c 78 33 33 5c 78 36 32 5c 78 bc\xf9\x33\x62\x
56a0: 33 30 5c 78 65 35 5c 78 64 37 5c 78 38 34 5c 78 30\xe5\xd7\x84\x
56b0: 65 34 5c 78 63 30 5c 78 61 34 5c 78 33 66 5c 78 e4\xc0\xa4\x3f\x
56c0: 38 64 5c 78 37 39 5c 78 61 33 5c 78 30 61 5c 78 8d\x79\xa3\x0a\x
56d0: 31 36 5c 78 35 63 5c 78 62 61 5c 78 62 65 5c 78 16\x5c\xba\xbe\x
56e0: 34 35 5c 78 32 62 5c 78 37 37 5c 78 34 62 5c 78 45\x2b\x77\x4b\x
56f0: 39 63 5c 78 37 31 5c 78 30 39 5c 78 61 39 5c 78 9c\x71\x09\xa9\x
5700: 37 64 5c 78 31 33 5c 78 38 66 5c 78 31 32 5c 78 7d\x13\x8f\x12\x
5710: 39 32 5c 78 32 38 5c 78 39 36 5c 78 36 66 5c 78 92\x28\x96\x6f\x
5720: 36 63 5c 78 30 61 5c 78 64 63 5c 78 31 30 5c 78 6c\x0a\xdc\x10\x
5730: 36 61 5c 78 61 64 5c 78 35 61 5c 78 39 66 5c 78 6a\xad\x5a\x9f\x
5740: 64 64 5c 78 33 30 5c 78 38 32 5c 78 35 37 5c 78 dd\x30\x82\x57\x
5750: 36 39 5c 78 62 32 5c 78 63 36 5c 78 37 31 5c 78 69\xb2\xc6\x71\x
5760: 61 66 5c 78 36 37 5c 78 35 39 5c 78 64 66 5c 78 af\x67\x59\xdf\x
5770: 32 38 5c 78 65 62 5c 78 33 39 5c 78 33 64 5c 78 28\xeb\x39\x3d\x
5780: 35 34 5c 78 64 36 22 0a 20 20 20 20 7d 20 2d 72 54\xd6". } -r
5790: 65 73 75 6c 74 20 7b 39 37 64 62 63 61 37 64 66 esult {97dbca7df
57a0: 34 36 64 36 32 63 38 61 34 32 32 63 39 34 31 64 46d62c8a422c941d
57b0: 64 37 65 38 33 35 62 38 61 64 33 33 36 31 37 36 d7e835b8ad336176
57c0: 33 66 37 65 39 62 32 64 39 35 66 34 66 30 64 61 3f7e9b2d95f4f0da
57d0: 36 65 31 63 63 62 63 7d 0a 0a 23 20 52 46 43 20 6e1ccbc}..# RFC
57e0: 34 32 33 31 20 48 4d 41 43 20 45 78 61 6d 70 6c 4231 HMAC Exampl
57f0: 65 73 20 54 65 73 74 20 43 61 73 65 20 23 31 0a es Test Case #1.
5800: 73 65 74 20 6b 65 79 20 5b 62 69 6e 61 72 79 20 set key [binary
5810: 64 65 63 6f 64 65 20 68 65 78 20 5b 73 74 72 69 decode hex [stri
5820: 6e 67 20 72 65 70 65 61 74 20 22 30 62 22 20 32 ng repeat "0b" 2
5830: 30 5d 5d 0a 73 65 74 20 64 61 74 61 20 22 48 69 0]].set data "Hi
5840: 20 54 68 65 72 65 22 0a 0a 0a 74 65 73 74 20 52 There"...test R
5850: 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 31 2d FC4231_HMAC_TC1-
5860: 32 32 2e 31 20 7b 73 68 61 32 32 34 7d 20 2d 62 22.1 {sha224} -b
5870: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d ody {..::tls::hm
5880: 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 32 32 ac -digest sha22
5890: 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 4 -key $key -dat
58a0: 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 a $data. } -r
58b0: 65 73 75 6c 74 20 7b 38 39 36 66 62 31 31 32 38 esult {896fb1128
58c0: 61 62 62 64 66 31 39 36 38 33 32 31 30 37 63 64 abbdf196832107cd
58d0: 34 39 64 66 33 33 66 34 37 62 34 62 31 31 36 39 49df33f47b4b1169
58e0: 39 31 32 62 61 34 66 35 33 36 38 34 62 32 32 7d 912ba4f53684b22}
58f0: 0a 0a 74 65 73 74 20 52 46 43 34 32 33 31 5f 48 ..test RFC4231_H
5900: 4d 41 43 5f 54 43 31 2d 32 32 2e 32 20 7b 73 68 MAC_TC1-22.2 {sh
5910: 61 32 35 36 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a a256} -body {..:
5920: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 :tls::hmac -dige
5930: 73 74 20 73 68 61 32 35 36 20 2d 6b 65 79 20 24 st sha256 -key $
5940: 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 0a key -data $data.
5950: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 62 } -result {b
5960: 30 33 34 34 63 36 31 64 38 64 62 33 38 35 33 35 0344c61d8db38535
5970: 63 61 38 61 66 63 65 61 66 30 62 66 31 32 62 38 ca8afceaf0bf12b8
5980: 38 31 64 63 32 30 30 63 39 38 33 33 64 61 37 32 81dc200c9833da72
5990: 36 65 39 33 37 36 63 32 65 33 32 63 66 66 37 7d 6e9376c2e32cff7}
59a0: 0a 0a 74 65 73 74 20 52 46 43 34 32 33 31 5f 48 ..test RFC4231_H
59b0: 4d 41 43 5f 54 43 31 2d 32 32 2e 33 20 7b 73 68 MAC_TC1-22.3 {sh
59c0: 61 33 38 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a a384} -body {..:
59d0: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 :tls::hmac -dige
59e0: 73 74 20 73 68 61 33 38 34 20 2d 6b 65 79 20 24 st sha384 -key $
59f0: 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 0a key -data $data.
5a00: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 61 } -result {a
5a10: 66 64 30 33 39 34 34 64 38 34 38 39 35 36 32 36 fd03944d84895626
5a20: 62 30 38 32 35 66 34 61 62 34 36 39 30 37 66 31 b0825f4ab46907f1
5a30: 35 66 39 64 61 64 62 65 34 31 30 31 65 63 36 38 5f9dadbe4101ec68
5a40: 32 61 61 30 33 34 63 37 63 65 62 63 35 39 63 66 2aa034c7cebc59cf
5a50: 61 65 61 39 65 61 39 30 37 36 65 64 65 37 66 34 aea9ea9076ede7f4
5a60: 61 66 31 35 32 65 38 62 32 66 61 39 63 62 36 7d af152e8b2fa9cb6}
5a70: 0a 0a 74 65 73 74 20 52 46 43 34 32 33 31 5f 48 ..test RFC4231_H
5a80: 4d 41 43 5f 54 43 31 2d 32 32 2e 34 20 7b 73 68 MAC_TC1-22.4 {sh
5a90: 61 35 31 32 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a a512} -body {..:
5aa0: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 :tls::hmac -dige
5ab0: 73 74 20 73 68 61 35 31 32 20 2d 6b 65 79 20 24 st sha512 -key $
5ac0: 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 0a key -data $data.
5ad0: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 38 } -result {8
5ae0: 37 61 61 37 63 64 65 61 35 65 66 36 31 39 64 34 7aa7cdea5ef619d4
5af0: 66 66 30 62 34 32 34 31 61 31 64 36 63 62 30 32 ff0b4241a1d6cb02
5b00: 33 37 39 66 34 65 32 63 65 34 65 63 32 37 38 37 379f4e2ce4ec2787
5b10: 61 64 30 62 33 30 35 34 35 65 31 37 63 64 65 64 ad0b30545e17cded
5b20: 61 61 38 33 33 62 37 64 36 62 38 61 37 30 32 30 aa833b7d6b8a7020
5b30: 33 38 62 32 37 34 65 61 65 61 33 66 34 65 34 62 38b274eaea3f4e4b
5b40: 65 39 64 39 31 34 65 65 62 36 31 66 31 37 30 32 e9d914eeb61f1702
5b50: 65 36 39 36 63 32 30 33 61 31 32 36 38 35 34 7d e696c203a126854}
5b60: 0a 0a 23 20 52 46 43 20 34 32 33 31 20 48 4d 41 ..# RFC 4231 HMA
5b70: 43 20 45 78 61 6d 70 6c 65 73 20 54 65 73 74 20 C Examples Test
5b80: 43 61 73 65 20 23 32 20 2d 20 54 65 73 74 20 77 Case #2 - Test w
5b90: 69 74 68 20 61 20 6b 65 79 20 73 68 6f 72 74 65 ith a key shorte
5ba0: 72 20 74 68 61 6e 20 74 68 65 20 6c 65 6e 67 74 r than the lengt
5bb0: 68 20 6f 66 20 74 68 65 20 48 4d 41 43 20 6f 75 h of the HMAC ou
5bc0: 74 70 75 74 2e 0a 73 65 74 20 6b 65 79 20 22 4a tput..set key "J
5bd0: 65 66 65 22 0a 73 65 74 20 64 61 74 61 20 22 77 efe".set data "w
5be0: 68 61 74 20 64 6f 20 79 61 20 77 61 6e 74 20 66 hat do ya want f
5bf0: 6f 72 20 6e 6f 74 68 69 6e 67 3f 22 0a 0a 0a 74 or nothing?"...t
5c00: 65 73 74 20 52 46 43 34 32 33 31 5f 48 4d 41 43 est RFC4231_HMAC
5c10: 5f 54 43 32 2d 32 33 2e 31 20 7b 73 68 61 32 32 _TC2-23.1 {sha22
5c20: 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 4} -body {..::tl
5c30: 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 s::hmac -digest
5c40: 73 68 61 32 32 34 20 2d 6b 65 79 20 24 6b 65 79 sha224 -key $key
5c50: 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 20 20 -data $data.
5c60: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 61 33 30 65 } -result {a30e
5c70: 30 31 30 39 38 62 63 36 64 62 62 66 34 35 36 39 01098bc6dbbf4569
5c80: 30 66 33 61 37 65 39 65 36 64 30 66 38 62 62 65 0f3a7e9e6d0f8bbe
5c90: 61 32 61 33 39 65 36 31 34 38 30 30 38 66 64 30 a2a39e6148008fd0
5ca0: 35 65 34 34 7d 0a 0a 74 65 73 74 20 52 46 43 34 5e44}..test RFC4
5cb0: 32 33 31 5f 48 4d 41 43 5f 54 43 32 2d 32 33 2e 231_HMAC_TC2-23.
5cc0: 32 20 7b 73 68 61 32 35 36 7d 20 2d 62 6f 64 79 2 {sha256} -body
5cd0: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 {..::tls::hmac
5ce0: 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d -digest sha256 -
5cf0: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 key $key -data $
5d00: 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 data. } -resu
5d10: 6c 74 20 7b 35 62 64 63 63 31 34 36 62 66 36 30 lt {5bdcc146bf60
5d20: 37 35 34 65 36 61 30 34 32 34 32 36 30 38 39 35 754e6a0424260895
5d30: 37 35 63 37 35 61 30 30 33 66 30 38 39 64 32 37 75c75a003f089d27
5d40: 33 39 38 33 39 64 65 63 35 38 62 39 36 34 65 63 39839dec58b964ec
5d50: 33 38 34 33 7d 0a 0a 74 65 73 74 20 52 46 43 34 3843}..test RFC4
5d60: 32 33 31 5f 48 4d 41 43 5f 54 43 32 2d 32 33 2e 231_HMAC_TC2-23.
5d70: 33 20 7b 73 68 61 33 38 34 7d 20 2d 62 6f 64 79 3 {sha384} -body
5d80: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 {..::tls::hmac
5d90: 2d 64 69 67 65 73 74 20 73 68 61 33 38 34 20 2d -digest sha384 -
5da0: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 key $key -data $
5db0: 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 data. } -resu
5dc0: 6c 74 20 7b 61 66 34 35 64 32 65 33 37 36 34 38 lt {af45d2e37648
5dd0: 34 30 33 31 36 31 37 66 37 38 64 32 62 35 38 61 4031617f78d2b58a
5de0: 36 62 31 62 39 63 37 65 66 34 36 34 66 35 61 30 6b1b9c7ef464f5a0
5df0: 31 62 34 37 65 34 32 65 63 33 37 33 36 33 32 32 1b47e42ec3736322
5e00: 34 34 35 65 38 65 32 32 34 30 63 61 35 65 36 39 445e8e2240ca5e69
5e10: 65 32 63 37 38 62 33 32 33 39 65 63 66 61 62 32 e2c78b3239ecfab2
5e20: 31 36 34 39 7d 0a 0a 74 65 73 74 20 52 46 43 34 1649}..test RFC4
5e30: 32 33 31 5f 48 4d 41 43 5f 54 43 32 2d 32 33 2e 231_HMAC_TC2-23.
5e40: 34 20 7b 73 68 61 35 31 32 7d 20 2d 62 6f 64 79 4 {sha512} -body
5e50: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 {..::tls::hmac
5e60: 2d 64 69 67 65 73 74 20 73 68 61 35 31 32 20 2d -digest sha512 -
5e70: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 key $key -data $
5e80: 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 data. } -resu
5e90: 6c 74 20 7b 31 36 34 62 37 61 37 62 66 63 66 38 lt {164b7a7bfcf8
5ea0: 31 39 65 32 65 33 39 35 66 62 65 37 33 62 35 36 19e2e395fbe73b56
5eb0: 65 30 61 33 38 37 62 64 36 34 32 32 32 65 38 33 e0a387bd64222e83
5ec0: 31 66 64 36 31 30 32 37 30 63 64 37 65 61 32 35 1fd610270cd7ea25
5ed0: 30 35 35 34 39 37 35 38 62 66 37 35 63 30 35 61 05549758bf75c05a
5ee0: 39 39 34 61 36 64 30 33 34 66 36 35 66 38 66 30 994a6d034f65f8f0
5ef0: 65 36 66 64 63 61 65 61 62 31 61 33 34 64 34 61 e6fdcaeab1a34d4a
5f00: 36 62 34 62 36 33 36 65 30 37 30 61 33 38 62 63 6b4b636e070a38bc
5f10: 65 37 33 37 7d 0a 0a 23 20 52 46 43 20 34 32 33 e737}..# RFC 423
5f20: 31 20 48 4d 41 43 20 45 78 61 6d 70 6c 65 73 20 1 HMAC Examples
5f30: 54 65 73 74 20 43 61 73 65 20 23 33 20 2d 20 54 Test Case #3 - T
5f40: 65 73 74 20 77 69 74 68 20 61 20 63 6f 6d 62 69 est with a combi
5f50: 6e 65 64 20 6c 65 6e 67 74 68 20 6f 66 20 6b 65 ned length of ke
5f60: 79 20 61 6e 64 20 64 61 74 61 20 74 68 61 74 20 y and data that
5f70: 69 73 20 6c 61 72 67 65 72 20 74 68 61 6e 20 36 is larger than 6
5f80: 34 20 62 79 74 65 73 20 28 3d 20 62 6c 6f 63 6b 4 bytes (= block
5f90: 2d 73 69 7a 65 20 6f 66 20 53 48 41 2d 32 32 34 -size of SHA-224
5fa0: 20 61 6e 64 20 53 48 41 2d 32 35 36 29 2e 0a 73 and SHA-256)..s
5fb0: 65 74 20 6b 65 79 20 5b 62 69 6e 61 72 79 20 64 et key [binary d
5fc0: 65 63 6f 64 65 20 68 65 78 20 5b 73 74 72 69 6e ecode hex [strin
5fd0: 67 20 72 65 70 65 61 74 20 22 61 61 22 20 32 30 g repeat "aa" 20
5fe0: 5d 5d 0a 73 65 74 20 64 61 74 61 20 5b 62 69 6e ]].set data [bin
5ff0: 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 5b ary decode hex [
6000: 73 74 72 69 6e 67 20 72 65 70 65 61 74 20 22 64 string repeat "d
6010: 64 22 20 35 30 5d 5d 0a 0a 0a 74 65 73 74 20 52 d" 50]]...test R
6020: 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 33 2d FC4231_HMAC_TC3-
6030: 32 34 2e 31 20 7b 73 68 61 32 32 34 7d 20 2d 62 24.1 {sha224} -b
6040: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d ody {..::tls::hm
6050: 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 32 32 ac -digest sha22
6060: 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 4 -key $key -dat
6070: 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 a $data. } -r
6080: 65 73 75 6c 74 20 7b 37 66 62 33 63 62 33 35 38 esult {7fb3cb358
6090: 38 63 36 63 31 66 36 66 66 61 39 36 39 34 64 37 8c6c1f6ffa9694d7
60a0: 64 36 61 64 32 36 34 39 33 36 35 62 30 63 31 66 d6ad2649365b0c1f
60b0: 36 35 64 36 39 64 31 65 63 38 33 33 33 65 61 7d 65d69d1ec8333ea}
60c0: 0a 0a 74 65 73 74 20 52 46 43 34 32 33 31 5f 48 ..test RFC4231_H
60d0: 4d 41 43 5f 54 43 33 2d 32 34 2e 32 20 7b 73 68 MAC_TC3-24.2 {sh
60e0: 61 32 35 36 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a a256} -body {..:
60f0: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 :tls::hmac -dige
6100: 73 74 20 73 68 61 32 35 36 20 2d 6b 65 79 20 24 st sha256 -key $
6110: 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 0a key -data $data.
6120: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 37 } -result {7
6130: 37 33 65 61 39 31 65 33 36 38 30 30 65 34 36 38 73ea91e36800e468
6140: 35 34 64 62 38 65 62 64 30 39 31 38 31 61 37 32 54db8ebd09181a72
6150: 39 35 39 30 39 38 62 33 65 66 38 63 31 32 32 64 959098b3ef8c122d
6160: 39 36 33 35 35 31 34 63 65 64 35 36 35 66 65 7d 9635514ced565fe}
6170: 0a 0a 74 65 73 74 20 52 46 43 34 32 33 31 5f 48 ..test RFC4231_H
6180: 4d 41 43 5f 54 43 33 2d 32 34 2e 33 20 7b 73 68 MAC_TC3-24.3 {sh
6190: 61 33 38 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a a384} -body {..:
61a0: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 :tls::hmac -dige
61b0: 73 74 20 73 68 61 33 38 34 20 2d 6b 65 79 20 24 st sha384 -key $
61c0: 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 0a key -data $data.
61d0: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 38 } -result {8
61e0: 38 30 36 32 36 30 38 64 33 65 36 61 64 38 61 30 8062608d3e6ad8a0
61f0: 61 61 32 61 63 65 30 31 34 63 38 61 38 36 66 30 aa2ace014c8a86f0
6200: 61 61 36 33 35 64 39 34 37 61 63 39 66 65 62 65 aa635d947ac9febe
6210: 38 33 65 66 34 65 35 35 39 36 36 31 34 34 62 32 83ef4e55966144b2
6220: 61 35 61 62 33 39 64 63 31 33 38 31 34 62 39 34 a5ab39dc13814b94
6230: 65 33 61 62 36 65 31 30 31 61 33 34 66 32 37 7d e3ab6e101a34f27}
6240: 0a 0a 74 65 73 74 20 52 46 43 34 32 33 31 5f 48 ..test RFC4231_H
6250: 4d 41 43 5f 54 43 33 2d 32 34 2e 34 20 7b 73 68 MAC_TC3-24.4 {sh
6260: 61 35 31 32 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a a512} -body {..:
6270: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 :tls::hmac -dige
6280: 73 74 20 73 68 61 35 31 32 20 2d 6b 65 79 20 24 st sha512 -key $
6290: 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 0a key -data $data.
62a0: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 66 } -result {f
62b0: 61 37 33 62 30 30 38 39 64 35 36 61 32 38 34 65 a73b0089d56a284e
62c0: 66 62 30 66 30 37 35 36 63 38 39 30 62 65 39 62 fb0f0756c890be9b
62d0: 31 62 35 64 62 64 64 38 65 65 38 31 61 33 36 35 1b5dbdd8ee81a365
62e0: 35 66 38 33 65 33 33 62 32 32 37 39 64 33 39 62 5f83e33b2279d39b
62f0: 66 33 65 38 34 38 32 37 39 61 37 32 32 63 38 30 f3e848279a722c80
6300: 36 62 34 38 35 61 34 37 65 36 37 63 38 30 37 62 6b485a47e67c807b
6310: 39 34 36 61 33 33 37 62 65 65 38 39 34 32 36 37 946a337bee894267
6320: 34 32 37 38 38 35 39 65 31 33 32 39 32 66 62 7d 4278859e13292fb}
6330: 0a 0a 23 20 52 46 43 20 34 32 33 31 20 48 4d 41 ..# RFC 4231 HMA
6340: 43 20 45 78 61 6d 70 6c 65 73 20 54 65 73 74 20 C Examples Test
6350: 43 61 73 65 20 23 34 20 2d 20 54 65 73 74 20 77 Case #4 - Test w
6360: 69 74 68 20 61 20 63 6f 6d 62 69 6e 65 64 20 6c ith a combined l
6370: 65 6e 67 74 68 20 6f 66 20 6b 65 79 20 61 6e 64 ength of key and
6380: 20 64 61 74 61 20 74 68 61 74 20 69 73 20 6c 61 data that is la
6390: 72 67 65 72 20 74 68 61 6e 20 36 34 20 62 79 74 rger than 64 byt
63a0: 65 73 20 28 3d 20 62 6c 6f 63 6b 2d 73 69 7a 65 es (= block-size
63b0: 20 6f 66 20 53 48 41 2d 32 32 34 20 61 6e 64 20 of SHA-224 and
63c0: 53 48 41 2d 32 35 36 29 2e 0a 73 65 74 20 6b 65 SHA-256)..set ke
63d0: 79 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 y [binary decode
63e0: 20 68 65 78 20 22 30 31 30 32 30 33 30 34 30 35 hex "0102030405
63f0: 30 36 30 37 30 38 30 39 30 61 30 62 30 63 30 64 060708090a0b0c0d
6400: 30 65 30 66 31 30 31 31 31 32 31 33 31 34 31 35 0e0f101112131415
6410: 31 36 31 37 31 38 31 39 22 5d 0a 73 65 74 20 64 16171819"].set d
6420: 61 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63 6f ata [binary deco
6430: 64 65 20 68 65 78 20 5b 73 74 72 69 6e 67 20 72 de hex [string r
6440: 65 70 65 61 74 20 22 63 64 22 20 35 30 5d 5d 0a epeat "cd" 50]].
6450: 0a 0a 74 65 73 74 20 52 46 43 34 32 33 31 5f 48 ..test RFC4231_H
6460: 4d 41 43 5f 54 43 34 2d 32 35 2e 31 20 7b 73 68 MAC_TC4-25.1 {sh
6470: 61 32 32 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a a224} -body {..:
6480: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 :tls::hmac -dige
6490: 73 74 20 73 68 61 32 32 34 20 2d 6b 65 79 20 24 st sha224 -key $
64a0: 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 0a key -data $data.
64b0: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 36 } -result {6
64c0: 63 31 31 35 30 36 38 37 34 30 31 33 63 61 63 36 c11506874013cac6
64d0: 61 32 61 62 63 31 62 62 33 38 32 36 32 37 63 65 a2abc1bb382627ce
64e0: 63 36 61 39 30 64 38 36 65 66 63 30 31 32 64 65 c6a90d86efc012de
64f0: 37 61 66 65 63 35 61 7d 0a 0a 74 65 73 74 20 52 7afec5a}..test R
6500: 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 34 2d FC4231_HMAC_TC4-
6510: 32 35 2e 32 20 7b 73 68 61 32 35 36 7d 20 2d 62 25.2 {sha256} -b
6520: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d ody {..::tls::hm
6530: 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 ac -digest sha25
6540: 36 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 6 -key $key -dat
6550: 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 a $data. } -r
6560: 65 73 75 6c 74 20 7b 38 32 35 35 38 61 33 38 39 esult {82558a389
6570: 61 34 34 33 63 30 65 61 34 63 63 38 31 39 38 39 a443c0ea4cc81989
6580: 39 66 32 30 38 33 61 38 35 66 30 66 61 61 33 65 9f2083a85f0faa3e
6590: 35 37 38 66 38 30 37 37 61 32 65 33 66 66 34 36 578f8077a2e3ff46
65a0: 37 32 39 36 36 35 62 7d 0a 0a 74 65 73 74 20 52 729665b}..test R
65b0: 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 34 2d FC4231_HMAC_TC4-
65c0: 32 35 2e 33 20 7b 73 68 61 33 38 34 7d 20 2d 62 25.3 {sha384} -b
65d0: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d ody {..::tls::hm
65e0: 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 33 38 ac -digest sha38
65f0: 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 4 -key $key -dat
6600: 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 a $data. } -r
6610: 65 73 75 6c 74 20 7b 33 65 38 61 36 39 62 37 37 esult {3e8a69b77
6620: 38 33 63 32 35 38 35 31 39 33 33 61 62 36 32 39 83c25851933ab629
6630: 30 61 66 36 63 61 37 37 61 39 39 38 31 34 38 30 0af6ca77a9981480
6640: 38 35 30 30 30 39 63 63 35 35 37 37 63 36 65 31 850009cc5577c6e1
6650: 66 35 37 33 62 34 65 36 38 30 31 64 64 32 33 63 f573b4e6801dd23c
6660: 34 61 37 64 36 37 39 63 63 66 38 61 33 38 36 63 4a7d679ccf8a386c
6670: 36 37 34 63 66 66 62 7d 0a 0a 74 65 73 74 20 52 674cffb}..test R
6680: 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 34 2d FC4231_HMAC_TC4-
6690: 32 35 2e 34 20 7b 73 68 61 35 31 32 7d 20 2d 62 25.4 {sha512} -b
66a0: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d ody {..::tls::hm
66b0: 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 35 31 ac -digest sha51
66c0: 32 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 2 -key $key -dat
66d0: 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 a $data. } -r
66e0: 65 73 75 6c 74 20 7b 62 30 62 61 34 36 35 36 33 esult {b0ba46563
66f0: 37 34 35 38 63 36 39 39 30 65 35 61 38 63 35 66 7458c6990e5a8c5f
6700: 36 31 64 34 61 66 37 65 35 37 36 64 39 37 66 66 61d4af7e576d97ff
6710: 39 34 62 38 37 32 64 65 37 36 66 38 30 35 30 33 94b872de76f80503
6720: 36 31 65 65 33 64 62 61 39 31 63 61 35 63 31 31 61ee3dba91ca5c11
6730: 61 61 32 35 65 62 34 64 36 37 39 32 37 35 63 63 aa25eb4d679275cc
6740: 35 37 38 38 30 36 33 61 35 66 31 39 37 34 31 31 5788063a5f197411
6750: 32 30 63 34 66 32 64 65 32 61 64 65 62 65 62 31 20c4f2de2adebeb1
6760: 30 61 32 39 38 64 64 7d 0a 0a 23 20 52 46 43 20 0a298dd}..# RFC
6770: 34 32 33 31 20 48 4d 41 43 20 45 78 61 6d 70 6c 4231 HMAC Exampl
6780: 65 73 20 54 65 73 74 20 43 61 73 65 20 23 35 20 es Test Case #5
6790: 2d 20 54 65 73 74 20 77 69 74 68 20 61 20 74 72 - Test with a tr
67a0: 75 6e 63 61 74 69 6f 6e 20 6f 66 20 6f 75 74 70 uncation of outp
67b0: 75 74 20 74 6f 20 31 32 38 20 62 69 74 73 2e 0a ut to 128 bits..
67c0: 73 65 74 20 6b 65 79 20 5b 62 69 6e 61 72 79 20 set key [binary
67d0: 64 65 63 6f 64 65 20 68 65 78 20 5b 73 74 72 69 decode hex [stri
67e0: 6e 67 20 72 65 70 65 61 74 20 22 30 63 22 20 32 ng repeat "0c" 2
67f0: 30 5d 5d 0a 73 65 74 20 64 61 74 61 20 22 54 65 0]].set data "Te
6800: 73 74 20 57 69 74 68 20 54 72 75 6e 63 61 74 69 st With Truncati
6810: 6f 6e 22 0a 0a 0a 74 65 73 74 20 52 46 43 34 32 on"...test RFC42
6820: 33 31 5f 48 4d 41 43 5f 54 43 35 2d 32 36 2e 31 31_HMAC_TC5-26.1
6830: 20 7b 73 68 61 32 32 34 7d 20 2d 62 6f 64 79 20 {sha224} -body
6840: 7b 0a 09 73 74 72 69 6e 67 20 72 61 6e 67 65 20 {..string range
6850: 5b 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 [::tls::hmac -di
6860: 67 65 73 74 20 73 68 61 32 32 34 20 2d 6b 65 79 gest sha224 -key
6870: 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 $key -data $dat
6880: 61 5d 20 30 20 33 31 0a 20 20 20 20 7d 20 2d 72 a] 0 31. } -r
6890: 65 73 75 6c 74 20 7b 30 65 32 61 65 61 36 38 61 esult {0e2aea68a
68a0: 39 30 63 38 64 33 37 63 39 38 38 62 63 64 62 39 90c8d37c988bcdb9
68b0: 66 63 61 36 66 61 38 7d 0a 0a 74 65 73 74 20 52 fca6fa8}..test R
68c0: 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 35 2d FC4231_HMAC_TC5-
68d0: 32 36 2e 32 20 7b 73 68 61 32 35 36 7d 20 2d 62 26.2 {sha256} -b
68e0: 6f 64 79 20 7b 0a 09 73 74 72 69 6e 67 20 72 61 ody {..string ra
68f0: 6e 67 65 20 5b 3a 3a 74 6c 73 3a 3a 68 6d 61 63 nge [::tls::hmac
6900: 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 -digest sha256
6910: 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 -key $key -data
6920: 24 64 61 74 61 5d 20 30 20 33 31 0a 20 20 20 20 $data] 0 31.
6930: 7d 20 2d 72 65 73 75 6c 74 20 7b 61 33 62 36 31 } -result {a3b61
6940: 36 37 34 37 33 31 30 30 65 65 30 36 65 30 63 37 67473100ee06e0c7
6950: 39 36 63 32 39 35 35 35 35 32 62 7d 0a 0a 74 65 96c2955552b}..te
6960: 73 74 20 52 46 43 34 32 33 31 5f 48 4d 41 43 5f st RFC4231_HMAC_
6970: 54 43 35 2d 32 36 2e 33 20 7b 73 68 61 33 38 34 TC5-26.3 {sha384
6980: 7d 20 2d 62 6f 64 79 20 7b 0a 09 73 74 72 69 6e } -body {..strin
6990: 67 20 72 61 6e 67 65 20 5b 3a 3a 74 6c 73 3a 3a g range [::tls::
69a0: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 hmac -digest sha
69b0: 33 38 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 384 -key $key -d
69c0: 61 74 61 20 24 64 61 74 61 5d 20 30 20 33 31 0a ata $data] 0 31.
69d0: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 33 } -result {3
69e0: 61 62 66 33 34 63 33 35 30 33 62 32 61 32 33 61 abf34c3503b2a23a
69f0: 34 36 65 66 63 36 31 39 62 61 65 66 38 39 37 7d 46efc619baef897}
6a00: 0a 0a 74 65 73 74 20 52 46 43 34 32 33 31 5f 48 ..test RFC4231_H
6a10: 4d 41 43 5f 54 43 35 2d 32 36 2e 34 20 7b 73 68 MAC_TC5-26.4 {sh
6a20: 61 35 31 32 7d 20 2d 62 6f 64 79 20 7b 0a 09 73 a512} -body {..s
6a30: 74 72 69 6e 67 20 72 61 6e 67 65 20 5b 3a 3a 74 tring range [::t
6a40: 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 ls::hmac -digest
6a50: 20 73 68 61 35 31 32 20 2d 6b 65 79 20 24 6b 65 sha512 -key $ke
6a60: 79 20 2d 64 61 74 61 20 24 64 61 74 61 5d 20 30 y -data $data] 0
6a70: 20 33 31 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 31. } -resul
6a80: 74 20 7b 34 31 35 66 61 64 36 32 37 31 35 38 30 t {415fad6271580
6a90: 61 35 33 31 64 34 31 37 39 62 63 38 39 31 64 38 a531d4179bc891d8
6aa0: 37 61 36 7d 0a 0a 23 20 52 46 43 20 34 32 33 31 7a6}..# RFC 4231
6ab0: 20 48 4d 41 43 20 45 78 61 6d 70 6c 65 73 20 54 HMAC Examples T
6ac0: 65 73 74 20 43 61 73 65 20 23 36 20 2d 20 54 65 est Case #6 - Te
6ad0: 73 74 20 77 69 74 68 20 61 20 6b 65 79 20 6c 61 st with a key la
6ae0: 72 67 65 72 20 74 68 61 6e 20 31 32 38 20 62 79 rger than 128 by
6af0: 74 65 73 20 28 3d 20 62 6c 6f 63 6b 2d 73 69 7a tes (= block-siz
6b00: 65 20 6f 66 20 53 48 41 2d 33 38 34 20 61 6e 64 e of SHA-384 and
6b10: 20 53 48 41 2d 35 31 32 29 2e 0a 73 65 74 20 6b SHA-512)..set k
6b20: 65 79 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 ey [binary decod
6b30: 65 20 68 65 78 20 5b 73 74 72 69 6e 67 20 72 65 e hex [string re
6b40: 70 65 61 74 20 22 61 61 22 20 31 33 31 5d 5d 0a peat "aa" 131]].
6b50: 73 65 74 20 64 61 74 61 20 22 54 65 73 74 20 55 set data "Test U
6b60: 73 69 6e 67 20 4c 61 72 67 65 72 20 54 68 61 6e sing Larger Than
6b70: 20 42 6c 6f 63 6b 2d 53 69 7a 65 20 4b 65 79 20 Block-Size Key
6b80: 2d 20 48 61 73 68 20 4b 65 79 20 46 69 72 73 74 - Hash Key First
6b90: 22 0a 0a 0a 74 65 73 74 20 52 46 43 34 32 33 31 "...test RFC4231
6ba0: 5f 48 4d 41 43 5f 54 43 36 2d 32 37 2e 31 20 7b _HMAC_TC6-27.1 {
6bb0: 73 68 61 32 32 34 7d 20 2d 62 6f 64 79 20 7b 0a sha224} -body {.
6bc0: 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 .::tls::hmac -di
6bd0: 67 65 73 74 20 73 68 61 32 32 34 20 2d 6b 65 79 gest sha224 -key
6be0: 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 $key -data $dat
6bf0: 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 a. } -result
6c00: 7b 39 35 65 39 61 30 64 62 39 36 32 30 39 35 61 {95e9a0db962095a
6c10: 64 61 65 62 65 39 62 32 64 36 66 30 64 62 63 65 daebe9b2d6f0dbce
6c20: 32 64 34 39 39 66 31 31 32 66 32 64 32 62 37 32 2d499f112f2d2b72
6c30: 37 33 66 61 36 38 37 30 65 7d 0a 0a 74 65 73 74 73fa6870e}..test
6c40: 20 52 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 RFC4231_HMAC_TC
6c50: 36 2d 32 37 2e 32 20 7b 73 68 61 32 35 36 7d 20 6-27.2 {sha256}
6c60: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
6c70: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 hmac -digest sha
6c80: 32 35 36 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 256 -key $key -d
6c90: 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 ata $data. }
6ca0: 2d 72 65 73 75 6c 74 20 7b 36 30 65 34 33 31 35 -result {60e4315
6cb0: 39 31 65 65 30 62 36 37 66 30 64 38 61 32 36 61 91ee0b67f0d8a26a
6cc0: 61 63 62 66 35 62 37 37 66 38 65 30 62 63 36 32 acbf5b77f8e0bc62
6cd0: 31 33 37 32 38 63 35 31 34 30 35 34 36 30 34 30 13728c5140546040
6ce0: 66 30 65 65 33 37 66 35 34 7d 0a 0a 74 65 73 74 f0ee37f54}..test
6cf0: 20 52 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 RFC4231_HMAC_TC
6d00: 36 2d 32 37 2e 33 20 7b 73 68 61 33 38 34 7d 20 6-27.3 {sha384}
6d10: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
6d20: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 hmac -digest sha
6d30: 33 38 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 384 -key $key -d
6d40: 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 ata $data. }
6d50: 2d 72 65 73 75 6c 74 20 7b 34 65 63 65 30 38 34 -result {4ece084
6d60: 34 38 35 38 31 33 65 39 30 38 38 64 32 63 36 33 485813e9088d2c63
6d70: 61 30 34 31 62 63 35 62 34 34 66 39 65 66 31 30 a041bc5b44f9ef10
6d80: 31 32 61 32 62 35 38 38 66 33 63 64 31 31 66 30 12a2b588f3cd11f0
6d90: 35 30 33 33 61 63 34 63 36 30 63 32 65 66 36 61 5033ac4c60c2ef6a
6da0: 62 34 30 33 30 66 65 38 32 39 36 32 34 38 64 66 b4030fe8296248df
6db0: 31 36 33 66 34 34 39 35 32 7d 0a 0a 74 65 73 74 163f44952}..test
6dc0: 20 52 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 RFC4231_HMAC_TC
6dd0: 36 2d 32 37 2e 34 20 7b 73 68 61 35 31 32 7d 20 6-27.4 {sha512}
6de0: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
6df0: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 hmac -digest sha
6e00: 35 31 32 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 512 -key $key -d
6e10: 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 ata $data. }
6e20: 2d 72 65 73 75 6c 74 20 7b 38 30 62 32 34 32 36 -result {80b2426
6e30: 33 63 37 63 31 61 33 65 62 62 37 31 34 39 33 63 3c7c1a3ebb71493c
6e40: 31 64 64 37 62 65 38 62 34 39 62 34 36 64 31 66 1dd7be8b49b46d1f
6e50: 34 31 62 34 61 65 65 63 31 31 32 31 62 30 31 33 41b4aeec1121b013
6e60: 37 38 33 66 38 66 33 35 32 36 62 35 36 64 30 33 783f8f3526b56d03
6e70: 37 65 30 35 66 32 35 39 38 62 64 30 66 64 32 32 7e05f2598bd0fd22
6e80: 31 35 64 36 61 31 65 35 32 39 35 65 36 34 66 37 15d6a1e5295e64f7
6e90: 33 66 36 33 66 30 61 65 63 38 62 39 31 35 61 39 3f63f0aec8b915a9
6ea0: 38 35 64 37 38 36 35 39 38 7d 0a 0a 23 20 52 46 85d786598}..# RF
6eb0: 43 20 34 32 33 31 20 48 4d 41 43 20 45 78 61 6d C 4231 HMAC Exam
6ec0: 70 6c 65 73 20 54 65 73 74 20 43 61 73 65 20 23 ples Test Case #
6ed0: 37 20 2d 20 54 65 73 74 20 77 69 74 68 20 61 20 7 - Test with a
6ee0: 6b 65 79 20 61 6e 64 20 64 61 74 61 20 74 68 61 key and data tha
6ef0: 74 20 69 73 20 6c 61 72 67 65 72 20 74 68 61 6e t is larger than
6f00: 20 31 32 38 20 62 79 74 65 73 20 28 3d 20 62 6c 128 bytes (= bl
6f10: 6f 63 6b 2d 73 69 7a 65 20 6f 66 20 53 48 41 2d ock-size of SHA-
6f20: 33 38 34 20 61 6e 64 20 53 48 41 2d 35 31 32 29 384 and SHA-512)
6f30: 2e 0a 73 65 74 20 6b 65 79 20 5b 62 69 6e 61 72 ..set key [binar
6f40: 79 20 64 65 63 6f 64 65 20 68 65 78 20 5b 73 74 y decode hex [st
6f50: 72 69 6e 67 20 72 65 70 65 61 74 20 22 61 61 22 ring repeat "aa"
6f60: 20 31 33 31 5d 5d 0a 73 65 74 20 64 61 74 61 20 131]].set data
6f70: 22 54 68 69 73 20 69 73 20 61 20 74 65 73 74 20 "This is a test
6f80: 75 73 69 6e 67 20 61 20 6c 61 72 67 65 72 20 74 using a larger t
6f90: 68 61 6e 20 62 6c 6f 63 6b 2d 73 69 7a 65 20 6b han block-size k
6fa0: 65 79 20 61 6e 64 20 61 20 6c 61 72 67 65 72 20 ey and a larger
6fb0: 74 68 61 6e 20 62 6c 6f 63 6b 2d 73 69 7a 65 20 than block-size
6fc0: 64 61 74 61 2e 20 54 68 65 20 6b 65 79 20 6e 65 data. The key ne
6fd0: 65 64 73 20 74 6f 20 62 65 20 68 61 73 68 65 64 eds to be hashed
6fe0: 20 62 65 66 6f 72 65 20 62 65 69 6e 67 20 75 73 before being us
6ff0: 65 64 20 62 79 20 74 68 65 20 48 4d 41 43 20 61 ed by the HMAC a
7000: 6c 67 6f 72 69 74 68 6d 2e 22 0a 0a 0a 74 65 73 lgorithm."...tes
7010: 74 20 52 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 t RFC4231_HMAC_T
7020: 43 37 2d 32 38 2e 31 20 7b 73 68 61 32 32 34 7d C7-28.1 {sha224}
7030: 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a -body {..::tls:
7040: 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 :hmac -digest sh
7050: 61 32 32 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d a224 -key $key -
7060: 64 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 7d data $data. }
7070: 20 2d 72 65 73 75 6c 74 20 7b 33 61 38 35 34 31 -result {3a8541
7080: 36 36 61 63 35 64 39 66 30 32 33 66 35 34 64 35 66ac5d9f023f54d5
7090: 31 37 64 30 62 33 39 64 62 64 39 34 36 37 37 30 17d0b39dbd946770
70a0: 64 62 39 63 32 62 39 35 63 39 66 36 66 35 36 35 db9c2b95c9f6f565
70b0: 64 31 7d 0a 0a 74 65 73 74 20 52 46 43 34 32 33 d1}..test RFC423
70c0: 31 5f 48 4d 41 43 5f 54 43 37 2d 32 38 2e 32 20 1_HMAC_TC7-28.2
70d0: 7b 73 68 61 32 35 36 7d 20 2d 62 6f 64 79 20 7b {sha256} -body {
70e0: 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 ..::tls::hmac -d
70f0: 69 67 65 73 74 20 73 68 61 32 35 36 20 2d 6b 65 igest sha256 -ke
7100: 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 y $key -data $da
7110: 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 ta. } -result
7120: 20 7b 39 62 30 39 66 66 61 37 31 62 39 34 32 66 {9b09ffa71b942f
7130: 63 62 32 37 36 33 35 66 62 63 64 35 62 30 65 39 cb27635fbcd5b0e9
7140: 34 34 62 66 64 63 36 33 36 34 34 66 30 37 31 33 44bfdc63644f0713
7150: 39 33 38 61 37 66 35 31 35 33 35 63 33 61 33 35 938a7f51535c3a35
7160: 65 32 7d 0a 0a 74 65 73 74 20 52 46 43 34 32 33 e2}..test RFC423
7170: 31 5f 48 4d 41 43 5f 54 43 37 2d 32 38 2e 33 20 1_HMAC_TC7-28.3
7180: 7b 73 68 61 33 38 34 7d 20 2d 62 6f 64 79 20 7b {sha384} -body {
7190: 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 ..::tls::hmac -d
71a0: 69 67 65 73 74 20 73 68 61 33 38 34 20 2d 6b 65 igest sha384 -ke
71b0: 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 y $key -data $da
71c0: 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 ta. } -result
71d0: 20 7b 36 36 31 37 31 37 38 65 39 34 31 66 30 32 {6617178e941f02
71e0: 30 64 33 35 31 65 32 66 32 35 34 65 38 66 64 33 0d351e2f254e8fd3
71f0: 32 63 36 30 32 34 32 30 66 65 62 30 62 38 66 62 2c602420feb0b8fb
7200: 39 61 64 63 63 65 62 62 38 32 34 36 31 65 39 39 9adccebb82461e99
7210: 63 35 61 36 37 38 63 63 33 31 65 37 39 39 31 37 c5a678cc31e79917
7220: 36 64 33 38 36 30 65 36 31 31 30 63 34 36 35 32 6d3860e6110c4652
7230: 33 65 7d 0a 0a 74 65 73 74 20 52 46 43 34 32 33 3e}..test RFC423
7240: 31 5f 48 4d 41 43 5f 54 43 37 2d 32 38 2e 34 20 1_HMAC_TC7-28.4
7250: 7b 73 68 61 35 31 32 7d 20 2d 62 6f 64 79 20 7b {sha512} -body {
7260: 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 ..::tls::hmac -d
7270: 69 67 65 73 74 20 73 68 61 35 31 32 20 2d 6b 65 igest sha512 -ke
7280: 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 y $key -data $da
7290: 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 ta. } -result
72a0: 20 7b 65 33 37 62 36 61 37 37 35 64 63 38 37 64 {e37b6a775dc87d
72b0: 62 61 61 34 64 66 61 39 66 39 36 65 35 65 33 66 baa4dfa9f96e5e3f
72c0: 66 64 64 65 62 64 37 31 66 38 38 36 37 32 38 39 fddebd71f8867289
72d0: 38 36 35 64 66 35 61 33 32 64 32 30 63 64 63 39 865df5a32d20cdc9
72e0: 34 34 62 36 30 32 32 63 61 63 33 63 34 39 38 32 44b6022cac3c4982
72f0: 62 31 30 64 35 65 65 62 35 35 63 33 65 34 64 65 b10d5eeb55c3e4de
7300: 31 35 31 33 34 36 37 36 66 62 36 64 65 30 34 34 15134676fb6de044
7310: 36 30 36 35 63 39 37 34 34 30 66 61 38 63 36 61 6065c97440fa8c6a
7320: 35 38 7d 0a 0a 23 20 4e 49 53 54 20 38 30 30 2d 58}..# NIST 800-
7330: 33 38 62 20 52 65 63 6f 6d 6d 65 6e 64 61 74 69 38b Recommendati
7340: 6f 6e 20 66 6f 72 20 42 6c 6f 63 6b 20 43 69 70 on for Block Cip
7350: 68 65 72 20 4d 6f 64 65 73 20 6f 66 20 4f 70 65 her Modes of Ope
7360: 72 61 74 69 6f 6e 3a 20 54 68 65 20 43 4d 41 43 ration: The CMAC
7370: 20 4d 6f 64 65 20 66 6f 72 20 41 75 74 68 65 6e Mode for Authen
7380: 74 69 63 61 74 69 6f 6e 0a 23 20 41 45 53 2d 31 tication.# AES-1
7390: 32 38 0a 73 65 74 20 6b 65 79 20 5b 62 69 6e 61 28.set key [bina
73a0: 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 22 32 ry decode hex "2
73b0: 62 37 65 31 35 31 36 32 38 61 65 64 32 61 36 61 b7e151628aed2a6a
73c0: 62 66 37 31 35 38 38 30 39 63 66 34 66 33 63 22 bf7158809cf4f3c"
73d0: 5d 0a 0a 0a 74 65 73 74 20 4e 49 53 54 38 30 30 ]...test NIST800
73e0: 2d 33 38 62 2d 41 45 53 31 32 38 2d 32 39 2e 31 -38b-AES128-29.1
73f0: 20 7b 6c 65 6e 3d 30 7d 20 2d 62 6f 64 79 20 7b {len=0} -body {
7400: 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 ..::tls::cmac -c
7410: 69 70 68 65 72 20 61 65 73 2d 31 32 38 2d 63 62 ipher aes-128-cb
7420: 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 c -key $key -dat
7430: 61 20 22 22 0a 20 20 20 20 7d 20 2d 72 65 73 75 a "". } -resu
7440: 6c 74 20 7b 62 62 31 64 36 39 32 39 65 39 35 39 lt {bb1d6929e959
7450: 33 37 32 38 37 66 61 33 37 64 31 32 39 62 37 35 37287fa37d129b75
7460: 36 37 34 36 7d 0a 73 65 74 20 64 61 74 61 20 5b 6746}.set data [
7470: 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 binary decode he
7480: 78 20 22 36 62 63 31 62 65 65 32 32 65 34 30 39 x "6bc1bee22e409
7490: 66 39 36 65 39 33 64 37 65 31 31 37 33 39 33 31 f96e93d7e1173931
74a0: 37 32 61 22 5d 0a 0a 74 65 73 74 20 4e 49 53 54 72a"]..test NIST
74b0: 38 30 30 2d 33 38 62 2d 41 45 53 31 32 38 2d 32 800-38b-AES128-2
74c0: 39 2e 32 20 7b 6c 65 6e 3d 31 32 38 7d 20 2d 62 9.2 {len=128} -b
74d0: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 6d ody {..::tls::cm
74e0: 61 63 20 2d 63 69 70 68 65 72 20 61 65 73 2d 31 ac -cipher aes-1
74f0: 32 38 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 79 28-cbc -key $key
7500: 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 20 20 -data $data.
7510: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 30 37 30 61 } -result {070a
7520: 31 36 62 34 36 62 34 64 34 31 34 34 66 37 39 62 16b46b4d4144f79b
7530: 64 64 39 64 64 30 34 61 32 38 37 63 7d 0a 73 65 dd9dd04a287c}.se
7540: 74 20 64 61 74 61 20 5b 62 69 6e 61 72 79 20 64 t data [binary d
7550: 65 63 6f 64 65 20 68 65 78 20 22 36 62 63 31 62 ecode hex "6bc1b
7560: 65 65 32 32 65 34 30 39 66 39 36 65 39 33 64 37 ee22e409f96e93d7
7570: 65 31 31 37 33 39 33 31 37 32 61 61 65 32 64 38 e117393172aae2d8
7580: 61 35 37 31 65 30 33 61 63 39 63 39 65 62 37 36 a571e03ac9c9eb76
7590: 66 61 63 34 35 61 66 38 65 35 31 33 30 63 38 31 fac45af8e5130c81
75a0: 63 34 36 61 33 35 63 65 34 31 31 22 5d 0a 0a 74 c46a35ce411"]..t
75b0: 65 73 74 20 4e 49 53 54 38 30 30 2d 33 38 62 2d est NIST800-38b-
75c0: 41 45 53 31 32 38 2d 32 39 2e 33 20 7b 6c 65 6e AES128-29.3 {len
75d0: 3d 33 32 30 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a =320} -body {..:
75e0: 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 :tls::cmac -ciph
75f0: 65 72 20 61 65 73 2d 31 32 38 2d 63 62 63 20 2d er aes-128-cbc -
7600: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 key $key -data $
7610: 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 data. } -resu
7620: 6c 74 20 7b 64 66 61 36 36 37 34 37 64 65 39 61 lt {dfa66747de9a
7630: 65 36 33 30 33 30 63 61 33 32 36 31 31 34 39 37 e63030ca32611497
7640: 63 38 32 37 7d 0a 73 65 74 20 64 61 74 61 20 5b c827}.set data [
7650: 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 binary decode he
7660: 78 20 22 36 62 63 31 62 65 65 32 32 65 34 30 39 x "6bc1bee22e409
7670: 66 39 36 65 39 33 64 37 65 31 31 37 33 39 33 31 f96e93d7e1173931
7680: 37 32 61 61 65 32 64 38 61 35 37 31 65 30 33 61 72aae2d8a571e03a
7690: 63 39 63 39 65 62 37 36 66 61 63 34 35 61 66 38 c9c9eb76fac45af8
76a0: 65 35 31 33 30 63 38 31 63 34 36 61 33 35 63 65 e5130c81c46a35ce
76b0: 34 31 31 65 35 66 62 63 31 31 39 31 61 30 61 35 411e5fbc1191a0a5
76c0: 32 65 66 66 36 39 66 32 34 34 35 64 66 34 66 39 2eff69f2445df4f9
76d0: 62 31 37 61 64 32 62 34 31 37 62 65 36 36 63 33 b17ad2b417be66c3
76e0: 37 31 30 22 5d 0a 0a 74 65 73 74 20 4e 49 53 54 710"]..test NIST
76f0: 38 30 30 2d 33 38 62 2d 41 45 53 31 32 38 2d 32 800-38b-AES128-2
7700: 39 2e 34 20 7b 6c 65 6e 3d 35 31 32 7d 20 2d 62 9.4 {len=512} -b
7710: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 6d ody {..::tls::cm
7720: 61 63 20 2d 63 69 70 68 65 72 20 61 65 73 2d 31 ac -cipher aes-1
7730: 32 38 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 79 28-cbc -key $key
7740: 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 20 20 -data $data.
7750: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 35 31 66 30 } -result {51f0
7760: 62 65 62 66 37 65 33 62 39 64 39 32 66 63 34 39 bebf7e3b9d92fc49
7770: 37 34 31 37 37 39 33 36 33 63 66 65 7d 0a 0a 23 741779363cfe}..#
7780: 20 41 45 53 2d 31 39 32 0a 73 65 74 20 6b 65 79 AES-192.set key
7790: 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 [binary decode
77a0: 68 65 78 20 22 38 65 37 33 62 30 66 37 64 61 30 hex "8e73b0f7da0
77b0: 65 36 34 35 32 63 38 31 30 66 33 32 62 38 30 39 e6452c810f32b809
77c0: 30 37 39 65 35 36 32 66 38 65 61 64 32 35 32 32 079e562f8ead2522
77d0: 63 36 62 37 62 22 5d 0a 0a 0a 74 65 73 74 20 4e c6b7b"]...test N
77e0: 49 53 54 38 30 30 2d 33 38 62 2d 41 45 53 2d 31 IST800-38b-AES-1
77f0: 39 32 2d 33 30 2e 31 20 7b 6c 65 6e 3d 30 7d 20 92-30.1 {len=0}
7800: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
7810: 63 6d 61 63 20 2d 63 69 70 68 65 72 20 61 65 73 cmac -cipher aes
7820: 2d 31 39 32 2d 63 62 63 20 2d 6b 65 79 20 24 6b -192-cbc -key $k
7830: 65 79 20 2d 64 61 74 61 20 22 22 0a 20 20 20 20 ey -data "".
7840: 7d 20 2d 72 65 73 75 6c 74 20 7b 64 31 37 64 64 } -result {d17dd
7850: 66 34 36 61 64 61 61 63 64 65 35 33 31 63 61 63 f46adaacde531cac
7860: 34 38 33 64 65 37 61 39 33 36 37 7d 0a 73 65 74 483de7a9367}.set
7870: 20 64 61 74 61 20 5b 62 69 6e 61 72 79 20 64 65 data [binary de
7880: 63 6f 64 65 20 68 65 78 20 22 36 62 63 31 62 65 code hex "6bc1be
7890: 65 32 32 65 34 30 39 66 39 36 65 39 33 64 37 65 e22e409f96e93d7e
78a0: 31 31 37 33 39 33 31 37 32 61 22 5d 0a 0a 74 65 117393172a"]..te
78b0: 73 74 20 4e 49 53 54 38 30 30 2d 33 38 62 2d 41 st NIST800-38b-A
78c0: 45 53 2d 31 39 32 2d 33 30 2e 32 20 7b 6c 65 6e ES-192-30.2 {len
78d0: 3d 31 32 38 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a =128} -body {..:
78e0: 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 :tls::cmac -ciph
78f0: 65 72 20 61 65 73 2d 31 39 32 2d 63 62 63 20 2d er aes-192-cbc -
7900: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 key $key -data $
7910: 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 data. } -resu
7920: 6c 74 20 7b 39 65 39 39 61 37 62 66 33 31 65 37 lt {9e99a7bf31e7
7930: 31 30 39 30 30 36 36 32 66 36 35 65 36 31 37 63 10900662f65e617c
7940: 35 31 38 34 7d 0a 73 65 74 20 64 61 74 61 20 5b 5184}.set data [
7950: 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 binary decode he
7960: 78 20 22 36 62 63 31 62 65 65 32 32 65 34 30 39 x "6bc1bee22e409
7970: 66 39 36 65 39 33 64 37 65 31 31 37 33 39 33 31 f96e93d7e1173931
7980: 37 32 61 61 65 32 64 38 61 35 37 31 65 30 33 61 72aae2d8a571e03a
7990: 63 39 63 39 65 62 37 36 66 61 63 34 35 61 66 38 c9c9eb76fac45af8
79a0: 65 35 31 33 30 63 38 31 63 34 36 61 33 35 63 65 e5130c81c46a35ce
79b0: 34 31 31 22 5d 0a 0a 74 65 73 74 20 4e 49 53 54 411"]..test NIST
79c0: 38 30 30 2d 33 38 62 2d 41 45 53 2d 31 39 32 2d 800-38b-AES-192-
79d0: 33 30 2e 33 20 7b 6c 65 6e 3d 33 32 30 7d 20 2d 30.3 {len=320} -
79e0: 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 body {..::tls::c
79f0: 6d 61 63 20 2d 63 69 70 68 65 72 20 61 65 73 2d mac -cipher aes-
7a00: 31 39 32 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 192-cbc -key $ke
7a10: 79 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 20 y -data $data.
7a20: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 38 61 31 } -result {8a1
7a30: 64 65 35 62 65 32 65 62 33 31 61 61 64 30 38 39 de5be2eb31aad089
7a40: 61 38 32 65 36 65 65 39 30 38 62 30 65 7d 0a 73 a82e6ee908b0e}.s
7a50: 65 74 20 64 61 74 61 20 5b 62 69 6e 61 72 79 20 et data [binary
7a60: 64 65 63 6f 64 65 20 68 65 78 20 22 36 62 63 31 decode hex "6bc1
7a70: 62 65 65 32 32 65 34 30 39 66 39 36 65 39 33 64 bee22e409f96e93d
7a80: 37 65 31 31 37 33 39 33 31 37 32 61 61 65 32 64 7e117393172aae2d
7a90: 38 61 35 37 31 65 30 33 61 63 39 63 39 65 62 37 8a571e03ac9c9eb7
7aa0: 36 66 61 63 34 35 61 66 38 65 35 31 33 30 63 38 6fac45af8e5130c8
7ab0: 31 63 34 36 61 33 35 63 65 34 31 31 65 35 66 62 1c46a35ce411e5fb
7ac0: 63 31 31 39 31 61 30 61 35 32 65 66 66 36 39 66 c1191a0a52eff69f
7ad0: 32 34 34 35 64 66 34 66 39 62 31 37 61 64 32 62 2445df4f9b17ad2b
7ae0: 34 31 37 62 65 36 36 63 33 37 31 30 22 5d 0a 0a 417be66c3710"]..
7af0: 74 65 73 74 20 4e 49 53 54 38 30 30 2d 33 38 62 test NIST800-38b
7b00: 2d 41 45 53 2d 31 39 32 2d 33 30 2e 34 20 7b 6c -AES-192-30.4 {l
7b10: 65 6e 3d 35 31 32 7d 20 2d 62 6f 64 79 20 7b 0a en=512} -body {.
7b20: 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 .::tls::cmac -ci
7b30: 70 68 65 72 20 61 65 73 2d 31 39 32 2d 63 62 63 pher aes-192-cbc
7b40: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 -key $key -data
7b50: 20 24 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 $data. } -re
7b60: 73 75 6c 74 20 7b 61 31 64 35 64 66 30 65 65 64 sult {a1d5df0eed
7b70: 37 39 30 66 37 39 34 64 37 37 35 38 39 36 35 39 790f794d77589659
7b80: 66 33 39 61 31 31 7d 0a 0a 23 20 41 45 53 2d 32 f39a11}..# AES-2
7b90: 35 36 0a 73 65 74 20 6b 65 79 20 5b 62 69 6e 61 56.set key [bina
7ba0: 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 22 36 ry decode hex "6
7bb0: 30 33 64 65 62 31 30 31 35 63 61 37 31 62 65 32 03deb1015ca71be2
7bc0: 62 37 33 61 65 66 30 38 35 37 64 37 37 38 31 31 b73aef0857d77811
7bd0: 66 33 35 32 63 30 37 33 62 36 31 30 38 64 37 32 f352c073b6108d72
7be0: 64 39 38 31 30 61 33 30 39 31 34 64 66 66 34 22 d9810a30914dff4"
7bf0: 5d 0a 0a 0a 74 65 73 74 20 4e 49 53 54 38 30 30 ]...test NIST800
7c00: 2d 33 38 62 2d 41 45 53 2d 32 35 36 2d 33 31 2e -38b-AES-256-31.
7c10: 31 20 7b 6c 65 6e 3d 30 7d 20 2d 62 6f 64 79 20 1 {len=0} -body
7c20: 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d {..::tls::cmac -
7c30: 63 69 70 68 65 72 20 61 65 73 2d 32 35 36 2d 63 cipher aes-256-c
7c40: 62 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 bc -key $key -da
7c50: 74 61 20 22 22 0a 20 20 20 20 7d 20 2d 72 65 73 ta "". } -res
7c60: 75 6c 74 20 7b 30 32 38 39 36 32 66 36 31 62 37 ult {028962f61b7
7c70: 62 66 38 39 65 66 63 36 62 35 35 31 66 34 36 36 bf89efc6b551f466
7c80: 37 64 39 38 33 7d 0a 73 65 74 20 64 61 74 61 20 7d983}.set data
7c90: 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 [binary decode h
7ca0: 65 78 20 22 36 62 63 31 62 65 65 32 32 65 34 30 ex "6bc1bee22e40
7cb0: 39 66 39 36 65 39 33 64 37 65 31 31 37 33 39 33 9f96e93d7e117393
7cc0: 31 37 32 61 22 5d 0a 0a 74 65 73 74 20 4e 49 53 172a"]..test NIS
7cd0: 54 38 30 30 2d 33 38 62 2d 41 45 53 2d 32 35 36 T800-38b-AES-256
7ce0: 2d 33 31 2e 32 20 7b 6c 65 6e 3d 31 32 38 7d 20 -31.2 {len=128}
7cf0: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
7d00: 63 6d 61 63 20 2d 63 69 70 68 65 72 20 61 65 73 cmac -cipher aes
7d10: 2d 32 35 36 2d 63 62 63 20 2d 6b 65 79 20 24 6b -256-cbc -key $k
7d20: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 ey -data $data.
7d30: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 32 38 } -result {28
7d40: 61 37 30 32 33 66 34 35 32 65 38 66 38 32 62 64 a7023f452e8f82bd
7d50: 34 62 66 32 38 64 38 63 33 37 63 33 35 63 7d 0a 4bf28d8c37c35c}.
7d60: 73 65 74 20 64 61 74 61 20 5b 62 69 6e 61 72 79 set data [binary
7d70: 20 64 65 63 6f 64 65 20 68 65 78 20 22 36 62 63 decode hex "6bc
7d80: 31 62 65 65 32 32 65 34 30 39 66 39 36 65 39 33 1bee22e409f96e93
7d90: 64 37 65 31 31 37 33 39 33 31 37 32 61 61 65 32 d7e117393172aae2
7da0: 64 38 61 35 37 31 65 30 33 61 63 39 63 39 65 62 d8a571e03ac9c9eb
7db0: 37 36 66 61 63 34 35 61 66 38 65 35 31 33 30 63 76fac45af8e5130c
7dc0: 38 31 63 34 36 61 33 35 63 65 34 31 31 22 5d 0a 81c46a35ce411"].
7dd0: 0a 74 65 73 74 20 4e 49 53 54 38 30 30 2d 33 38 .test NIST800-38
7de0: 62 2d 41 45 53 2d 32 35 36 2d 33 31 2e 33 20 7b b-AES-256-31.3 {
7df0: 6c 65 6e 3d 33 32 30 7d 20 2d 62 6f 64 79 20 7b len=320} -body {
7e00: 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 ..::tls::cmac -c
7e10: 69 70 68 65 72 20 61 65 73 2d 32 35 36 2d 63 62 ipher aes-256-cb
7e20: 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 c -key $key -dat
7e30: 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 a $data. } -r
7e40: 65 73 75 6c 74 20 7b 61 61 66 33 64 38 66 31 64 esult {aaf3d8f1d
7e50: 65 35 36 34 30 63 32 33 32 66 35 62 31 36 39 62 e5640c232f5b169b
7e60: 39 63 39 31 31 65 36 7d 0a 73 65 74 20 64 61 74 9c911e6}.set dat
7e70: 61 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 a [binary decode
7e80: 20 68 65 78 20 22 36 62 63 31 62 65 65 32 32 65 hex "6bc1bee22e
7e90: 34 30 39 66 39 36 65 39 33 64 37 65 31 31 37 33 409f96e93d7e1173
7ea0: 39 33 31 37 32 61 61 65 32 64 38 61 35 37 31 65 93172aae2d8a571e
7eb0: 30 33 61 63 39 63 39 65 62 37 36 66 61 63 34 35 03ac9c9eb76fac45
7ec0: 61 66 38 65 35 31 33 30 63 38 31 63 34 36 61 33 af8e5130c81c46a3
7ed0: 35 63 65 34 31 31 65 35 66 62 63 31 31 39 31 61 5ce411e5fbc1191a
7ee0: 30 61 35 32 65 66 66 36 39 66 32 34 34 35 64 66 0a52eff69f2445df
7ef0: 34 66 39 62 31 37 61 64 32 62 34 31 37 62 65 36 4f9b17ad2b417be6
7f00: 36 63 33 37 31 30 22 5d 0a 0a 74 65 73 74 20 4e 6c3710"]..test N
7f10: 49 53 54 38 30 30 2d 33 38 62 2d 41 45 53 2d 32 IST800-38b-AES-2
7f20: 35 36 2d 33 31 2e 34 20 7b 6c 65 6e 3d 35 31 32 56-31.4 {len=512
7f30: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
7f40: 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 20 61 ::cmac -cipher a
7f50: 65 73 2d 32 35 36 2d 63 62 63 20 2d 6b 65 79 20 es-256-cbc -key
7f60: 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 $key -data $data
7f70: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
7f80: 65 31 39 39 32 31 39 30 35 34 39 66 36 65 64 35 e1992190549f6ed5
7f90: 36 39 36 61 32 63 30 35 36 63 33 31 35 34 31 30 696a2c056c315410
7fa0: 7d 0a 0a 23 20 43 6c 65 61 6e 75 70 0a 3a 3a 74 }..# Cleanup.::t
7fb0: 63 6c 74 65 73 74 3a 3a 72 65 6d 6f 76 65 46 69 cltest::removeFi
7fc0: 6c 65 20 24 74 65 73 74 5f 66 69 6c 65 0a 3a 3a le $test_file.::
7fd0: 74 63 6c 74 65 73 74 3a 3a 72 65 6d 6f 76 65 46 tcltest::removeF
7fe0: 69 6c 65 20 24 74 65 73 74 5f 61 6c 74 5f 66 69 ile $test_alt_fi
7ff0: 6c 65 0a 0a 23 20 43 6c 65 61 6e 75 70 0a 3a 3a le..# Cleanup.::
8000: 74 63 6c 74 65 73 74 3a 3a 63 6c 65 61 6e 75 70 tcltest::cleanup
8010: 54 65 73 74 73 0a 72 65 74 75 72 6e 0a Tests.return.