Artifact
c72f5245d13352ee23f49eb2b839b2918435780f11e8fb415b32e9e4fcfa5ce6:
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 62 69 6e 61 t be -bin, -bina
2570: 72 79 2c 20 2d 68 65 78 2c 20 2d 68 65 78 61 64 ry, -hex, -hexad
2580: 65 63 69 6d 61 6c 2c 20 2d 63 68 61 6e 2c 20 2d ecimal, -chan, -
2590: 63 68 61 6e 6e 65 6c 2c 20 2d 63 69 70 68 65 72 channel, -cipher
25a0: 2c 20 2d 63 6f 6d 6d 61 6e 64 2c 20 2d 64 61 74 , -command, -dat
25b0: 61 2c 20 2d 64 69 67 65 73 74 2c 20 2d 66 69 6c a, -digest, -fil
25c0: 65 2c 20 2d 66 69 6c 65 6e 61 6d 65 2c 20 2d 68 e, -filename, -h
25d0: 61 73 68 2c 20 2d 6b 65 79 2c 20 6f 72 20 2d 6d ash, -key, or -m
25e0: 61 63 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 ac} -returnCodes
25f0: 20 7b 31 7d 0a 0a 74 65 73 74 20 4d 44 5f 45 72 {1}..test MD_Er
2600: 72 6f 72 73 2d 38 2e 37 20 7b 49 6e 76 61 6c 69 rors-8.7 {Invali
2610: 64 20 66 69 6c 65 7d 20 2d 62 6f 64 79 20 7b 0a d file} -body {.
2620: 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 .::tls::md -dige
2630: 73 74 20 73 68 61 32 35 36 20 2d 66 69 6c 65 20 st sha256 -file
2640: 62 6f 67 75 73 0a 20 20 20 20 7d 20 2d 72 65 73 bogus. } -res
2650: 75 6c 74 20 7b 63 6f 75 6c 64 6e 27 74 20 6f 70 ult {couldn't op
2660: 65 6e 20 22 62 6f 67 75 73 22 3a 20 6e 6f 20 73 en "bogus": no s
2670: 75 63 68 20 66 69 6c 65 20 6f 72 20 64 69 72 65 uch file or dire
2680: 63 74 6f 72 79 7d 20 2d 72 65 74 75 72 6e 43 6f ctory} -returnCo
2690: 64 65 73 20 7b 31 7d 0a 0a 74 65 73 74 20 4d 44 des {1}..test MD
26a0: 5f 45 72 72 6f 72 73 2d 38 2e 38 20 7b 49 6e 76 _Errors-8.8 {Inv
26b0: 61 6c 69 64 20 63 68 61 6e 6e 65 6c 7d 20 2d 62 alid channel} -b
26c0: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 ody {..::tls::md
26d0: 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 -digest sha256
26e0: 2d 63 68 61 6e 6e 65 6c 20 62 6f 67 75 73 0a 20 -channel bogus.
26f0: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 63 61 } -result {ca
2700: 6e 20 6e 6f 74 20 66 69 6e 64 20 63 68 61 6e 6e n not find chann
2710: 65 6c 20 6e 61 6d 65 64 20 22 62 6f 67 75 73 22 el named "bogus"
2720: 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b } -returnCodes {
2730: 31 7d 0a 0a 74 65 73 74 20 4d 44 5f 45 72 72 6f 1}..test MD_Erro
2740: 72 73 2d 38 2e 39 20 7b 4e 6f 20 6f 70 65 72 61 rs-8.9 {No opera
2750: 74 69 6f 6e 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a tion} -body {..:
2760: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 :tls::md -digest
2770: 20 73 68 61 32 35 36 20 2d 62 69 6e 0a 20 20 20 sha256 -bin.
2780: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 4e 6f 20 6f } -result {No o
2790: 70 65 72 61 74 69 6f 6e 20 73 70 65 63 69 66 69 peration specifi
27a0: 65 64 3a 20 55 73 65 20 2d 63 68 61 6e 6e 65 6c ed: Use -channel
27b0: 2c 20 2d 63 6f 6d 6d 61 6e 64 2c 20 2d 64 61 74 , -command, -dat
27c0: 61 2c 20 6f 72 20 2d 66 69 6c 65 20 6f 70 74 69 a, or -file opti
27d0: 6f 6e 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 on} -returnCodes
27e0: 20 7b 31 7d 0a 0a 0a 23 20 54 65 73 74 20 43 4d {1}...# Test CM
27f0: 41 43 20 63 6f 6d 6d 61 6e 64 0a 73 65 74 20 74 AC command.set t
2800: 65 73 74 5f 63 69 70 68 65 72 20 22 61 65 73 2d est_cipher "aes-
2810: 31 32 38 2d 63 62 63 22 0a 73 65 74 20 74 65 73 128-cbc".set tes
2820: 74 5f 6b 65 79 20 22 45 78 61 6d 70 6c 65 20 6b t_key "Example k
2830: 65 79 20 31 32 33 34 22 0a 0a 0a 74 65 73 74 20 ey 1234"...test
2840: 43 4d 41 43 2d 39 2e 31 20 7b 64 61 74 61 7d 20 CMAC-9.1 {data}
2850: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
2860: 63 6d 61 63 20 2d 63 69 70 68 65 72 20 24 74 65 cmac -cipher $te
2870: 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 20 24 st_cipher -key $
2880: 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 20 24 test_key -data $
2890: 74 65 73 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 test_data. }
28a0: 2d 72 65 73 75 6c 74 20 7b 62 61 66 35 63 32 30 -result {baf5c20
28b0: 66 39 39 37 33 65 32 64 36 30 36 62 31 34 63 37 f9973e2d606b14c7
28c0: 65 66 64 66 65 35 32 66 61 7d 0a 0a 74 65 73 74 efdfe52fa}..test
28d0: 20 43 4d 41 43 2d 39 2e 32 20 7b 66 69 6c 65 7d CMAC-9.2 {file}
28e0: 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a -body {..::tls:
28f0: 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 20 24 74 :cmac -cipher $t
2900: 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 20 est_cipher -key
2910: 24 74 65 73 74 5f 6b 65 79 20 2d 66 69 6c 65 20 $test_key -file
2920: 24 74 65 73 74 5f 66 69 6c 65 0a 20 20 20 20 7d $test_file. }
2930: 20 2d 72 65 73 75 6c 74 20 7b 62 61 66 35 63 32 -result {baf5c2
2940: 30 66 39 39 37 33 65 32 64 36 30 36 62 31 34 63 0f9973e2d606b14c
2950: 37 65 66 64 66 65 35 32 66 61 7d 0a 0a 74 65 73 7efdfe52fa}..tes
2960: 74 20 43 4d 41 43 2d 39 2e 33 20 7b 63 68 61 6e t CMAC-9.3 {chan
2970: 6e 65 6c 7d 20 2d 62 6f 64 79 20 7b 0a 09 64 69 nel} -body {..di
2980: 67 65 73 74 5f 72 65 61 64 5f 63 68 61 6e 20 3a gest_read_chan :
2990: 3a 74 6c 73 3a 3a 63 6d 61 63 20 24 74 65 73 74 :tls::cmac $test
29a0: 5f 66 69 6c 65 20 2d 63 69 70 68 65 72 20 24 74 _file -cipher $t
29b0: 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 20 est_cipher -key
29c0: 24 74 65 73 74 5f 6b 65 79 0a 20 20 20 20 7d 20 $test_key. }
29d0: 2d 72 65 73 75 6c 74 20 7b 62 61 66 35 63 32 30 -result {baf5c20
29e0: 66 39 39 37 33 65 32 64 36 30 36 62 31 34 63 37 f9973e2d606b14c7
29f0: 65 66 64 66 65 35 32 66 61 7d 0a 0a 74 65 73 74 efdfe52fa}..test
2a00: 20 43 4d 41 43 2d 39 2e 34 20 7b 63 6f 6d 6d 61 CMAC-9.4 {comma
2a10: 6e 64 7d 20 2d 62 6f 64 79 20 7b 0a 09 64 69 67 nd} -body {..dig
2a20: 65 73 74 5f 61 63 63 75 6d 75 6c 61 74 65 20 24 est_accumulate $
2a30: 74 65 73 74 5f 64 61 74 61 20 3a 3a 74 6c 73 3a test_data ::tls:
2a40: 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 20 24 74 :cmac -cipher $t
2a50: 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 20 est_cipher -key
2a60: 24 74 65 73 74 5f 6b 65 79 0a 20 20 20 20 7d 20 $test_key. }
2a70: 2d 72 65 73 75 6c 74 20 7b 62 61 66 35 63 32 30 -result {baf5c20
2a80: 66 39 39 37 33 65 32 64 36 30 36 62 31 34 63 37 f9973e2d606b14c7
2a90: 65 66 64 66 65 35 32 66 61 7d 0a 0a 74 65 73 74 efdfe52fa}..test
2aa0: 20 43 4d 41 43 2d 39 2e 35 20 7b 64 61 74 61 20 CMAC-9.5 {data
2ab0: 62 69 6e 7d 20 2d 62 6f 64 79 20 7b 0a 09 62 69 bin} -body {..bi
2ac0: 6e 61 72 79 20 65 6e 63 6f 64 65 20 68 65 78 20 nary encode hex
2ad0: 5b 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 62 69 [::tls::cmac -bi
2ae0: 6e 20 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f n -cipher $test_
2af0: 63 69 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 cipher -key $tes
2b00: 74 5f 6b 65 79 20 2d 64 61 74 61 20 24 74 65 73 t_key -data $tes
2b10: 74 5f 64 61 74 61 5d 0a 20 20 20 20 7d 20 2d 72 t_data]. } -r
2b20: 65 73 75 6c 74 20 7b 62 61 66 35 63 32 30 66 39 esult {baf5c20f9
2b30: 39 37 33 65 32 64 36 30 36 62 31 34 63 37 65 66 973e2d606b14c7ef
2b40: 64 66 65 35 32 66 61 7d 0a 0a 23 20 54 65 73 74 dfe52fa}..# Test
2b50: 20 4d 44 20 43 4d 41 43 0a 0a 0a 74 65 73 74 20 MD CMAC...test
2b60: 4d 44 5f 43 4d 41 43 2d 31 30 2e 31 20 7b 64 61 MD_CMAC-10.1 {da
2b70: 74 61 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 ta} -body {..::t
2b80: 6c 73 3a 3a 6d 64 20 2d 63 69 70 68 65 72 20 24 ls::md -cipher $
2b90: 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 test_cipher -key
2ba0: 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 $test_key -data
2bb0: 20 24 74 65 73 74 5f 64 61 74 61 0a 20 20 20 20 $test_data.
2bc0: 7d 20 2d 72 65 73 75 6c 74 20 7b 62 61 66 35 63 } -result {baf5c
2bd0: 32 30 66 39 39 37 33 65 32 64 36 30 36 62 31 34 20f9973e2d606b14
2be0: 63 37 65 66 64 66 65 35 32 66 61 7d 0a 0a 74 65 c7efdfe52fa}..te
2bf0: 73 74 20 4d 44 5f 43 4d 41 43 2d 31 30 2e 32 20 st MD_CMAC-10.2
2c00: 7b 66 69 6c 65 7d 20 2d 62 6f 64 79 20 7b 0a 09 {file} -body {..
2c10: 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 63 69 70 68 65 ::tls::md -ciphe
2c20: 72 20 24 74 65 73 74 5f 63 69 70 68 65 72 20 2d r $test_cipher -
2c30: 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 66 key $test_key -f
2c40: 69 6c 65 20 24 74 65 73 74 5f 66 69 6c 65 0a 20 ile $test_file.
2c50: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 62 61 } -result {ba
2c60: 66 35 63 32 30 66 39 39 37 33 65 32 64 36 30 36 f5c20f9973e2d606
2c70: 62 31 34 63 37 65 66 64 66 65 35 32 66 61 7d 0a b14c7efdfe52fa}.
2c80: 0a 74 65 73 74 20 4d 44 5f 43 4d 41 43 2d 31 30 .test MD_CMAC-10
2c90: 2e 33 20 7b 63 68 61 6e 6e 65 6c 7d 20 2d 62 6f .3 {channel} -bo
2ca0: 64 79 20 7b 0a 09 64 69 67 65 73 74 5f 72 65 61 dy {..digest_rea
2cb0: 64 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 d_chan ::tls::md
2cc0: 20 24 74 65 73 74 5f 66 69 6c 65 20 2d 63 69 70 $test_file -cip
2cd0: 68 65 72 20 24 74 65 73 74 5f 63 69 70 68 65 72 her $test_cipher
2ce0: 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 0a -key $test_key.
2cf0: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 62 } -result {b
2d00: 61 66 35 63 32 30 66 39 39 37 33 65 32 64 36 30 af5c20f9973e2d60
2d10: 36 62 31 34 63 37 65 66 64 66 65 35 32 66 61 7d 6b14c7efdfe52fa}
2d20: 0a 0a 74 65 73 74 20 4d 44 5f 43 4d 41 43 2d 31 ..test MD_CMAC-1
2d30: 30 2e 34 20 7b 63 6f 6d 6d 61 6e 64 7d 20 2d 62 0.4 {command} -b
2d40: 6f 64 79 20 7b 0a 09 64 69 67 65 73 74 5f 61 63 ody {..digest_ac
2d50: 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64 cumulate $test_d
2d60: 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 63 ata ::tls::md -c
2d70: 69 70 68 65 72 20 24 74 65 73 74 5f 63 69 70 68 ipher $test_ciph
2d80: 65 72 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 er -key $test_ke
2d90: 79 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 y. } -result
2da0: 7b 62 61 66 35 63 32 30 66 39 39 37 33 65 32 64 {baf5c20f9973e2d
2db0: 36 30 36 62 31 34 63 37 65 66 64 66 65 35 32 66 606b14c7efdfe52f
2dc0: 61 7d 0a 0a 74 65 73 74 20 4d 44 5f 43 4d 41 43 a}..test MD_CMAC
2dd0: 2d 31 30 2e 35 20 7b 64 61 74 61 20 62 69 6e 7d -10.5 {data bin}
2de0: 20 2d 62 6f 64 79 20 7b 0a 09 62 69 6e 61 72 79 -body {..binary
2df0: 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 3a 3a 74 encode hex [::t
2e00: 6c 73 3a 3a 6d 64 20 2d 62 69 6e 20 2d 63 69 70 ls::md -bin -cip
2e10: 68 65 72 20 24 74 65 73 74 5f 63 69 70 68 65 72 her $test_cipher
2e20: 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20 -key $test_key
2e30: 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 61 -data $test_data
2e40: 5d 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 ]. } -result
2e50: 7b 62 61 66 35 63 32 30 66 39 39 37 33 65 32 64 {baf5c20f9973e2d
2e60: 36 30 36 62 31 34 63 37 65 66 64 66 65 35 32 66 606b14c7efdfe52f
2e70: 61 7d 0a 0a 23 20 54 65 73 74 20 43 4d 41 43 20 a}..# Test CMAC
2e80: 53 68 6f 72 74 63 75 74 0a 0a 0a 74 65 73 74 20 Shortcut...test
2e90: 43 4d 41 43 5f 53 68 6f 72 74 63 75 74 2d 31 31 CMAC_Shortcut-11
2ea0: 2e 31 20 7b 64 61 74 61 7d 20 2d 62 6f 64 79 20 .1 {data} -body
2eb0: 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 24 {..::tls::cmac $
2ec0: 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 test_cipher -key
2ed0: 20 24 74 65 73 74 5f 6b 65 79 20 24 74 65 73 74 $test_key $test
2ee0: 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 _data. } -res
2ef0: 75 6c 74 20 7b 62 61 66 35 63 32 30 66 39 39 37 ult {baf5c20f997
2f00: 33 65 32 64 36 30 36 62 31 34 63 37 65 66 64 66 3e2d606b14c7efdf
2f10: 65 35 32 66 61 7d 0a 0a 23 20 43 4d 41 43 20 45 e52fa}..# CMAC E
2f20: 72 72 6f 72 20 43 61 73 65 73 0a 0a 0a 74 65 73 rror Cases...tes
2f30: 74 20 43 4d 41 43 5f 45 72 72 6f 72 73 2d 31 32 t CMAC_Errors-12
2f40: 2e 31 20 7b 54 6f 6f 20 66 65 77 20 61 72 67 73 .1 {Too few args
2f50: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
2f60: 3a 3a 63 6d 61 63 0a 20 20 20 20 7d 20 2d 72 65 ::cmac. } -re
2f70: 73 75 6c 74 20 7b 77 72 6f 6e 67 20 23 20 61 72 sult {wrong # ar
2f80: 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 3a gs: should be ":
2f90: 3a 74 6c 73 3a 3a 63 6d 61 63 20 3f 2d 62 69 6e :tls::cmac ?-bin
2fa0: 7c 2d 68 65 78 3f 20 3f 2d 63 69 70 68 65 72 20 |-hex? ?-cipher
2fb0: 6e 61 6d 65 3f 20 3f 2d 64 69 67 65 73 74 20 6e name? ?-digest n
2fc0: 61 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65 79 3f 20 ame? ?-key key?
2fd0: 3f 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b 2d 63 68 ?-mac name? [-ch
2fe0: 61 6e 6e 65 6c 20 63 68 61 6e 20 7c 20 2d 63 6f annel chan | -co
2ff0: 6d 6d 61 6e 64 20 63 6d 64 4e 61 6d 65 20 7c 20 mmand cmdName |
3000: 2d 66 69 6c 65 20 66 69 6c 65 6e 61 6d 65 20 7c -file filename |
3010: 20 3f 2d 64 61 74 61 3f 20 64 61 74 61 5d 22 7d ?-data? data]"}
3020: 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 -returnCodes {1
3030: 7d 0a 0a 74 65 73 74 20 43 4d 41 43 5f 45 72 72 }..test CMAC_Err
3040: 6f 72 73 2d 31 32 2e 32 20 7b 54 6f 6f 20 6d 61 ors-12.2 {Too ma
3050: 6e 79 20 61 72 67 73 7d 20 2d 62 6f 64 79 20 7b ny args} -body {
3060: 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 74 6f ..::tls::cmac to
3070: 6f 20 6d 61 6e 79 20 63 6f 6d 6d 61 6e 64 20 6c o many command l
3080: 69 6e 65 20 61 72 67 73 20 74 6f 20 70 61 73 73 ine args to pass
3090: 20 74 68 65 20 74 65 73 74 20 77 69 74 68 6f 75 the test withou
30a0: 74 20 61 6e 20 65 72 72 6f 72 20 6f 72 20 66 61 t an error or fa
30b0: 69 6c 69 6e 67 0a 20 20 20 20 7d 20 2d 72 65 73 iling. } -res
30c0: 75 6c 74 20 7b 77 72 6f 6e 67 20 23 20 61 72 67 ult {wrong # arg
30d0: 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 3a 3a s: should be "::
30e0: 74 6c 73 3a 3a 63 6d 61 63 20 3f 2d 62 69 6e 7c tls::cmac ?-bin|
30f0: 2d 68 65 78 3f 20 3f 2d 63 69 70 68 65 72 20 6e -hex? ?-cipher n
3100: 61 6d 65 3f 20 3f 2d 64 69 67 65 73 74 20 6e 61 ame? ?-digest na
3110: 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65 79 3f 20 3f me? ?-key key? ?
3120: 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b 2d 63 68 61 -mac name? [-cha
3130: 6e 6e 65 6c 20 63 68 61 6e 20 7c 20 2d 63 6f 6d nnel chan | -com
3140: 6d 61 6e 64 20 63 6d 64 4e 61 6d 65 20 7c 20 2d mand cmdName | -
3150: 66 69 6c 65 20 66 69 6c 65 6e 61 6d 65 20 7c 20 file filename |
3160: 3f 2d 64 61 74 61 3f 20 64 61 74 61 5d 22 7d 20 ?-data? data]"}
3170: 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d -returnCodes {1}
3180: 0a 0a 74 65 73 74 20 43 4d 41 43 5f 45 72 72 6f ..test CMAC_Erro
3190: 72 73 2d 31 32 2e 33 20 7b 4e 6f 20 63 69 70 68 rs-12.3 {No ciph
31a0: 65 72 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 er} -body {..::t
31b0: 6c 73 3a 3a 63 6d 61 63 20 2d 68 65 78 20 2d 64 ls::cmac -hex -d
31c0: 61 74 61 20 24 74 65 73 74 5f 64 61 74 61 0a 20 ata $test_data.
31d0: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 4e 6f } -result {No
31e0: 20 63 69 70 68 65 72 20 73 70 65 63 69 66 69 65 cipher specifie
31f0: 64 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 d} -returnCodes
3200: 7b 31 7d 0a 0a 74 65 73 74 20 43 4d 41 43 5f 45 {1}..test CMAC_E
3210: 72 72 6f 72 73 2d 31 32 2e 34 20 7b 4e 6f 20 6b rrors-12.4 {No k
3220: 65 79 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 ey} -body {..::t
3230: 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 ls::cmac -cipher
3240: 20 24 74 65 73 74 5f 63 69 70 68 65 72 20 2d 64 $test_cipher -d
3250: 61 74 61 20 24 74 65 73 74 5f 64 61 74 61 0a 20 ata $test_data.
3260: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 4e 6f } -result {No
3270: 20 6b 65 79 20 73 70 65 63 69 66 69 65 64 7d 20 key specified}
3280: 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d -returnCodes {1}
3290: 0a 0a 74 65 73 74 20 43 4d 41 43 5f 45 72 72 6f ..test CMAC_Erro
32a0: 72 73 2d 31 32 2e 35 20 7b 49 6e 76 61 6c 69 64 rs-12.5 {Invalid
32b0: 20 63 69 70 68 65 72 7d 20 2d 62 6f 64 79 20 7b cipher} -body {
32c0: 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 ..::tls::cmac -c
32d0: 69 70 68 65 72 20 62 6f 67 75 73 20 2d 64 61 74 ipher bogus -dat
32e0: 61 20 24 74 65 73 74 5f 64 61 74 61 0a 20 20 20 a $test_data.
32f0: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 49 6e 76 61 } -result {Inva
3300: 6c 69 64 20 63 69 70 68 65 72 20 22 62 6f 67 75 lid cipher "bogu
3310: 73 22 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 s"} -returnCodes
3320: 20 7b 31 7d 0a 0a 0a 23 20 54 65 73 74 20 48 4d {1}...# Test HM
3330: 41 43 20 63 6f 6d 6d 61 6e 64 0a 73 65 74 20 74 AC command.set t
3340: 65 73 74 5f 64 69 67 65 73 74 20 6d 64 35 0a 73 est_digest md5.s
3350: 65 74 20 74 65 73 74 5f 6b 65 79 20 22 45 78 61 et test_key "Exa
3360: 6d 70 6c 65 20 6b 65 79 22 0a 0a 0a 74 65 73 74 mple key"...test
3370: 20 48 4d 41 43 2d 31 33 2e 31 20 7b 64 61 74 61 HMAC-13.1 {data
3380: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
3390: 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 24 ::hmac -digest $
33a0: 74 65 73 74 5f 64 69 67 65 73 74 20 2d 6b 65 79 test_digest -key
33b0: 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 $test_key -data
33c0: 20 24 74 65 73 74 5f 64 61 74 61 0a 20 20 20 20 $test_data.
33d0: 7d 20 2d 72 65 73 75 6c 74 20 7b 66 39 38 33 32 } -result {f9832
33e0: 37 65 66 33 65 32 30 61 62 36 64 33 38 38 66 36 7ef3e20ab6d388f6
33f0: 37 36 63 36 61 37 39 64 39 33 64 7d 0a 0a 74 65 76c6a79d93d}..te
3400: 73 74 20 48 4d 41 43 2d 31 33 2e 32 20 7b 66 69 st HMAC-13.2 {fi
3410: 6c 65 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 le} -body {..::t
3420: 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 ls::hmac -digest
3430: 20 24 74 65 73 74 5f 64 69 67 65 73 74 20 2d 6b $test_digest -k
3440: 65 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 66 69 ey $test_key -fi
3450: 6c 65 20 24 74 65 73 74 5f 66 69 6c 65 0a 20 20 le $test_file.
3460: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 66 39 38 } -result {f98
3470: 33 32 37 65 66 33 65 32 30 61 62 36 64 33 38 38 327ef3e20ab6d388
3480: 66 36 37 36 63 36 61 37 39 64 39 33 64 7d 0a 0a f676c6a79d93d}..
3490: 74 65 73 74 20 48 4d 41 43 2d 31 33 2e 33 20 7b test HMAC-13.3 {
34a0: 63 68 61 6e 6e 65 6c 7d 20 2d 62 6f 64 79 20 7b channel} -body {
34b0: 0a 09 64 69 67 65 73 74 5f 72 65 61 64 5f 63 68 ..digest_read_ch
34c0: 61 6e 20 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 24 an ::tls::hmac $
34d0: 74 65 73 74 5f 66 69 6c 65 20 2d 64 69 67 65 73 test_file -diges
34e0: 74 20 24 74 65 73 74 5f 64 69 67 65 73 74 20 2d t $test_digest -
34f0: 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 0a 20 20 key $test_key.
3500: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 66 39 38 } -result {f98
3510: 33 32 37 65 66 33 65 32 30 61 62 36 64 33 38 38 327ef3e20ab6d388
3520: 66 36 37 36 63 36 61 37 39 64 39 33 64 7d 0a 0a f676c6a79d93d}..
3530: 74 65 73 74 20 48 4d 41 43 2d 31 33 2e 34 20 7b test HMAC-13.4 {
3540: 63 6f 6d 6d 61 6e 64 7d 20 2d 62 6f 64 79 20 7b command} -body {
3550: 0a 09 64 69 67 65 73 74 5f 61 63 63 75 6d 75 6c ..digest_accumul
3560: 61 74 65 20 24 74 65 73 74 5f 64 61 74 61 20 3a ate $test_data :
3570: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 :tls::hmac -dige
3580: 73 74 20 24 74 65 73 74 5f 64 69 67 65 73 74 20 st $test_digest
3590: 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 0a 20 -key $test_key.
35a0: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 66 39 } -result {f9
35b0: 38 33 32 37 65 66 33 65 32 30 61 62 36 64 33 38 8327ef3e20ab6d38
35c0: 38 66 36 37 36 63 36 61 37 39 64 39 33 64 7d 0a 8f676c6a79d93d}.
35d0: 0a 74 65 73 74 20 48 4d 41 43 2d 31 33 2e 35 20 .test HMAC-13.5
35e0: 7b 64 61 74 61 20 62 69 6e 7d 20 2d 62 6f 64 79 {data bin} -body
35f0: 20 7b 0a 09 62 69 6e 61 72 79 20 65 6e 63 6f 64 {..binary encod
3600: 65 20 68 65 78 20 5b 3a 3a 74 6c 73 3a 3a 68 6d e hex [::tls::hm
3610: 61 63 20 2d 64 69 67 65 73 74 20 24 74 65 73 74 ac -digest $test
3620: 5f 64 69 67 65 73 74 20 2d 62 69 6e 20 2d 6b 65 _digest -bin -ke
3630: 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 y $test_key -dat
3640: 61 20 24 74 65 73 74 5f 64 61 74 61 5d 0a 20 20 a $test_data].
3650: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 66 39 38 } -result {f98
3660: 33 32 37 65 66 33 65 32 30 61 62 36 64 33 38 38 327ef3e20ab6d388
3670: 66 36 37 36 63 36 61 37 39 64 39 33 64 7d 0a 0a f676c6a79d93d}..
3680: 23 20 54 65 73 74 20 4d 44 20 48 4d 41 43 0a 0a # Test MD HMAC..
3690: 0a 74 65 73 74 20 4d 44 5f 48 4d 41 43 2d 31 34 .test MD_HMAC-14
36a0: 2e 31 20 7b 64 61 74 61 7d 20 2d 62 6f 64 79 20 .1 {data} -body
36b0: 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 {..::tls::md -di
36c0: 67 65 73 74 20 24 74 65 73 74 5f 64 69 67 65 73 gest $test_diges
36d0: 74 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 t -key $test_key
36e0: 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 -data $test_dat
36f0: 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 a. } -result
3700: 7b 66 39 38 33 32 37 65 66 33 65 32 30 61 62 36 {f98327ef3e20ab6
3710: 64 33 38 38 66 36 37 36 63 36 61 37 39 64 39 33 d388f676c6a79d93
3720: 64 7d 0a 0a 74 65 73 74 20 4d 44 5f 48 4d 41 43 d}..test MD_HMAC
3730: 2d 31 34 2e 32 20 7b 66 69 6c 65 7d 20 2d 62 6f -14.2 {file} -bo
3740: 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 dy {..::tls::md
3750: 2d 64 69 67 65 73 74 20 24 74 65 73 74 5f 64 69 -digest $test_di
3760: 67 65 73 74 20 2d 6b 65 79 20 24 74 65 73 74 5f gest -key $test_
3770: 6b 65 79 20 2d 66 69 6c 65 20 24 74 65 73 74 5f key -file $test_
3780: 66 69 6c 65 0a 20 20 20 20 7d 20 2d 72 65 73 75 file. } -resu
3790: 6c 74 20 7b 66 39 38 33 32 37 65 66 33 65 32 30 lt {f98327ef3e20
37a0: 61 62 36 64 33 38 38 66 36 37 36 63 36 61 37 39 ab6d388f676c6a79
37b0: 64 39 33 64 7d 0a 0a 74 65 73 74 20 4d 44 5f 48 d93d}..test MD_H
37c0: 4d 41 43 2d 31 34 2e 33 20 7b 63 68 61 6e 6e 65 MAC-14.3 {channe
37d0: 6c 7d 20 2d 62 6f 64 79 20 7b 0a 09 64 69 67 65 l} -body {..dige
37e0: 73 74 5f 72 65 61 64 5f 63 68 61 6e 20 3a 3a 74 st_read_chan ::t
37f0: 6c 73 3a 3a 6d 64 20 24 74 65 73 74 5f 66 69 6c ls::md $test_fil
3800: 65 20 2d 64 69 67 65 73 74 20 24 74 65 73 74 5f e -digest $test_
3810: 64 69 67 65 73 74 20 2d 6b 65 79 20 24 74 65 73 digest -key $tes
3820: 74 5f 6b 65 79 0a 20 20 20 20 7d 20 2d 72 65 73 t_key. } -res
3830: 75 6c 74 20 7b 66 39 38 33 32 37 65 66 33 65 32 ult {f98327ef3e2
3840: 30 61 62 36 64 33 38 38 66 36 37 36 63 36 61 37 0ab6d388f676c6a7
3850: 39 64 39 33 64 7d 0a 0a 74 65 73 74 20 4d 44 5f 9d93d}..test MD_
3860: 48 4d 41 43 2d 31 34 2e 34 20 7b 63 6f 6d 6d 61 HMAC-14.4 {comma
3870: 6e 64 7d 20 2d 62 6f 64 79 20 7b 0a 09 64 69 67 nd} -body {..dig
3880: 65 73 74 5f 61 63 63 75 6d 75 6c 61 74 65 20 24 est_accumulate $
3890: 74 65 73 74 5f 64 61 74 61 20 3a 3a 74 6c 73 3a test_data ::tls:
38a0: 3a 6d 64 20 2d 64 69 67 65 73 74 20 24 74 65 73 :md -digest $tes
38b0: 74 5f 64 69 67 65 73 74 20 2d 6b 65 79 20 24 74 t_digest -key $t
38c0: 65 73 74 5f 6b 65 79 0a 20 20 20 20 7d 20 2d 72 est_key. } -r
38d0: 65 73 75 6c 74 20 7b 66 39 38 33 32 37 65 66 33 esult {f98327ef3
38e0: 65 32 30 61 62 36 64 33 38 38 66 36 37 36 63 36 e20ab6d388f676c6
38f0: 61 37 39 64 39 33 64 7d 0a 0a 74 65 73 74 20 4d a79d93d}..test M
3900: 44 5f 48 4d 41 43 2d 31 34 2e 35 20 7b 64 61 74 D_HMAC-14.5 {dat
3910: 61 20 62 69 6e 7d 20 2d 62 6f 64 79 20 7b 0a 09 a bin} -body {..
3920: 62 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 68 65 binary encode he
3930: 78 20 5b 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 x [::tls::md -di
3940: 67 65 73 74 20 24 74 65 73 74 5f 64 69 67 65 73 gest $test_diges
3950: 74 20 2d 62 69 6e 20 2d 6b 65 79 20 24 74 65 73 t -bin -key $tes
3960: 74 5f 6b 65 79 20 2d 64 61 74 61 20 24 74 65 73 t_key -data $tes
3970: 74 5f 64 61 74 61 5d 0a 20 20 20 20 7d 20 2d 72 t_data]. } -r
3980: 65 73 75 6c 74 20 7b 66 39 38 33 32 37 65 66 33 esult {f98327ef3
3990: 65 32 30 61 62 36 64 33 38 38 66 36 37 36 63 36 e20ab6d388f676c6
39a0: 61 37 39 64 39 33 64 7d 0a 0a 23 20 54 65 73 74 a79d93d}..# Test
39b0: 20 48 4d 41 43 20 53 68 6f 72 74 63 75 74 0a 0a HMAC Shortcut..
39c0: 0a 74 65 73 74 20 48 4d 41 43 5f 53 68 6f 72 74 .test HMAC_Short
39d0: 63 75 74 2d 31 35 2e 31 20 7b 64 61 74 61 7d 20 cut-15.1 {data}
39e0: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
39f0: 68 6d 61 63 20 24 74 65 73 74 5f 64 69 67 65 73 hmac $test_diges
3a00: 74 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 t -key $test_key
3a10: 20 24 74 65 73 74 5f 64 61 74 61 0a 20 20 20 20 $test_data.
3a20: 7d 20 2d 72 65 73 75 6c 74 20 7b 66 39 38 33 32 } -result {f9832
3a30: 37 65 66 33 65 32 30 61 62 36 64 33 38 38 66 36 7ef3e20ab6d388f6
3a40: 37 36 63 36 61 37 39 64 39 33 64 7d 0a 0a 23 20 76c6a79d93d}..#
3a50: 48 4d 41 43 20 45 72 72 6f 72 20 43 61 73 65 73 HMAC Error Cases
3a60: 0a 0a 0a 74 65 73 74 20 48 4d 41 43 5f 45 72 72 ...test HMAC_Err
3a70: 6f 72 73 2d 31 36 2e 31 20 7b 54 6f 6f 20 66 65 ors-16.1 {Too fe
3a80: 77 20 61 72 67 73 7d 20 2d 62 6f 64 79 20 7b 0a w args} -body {.
3a90: 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 0a 20 20 20 .::tls::hmac.
3aa0: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 77 72 6f 6e } -result {wron
3ab0: 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 g # args: should
3ac0: 20 62 65 20 22 3a 3a 74 6c 73 3a 3a 68 6d 61 63 be "::tls::hmac
3ad0: 20 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20 3f 2d 63 ?-bin|-hex? ?-c
3ae0: 69 70 68 65 72 20 6e 61 6d 65 3f 20 3f 2d 64 69 ipher name? ?-di
3af0: 67 65 73 74 20 6e 61 6d 65 3f 20 3f 2d 6b 65 79 gest name? ?-key
3b00: 20 6b 65 79 3f 20 3f 2d 6d 61 63 20 6e 61 6d 65 key? ?-mac name
3b10: 3f 20 5b 2d 63 68 61 6e 6e 65 6c 20 63 68 61 6e ? [-channel chan
3b20: 20 7c 20 2d 63 6f 6d 6d 61 6e 64 20 63 6d 64 4e | -command cmdN
3b30: 61 6d 65 20 7c 20 2d 66 69 6c 65 20 66 69 6c 65 ame | -file file
3b40: 6e 61 6d 65 20 7c 20 3f 2d 64 61 74 61 3f 20 64 name | ?-data? d
3b50: 61 74 61 5d 22 7d 20 2d 72 65 74 75 72 6e 43 6f ata]"} -returnCo
3b60: 64 65 73 20 7b 31 7d 0a 0a 74 65 73 74 20 48 4d des {1}..test HM
3b70: 41 43 5f 45 72 72 6f 72 73 2d 31 36 2e 32 20 7b AC_Errors-16.2 {
3b80: 54 6f 6f 20 6d 61 6e 79 20 61 72 67 73 7d 20 2d Too many args} -
3b90: 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 body {..::tls::h
3ba0: 6d 61 63 20 74 6f 6f 20 6d 61 6e 79 20 63 6f 6d mac too many com
3bb0: 6d 61 6e 64 20 6c 69 6e 65 20 61 72 67 73 20 74 mand line args t
3bc0: 6f 20 70 61 73 73 20 74 68 65 20 74 65 73 74 20 o pass the test
3bd0: 77 69 74 68 6f 75 74 20 61 6e 20 65 72 72 6f 72 without an error
3be0: 20 6f 72 20 66 61 69 6c 69 6e 67 0a 20 20 20 20 or failing.
3bf0: 7d 20 2d 72 65 73 75 6c 74 20 7b 77 72 6f 6e 67 } -result {wrong
3c00: 20 23 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 # args: should
3c10: 62 65 20 22 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 be "::tls::hmac
3c20: 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20 3f 2d 63 69 ?-bin|-hex? ?-ci
3c30: 70 68 65 72 20 6e 61 6d 65 3f 20 3f 2d 64 69 67 pher name? ?-dig
3c40: 65 73 74 20 6e 61 6d 65 3f 20 3f 2d 6b 65 79 20 est name? ?-key
3c50: 6b 65 79 3f 20 3f 2d 6d 61 63 20 6e 61 6d 65 3f key? ?-mac name?
3c60: 20 5b 2d 63 68 61 6e 6e 65 6c 20 63 68 61 6e 20 [-channel chan
3c70: 7c 20 2d 63 6f 6d 6d 61 6e 64 20 63 6d 64 4e 61 | -command cmdNa
3c80: 6d 65 20 7c 20 2d 66 69 6c 65 20 66 69 6c 65 6e me | -file filen
3c90: 61 6d 65 20 7c 20 3f 2d 64 61 74 61 3f 20 64 61 ame | ?-data? da
3ca0: 74 61 5d 22 7d 20 2d 72 65 74 75 72 6e 43 6f 64 ta]"} -returnCod
3cb0: 65 73 20 7b 31 7d 0a 0a 74 65 73 74 20 48 4d 41 es {1}..test HMA
3cc0: 43 5f 45 72 72 6f 72 73 2d 31 36 2e 33 20 7b 4e C_Errors-16.3 {N
3cd0: 6f 20 64 69 67 65 73 74 7d 20 2d 62 6f 64 79 20 o digest} -body
3ce0: 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d {..::tls::hmac -
3cf0: 68 65 78 20 2d 64 61 74 61 20 24 74 65 73 74 5f hex -data $test_
3d00: 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 data. } -resu
3d10: 6c 74 20 7b 4e 6f 20 64 69 67 65 73 74 20 73 70 lt {No digest sp
3d20: 65 63 69 66 69 65 64 7d 20 2d 72 65 74 75 72 6e ecified} -return
3d30: 43 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 74 20 Codes {1}..test
3d40: 48 4d 41 43 5f 45 72 72 6f 72 73 2d 31 36 2e 34 HMAC_Errors-16.4
3d50: 20 7b 4e 6f 20 6b 65 79 7d 20 2d 62 6f 64 79 20 {No key} -body
3d60: 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d {..::tls::hmac -
3d70: 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d 64 digest sha256 -d
3d80: 61 74 61 20 24 74 65 73 74 5f 64 61 74 61 0a 20 ata $test_data.
3d90: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 4e 6f } -result {No
3da0: 20 6b 65 79 20 73 70 65 63 69 66 69 65 64 7d 20 key specified}
3db0: 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d -returnCodes {1}
3dc0: 0a 0a 74 65 73 74 20 48 4d 41 43 5f 45 72 72 6f ..test HMAC_Erro
3dd0: 72 73 2d 31 36 2e 35 20 7b 49 6e 76 61 6c 69 64 rs-16.5 {Invalid
3de0: 20 64 69 67 65 73 74 7d 20 2d 62 6f 64 79 20 7b digest} -body {
3df0: 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 ..::tls::md -dig
3e00: 65 73 74 20 62 6f 67 75 73 20 2d 6b 65 79 20 24 est bogus -key $
3e10: 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 20 24 test_key -data $
3e20: 74 65 73 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 test_data. }
3e30: 2d 72 65 73 75 6c 74 20 7b 49 6e 76 61 6c 69 64 -result {Invalid
3e40: 20 64 69 67 65 73 74 20 22 62 6f 67 75 73 22 7d digest "bogus"}
3e50: 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 -returnCodes {1
3e60: 7d 0a 0a 0a 23 20 54 65 73 74 20 4d 41 43 20 63 }...# Test MAC c
3e70: 6f 6d 6d 61 6e 64 0a 73 65 74 20 74 65 73 74 5f ommand.set test_
3e80: 63 69 70 68 65 72 20 22 61 65 73 2d 31 32 38 2d cipher "aes-128-
3e90: 63 62 63 22 0a 73 65 74 20 74 65 73 74 5f 64 69 cbc".set test_di
3ea0: 67 65 73 74 20 73 68 61 32 35 36 0a 73 65 74 20 gest sha256.set
3eb0: 74 65 73 74 5f 6b 65 79 20 22 45 78 61 6d 70 6c test_key "Exampl
3ec0: 65 20 6b 65 79 20 31 32 33 34 22 0a 0a 0a 74 65 e key 1234"...te
3ed0: 73 74 20 4d 41 43 2d 31 37 2e 31 20 7b 43 4d 41 st MAC-17.1 {CMA
3ee0: 43 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c C} -body {..::tl
3ef0: 73 3a 3a 6d 61 63 20 2d 63 69 70 68 65 72 20 24 s::mac -cipher $
3f00: 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 test_cipher -key
3f10: 20 24 74 65 73 74 5f 6b 65 79 20 2d 6d 61 63 20 $test_key -mac
3f20: 63 6d 61 63 20 2d 64 61 74 61 20 24 74 65 73 74 cmac -data $test
3f30: 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 _data. } -res
3f40: 75 6c 74 20 7b 62 61 66 35 63 32 30 66 39 39 37 ult {baf5c20f997
3f50: 33 65 32 64 36 30 36 62 31 34 63 37 65 66 64 66 3e2d606b14c7efdf
3f60: 65 35 32 66 61 7d 0a 0a 74 65 73 74 20 4d 41 43 e52fa}..test MAC
3f70: 2d 31 37 2e 32 20 7b 48 4d 41 43 7d 20 2d 62 6f -17.2 {HMAC} -bo
3f80: 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 61 63 dy {..::tls::mac
3f90: 20 2d 64 69 67 65 73 74 20 24 74 65 73 74 5f 64 -digest $test_d
3fa0: 69 67 65 73 74 20 2d 6b 65 79 20 24 74 65 73 74 igest -key $test
3fb0: 5f 6b 65 79 20 2d 6d 61 63 20 68 6d 61 63 20 2d _key -mac hmac -
3fc0: 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 61 0a data $test_data.
3fd0: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 36 } -result {6
3fe0: 37 36 64 61 66 39 36 33 37 30 64 30 65 33 63 35 76daf96370d0e3c5
3ff0: 35 39 38 35 35 37 64 61 33 38 61 39 61 38 31 30 598557da38a9a810
4000: 61 34 66 62 61 63 62 62 32 64 31 30 63 36 37 66 a4fbacbb2d10c67f
4010: 36 64 66 61 38 33 66 31 30 66 34 38 65 39 36 7d 6dfa83f10f48e96}
4020: 0a 0a 74 65 73 74 20 4d 41 43 2d 31 37 2e 33 20 ..test MAC-17.3
4030: 7b 4d 44 2d 43 4d 41 43 7d 20 2d 62 6f 64 79 20 {MD-CMAC} -body
4040: 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 63 69 {..::tls::md -ci
4050: 70 68 65 72 20 24 74 65 73 74 5f 63 69 70 68 65 pher $test_ciphe
4060: 72 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 r -key $test_key
4070: 20 2d 6d 61 63 20 63 6d 61 63 20 2d 64 61 74 61 -mac cmac -data
4080: 20 24 74 65 73 74 5f 64 61 74 61 0a 20 20 20 20 $test_data.
4090: 7d 20 2d 72 65 73 75 6c 74 20 7b 62 61 66 35 63 } -result {baf5c
40a0: 32 30 66 39 39 37 33 65 32 64 36 30 36 62 31 34 20f9973e2d606b14
40b0: 63 37 65 66 64 66 65 35 32 66 61 7d 0a 0a 74 65 c7efdfe52fa}..te
40c0: 73 74 20 4d 41 43 2d 31 37 2e 34 20 7b 4d 44 2d st MAC-17.4 {MD-
40d0: 48 4d 41 43 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a HMAC} -body {..:
40e0: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 :tls::md -digest
40f0: 20 24 74 65 73 74 5f 64 69 67 65 73 74 20 2d 6b $test_digest -k
4100: 65 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 6d 61 ey $test_key -ma
4110: 63 20 68 6d 61 63 20 2d 64 61 74 61 20 24 74 65 c hmac -data $te
4120: 73 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 st_data. } -r
4130: 65 73 75 6c 74 20 7b 36 37 36 64 61 66 39 36 33 esult {676daf963
4140: 37 30 64 30 65 33 63 35 35 39 38 35 35 37 64 61 70d0e3c5598557da
4150: 33 38 61 39 61 38 31 30 61 34 66 62 61 63 62 62 38a9a810a4fbacbb
4160: 32 64 31 30 63 36 37 66 36 64 66 61 38 33 66 31 2d10c67f6dfa83f1
4170: 30 66 34 38 65 39 36 7d 0a 0a 23 20 4d 41 43 20 0f48e96}..# MAC
4180: 45 72 72 6f 72 20 43 61 73 65 73 0a 0a 0a 74 65 Error Cases...te
4190: 73 74 20 4d 41 43 5f 45 72 72 6f 72 73 2d 31 38 st MAC_Errors-18
41a0: 2e 31 20 7b 54 6f 6f 20 66 65 77 20 61 72 67 73 .1 {Too few args
41b0: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
41c0: 3a 3a 6d 61 63 0a 20 20 20 20 7d 20 2d 72 65 73 ::mac. } -res
41d0: 75 6c 74 20 7b 77 72 6f 6e 67 20 23 20 61 72 67 ult {wrong # arg
41e0: 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 3a 3a s: should be "::
41f0: 74 6c 73 3a 3a 6d 61 63 20 3f 2d 62 69 6e 7c 2d tls::mac ?-bin|-
4200: 68 65 78 3f 20 3f 2d 63 69 70 68 65 72 20 6e 61 hex? ?-cipher na
4210: 6d 65 3f 20 3f 2d 64 69 67 65 73 74 20 6e 61 6d me? ?-digest nam
4220: 65 3f 20 3f 2d 6b 65 79 20 6b 65 79 3f 20 3f 2d e? ?-key key? ?-
4230: 6d 61 63 20 6e 61 6d 65 3f 20 5b 2d 63 68 61 6e mac name? [-chan
4240: 6e 65 6c 20 63 68 61 6e 20 7c 20 2d 63 6f 6d 6d nel chan | -comm
4250: 61 6e 64 20 63 6d 64 4e 61 6d 65 20 7c 20 2d 66 and cmdName | -f
4260: 69 6c 65 20 66 69 6c 65 6e 61 6d 65 20 7c 20 3f ile filename | ?
4270: 2d 64 61 74 61 3f 20 64 61 74 61 5d 22 7d 20 2d -data? data]"} -
4280: 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a returnCodes {1}.
4290: 0a 74 65 73 74 20 4d 41 43 5f 45 72 72 6f 72 73 .test MAC_Errors
42a0: 2d 31 38 2e 32 20 7b 4e 6f 20 6d 61 63 7d 20 2d -18.2 {No mac} -
42b0: 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d body {..::tls::m
42c0: 61 63 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 ac -key $test_ke
42d0: 79 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 y -data $test_da
42e0: 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 ta. } -result
42f0: 20 7b 4e 6f 20 4d 41 43 20 73 70 65 63 69 66 69 {No MAC specifi
4300: 65 64 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 ed} -returnCodes
4310: 20 7b 31 7d 0a 0a 74 65 73 74 20 4d 41 43 5f 45 {1}..test MAC_E
4320: 72 72 6f 72 73 2d 31 38 2e 33 20 7b 4e 6f 20 6b rrors-18.3 {No k
4330: 65 79 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 ey} -body {..::t
4340: 6c 73 3a 3a 6d 61 63 20 2d 6d 61 63 20 68 6d 61 ls::mac -mac hma
4350: 63 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 c -data $test_da
4360: 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 ta. } -result
4370: 20 7b 4e 6f 20 6b 65 79 20 73 70 65 63 69 66 69 {No key specifi
4380: 65 64 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 ed} -returnCodes
4390: 20 7b 31 7d 0a 0a 74 65 73 74 20 4d 41 43 5f 45 {1}..test MAC_E
43a0: 72 72 6f 72 73 2d 31 38 2e 34 20 7b 49 6e 76 61 rrors-18.4 {Inva
43b0: 6c 69 64 20 4d 41 43 7d 20 2d 62 6f 64 79 20 7b lid MAC} -body {
43c0: 0a 09 3a 3a 74 6c 73 3a 3a 6d 61 63 20 2d 6d 61 ..::tls::mac -ma
43d0: 63 20 73 63 72 79 70 74 20 2d 6b 65 79 20 24 74 c scrypt -key $t
43e0: 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 20 24 74 est_key -data $t
43f0: 65 73 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d est_data. } -
4400: 72 65 73 75 6c 74 20 7b 49 6e 76 61 6c 69 64 20 result {Invalid
4410: 4d 41 43 20 22 73 63 72 79 70 74 22 7d 20 2d 72 MAC "scrypt"} -r
4420: 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a eturnCodes {1}..
4430: 74 65 73 74 20 4d 41 43 5f 45 72 72 6f 72 73 2d test MAC_Errors-
4440: 31 38 2e 35 20 7b 54 6f 6f 20 6d 61 6e 79 20 61 18.5 {Too many a
4450: 72 67 73 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a rgs} -body {..::
4460: 74 6c 73 3a 3a 6d 61 63 20 74 6f 6f 20 6d 61 6e tls::mac too man
4470: 79 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 y command line a
4480: 72 67 73 20 74 6f 20 70 61 73 73 20 74 68 65 20 rgs to pass the
4490: 74 65 73 74 20 77 69 74 68 6f 75 74 20 61 6e 20 test without an
44a0: 65 72 72 6f 72 20 6f 72 20 66 61 69 6c 69 6e 67 error or failing
44b0: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
44c0: 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 wrong # args: sh
44d0: 6f 75 6c 64 20 62 65 20 22 3a 3a 74 6c 73 3a 3a ould be "::tls::
44e0: 6d 61 63 20 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20 mac ?-bin|-hex?
44f0: 3f 2d 63 69 70 68 65 72 20 6e 61 6d 65 3f 20 3f ?-cipher name? ?
4500: 2d 64 69 67 65 73 74 20 6e 61 6d 65 3f 20 3f 2d -digest name? ?-
4510: 6b 65 79 20 6b 65 79 3f 20 3f 2d 6d 61 63 20 6e key key? ?-mac n
4520: 61 6d 65 3f 20 5b 2d 63 68 61 6e 6e 65 6c 20 63 ame? [-channel c
4530: 68 61 6e 20 7c 20 2d 63 6f 6d 6d 61 6e 64 20 63 han | -command c
4540: 6d 64 4e 61 6d 65 20 7c 20 2d 66 69 6c 65 20 66 mdName | -file f
4550: 69 6c 65 6e 61 6d 65 20 7c 20 3f 2d 64 61 74 61 ilename | ?-data
4560: 3f 20 64 61 74 61 5d 22 7d 20 2d 72 65 74 75 72 ? data]"} -retur
4570: 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 0a 23 20 52 nCodes {1}...# R
4580: 46 43 20 31 33 32 31 20 4d 65 73 73 61 67 65 20 FC 1321 Message
4590: 44 69 67 65 73 74 20 35 0a 0a 0a 74 65 73 74 20 Digest 5...test
45a0: 52 46 43 31 33 32 31 2d 4d 44 35 2d 31 39 2e 31 RFC1321-MD5-19.1
45b0: 20 7b 54 43 31 7d 20 2d 62 6f 64 79 20 7b 0a 09 {TC1} -body {..
45c0: 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 ::tls::md -diges
45d0: 74 20 6d 64 35 20 2d 64 61 74 61 20 22 22 0a 20 t md5 -data "".
45e0: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 64 34 } -result {d4
45f0: 31 64 38 63 64 39 38 66 30 30 62 32 30 34 65 39 1d8cd98f00b204e9
4600: 38 30 30 39 39 38 65 63 66 38 34 32 37 65 7d 0a 800998ecf8427e}.
4610: 0a 74 65 73 74 20 52 46 43 31 33 32 31 2d 4d 44 .test RFC1321-MD
4620: 35 2d 31 39 2e 32 20 7b 54 43 32 7d 20 2d 62 6f 5-19.2 {TC2} -bo
4630: 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 dy {..::tls::md
4640: 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 64 61 74 -digest md5 -dat
4650: 61 20 22 61 22 0a 20 20 20 20 7d 20 2d 72 65 73 a "a". } -res
4660: 75 6c 74 20 7b 30 63 63 31 37 35 62 39 63 30 66 ult {0cc175b9c0f
4670: 31 62 36 61 38 33 31 63 33 39 39 65 32 36 39 37 1b6a831c399e2697
4680: 37 32 36 36 31 7d 0a 0a 74 65 73 74 20 52 46 43 72661}..test RFC
4690: 31 33 32 31 2d 4d 44 35 2d 31 39 2e 33 20 7b 54 1321-MD5-19.3 {T
46a0: 43 33 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 C3} -body {..::t
46b0: 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d ls::md -digest m
46c0: 64 35 20 2d 64 61 74 61 20 22 61 62 63 22 0a 20 d5 -data "abc".
46d0: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 39 30 } -result {90
46e0: 30 31 35 30 39 38 33 63 64 32 34 66 62 30 64 36 0150983cd24fb0d6
46f0: 39 36 33 66 37 64 32 38 65 31 37 66 37 32 7d 0a 963f7d28e17f72}.
4700: 0a 74 65 73 74 20 52 46 43 31 33 32 31 2d 4d 44 .test RFC1321-MD
4710: 35 2d 31 39 2e 34 20 7b 54 43 34 7d 20 2d 62 6f 5-19.4 {TC4} -bo
4720: 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 dy {..::tls::md
4730: 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 64 61 74 -digest md5 -dat
4740: 61 20 22 6d 65 73 73 61 67 65 20 64 69 67 65 73 a "message diges
4750: 74 22 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 t". } -result
4760: 20 7b 66 39 36 62 36 39 37 64 37 63 62 37 39 33 {f96b697d7cb793
4770: 38 64 35 32 35 61 32 66 33 31 61 61 66 31 36 31 8d525a2f31aaf161
4780: 64 30 7d 0a 0a 74 65 73 74 20 52 46 43 31 33 32 d0}..test RFC132
4790: 31 2d 4d 44 35 2d 31 39 2e 35 20 7b 54 43 35 7d 1-MD5-19.5 {TC5}
47a0: 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a -body {..::tls:
47b0: 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35 20 :md -digest md5
47c0: 2d 64 61 74 61 20 22 61 62 63 64 65 66 67 68 69 -data "abcdefghi
47d0: 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 jklmnopqrstuvwxy
47e0: 7a 22 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 z". } -result
47f0: 20 7b 63 33 66 63 64 33 64 37 36 31 39 32 65 34 {c3fcd3d76192e4
4800: 30 30 37 64 66 62 34 39 36 63 63 61 36 37 65 31 007dfb496cca67e1
4810: 33 62 7d 0a 0a 74 65 73 74 20 52 46 43 31 33 32 3b}..test RFC132
4820: 31 2d 4d 44 35 2d 31 39 2e 36 20 7b 54 43 36 7d 1-MD5-19.6 {TC6}
4830: 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a -body {..::tls:
4840: 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35 20 :md -digest md5
4850: 2d 64 61 74 61 20 22 41 42 43 44 45 46 47 48 49 -data "ABCDEFGHI
4860: 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 JKLMNOPQRSTUVWXY
4870: 5a 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f Zabcdefghijklmno
4880: 70 71 72 73 74 75 76 77 78 79 7a 30 31 32 33 34 pqrstuvwxyz01234
4890: 35 36 37 38 39 22 0a 20 20 20 20 7d 20 2d 72 65 56789". } -re
48a0: 73 75 6c 74 20 7b 64 31 37 34 61 62 39 38 64 32 sult {d174ab98d2
48b0: 37 37 64 39 66 35 61 35 36 31 31 63 32 63 39 66 77d9f5a5611c2c9f
48c0: 34 31 39 64 39 66 7d 0a 0a 74 65 73 74 20 52 46 419d9f}..test RF
48d0: 43 31 33 32 31 2d 4d 44 35 2d 31 39 2e 37 20 7b C1321-MD5-19.7 {
48e0: 54 43 37 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a TC7} -body {..::
48f0: 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 tls::md -digest
4900: 6d 64 35 20 2d 64 61 74 61 20 5b 73 74 72 69 6e md5 -data [strin
4910: 67 20 72 65 70 65 61 74 20 22 31 32 33 34 35 36 g repeat "123456
4920: 37 38 39 30 22 20 38 5d 0a 20 20 20 20 7d 20 2d 7890" 8]. } -
4930: 72 65 73 75 6c 74 20 7b 35 37 65 64 66 34 61 32 result {57edf4a2
4940: 32 62 65 33 63 39 35 35 61 63 34 39 64 61 32 65 2be3c955ac49da2e
4950: 32 31 30 37 62 36 37 61 7d 0a 0a 23 20 52 46 43 2107b67a}..# RFC
4960: 20 36 32 33 34 20 53 48 41 31 0a 0a 0a 74 65 73 6234 SHA1...tes
4970: 74 20 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 41 t RFC6234-MD-SHA
4980: 31 2d 32 30 2e 31 20 7b 54 43 31 7d 20 2d 62 6f 1-20.1 {TC1} -bo
4990: 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 dy {..::tls::md
49a0: 2d 64 69 67 65 73 74 20 73 68 61 31 20 2d 64 61 -digest sha1 -da
49b0: 74 61 20 22 61 62 63 22 0a 20 20 20 20 7d 20 2d ta "abc". } -
49c0: 72 65 73 75 6c 74 20 7b 61 39 39 39 33 65 33 36 result {a9993e36
49d0: 34 37 30 36 38 31 36 61 62 61 33 65 32 35 37 31 4706816aba3e2571
49e0: 37 38 35 30 63 32 36 63 39 63 64 30 64 38 39 64 7850c26c9cd0d89d
49f0: 7d 0a 0a 74 65 73 74 20 52 46 43 36 32 33 34 2d }..test RFC6234-
4a00: 4d 44 2d 53 48 41 31 2d 32 30 2e 32 20 7b 54 43 MD-SHA1-20.2 {TC
4a10: 32 5f 31 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 2_1} -body {..::
4a20: 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 tls::md -digest
4a30: 73 68 61 31 20 2d 64 61 74 61 20 22 61 62 63 64 sha1 -data "abcd
4a40: 62 63 64 65 63 64 65 66 64 65 66 67 65 66 67 68 bcdecdefdefgefgh
4a50: 66 67 68 69 67 68 69 6a 68 69 6a 6b 69 6a 6b 6c fghighijhijkijkl
4a60: 6a 6b 6c 6d 6b 6c 6d 6e 6c 6d 6e 6f 6d 6e 6f 70 jklmklmnlmnomnop
4a70: 6e 6f 70 71 22 0a 20 20 20 20 7d 20 2d 72 65 73 nopq". } -res
4a80: 75 6c 74 20 7b 38 34 39 38 33 65 34 34 31 63 33 ult {84983e441c3
4a90: 62 64 32 36 65 62 61 61 65 34 61 61 31 66 39 35 bd26ebaae4aa1f95
4aa0: 31 32 39 65 35 65 35 34 36 37 30 66 31 7d 0a 0a 129e5e54670f1}..
4ab0: 74 65 73 74 20 52 46 43 36 32 33 34 2d 4d 44 2d test RFC6234-MD-
4ac0: 53 48 41 31 2d 32 30 2e 33 20 7b 54 43 33 7d 20 SHA1-20.3 {TC3}
4ad0: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
4ae0: 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 31 20 md -digest sha1
4af0: 2d 64 61 74 61 20 5b 73 74 72 69 6e 67 20 72 65 -data [string re
4b00: 70 65 61 74 20 22 61 22 20 31 30 30 30 30 30 30 peat "a" 1000000
4b10: 5d 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 ]. } -result
4b20: 7b 33 34 61 61 39 37 33 63 64 34 63 34 64 61 61 {34aa973cd4c4daa
4b30: 34 66 36 31 65 65 62 32 62 64 62 61 64 32 37 33 4f61eeb2bdbad273
4b40: 31 36 35 33 34 30 31 36 66 7d 0a 0a 74 65 73 74 16534016f}..test
4b50: 20 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 41 31 RFC6234-MD-SHA1
4b60: 2d 32 30 2e 34 20 7b 54 43 34 7d 20 2d 62 6f 64 -20.4 {TC4} -bod
4b70: 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d y {..::tls::md -
4b80: 64 69 67 65 73 74 20 73 68 61 31 20 2d 64 61 74 digest sha1 -dat
4b90: 61 20 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 a [string repeat
4ba0: 20 22 30 31 32 33 34 35 36 37 22 20 38 30 5d 0a "01234567" 80].
4bb0: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 64 } -result {d
4bc0: 65 61 33 35 36 61 32 63 64 64 64 39 30 63 37 61 ea356a2cddd90c7a
4bd0: 37 65 63 65 64 63 35 65 62 62 35 36 33 39 33 34 7ecedc5ebb563934
4be0: 66 34 36 30 34 35 32 7d 0a 0a 74 65 73 74 20 52 f460452}..test R
4bf0: 46 43 36 32 33 34 2d 4d 44 2d 53 48 41 31 2d 32 FC6234-MD-SHA1-2
4c00: 30 2e 35 20 7b 54 43 36 7d 20 2d 62 6f 64 79 20 0.5 {TC6} -body
4c10: 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 {..::tls::md -di
4c20: 67 65 73 74 20 73 68 61 31 20 2d 64 61 74 61 20 gest sha1 -data
4c30: 22 5c 78 35 65 22 0a 20 20 20 20 7d 20 2d 72 65 "\x5e". } -re
4c40: 73 75 6c 74 20 7b 35 65 36 66 38 30 61 33 34 61 sult {5e6f80a34a
4c50: 39 37 39 38 63 61 66 63 36 61 35 64 62 39 36 63 9798cafc6a5db96c
4c60: 63 35 37 62 61 34 63 34 64 62 35 39 63 32 7d 0a c57ba4c4db59c2}.
4c70: 0a 74 65 73 74 20 52 46 43 36 32 33 34 2d 4d 44 .test RFC6234-MD
4c80: 2d 53 48 41 31 2d 32 30 2e 36 20 7b 54 43 38 5f -SHA1-20.6 {TC8_
4c90: 31 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 1} -body {..::tl
4ca0: 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 s::md -digest sh
4cb0: 61 31 20 2d 64 61 74 61 20 22 5c 78 39 61 5c 78 a1 -data "\x9a\x
4cc0: 37 64 5c 78 66 64 5c 78 66 31 5c 78 65 63 5c 78 7d\xfd\xf1\xec\x
4cd0: 65 61 5c 78 64 30 5c 78 36 65 5c 78 64 36 5c 78 ea\xd0\x6e\xd6\x
4ce0: 34 36 5c 78 61 61 5c 78 35 35 5c 78 66 65 5c 78 46\xaa\x55\xfe\x
4cf0: 37 35 5c 78 37 31 5c 78 34 36 22 0a 20 20 20 20 75\x71\x46".
4d00: 7d 20 2d 72 65 73 75 6c 74 20 7b 38 32 61 62 66 } -result {82abf
4d10: 66 36 36 30 35 64 62 65 31 63 31 37 64 65 66 31 f6605dbe1c17def1
4d20: 32 61 33 39 34 66 61 32 32 61 38 32 62 35 34 34 2a394fa22a82b544
4d30: 61 33 35 7d 0a 0a 74 65 73 74 20 52 46 43 36 32 a35}..test RFC62
4d40: 33 34 2d 4d 44 2d 53 48 41 31 2d 32 30 2e 37 20 34-MD-SHA1-20.7
4d50: 7b 54 43 31 30 5f 31 7d 20 2d 62 6f 64 79 20 7b {TC10_1} -body {
4d60: 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 ..::tls::md -dig
4d70: 65 73 74 20 73 68 61 31 20 2d 64 61 74 61 20 22 est sha1 -data "
4d80: 5c 78 66 37 5c 78 38 66 5c 78 39 32 5c 78 31 34 \xf7\x8f\x92\x14
4d90: 5c 78 31 62 5c 78 63 64 5c 78 31 37 5c 78 30 61 \x1b\xcd\x17\x0a
4da0: 5c 78 65 38 5c 78 39 62 5c 78 34 66 5c 78 62 61 \xe8\x9b\x4f\xba
4db0: 5c 78 31 35 5c 78 61 31 5c 78 64 35 5c 78 39 66 \x15\xa1\xd5\x9f
4dc0: 5c 78 33 66 5c 78 64 38 5c 78 34 64 5c 78 32 32 \x3f\xd8\x4d\x22
4dd0: 5c 78 33 63 5c 78 39 32 5c 78 35 31 5c 78 62 64 \x3c\x92\x51\xbd
4de0: 5c 78 61 63 5c 78 62 62 5c 78 61 65 5c 78 36 31 \xac\xbb\xae\x61
4df0: 5c 78 64 30 5c 78 35 65 5c 78 64 31 5c 78 31 35 \xd0\x5e\xd1\x15
4e00: 5c 78 61 30 5c 78 36 61 5c 78 37 63 5c 78 65 31 \xa0\x6a\x7c\xe1
4e10: 5c 78 31 37 5c 78 62 37 5c 78 62 65 5c 78 65 61 \x17\xb7\xbe\xea
4e20: 5c 78 64 32 5c 78 34 34 5c 78 32 31 5c 78 64 65 \xd2\x44\x21\xde
4e30: 5c 78 64 39 5c 78 63 33 5c 78 32 35 5c 78 39 32 \xd9\xc3\x25\x92
4e40: 5c 78 62 64 5c 78 35 37 5c 78 65 64 5c 78 65 61 \xbd\x57\xed\xea
4e50: 5c 78 65 33 5c 78 39 63 5c 78 33 39 5c 78 66 61 \xe3\x9c\x39\xfa
4e60: 5c 78 31 66 5c 78 65 38 5c 78 39 34 5c 78 36 61 \x1f\xe8\x94\x6a
4e70: 5c 78 38 34 5c 78 64 30 5c 78 63 66 5c 78 31 66 \x84\xd0\xcf\x1f
4e80: 5c 78 37 62 5c 78 65 65 5c 78 61 64 5c 78 31 37 \x7b\xee\xad\x17
4e90: 5c 78 31 33 5c 78 65 32 5c 78 65 30 5c 78 39 35 \x13\xe2\xe0\x95
4ea0: 5c 78 39 38 5c 78 39 37 5c 78 33 34 5c 78 37 66 \x98\x97\x34\x7f
4eb0: 5c 78 36 37 5c 78 63 38 5c 78 30 62 5c 78 30 34 \x67\xc8\x0b\x04
4ec0: 5c 78 30 30 5c 78 63 32 5c 78 30 39 5c 78 38 31 \x00\xc2\x09\x81
4ed0: 5c 78 35 64 5c 78 36 62 5c 78 31 30 5c 78 61 36 \x5d\x6b\x10\xa6
4ee0: 5c 78 38 33 5c 78 38 33 5c 78 36 66 5c 78 64 35 \x83\x83\x6f\xd5
4ef0: 5c 78 35 36 5c 78 32 61 5c 78 35 36 5c 78 63 61 \x56\x2a\x56\xca
4f00: 5c 78 62 31 5c 78 61 32 5c 78 38 65 5c 78 38 31 \xb1\xa2\x8e\x81
4f10: 5c 78 62 36 5c 78 35 37 5c 78 36 36 5c 78 35 34 \xb6\x57\x66\x54
4f20: 5c 78 36 33 5c 78 31 63 5c 78 66 31 5c 78 36 35 \x63\x1c\xf1\x65
4f30: 5c 78 36 36 5c 78 62 38 5c 78 36 65 5c 78 33 62 \x66\xb8\x6e\x3b
4f40: 5c 78 33 33 5c 78 61 31 5c 78 30 38 5c 78 62 30 \x33\xa1\x08\xb0
4f50: 5c 78 35 33 5c 78 30 37 5c 78 63 30 5c 78 30 61 \x53\x07\xc0\x0a
4f60: 5c 78 66 66 5c 78 31 34 5c 78 61 37 5c 78 36 38 \xff\x14\xa7\x68
4f70: 5c 78 65 64 5c 78 37 33 5c 78 35 30 5c 78 36 30 \xed\x73\x50\x60
4f80: 5c 78 36 61 5c 78 30 66 5c 78 38 35 5c 78 65 36 \x6a\x0f\x85\xe6
4f90: 5c 78 61 39 5c 78 31 64 5c 78 33 39 5c 78 36 66 \xa9\x1d\x39\x6f
4fa0: 5c 78 35 62 5c 78 35 63 5c 78 62 65 5c 78 35 37 \x5b\x5c\xbe\x57
4fb0: 5c 78 37 66 5c 78 39 62 5c 78 33 38 5c 78 38 30 \x7f\x9b\x38\x80
4fc0: 5c 78 37 63 5c 78 37 64 5c 78 35 32 5c 78 33 64 \x7c\x7d\x52\x3d
4fd0: 5c 78 36 64 5c 78 37 39 5c 78 32 66 5c 78 36 65 \x6d\x79\x2f\x6e
4fe0: 5c 78 62 63 5c 78 32 34 5c 78 61 34 5c 78 65 63 \xbc\x24\xa4\xec
4ff0: 5c 78 66 32 5c 78 62 33 5c 78 61 34 5c 78 32 37 \xf2\xb3\xa4\x27
5000: 5c 78 63 64 5c 78 62 62 5c 78 66 62 22 0a 20 20 \xcd\xbb\xfb".
5010: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 63 62 30 } -result {cb0
5020: 30 38 32 63 38 66 31 39 37 64 32 36 30 39 39 31 082c8f197d260991
5030: 62 61 36 61 34 36 30 65 37 36 65 32 30 32 62 61 ba6a460e76e202ba
5040: 64 32 37 62 33 7d 0a 0a 23 20 52 46 43 20 36 32 d27b3}..# RFC 62
5050: 33 34 20 53 48 41 32 35 36 0a 0a 0a 74 65 73 74 34 SHA256...test
5060: 20 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 41 32 RFC6234-MD-SHA2
5070: 35 36 2d 32 31 2e 31 20 7b 54 43 31 7d 20 2d 62 56-21.1 {TC1} -b
5080: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 ody {..::tls::md
5090: 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 -digest sha256
50a0: 2d 64 61 74 61 20 22 61 62 63 22 0a 20 20 20 20 -data "abc".
50b0: 7d 20 2d 72 65 73 75 6c 74 20 7b 62 61 37 38 31 } -result {ba781
50c0: 36 62 66 38 66 30 31 63 66 65 61 34 31 34 31 34 6bf8f01cfea41414
50d0: 30 64 65 35 64 61 65 32 32 32 33 62 30 30 33 36 0de5dae2223b0036
50e0: 31 61 33 39 36 31 37 37 61 39 63 62 34 31 30 66 1a396177a9cb410f
50f0: 66 36 31 66 32 30 30 31 35 61 64 7d 0a 0a 74 65 f61f20015ad}..te
5100: 73 74 20 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 st RFC6234-MD-SH
5110: 41 32 35 36 2d 32 31 2e 32 20 7b 54 43 32 5f 31 A256-21.2 {TC2_1
5120: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
5130: 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 ::md -digest sha
5140: 32 35 36 20 2d 64 61 74 61 20 22 61 62 63 64 62 256 -data "abcdb
5150: 63 64 65 63 64 65 66 64 65 66 67 65 66 67 68 66 cdecdefdefgefghf
5160: 67 68 69 67 68 69 6a 68 69 6a 6b 69 6a 6b 6c 6a ghighijhijkijklj
5170: 6b 6c 6d 6b 6c 6d 6e 6c 6d 6e 6f 6d 6e 6f 70 6e klmklmnlmnomnopn
5180: 6f 70 71 22 0a 20 20 20 20 7d 20 2d 72 65 73 75 opq". } -resu
5190: 6c 74 20 7b 32 34 38 64 36 61 36 31 64 32 30 36 lt {248d6a61d206
51a0: 33 38 62 38 65 35 63 30 32 36 39 33 30 63 33 65 38b8e5c026930c3e
51b0: 36 30 33 39 61 33 33 63 65 34 35 39 36 34 66 66 6039a33ce45964ff
51c0: 32 31 36 37 66 36 65 63 65 64 64 34 31 39 64 62 2167f6ecedd419db
51d0: 30 36 63 31 7d 0a 0a 74 65 73 74 20 52 46 43 36 06c1}..test RFC6
51e0: 32 33 34 2d 4d 44 2d 53 48 41 32 35 36 2d 32 31 234-MD-SHA256-21
51f0: 2e 33 20 7b 54 43 33 7d 20 2d 62 6f 64 79 20 7b .3 {TC3} -body {
5200: 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 ..::tls::md -dig
5210: 65 73 74 20 73 68 61 32 35 36 20 2d 64 61 74 61 est sha256 -data
5220: 20 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 20 [string repeat
5230: 22 61 22 20 31 30 30 30 30 30 30 5d 0a 20 20 20 "a" 1000000].
5240: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 63 64 63 37 } -result {cdc7
5250: 36 65 35 63 39 39 31 34 66 62 39 32 38 31 61 31 6e5c9914fb9281a1
5260: 63 37 65 32 38 34 64 37 33 65 36 37 66 31 38 30 c7e284d73e67f180
5270: 39 61 34 38 61 34 39 37 32 30 30 65 30 34 36 64 9a48a497200e046d
5280: 33 39 63 63 63 37 31 31 32 63 64 30 7d 0a 0a 74 39ccc7112cd0}..t
5290: 65 73 74 20 52 46 43 36 32 33 34 2d 4d 44 2d 53 est RFC6234-MD-S
52a0: 48 41 32 35 36 2d 32 31 2e 34 20 7b 54 43 34 7d HA256-21.4 {TC4}
52b0: 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a -body {..::tls:
52c0: 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 32 :md -digest sha2
52d0: 35 36 20 2d 64 61 74 61 20 5b 73 74 72 69 6e 67 56 -data [string
52e0: 20 72 65 70 65 61 74 20 22 30 31 32 33 34 35 36 repeat "0123456
52f0: 37 22 20 38 30 5d 0a 20 20 20 20 7d 20 2d 72 65 7" 80]. } -re
5300: 73 75 6c 74 20 7b 35 39 34 38 34 37 33 32 38 34 sult {5948473284
5310: 35 31 62 64 66 61 38 35 30 35 36 32 32 35 34 36 51bdfa8505622546
5320: 32 63 63 31 64 38 36 37 64 38 37 37 66 62 33 38 2cc1d867d877fb38
5330: 38 64 66 30 63 65 33 35 66 32 35 61 62 35 35 36 8df0ce35f25ab556
5340: 32 62 66 62 62 35 7d 0a 0a 74 65 73 74 20 52 46 2bfbb5}..test RF
5350: 43 36 32 33 34 2d 4d 44 2d 53 48 41 32 35 36 2d C6234-MD-SHA256-
5360: 32 31 2e 35 20 7b 54 43 36 7d 20 2d 62 6f 64 79 21.5 {TC6} -body
5370: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 {..::tls::md -d
5380: 69 67 65 73 74 20 73 68 61 32 35 36 20 2d 64 61 igest sha256 -da
5390: 74 61 20 22 5c 78 31 39 22 0a 20 20 20 20 7d 20 ta "\x19". }
53a0: 2d 72 65 73 75 6c 74 20 7b 36 38 61 61 32 65 32 -result {68aa2e2
53b0: 65 65 35 64 66 66 39 36 65 33 33 35 35 65 36 63 ee5dff96e3355e6c
53c0: 37 65 65 33 37 33 65 33 64 36 61 34 65 31 37 66 7ee373e3d6a4e17f
53d0: 37 35 66 39 35 31 38 64 38 34 33 37 30 39 63 30 75f9518d843709c0
53e0: 63 39 62 63 33 65 33 64 34 7d 0a 0a 74 65 73 74 c9bc3e3d4}..test
53f0: 20 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 41 32 RFC6234-MD-SHA2
5400: 35 36 2d 32 31 2e 36 20 7b 54 43 38 5f 32 35 36 56-21.6 {TC8_256
5410: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
5420: 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 ::md -digest sha
5430: 32 35 36 20 2d 64 61 74 61 20 22 5c 78 65 33 5c 256 -data "\xe3\
5440: 78 64 37 5c 78 32 35 5c 78 37 30 5c 78 64 63 5c xd7\x25\x70\xdc\
5450: 78 64 64 5c 78 37 38 5c 78 37 63 5c 78 65 33 5c xdd\x78\x7c\xe3\
5460: 78 38 38 5c 78 37 61 5c 78 62 32 5c 78 63 64 5c x88\x7a\xb2\xcd\
5470: 78 36 38 5c 78 34 36 5c 78 35 32 22 0a 20 20 20 x68\x46\x52".
5480: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 31 37 35 65 } -result {175e
5490: 65 36 39 62 30 32 62 61 39 62 35 38 65 32 62 30 e69b02ba9b58e2b0
54a0: 61 35 66 64 31 33 38 31 39 63 65 61 35 37 33 66 a5fd13819cea573f
54b0: 33 39 34 30 61 39 34 66 38 32 35 31 32 38 63 66 3940a94f825128cf
54c0: 34 32 30 39 62 65 61 62 62 34 65 38 7d 0a 0a 74 4209beabb4e8}..t
54d0: 65 73 74 20 52 46 43 36 32 33 34 2d 4d 44 2d 53 est RFC6234-MD-S
54e0: 48 41 32 35 36 2d 32 31 2e 37 20 7b 54 43 31 30 HA256-21.7 {TC10
54f0: 5f 32 35 36 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a _256} -body {..:
5500: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 :tls::md -digest
5510: 20 73 68 61 32 35 36 20 2d 64 61 74 61 20 22 5c sha256 -data "\
5520: 78 38 33 5c 78 32 36 5c 78 37 35 5c 78 34 65 5c x83\x26\x75\x4e\
5530: 78 32 32 5c 78 37 37 5c 78 33 37 5c 78 32 66 5c x22\x77\x37\x2f\
5540: 78 34 66 5c 78 63 31 5c 78 32 62 5c 78 32 30 5c x4f\xc1\x2b\x20\
5550: 78 35 32 5c 78 37 61 5c 78 66 65 5c 78 66 30 5c x52\x7a\xfe\xf0\
5560: 78 34 64 5c 78 38 61 5c 78 30 35 5c 78 36 39 5c x4d\x8a\x05\x69\
5570: 78 37 31 5c 78 62 31 5c 78 31 61 5c 78 64 35 5c x71\xb1\x1a\xd5\
5580: 78 37 31 5c 78 32 33 5c 78 61 37 5c 78 63 31 5c x71\x23\xa7\xc1\
5590: 78 33 37 5c 78 37 36 5c 78 30 30 5c 78 30 30 5c x37\x76\x00\x00\
55a0: 78 64 37 5c 78 62 65 5c 78 66 36 5c 78 66 33 5c xd7\xbe\xf6\xf3\
55b0: 78 63 31 5c 78 66 37 5c 78 61 39 5c 78 30 38 5c xc1\xf7\xa9\x08\
55c0: 78 33 61 5c 78 61 33 5c 78 39 64 5c 78 38 31 5c x3a\xa3\x9d\x81\
55d0: 78 30 64 5c 78 62 33 5c 78 31 30 5c 78 37 37 5c x0d\xb3\x10\x77\
55e0: 78 37 64 5c 78 61 62 5c 78 38 62 5c 78 31 65 5c x7d\xab\x8b\x1e\
55f0: 78 37 66 5c 78 30 32 5c 78 62 38 5c 78 34 61 5c x7f\x02\xb8\x4a\
5600: 78 32 36 5c 78 63 37 5c 78 37 33 5c 78 33 32 5c x26\xc7\x73\x32\
5610: 78 35 66 5c 78 38 62 5c 78 32 33 5c 78 37 34 5c x5f\x8b\x23\x74\
5620: 78 64 65 5c 78 37 61 5c 78 34 62 5c 78 35 61 5c xde\x7a\x4b\x5a\
5630: 78 35 38 5c 78 63 62 5c 78 35 63 5c 78 35 63 5c x58\xcb\x5c\x5c\
5640: 78 66 33 5c 78 35 62 5c 78 63 65 5c 78 65 36 5c xf3\x5b\xce\xe6\
5650: 78 66 62 5c 78 39 34 5c 78 36 65 5c 78 35 62 5c xfb\x94\x6e\x5b\
5660: 78 64 36 5c 78 39 34 5c 78 66 61 5c 78 35 39 5c xd6\x94\xfa\x59\
5670: 78 33 61 5c 78 38 62 5c 78 65 62 5c 78 33 66 5c x3a\x8b\xeb\x3f\
5680: 78 39 64 5c 78 36 35 5c 78 39 32 5c 78 65 63 5c x9d\x65\x92\xec\
5690: 78 65 64 5c 78 61 61 5c 78 36 36 5c 78 63 61 5c xed\xaa\x66\xca\
56a0: 78 38 32 5c 78 61 32 5c 78 39 64 5c 78 30 63 5c x82\xa2\x9d\x0c\
56b0: 78 35 31 5c 78 62 63 5c 78 66 39 5c 78 33 33 5c x51\xbc\xf9\x33\
56c0: 78 36 32 5c 78 33 30 5c 78 65 35 5c 78 64 37 5c x62\x30\xe5\xd7\
56d0: 78 38 34 5c 78 65 34 5c 78 63 30 5c 78 61 34 5c x84\xe4\xc0\xa4\
56e0: 78 33 66 5c 78 38 64 5c 78 37 39 5c 78 61 33 5c x3f\x8d\x79\xa3\
56f0: 78 30 61 5c 78 31 36 5c 78 35 63 5c 78 62 61 5c x0a\x16\x5c\xba\
5700: 78 62 65 5c 78 34 35 5c 78 32 62 5c 78 37 37 5c xbe\x45\x2b\x77\
5710: 78 34 62 5c 78 39 63 5c 78 37 31 5c 78 30 39 5c x4b\x9c\x71\x09\
5720: 78 61 39 5c 78 37 64 5c 78 31 33 5c 78 38 66 5c xa9\x7d\x13\x8f\
5730: 78 31 32 5c 78 39 32 5c 78 32 38 5c 78 39 36 5c x12\x92\x28\x96\
5740: 78 36 66 5c 78 36 63 5c 78 30 61 5c 78 64 63 5c x6f\x6c\x0a\xdc\
5750: 78 31 30 5c 78 36 61 5c 78 61 64 5c 78 35 61 5c x10\x6a\xad\x5a\
5760: 78 39 66 5c 78 64 64 5c 78 33 30 5c 78 38 32 5c x9f\xdd\x30\x82\
5770: 78 35 37 5c 78 36 39 5c 78 62 32 5c 78 63 36 5c x57\x69\xb2\xc6\
5780: 78 37 31 5c 78 61 66 5c 78 36 37 5c 78 35 39 5c x71\xaf\x67\x59\
5790: 78 64 66 5c 78 32 38 5c 78 65 62 5c 78 33 39 5c xdf\x28\xeb\x39\
57a0: 78 33 64 5c 78 35 34 5c 78 64 36 22 0a 20 20 20 x3d\x54\xd6".
57b0: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 39 37 64 62 } -result {97db
57c0: 63 61 37 64 66 34 36 64 36 32 63 38 61 34 32 32 ca7df46d62c8a422
57d0: 63 39 34 31 64 64 37 65 38 33 35 62 38 61 64 33 c941dd7e835b8ad3
57e0: 33 36 31 37 36 33 66 37 65 39 62 32 64 39 35 66 361763f7e9b2d95f
57f0: 34 66 30 64 61 36 65 31 63 63 62 63 7d 0a 0a 23 4f0da6e1ccbc}..#
5800: 20 52 46 43 20 34 32 33 31 20 48 4d 41 43 20 45 RFC 4231 HMAC E
5810: 78 61 6d 70 6c 65 73 20 54 65 73 74 20 43 61 73 xamples Test Cas
5820: 65 20 23 31 0a 73 65 74 20 6b 65 79 20 5b 62 69 e #1.set key [bi
5830: 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 nary decode hex
5840: 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 20 22 [string repeat "
5850: 30 62 22 20 32 30 5d 5d 0a 73 65 74 20 64 61 74 0b" 20]].set dat
5860: 61 20 22 48 69 20 54 68 65 72 65 22 0a 0a 0a 74 a "Hi There"...t
5870: 65 73 74 20 52 46 43 34 32 33 31 5f 48 4d 41 43 est RFC4231_HMAC
5880: 5f 54 43 31 2d 32 32 2e 31 20 7b 73 68 61 32 32 _TC1-22.1 {sha22
5890: 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 4} -body {..::tl
58a0: 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 s::hmac -digest
58b0: 73 68 61 32 32 34 20 2d 6b 65 79 20 24 6b 65 79 sha224 -key $key
58c0: 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 20 20 -data $data.
58d0: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 38 39 36 66 } -result {896f
58e0: 62 31 31 32 38 61 62 62 64 66 31 39 36 38 33 32 b1128abbdf196832
58f0: 31 30 37 63 64 34 39 64 66 33 33 66 34 37 62 34 107cd49df33f47b4
5900: 62 31 31 36 39 39 31 32 62 61 34 66 35 33 36 38 b1169912ba4f5368
5910: 34 62 32 32 7d 0a 0a 74 65 73 74 20 52 46 43 34 4b22}..test RFC4
5920: 32 33 31 5f 48 4d 41 43 5f 54 43 31 2d 32 32 2e 231_HMAC_TC1-22.
5930: 32 20 7b 73 68 61 32 35 36 7d 20 2d 62 6f 64 79 2 {sha256} -body
5940: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 {..::tls::hmac
5950: 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d -digest sha256 -
5960: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 key $key -data $
5970: 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 data. } -resu
5980: 6c 74 20 7b 62 30 33 34 34 63 36 31 64 38 64 62 lt {b0344c61d8db
5990: 33 38 35 33 35 63 61 38 61 66 63 65 61 66 30 62 38535ca8afceaf0b
59a0: 66 31 32 62 38 38 31 64 63 32 30 30 63 39 38 33 f12b881dc200c983
59b0: 33 64 61 37 32 36 65 39 33 37 36 63 32 65 33 32 3da726e9376c2e32
59c0: 63 66 66 37 7d 0a 0a 74 65 73 74 20 52 46 43 34 cff7}..test RFC4
59d0: 32 33 31 5f 48 4d 41 43 5f 54 43 31 2d 32 32 2e 231_HMAC_TC1-22.
59e0: 33 20 7b 73 68 61 33 38 34 7d 20 2d 62 6f 64 79 3 {sha384} -body
59f0: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 {..::tls::hmac
5a00: 2d 64 69 67 65 73 74 20 73 68 61 33 38 34 20 2d -digest sha384 -
5a10: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 key $key -data $
5a20: 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 data. } -resu
5a30: 6c 74 20 7b 61 66 64 30 33 39 34 34 64 38 34 38 lt {afd03944d848
5a40: 39 35 36 32 36 62 30 38 32 35 66 34 61 62 34 36 95626b0825f4ab46
5a50: 39 30 37 66 31 35 66 39 64 61 64 62 65 34 31 30 907f15f9dadbe410
5a60: 31 65 63 36 38 32 61 61 30 33 34 63 37 63 65 62 1ec682aa034c7ceb
5a70: 63 35 39 63 66 61 65 61 39 65 61 39 30 37 36 65 c59cfaea9ea9076e
5a80: 64 65 37 66 34 61 66 31 35 32 65 38 62 32 66 61 de7f4af152e8b2fa
5a90: 39 63 62 36 7d 0a 0a 74 65 73 74 20 52 46 43 34 9cb6}..test RFC4
5aa0: 32 33 31 5f 48 4d 41 43 5f 54 43 31 2d 32 32 2e 231_HMAC_TC1-22.
5ab0: 34 20 7b 73 68 61 35 31 32 7d 20 2d 62 6f 64 79 4 {sha512} -body
5ac0: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 {..::tls::hmac
5ad0: 2d 64 69 67 65 73 74 20 73 68 61 35 31 32 20 2d -digest sha512 -
5ae0: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 key $key -data $
5af0: 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 data. } -resu
5b00: 6c 74 20 7b 38 37 61 61 37 63 64 65 61 35 65 66 lt {87aa7cdea5ef
5b10: 36 31 39 64 34 66 66 30 62 34 32 34 31 61 31 64 619d4ff0b4241a1d
5b20: 36 63 62 30 32 33 37 39 66 34 65 32 63 65 34 65 6cb02379f4e2ce4e
5b30: 63 32 37 38 37 61 64 30 62 33 30 35 34 35 65 31 c2787ad0b30545e1
5b40: 37 63 64 65 64 61 61 38 33 33 62 37 64 36 62 38 7cdedaa833b7d6b8
5b50: 61 37 30 32 30 33 38 62 32 37 34 65 61 65 61 33 a702038b274eaea3
5b60: 66 34 65 34 62 65 39 64 39 31 34 65 65 62 36 31 f4e4be9d914eeb61
5b70: 66 31 37 30 32 65 36 39 36 63 32 30 33 61 31 32 f1702e696c203a12
5b80: 36 38 35 34 7d 0a 0a 23 20 52 46 43 20 34 32 33 6854}..# RFC 423
5b90: 31 20 48 4d 41 43 20 45 78 61 6d 70 6c 65 73 20 1 HMAC Examples
5ba0: 54 65 73 74 20 43 61 73 65 20 23 32 20 2d 20 54 Test Case #2 - T
5bb0: 65 73 74 20 77 69 74 68 20 61 20 6b 65 79 20 73 est with a key s
5bc0: 68 6f 72 74 65 72 20 74 68 61 6e 20 74 68 65 20 horter than the
5bd0: 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 48 4d length of the HM
5be0: 41 43 20 6f 75 74 70 75 74 2e 0a 73 65 74 20 6b AC output..set k
5bf0: 65 79 20 22 4a 65 66 65 22 0a 73 65 74 20 64 61 ey "Jefe".set da
5c00: 74 61 20 22 77 68 61 74 20 64 6f 20 79 61 20 77 ta "what do ya w
5c10: 61 6e 74 20 66 6f 72 20 6e 6f 74 68 69 6e 67 3f ant for nothing?
5c20: 22 0a 0a 0a 74 65 73 74 20 52 46 43 34 32 33 31 "...test RFC4231
5c30: 5f 48 4d 41 43 5f 54 43 32 2d 32 33 2e 31 20 7b _HMAC_TC2-23.1 {
5c40: 73 68 61 32 32 34 7d 20 2d 62 6f 64 79 20 7b 0a sha224} -body {.
5c50: 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 .::tls::hmac -di
5c60: 67 65 73 74 20 73 68 61 32 32 34 20 2d 6b 65 79 gest sha224 -key
5c70: 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 $key -data $dat
5c80: 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 a. } -result
5c90: 7b 61 33 30 65 30 31 30 39 38 62 63 36 64 62 62 {a30e01098bc6dbb
5ca0: 66 34 35 36 39 30 66 33 61 37 65 39 65 36 64 30 f45690f3a7e9e6d0
5cb0: 66 38 62 62 65 61 32 61 33 39 65 36 31 34 38 30 f8bbea2a39e61480
5cc0: 30 38 66 64 30 35 65 34 34 7d 0a 0a 74 65 73 74 08fd05e44}..test
5cd0: 20 52 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 RFC4231_HMAC_TC
5ce0: 32 2d 32 33 2e 32 20 7b 73 68 61 32 35 36 7d 20 2-23.2 {sha256}
5cf0: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
5d00: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 hmac -digest sha
5d10: 32 35 36 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 256 -key $key -d
5d20: 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 ata $data. }
5d30: 2d 72 65 73 75 6c 74 20 7b 35 62 64 63 63 31 34 -result {5bdcc14
5d40: 36 62 66 36 30 37 35 34 65 36 61 30 34 32 34 32 6bf60754e6a04242
5d50: 36 30 38 39 35 37 35 63 37 35 61 30 30 33 66 30 6089575c75a003f0
5d60: 38 39 64 32 37 33 39 38 33 39 64 65 63 35 38 62 89d2739839dec58b
5d70: 39 36 34 65 63 33 38 34 33 7d 0a 0a 74 65 73 74 964ec3843}..test
5d80: 20 52 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 RFC4231_HMAC_TC
5d90: 32 2d 32 33 2e 33 20 7b 73 68 61 33 38 34 7d 20 2-23.3 {sha384}
5da0: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
5db0: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 hmac -digest sha
5dc0: 33 38 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 384 -key $key -d
5dd0: 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 ata $data. }
5de0: 2d 72 65 73 75 6c 74 20 7b 61 66 34 35 64 32 65 -result {af45d2e
5df0: 33 37 36 34 38 34 30 33 31 36 31 37 66 37 38 64 376484031617f78d
5e00: 32 62 35 38 61 36 62 31 62 39 63 37 65 66 34 36 2b58a6b1b9c7ef46
5e10: 34 66 35 61 30 31 62 34 37 65 34 32 65 63 33 37 4f5a01b47e42ec37
5e20: 33 36 33 32 32 34 34 35 65 38 65 32 32 34 30 63 36322445e8e2240c
5e30: 61 35 65 36 39 65 32 63 37 38 62 33 32 33 39 65 a5e69e2c78b3239e
5e40: 63 66 61 62 32 31 36 34 39 7d 0a 0a 74 65 73 74 cfab21649}..test
5e50: 20 52 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 RFC4231_HMAC_TC
5e60: 32 2d 32 33 2e 34 20 7b 73 68 61 35 31 32 7d 20 2-23.4 {sha512}
5e70: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
5e80: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 hmac -digest sha
5e90: 35 31 32 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 512 -key $key -d
5ea0: 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 ata $data. }
5eb0: 2d 72 65 73 75 6c 74 20 7b 31 36 34 62 37 61 37 -result {164b7a7
5ec0: 62 66 63 66 38 31 39 65 32 65 33 39 35 66 62 65 bfcf819e2e395fbe
5ed0: 37 33 62 35 36 65 30 61 33 38 37 62 64 36 34 32 73b56e0a387bd642
5ee0: 32 32 65 38 33 31 66 64 36 31 30 32 37 30 63 64 22e831fd610270cd
5ef0: 37 65 61 32 35 30 35 35 34 39 37 35 38 62 66 37 7ea2505549758bf7
5f00: 35 63 30 35 61 39 39 34 61 36 64 30 33 34 66 36 5c05a994a6d034f6
5f10: 35 66 38 66 30 65 36 66 64 63 61 65 61 62 31 61 5f8f0e6fdcaeab1a
5f20: 33 34 64 34 61 36 62 34 62 36 33 36 65 30 37 30 34d4a6b4b636e070
5f30: 61 33 38 62 63 65 37 33 37 7d 0a 0a 23 20 52 46 a38bce737}..# RF
5f40: 43 20 34 32 33 31 20 48 4d 41 43 20 45 78 61 6d C 4231 HMAC Exam
5f50: 70 6c 65 73 20 54 65 73 74 20 43 61 73 65 20 23 ples Test Case #
5f60: 33 20 2d 20 54 65 73 74 20 77 69 74 68 20 61 20 3 - Test with a
5f70: 63 6f 6d 62 69 6e 65 64 20 6c 65 6e 67 74 68 20 combined length
5f80: 6f 66 20 6b 65 79 20 61 6e 64 20 64 61 74 61 20 of key and data
5f90: 74 68 61 74 20 69 73 20 6c 61 72 67 65 72 20 74 that is larger t
5fa0: 68 61 6e 20 36 34 20 62 79 74 65 73 20 28 3d 20 han 64 bytes (=
5fb0: 62 6c 6f 63 6b 2d 73 69 7a 65 20 6f 66 20 53 48 block-size of SH
5fc0: 41 2d 32 32 34 20 61 6e 64 20 53 48 41 2d 32 35 A-224 and SHA-25
5fd0: 36 29 2e 0a 73 65 74 20 6b 65 79 20 5b 62 69 6e 6)..set key [bin
5fe0: 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 5b ary decode hex [
5ff0: 73 74 72 69 6e 67 20 72 65 70 65 61 74 20 22 61 string repeat "a
6000: 61 22 20 32 30 5d 5d 0a 73 65 74 20 64 61 74 61 a" 20]].set data
6010: 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 [binary decode
6020: 68 65 78 20 5b 73 74 72 69 6e 67 20 72 65 70 65 hex [string repe
6030: 61 74 20 22 64 64 22 20 35 30 5d 5d 0a 0a 0a 74 at "dd" 50]]...t
6040: 65 73 74 20 52 46 43 34 32 33 31 5f 48 4d 41 43 est RFC4231_HMAC
6050: 5f 54 43 33 2d 32 34 2e 31 20 7b 73 68 61 32 32 _TC3-24.1 {sha22
6060: 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 4} -body {..::tl
6070: 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 s::hmac -digest
6080: 73 68 61 32 32 34 20 2d 6b 65 79 20 24 6b 65 79 sha224 -key $key
6090: 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 20 20 -data $data.
60a0: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 37 66 62 33 } -result {7fb3
60b0: 63 62 33 35 38 38 63 36 63 31 66 36 66 66 61 39 cb3588c6c1f6ffa9
60c0: 36 39 34 64 37 64 36 61 64 32 36 34 39 33 36 35 694d7d6ad2649365
60d0: 62 30 63 31 66 36 35 64 36 39 64 31 65 63 38 33 b0c1f65d69d1ec83
60e0: 33 33 65 61 7d 0a 0a 74 65 73 74 20 52 46 43 34 33ea}..test RFC4
60f0: 32 33 31 5f 48 4d 41 43 5f 54 43 33 2d 32 34 2e 231_HMAC_TC3-24.
6100: 32 20 7b 73 68 61 32 35 36 7d 20 2d 62 6f 64 79 2 {sha256} -body
6110: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 {..::tls::hmac
6120: 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d -digest sha256 -
6130: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 key $key -data $
6140: 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 data. } -resu
6150: 6c 74 20 7b 37 37 33 65 61 39 31 65 33 36 38 30 lt {773ea91e3680
6160: 30 65 34 36 38 35 34 64 62 38 65 62 64 30 39 31 0e46854db8ebd091
6170: 38 31 61 37 32 39 35 39 30 39 38 62 33 65 66 38 81a72959098b3ef8
6180: 63 31 32 32 64 39 36 33 35 35 31 34 63 65 64 35 c122d9635514ced5
6190: 36 35 66 65 7d 0a 0a 74 65 73 74 20 52 46 43 34 65fe}..test RFC4
61a0: 32 33 31 5f 48 4d 41 43 5f 54 43 33 2d 32 34 2e 231_HMAC_TC3-24.
61b0: 33 20 7b 73 68 61 33 38 34 7d 20 2d 62 6f 64 79 3 {sha384} -body
61c0: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 {..::tls::hmac
61d0: 2d 64 69 67 65 73 74 20 73 68 61 33 38 34 20 2d -digest sha384 -
61e0: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 key $key -data $
61f0: 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 data. } -resu
6200: 6c 74 20 7b 38 38 30 36 32 36 30 38 64 33 65 36 lt {88062608d3e6
6210: 61 64 38 61 30 61 61 32 61 63 65 30 31 34 63 38 ad8a0aa2ace014c8
6220: 61 38 36 66 30 61 61 36 33 35 64 39 34 37 61 63 a86f0aa635d947ac
6230: 39 66 65 62 65 38 33 65 66 34 65 35 35 39 36 36 9febe83ef4e55966
6240: 31 34 34 62 32 61 35 61 62 33 39 64 63 31 33 38 144b2a5ab39dc138
6250: 31 34 62 39 34 65 33 61 62 36 65 31 30 31 61 33 14b94e3ab6e101a3
6260: 34 66 32 37 7d 0a 0a 74 65 73 74 20 52 46 43 34 4f27}..test RFC4
6270: 32 33 31 5f 48 4d 41 43 5f 54 43 33 2d 32 34 2e 231_HMAC_TC3-24.
6280: 34 20 7b 73 68 61 35 31 32 7d 20 2d 62 6f 64 79 4 {sha512} -body
6290: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 {..::tls::hmac
62a0: 2d 64 69 67 65 73 74 20 73 68 61 35 31 32 20 2d -digest sha512 -
62b0: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 key $key -data $
62c0: 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 data. } -resu
62d0: 6c 74 20 7b 66 61 37 33 62 30 30 38 39 64 35 36 lt {fa73b0089d56
62e0: 61 32 38 34 65 66 62 30 66 30 37 35 36 63 38 39 a284efb0f0756c89
62f0: 30 62 65 39 62 31 62 35 64 62 64 64 38 65 65 38 0be9b1b5dbdd8ee8
6300: 31 61 33 36 35 35 66 38 33 65 33 33 62 32 32 37 1a3655f83e33b227
6310: 39 64 33 39 62 66 33 65 38 34 38 32 37 39 61 37 9d39bf3e848279a7
6320: 32 32 63 38 30 36 62 34 38 35 61 34 37 65 36 37 22c806b485a47e67
6330: 63 38 30 37 62 39 34 36 61 33 33 37 62 65 65 38 c807b946a337bee8
6340: 39 34 32 36 37 34 32 37 38 38 35 39 65 31 33 32 942674278859e132
6350: 39 32 66 62 7d 0a 0a 23 20 52 46 43 20 34 32 33 92fb}..# RFC 423
6360: 31 20 48 4d 41 43 20 45 78 61 6d 70 6c 65 73 20 1 HMAC Examples
6370: 54 65 73 74 20 43 61 73 65 20 23 34 20 2d 20 54 Test Case #4 - T
6380: 65 73 74 20 77 69 74 68 20 61 20 63 6f 6d 62 69 est with a combi
6390: 6e 65 64 20 6c 65 6e 67 74 68 20 6f 66 20 6b 65 ned length of ke
63a0: 79 20 61 6e 64 20 64 61 74 61 20 74 68 61 74 20 y and data that
63b0: 69 73 20 6c 61 72 67 65 72 20 74 68 61 6e 20 36 is larger than 6
63c0: 34 20 62 79 74 65 73 20 28 3d 20 62 6c 6f 63 6b 4 bytes (= block
63d0: 2d 73 69 7a 65 20 6f 66 20 53 48 41 2d 32 32 34 -size of SHA-224
63e0: 20 61 6e 64 20 53 48 41 2d 32 35 36 29 2e 0a 73 and SHA-256)..s
63f0: 65 74 20 6b 65 79 20 5b 62 69 6e 61 72 79 20 64 et key [binary d
6400: 65 63 6f 64 65 20 68 65 78 20 22 30 31 30 32 30 ecode hex "01020
6410: 33 30 34 30 35 30 36 30 37 30 38 30 39 30 61 30 30405060708090a0
6420: 62 30 63 30 64 30 65 30 66 31 30 31 31 31 32 31 b0c0d0e0f1011121
6430: 33 31 34 31 35 31 36 31 37 31 38 31 39 22 5d 0a 3141516171819"].
6440: 73 65 74 20 64 61 74 61 20 5b 62 69 6e 61 72 79 set data [binary
6450: 20 64 65 63 6f 64 65 20 68 65 78 20 5b 73 74 72 decode hex [str
6460: 69 6e 67 20 72 65 70 65 61 74 20 22 63 64 22 20 ing repeat "cd"
6470: 35 30 5d 5d 0a 0a 0a 74 65 73 74 20 52 46 43 34 50]]...test RFC4
6480: 32 33 31 5f 48 4d 41 43 5f 54 43 34 2d 32 35 2e 231_HMAC_TC4-25.
6490: 31 20 7b 73 68 61 32 32 34 7d 20 2d 62 6f 64 79 1 {sha224} -body
64a0: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 {..::tls::hmac
64b0: 2d 64 69 67 65 73 74 20 73 68 61 32 32 34 20 2d -digest sha224 -
64c0: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 key $key -data $
64d0: 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 data. } -resu
64e0: 6c 74 20 7b 36 63 31 31 35 30 36 38 37 34 30 31 lt {6c1150687401
64f0: 33 63 61 63 36 61 32 61 62 63 31 62 62 33 38 32 3cac6a2abc1bb382
6500: 36 32 37 63 65 63 36 61 39 30 64 38 36 65 66 63 627cec6a90d86efc
6510: 30 31 32 64 65 37 61 66 65 63 35 61 7d 0a 0a 74 012de7afec5a}..t
6520: 65 73 74 20 52 46 43 34 32 33 31 5f 48 4d 41 43 est RFC4231_HMAC
6530: 5f 54 43 34 2d 32 35 2e 32 20 7b 73 68 61 32 35 _TC4-25.2 {sha25
6540: 36 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 6} -body {..::tl
6550: 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 s::hmac -digest
6560: 73 68 61 32 35 36 20 2d 6b 65 79 20 24 6b 65 79 sha256 -key $key
6570: 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 20 20 -data $data.
6580: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 38 32 35 35 } -result {8255
6590: 38 61 33 38 39 61 34 34 33 63 30 65 61 34 63 63 8a389a443c0ea4cc
65a0: 38 31 39 38 39 39 66 32 30 38 33 61 38 35 66 30 819899f2083a85f0
65b0: 66 61 61 33 65 35 37 38 66 38 30 37 37 61 32 65 faa3e578f8077a2e
65c0: 33 66 66 34 36 37 32 39 36 36 35 62 7d 0a 0a 74 3ff46729665b}..t
65d0: 65 73 74 20 52 46 43 34 32 33 31 5f 48 4d 41 43 est RFC4231_HMAC
65e0: 5f 54 43 34 2d 32 35 2e 33 20 7b 73 68 61 33 38 _TC4-25.3 {sha38
65f0: 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 4} -body {..::tl
6600: 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 s::hmac -digest
6610: 73 68 61 33 38 34 20 2d 6b 65 79 20 24 6b 65 79 sha384 -key $key
6620: 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 20 20 -data $data.
6630: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 33 65 38 61 } -result {3e8a
6640: 36 39 62 37 37 38 33 63 32 35 38 35 31 39 33 33 69b7783c25851933
6650: 61 62 36 32 39 30 61 66 36 63 61 37 37 61 39 39 ab6290af6ca77a99
6660: 38 31 34 38 30 38 35 30 30 30 39 63 63 35 35 37 81480850009cc557
6670: 37 63 36 65 31 66 35 37 33 62 34 65 36 38 30 31 7c6e1f573b4e6801
6680: 64 64 32 33 63 34 61 37 64 36 37 39 63 63 66 38 dd23c4a7d679ccf8
6690: 61 33 38 36 63 36 37 34 63 66 66 62 7d 0a 0a 74 a386c674cffb}..t
66a0: 65 73 74 20 52 46 43 34 32 33 31 5f 48 4d 41 43 est RFC4231_HMAC
66b0: 5f 54 43 34 2d 32 35 2e 34 20 7b 73 68 61 35 31 _TC4-25.4 {sha51
66c0: 32 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 2} -body {..::tl
66d0: 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 s::hmac -digest
66e0: 73 68 61 35 31 32 20 2d 6b 65 79 20 24 6b 65 79 sha512 -key $key
66f0: 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 20 20 -data $data.
6700: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 62 30 62 61 } -result {b0ba
6710: 34 36 35 36 33 37 34 35 38 63 36 39 39 30 65 35 465637458c6990e5
6720: 61 38 63 35 66 36 31 64 34 61 66 37 65 35 37 36 a8c5f61d4af7e576
6730: 64 39 37 66 66 39 34 62 38 37 32 64 65 37 36 66 d97ff94b872de76f
6740: 38 30 35 30 33 36 31 65 65 33 64 62 61 39 31 63 8050361ee3dba91c
6750: 61 35 63 31 31 61 61 32 35 65 62 34 64 36 37 39 a5c11aa25eb4d679
6760: 32 37 35 63 63 35 37 38 38 30 36 33 61 35 66 31 275cc5788063a5f1
6770: 39 37 34 31 31 32 30 63 34 66 32 64 65 32 61 64 9741120c4f2de2ad
6780: 65 62 65 62 31 30 61 32 39 38 64 64 7d 0a 0a 23 ebeb10a298dd}..#
6790: 20 52 46 43 20 34 32 33 31 20 48 4d 41 43 20 45 RFC 4231 HMAC E
67a0: 78 61 6d 70 6c 65 73 20 54 65 73 74 20 43 61 73 xamples Test Cas
67b0: 65 20 23 35 20 2d 20 54 65 73 74 20 77 69 74 68 e #5 - Test with
67c0: 20 61 20 74 72 75 6e 63 61 74 69 6f 6e 20 6f 66 a truncation of
67d0: 20 6f 75 74 70 75 74 20 74 6f 20 31 32 38 20 62 output to 128 b
67e0: 69 74 73 2e 0a 73 65 74 20 6b 65 79 20 5b 62 69 its..set key [bi
67f0: 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 nary decode hex
6800: 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 20 22 [string repeat "
6810: 30 63 22 20 32 30 5d 5d 0a 73 65 74 20 64 61 74 0c" 20]].set dat
6820: 61 20 22 54 65 73 74 20 57 69 74 68 20 54 72 75 a "Test With Tru
6830: 6e 63 61 74 69 6f 6e 22 0a 0a 0a 74 65 73 74 20 ncation"...test
6840: 52 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 35 RFC4231_HMAC_TC5
6850: 2d 32 36 2e 31 20 7b 73 68 61 32 32 34 7d 20 2d -26.1 {sha224} -
6860: 62 6f 64 79 20 7b 0a 09 73 74 72 69 6e 67 20 72 body {..string r
6870: 61 6e 67 65 20 5b 3a 3a 74 6c 73 3a 3a 68 6d 61 ange [::tls::hma
6880: 63 20 2d 64 69 67 65 73 74 20 73 68 61 32 32 34 c -digest sha224
6890: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 -key $key -data
68a0: 20 24 64 61 74 61 5d 20 30 20 33 31 0a 20 20 20 $data] 0 31.
68b0: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 30 65 32 61 } -result {0e2a
68c0: 65 61 36 38 61 39 30 63 38 64 33 37 63 39 38 38 ea68a90c8d37c988
68d0: 62 63 64 62 39 66 63 61 36 66 61 38 7d 0a 0a 74 bcdb9fca6fa8}..t
68e0: 65 73 74 20 52 46 43 34 32 33 31 5f 48 4d 41 43 est RFC4231_HMAC
68f0: 5f 54 43 35 2d 32 36 2e 32 20 7b 73 68 61 32 35 _TC5-26.2 {sha25
6900: 36 7d 20 2d 62 6f 64 79 20 7b 0a 09 73 74 72 69 6} -body {..stri
6910: 6e 67 20 72 61 6e 67 65 20 5b 3a 3a 74 6c 73 3a ng range [::tls:
6920: 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 :hmac -digest sh
6930: 61 32 35 36 20 2d 6b 65 79 20 24 6b 65 79 20 2d a256 -key $key -
6940: 64 61 74 61 20 24 64 61 74 61 5d 20 30 20 33 31 data $data] 0 31
6950: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
6960: 61 33 62 36 31 36 37 34 37 33 31 30 30 65 65 30 a3b6167473100ee0
6970: 36 65 30 63 37 39 36 63 32 39 35 35 35 35 32 62 6e0c796c2955552b
6980: 7d 0a 0a 74 65 73 74 20 52 46 43 34 32 33 31 5f }..test RFC4231_
6990: 48 4d 41 43 5f 54 43 35 2d 32 36 2e 33 20 7b 73 HMAC_TC5-26.3 {s
69a0: 68 61 33 38 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 ha384} -body {..
69b0: 73 74 72 69 6e 67 20 72 61 6e 67 65 20 5b 3a 3a string range [::
69c0: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 tls::hmac -diges
69d0: 74 20 73 68 61 33 38 34 20 2d 6b 65 79 20 24 6b t sha384 -key $k
69e0: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 5d 20 ey -data $data]
69f0: 30 20 33 31 0a 20 20 20 20 7d 20 2d 72 65 73 75 0 31. } -resu
6a00: 6c 74 20 7b 33 61 62 66 33 34 63 33 35 30 33 62 lt {3abf34c3503b
6a10: 32 61 32 33 61 34 36 65 66 63 36 31 39 62 61 65 2a23a46efc619bae
6a20: 66 38 39 37 7d 0a 0a 74 65 73 74 20 52 46 43 34 f897}..test RFC4
6a30: 32 33 31 5f 48 4d 41 43 5f 54 43 35 2d 32 36 2e 231_HMAC_TC5-26.
6a40: 34 20 7b 73 68 61 35 31 32 7d 20 2d 62 6f 64 79 4 {sha512} -body
6a50: 20 7b 0a 09 73 74 72 69 6e 67 20 72 61 6e 67 65 {..string range
6a60: 20 5b 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 [::tls::hmac -d
6a70: 69 67 65 73 74 20 73 68 61 35 31 32 20 2d 6b 65 igest sha512 -ke
6a80: 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 y $key -data $da
6a90: 74 61 5d 20 30 20 33 31 0a 20 20 20 20 7d 20 2d ta] 0 31. } -
6aa0: 72 65 73 75 6c 74 20 7b 34 31 35 66 61 64 36 32 result {415fad62
6ab0: 37 31 35 38 30 61 35 33 31 64 34 31 37 39 62 63 71580a531d4179bc
6ac0: 38 39 31 64 38 37 61 36 7d 0a 0a 23 20 52 46 43 891d87a6}..# RFC
6ad0: 20 34 32 33 31 20 48 4d 41 43 20 45 78 61 6d 70 4231 HMAC Examp
6ae0: 6c 65 73 20 54 65 73 74 20 43 61 73 65 20 23 36 les Test Case #6
6af0: 20 2d 20 54 65 73 74 20 77 69 74 68 20 61 20 6b - Test with a k
6b00: 65 79 20 6c 61 72 67 65 72 20 74 68 61 6e 20 31 ey larger than 1
6b10: 32 38 20 62 79 74 65 73 20 28 3d 20 62 6c 6f 63 28 bytes (= bloc
6b20: 6b 2d 73 69 7a 65 20 6f 66 20 53 48 41 2d 33 38 k-size of SHA-38
6b30: 34 20 61 6e 64 20 53 48 41 2d 35 31 32 29 2e 0a 4 and SHA-512)..
6b40: 73 65 74 20 6b 65 79 20 5b 62 69 6e 61 72 79 20 set key [binary
6b50: 64 65 63 6f 64 65 20 68 65 78 20 5b 73 74 72 69 decode hex [stri
6b60: 6e 67 20 72 65 70 65 61 74 20 22 61 61 22 20 31 ng repeat "aa" 1
6b70: 33 31 5d 5d 0a 73 65 74 20 64 61 74 61 20 22 54 31]].set data "T
6b80: 65 73 74 20 55 73 69 6e 67 20 4c 61 72 67 65 72 est Using Larger
6b90: 20 54 68 61 6e 20 42 6c 6f 63 6b 2d 53 69 7a 65 Than Block-Size
6ba0: 20 4b 65 79 20 2d 20 48 61 73 68 20 4b 65 79 20 Key - Hash Key
6bb0: 46 69 72 73 74 22 0a 0a 0a 74 65 73 74 20 52 46 First"...test RF
6bc0: 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 36 2d 32 C4231_HMAC_TC6-2
6bd0: 37 2e 31 20 7b 73 68 61 32 32 34 7d 20 2d 62 6f 7.1 {sha224} -bo
6be0: 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 dy {..::tls::hma
6bf0: 63 20 2d 64 69 67 65 73 74 20 73 68 61 32 32 34 c -digest sha224
6c00: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 -key $key -data
6c10: 20 24 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 $data. } -re
6c20: 73 75 6c 74 20 7b 39 35 65 39 61 30 64 62 39 36 sult {95e9a0db96
6c30: 32 30 39 35 61 64 61 65 62 65 39 62 32 64 36 66 2095adaebe9b2d6f
6c40: 30 64 62 63 65 32 64 34 39 39 66 31 31 32 66 32 0dbce2d499f112f2
6c50: 64 32 62 37 32 37 33 66 61 36 38 37 30 65 7d 0a d2b7273fa6870e}.
6c60: 0a 74 65 73 74 20 52 46 43 34 32 33 31 5f 48 4d .test RFC4231_HM
6c70: 41 43 5f 54 43 36 2d 32 37 2e 32 20 7b 73 68 61 AC_TC6-27.2 {sha
6c80: 32 35 36 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 256} -body {..::
6c90: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 tls::hmac -diges
6ca0: 74 20 73 68 61 32 35 36 20 2d 6b 65 79 20 24 6b t sha256 -key $k
6cb0: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 ey -data $data.
6cc0: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 36 30 } -result {60
6cd0: 65 34 33 31 35 39 31 65 65 30 62 36 37 66 30 64 e431591ee0b67f0d
6ce0: 38 61 32 36 61 61 63 62 66 35 62 37 37 66 38 65 8a26aacbf5b77f8e
6cf0: 30 62 63 36 32 31 33 37 32 38 63 35 31 34 30 35 0bc6213728c51405
6d00: 34 36 30 34 30 66 30 65 65 33 37 66 35 34 7d 0a 46040f0ee37f54}.
6d10: 0a 74 65 73 74 20 52 46 43 34 32 33 31 5f 48 4d .test RFC4231_HM
6d20: 41 43 5f 54 43 36 2d 32 37 2e 33 20 7b 73 68 61 AC_TC6-27.3 {sha
6d30: 33 38 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 384} -body {..::
6d40: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 tls::hmac -diges
6d50: 74 20 73 68 61 33 38 34 20 2d 6b 65 79 20 24 6b t sha384 -key $k
6d60: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 ey -data $data.
6d70: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 34 65 } -result {4e
6d80: 63 65 30 38 34 34 38 35 38 31 33 65 39 30 38 38 ce084485813e9088
6d90: 64 32 63 36 33 61 30 34 31 62 63 35 62 34 34 66 d2c63a041bc5b44f
6da0: 39 65 66 31 30 31 32 61 32 62 35 38 38 66 33 63 9ef1012a2b588f3c
6db0: 64 31 31 66 30 35 30 33 33 61 63 34 63 36 30 63 d11f05033ac4c60c
6dc0: 32 65 66 36 61 62 34 30 33 30 66 65 38 32 39 36 2ef6ab4030fe8296
6dd0: 32 34 38 64 66 31 36 33 66 34 34 39 35 32 7d 0a 248df163f44952}.
6de0: 0a 74 65 73 74 20 52 46 43 34 32 33 31 5f 48 4d .test RFC4231_HM
6df0: 41 43 5f 54 43 36 2d 32 37 2e 34 20 7b 73 68 61 AC_TC6-27.4 {sha
6e00: 35 31 32 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 512} -body {..::
6e10: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 tls::hmac -diges
6e20: 74 20 73 68 61 35 31 32 20 2d 6b 65 79 20 24 6b t sha512 -key $k
6e30: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 ey -data $data.
6e40: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 38 30 } -result {80
6e50: 62 32 34 32 36 33 63 37 63 31 61 33 65 62 62 37 b24263c7c1a3ebb7
6e60: 31 34 39 33 63 31 64 64 37 62 65 38 62 34 39 62 1493c1dd7be8b49b
6e70: 34 36 64 31 66 34 31 62 34 61 65 65 63 31 31 32 46d1f41b4aeec112
6e80: 31 62 30 31 33 37 38 33 66 38 66 33 35 32 36 62 1b013783f8f3526b
6e90: 35 36 64 30 33 37 65 30 35 66 32 35 39 38 62 64 56d037e05f2598bd
6ea0: 30 66 64 32 32 31 35 64 36 61 31 65 35 32 39 35 0fd2215d6a1e5295
6eb0: 65 36 34 66 37 33 66 36 33 66 30 61 65 63 38 62 e64f73f63f0aec8b
6ec0: 39 31 35 61 39 38 35 64 37 38 36 35 39 38 7d 0a 915a985d786598}.
6ed0: 0a 23 20 52 46 43 20 34 32 33 31 20 48 4d 41 43 .# RFC 4231 HMAC
6ee0: 20 45 78 61 6d 70 6c 65 73 20 54 65 73 74 20 43 Examples Test C
6ef0: 61 73 65 20 23 37 20 2d 20 54 65 73 74 20 77 69 ase #7 - Test wi
6f00: 74 68 20 61 20 6b 65 79 20 61 6e 64 20 64 61 74 th a key and dat
6f10: 61 20 74 68 61 74 20 69 73 20 6c 61 72 67 65 72 a that is larger
6f20: 20 74 68 61 6e 20 31 32 38 20 62 79 74 65 73 20 than 128 bytes
6f30: 28 3d 20 62 6c 6f 63 6b 2d 73 69 7a 65 20 6f 66 (= block-size of
6f40: 20 53 48 41 2d 33 38 34 20 61 6e 64 20 53 48 41 SHA-384 and SHA
6f50: 2d 35 31 32 29 2e 0a 73 65 74 20 6b 65 79 20 5b -512)..set key [
6f60: 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 binary decode he
6f70: 78 20 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 x [string repeat
6f80: 20 22 61 61 22 20 31 33 31 5d 5d 0a 73 65 74 20 "aa" 131]].set
6f90: 64 61 74 61 20 22 54 68 69 73 20 69 73 20 61 20 data "This is a
6fa0: 74 65 73 74 20 75 73 69 6e 67 20 61 20 6c 61 72 test using a lar
6fb0: 67 65 72 20 74 68 61 6e 20 62 6c 6f 63 6b 2d 73 ger than block-s
6fc0: 69 7a 65 20 6b 65 79 20 61 6e 64 20 61 20 6c 61 ize key and a la
6fd0: 72 67 65 72 20 74 68 61 6e 20 62 6c 6f 63 6b 2d rger than block-
6fe0: 73 69 7a 65 20 64 61 74 61 2e 20 54 68 65 20 6b size data. The k
6ff0: 65 79 20 6e 65 65 64 73 20 74 6f 20 62 65 20 68 ey needs to be h
7000: 61 73 68 65 64 20 62 65 66 6f 72 65 20 62 65 69 ashed before bei
7010: 6e 67 20 75 73 65 64 20 62 79 20 74 68 65 20 48 ng used by the H
7020: 4d 41 43 20 61 6c 67 6f 72 69 74 68 6d 2e 22 0a MAC algorithm.".
7030: 0a 0a 74 65 73 74 20 52 46 43 34 32 33 31 5f 48 ..test RFC4231_H
7040: 4d 41 43 5f 54 43 37 2d 32 38 2e 31 20 7b 73 68 MAC_TC7-28.1 {sh
7050: 61 32 32 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a a224} -body {..:
7060: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 :tls::hmac -dige
7070: 73 74 20 73 68 61 32 32 34 20 2d 6b 65 79 20 24 st sha224 -key $
7080: 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 0a key -data $data.
7090: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 33 } -result {3
70a0: 61 38 35 34 31 36 36 61 63 35 64 39 66 30 32 33 a854166ac5d9f023
70b0: 66 35 34 64 35 31 37 64 30 62 33 39 64 62 64 39 f54d517d0b39dbd9
70c0: 34 36 37 37 30 64 62 39 63 32 62 39 35 63 39 66 46770db9c2b95c9f
70d0: 36 66 35 36 35 64 31 7d 0a 0a 74 65 73 74 20 52 6f565d1}..test R
70e0: 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 37 2d FC4231_HMAC_TC7-
70f0: 32 38 2e 32 20 7b 73 68 61 32 35 36 7d 20 2d 62 28.2 {sha256} -b
7100: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d ody {..::tls::hm
7110: 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 ac -digest sha25
7120: 36 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 6 -key $key -dat
7130: 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 a $data. } -r
7140: 65 73 75 6c 74 20 7b 39 62 30 39 66 66 61 37 31 esult {9b09ffa71
7150: 62 39 34 32 66 63 62 32 37 36 33 35 66 62 63 64 b942fcb27635fbcd
7160: 35 62 30 65 39 34 34 62 66 64 63 36 33 36 34 34 5b0e944bfdc63644
7170: 66 30 37 31 33 39 33 38 61 37 66 35 31 35 33 35 f0713938a7f51535
7180: 63 33 61 33 35 65 32 7d 0a 0a 74 65 73 74 20 52 c3a35e2}..test R
7190: 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 37 2d FC4231_HMAC_TC7-
71a0: 32 38 2e 33 20 7b 73 68 61 33 38 34 7d 20 2d 62 28.3 {sha384} -b
71b0: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d ody {..::tls::hm
71c0: 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 33 38 ac -digest sha38
71d0: 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 4 -key $key -dat
71e0: 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 a $data. } -r
71f0: 65 73 75 6c 74 20 7b 36 36 31 37 31 37 38 65 39 esult {6617178e9
7200: 34 31 66 30 32 30 64 33 35 31 65 32 66 32 35 34 41f020d351e2f254
7210: 65 38 66 64 33 32 63 36 30 32 34 32 30 66 65 62 e8fd32c602420feb
7220: 30 62 38 66 62 39 61 64 63 63 65 62 62 38 32 34 0b8fb9adccebb824
7230: 36 31 65 39 39 63 35 61 36 37 38 63 63 33 31 65 61e99c5a678cc31e
7240: 37 39 39 31 37 36 64 33 38 36 30 65 36 31 31 30 799176d3860e6110
7250: 63 34 36 35 32 33 65 7d 0a 0a 74 65 73 74 20 52 c46523e}..test R
7260: 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 37 2d FC4231_HMAC_TC7-
7270: 32 38 2e 34 20 7b 73 68 61 35 31 32 7d 20 2d 62 28.4 {sha512} -b
7280: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d ody {..::tls::hm
7290: 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 35 31 ac -digest sha51
72a0: 32 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 2 -key $key -dat
72b0: 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 a $data. } -r
72c0: 65 73 75 6c 74 20 7b 65 33 37 62 36 61 37 37 35 esult {e37b6a775
72d0: 64 63 38 37 64 62 61 61 34 64 66 61 39 66 39 36 dc87dbaa4dfa9f96
72e0: 65 35 65 33 66 66 64 64 65 62 64 37 31 66 38 38 e5e3ffddebd71f88
72f0: 36 37 32 38 39 38 36 35 64 66 35 61 33 32 64 32 67289865df5a32d2
7300: 30 63 64 63 39 34 34 62 36 30 32 32 63 61 63 33 0cdc944b6022cac3
7310: 63 34 39 38 32 62 31 30 64 35 65 65 62 35 35 63 c4982b10d5eeb55c
7320: 33 65 34 64 65 31 35 31 33 34 36 37 36 66 62 36 3e4de15134676fb6
7330: 64 65 30 34 34 36 30 36 35 63 39 37 34 34 30 66 de0446065c97440f
7340: 61 38 63 36 61 35 38 7d 0a 0a 23 20 4e 49 53 54 a8c6a58}..# NIST
7350: 20 38 30 30 2d 33 38 62 20 52 65 63 6f 6d 6d 65 800-38b Recomme
7360: 6e 64 61 74 69 6f 6e 20 66 6f 72 20 42 6c 6f 63 ndation for Bloc
7370: 6b 20 43 69 70 68 65 72 20 4d 6f 64 65 73 20 6f k Cipher Modes o
7380: 66 20 4f 70 65 72 61 74 69 6f 6e 3a 20 54 68 65 f Operation: The
7390: 20 43 4d 41 43 20 4d 6f 64 65 20 66 6f 72 20 41 CMAC Mode for A
73a0: 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 0a 23 20 uthentication.#
73b0: 41 45 53 2d 31 32 38 0a 73 65 74 20 6b 65 79 20 AES-128.set key
73c0: 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 [binary decode h
73d0: 65 78 20 22 32 62 37 65 31 35 31 36 32 38 61 65 ex "2b7e151628ae
73e0: 64 32 61 36 61 62 66 37 31 35 38 38 30 39 63 66 d2a6abf7158809cf
73f0: 34 66 33 63 22 5d 0a 0a 0a 74 65 73 74 20 4e 49 4f3c"]...test NI
7400: 53 54 38 30 30 2d 33 38 62 2d 41 45 53 31 32 38 ST800-38b-AES128
7410: 2d 32 39 2e 31 20 7b 6c 65 6e 3d 30 7d 20 2d 62 -29.1 {len=0} -b
7420: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 6d ody {..::tls::cm
7430: 61 63 20 2d 63 69 70 68 65 72 20 61 65 73 2d 31 ac -cipher aes-1
7440: 32 38 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 79 28-cbc -key $key
7450: 20 2d 64 61 74 61 20 22 22 0a 20 20 20 20 7d 20 -data "". }
7460: 2d 72 65 73 75 6c 74 20 7b 62 62 31 64 36 39 32 -result {bb1d692
7470: 39 65 39 35 39 33 37 32 38 37 66 61 33 37 64 31 9e95937287fa37d1
7480: 32 39 62 37 35 36 37 34 36 7d 0a 73 65 74 20 64 29b756746}.set d
7490: 61 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63 6f ata [binary deco
74a0: 64 65 20 68 65 78 20 22 36 62 63 31 62 65 65 32 de hex "6bc1bee2
74b0: 32 65 34 30 39 66 39 36 65 39 33 64 37 65 31 31 2e409f96e93d7e11
74c0: 37 33 39 33 31 37 32 61 22 5d 0a 0a 74 65 73 74 7393172a"]..test
74d0: 20 4e 49 53 54 38 30 30 2d 33 38 62 2d 41 45 53 NIST800-38b-AES
74e0: 31 32 38 2d 32 39 2e 32 20 7b 6c 65 6e 3d 31 32 128-29.2 {len=12
74f0: 38 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 8} -body {..::tl
7500: 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 20 s::cmac -cipher
7510: 61 65 73 2d 31 32 38 2d 63 62 63 20 2d 6b 65 79 aes-128-cbc -key
7520: 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 $key -data $dat
7530: 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 a. } -result
7540: 7b 30 37 30 61 31 36 62 34 36 62 34 64 34 31 34 {070a16b46b4d414
7550: 34 66 37 39 62 64 64 39 64 64 30 34 61 32 38 37 4f79bdd9dd04a287
7560: 63 7d 0a 73 65 74 20 64 61 74 61 20 5b 62 69 6e c}.set data [bin
7570: 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 22 ary decode hex "
7580: 36 62 63 31 62 65 65 32 32 65 34 30 39 66 39 36 6bc1bee22e409f96
7590: 65 39 33 64 37 65 31 31 37 33 39 33 31 37 32 61 e93d7e117393172a
75a0: 61 65 32 64 38 61 35 37 31 65 30 33 61 63 39 63 ae2d8a571e03ac9c
75b0: 39 65 62 37 36 66 61 63 34 35 61 66 38 65 35 31 9eb76fac45af8e51
75c0: 33 30 63 38 31 63 34 36 61 33 35 63 65 34 31 31 30c81c46a35ce411
75d0: 22 5d 0a 0a 74 65 73 74 20 4e 49 53 54 38 30 30 "]..test NIST800
75e0: 2d 33 38 62 2d 41 45 53 31 32 38 2d 32 39 2e 33 -38b-AES128-29.3
75f0: 20 7b 6c 65 6e 3d 33 32 30 7d 20 2d 62 6f 64 79 {len=320} -body
7600: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 {..::tls::cmac
7610: 2d 63 69 70 68 65 72 20 61 65 73 2d 31 32 38 2d -cipher aes-128-
7620: 63 62 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 cbc -key $key -d
7630: 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 ata $data. }
7640: 2d 72 65 73 75 6c 74 20 7b 64 66 61 36 36 37 34 -result {dfa6674
7650: 37 64 65 39 61 65 36 33 30 33 30 63 61 33 32 36 7de9ae63030ca326
7660: 31 31 34 39 37 63 38 32 37 7d 0a 73 65 74 20 64 11497c827}.set d
7670: 61 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63 6f ata [binary deco
7680: 64 65 20 68 65 78 20 22 36 62 63 31 62 65 65 32 de hex "6bc1bee2
7690: 32 65 34 30 39 66 39 36 65 39 33 64 37 65 31 31 2e409f96e93d7e11
76a0: 37 33 39 33 31 37 32 61 61 65 32 64 38 61 35 37 7393172aae2d8a57
76b0: 31 65 30 33 61 63 39 63 39 65 62 37 36 66 61 63 1e03ac9c9eb76fac
76c0: 34 35 61 66 38 65 35 31 33 30 63 38 31 63 34 36 45af8e5130c81c46
76d0: 61 33 35 63 65 34 31 31 65 35 66 62 63 31 31 39 a35ce411e5fbc119
76e0: 31 61 30 61 35 32 65 66 66 36 39 66 32 34 34 35 1a0a52eff69f2445
76f0: 64 66 34 66 39 62 31 37 61 64 32 62 34 31 37 62 df4f9b17ad2b417b
7700: 65 36 36 63 33 37 31 30 22 5d 0a 0a 74 65 73 74 e66c3710"]..test
7710: 20 4e 49 53 54 38 30 30 2d 33 38 62 2d 41 45 53 NIST800-38b-AES
7720: 31 32 38 2d 32 39 2e 34 20 7b 6c 65 6e 3d 35 31 128-29.4 {len=51
7730: 32 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 2} -body {..::tl
7740: 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 20 s::cmac -cipher
7750: 61 65 73 2d 31 32 38 2d 63 62 63 20 2d 6b 65 79 aes-128-cbc -key
7760: 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 $key -data $dat
7770: 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 a. } -result
7780: 7b 35 31 66 30 62 65 62 66 37 65 33 62 39 64 39 {51f0bebf7e3b9d9
7790: 32 66 63 34 39 37 34 31 37 37 39 33 36 33 63 66 2fc49741779363cf
77a0: 65 7d 0a 0a 23 20 41 45 53 2d 31 39 32 0a 73 65 e}..# AES-192.se
77b0: 74 20 6b 65 79 20 5b 62 69 6e 61 72 79 20 64 65 t key [binary de
77c0: 63 6f 64 65 20 68 65 78 20 22 38 65 37 33 62 30 code hex "8e73b0
77d0: 66 37 64 61 30 65 36 34 35 32 63 38 31 30 66 33 f7da0e6452c810f3
77e0: 32 62 38 30 39 30 37 39 65 35 36 32 66 38 65 61 2b809079e562f8ea
77f0: 64 32 35 32 32 63 36 62 37 62 22 5d 0a 0a 0a 74 d2522c6b7b"]...t
7800: 65 73 74 20 4e 49 53 54 38 30 30 2d 33 38 62 2d est NIST800-38b-
7810: 41 45 53 2d 31 39 32 2d 33 30 2e 31 20 7b 6c 65 AES-192-30.1 {le
7820: 6e 3d 30 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a n=0} -body {..::
7830: 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 tls::cmac -ciphe
7840: 72 20 61 65 73 2d 31 39 32 2d 63 62 63 20 2d 6b r aes-192-cbc -k
7850: 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 22 22 ey $key -data ""
7860: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
7870: 64 31 37 64 64 66 34 36 61 64 61 61 63 64 65 35 d17ddf46adaacde5
7880: 33 31 63 61 63 34 38 33 64 65 37 61 39 33 36 37 31cac483de7a9367
7890: 7d 0a 73 65 74 20 64 61 74 61 20 5b 62 69 6e 61 }.set data [bina
78a0: 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 22 36 ry decode hex "6
78b0: 62 63 31 62 65 65 32 32 65 34 30 39 66 39 36 65 bc1bee22e409f96e
78c0: 39 33 64 37 65 31 31 37 33 39 33 31 37 32 61 22 93d7e117393172a"
78d0: 5d 0a 0a 74 65 73 74 20 4e 49 53 54 38 30 30 2d ]..test NIST800-
78e0: 33 38 62 2d 41 45 53 2d 31 39 32 2d 33 30 2e 32 38b-AES-192-30.2
78f0: 20 7b 6c 65 6e 3d 31 32 38 7d 20 2d 62 6f 64 79 {len=128} -body
7900: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 {..::tls::cmac
7910: 2d 63 69 70 68 65 72 20 61 65 73 2d 31 39 32 2d -cipher aes-192-
7920: 63 62 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 cbc -key $key -d
7930: 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 ata $data. }
7940: 2d 72 65 73 75 6c 74 20 7b 39 65 39 39 61 37 62 -result {9e99a7b
7950: 66 33 31 65 37 31 30 39 30 30 36 36 32 66 36 35 f31e710900662f65
7960: 65 36 31 37 63 35 31 38 34 7d 0a 73 65 74 20 64 e617c5184}.set d
7970: 61 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63 6f ata [binary deco
7980: 64 65 20 68 65 78 20 22 36 62 63 31 62 65 65 32 de hex "6bc1bee2
7990: 32 65 34 30 39 66 39 36 65 39 33 64 37 65 31 31 2e409f96e93d7e11
79a0: 37 33 39 33 31 37 32 61 61 65 32 64 38 61 35 37 7393172aae2d8a57
79b0: 31 65 30 33 61 63 39 63 39 65 62 37 36 66 61 63 1e03ac9c9eb76fac
79c0: 34 35 61 66 38 65 35 31 33 30 63 38 31 63 34 36 45af8e5130c81c46
79d0: 61 33 35 63 65 34 31 31 22 5d 0a 0a 74 65 73 74 a35ce411"]..test
79e0: 20 4e 49 53 54 38 30 30 2d 33 38 62 2d 41 45 53 NIST800-38b-AES
79f0: 2d 31 39 32 2d 33 30 2e 33 20 7b 6c 65 6e 3d 33 -192-30.3 {len=3
7a00: 32 30 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 20} -body {..::t
7a10: 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 ls::cmac -cipher
7a20: 20 61 65 73 2d 31 39 32 2d 63 62 63 20 2d 6b 65 aes-192-cbc -ke
7a30: 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 y $key -data $da
7a40: 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 ta. } -result
7a50: 20 7b 38 61 31 64 65 35 62 65 32 65 62 33 31 61 {8a1de5be2eb31a
7a60: 61 64 30 38 39 61 38 32 65 36 65 65 39 30 38 62 ad089a82e6ee908b
7a70: 30 65 7d 0a 73 65 74 20 64 61 74 61 20 5b 62 69 0e}.set data [bi
7a80: 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 nary decode hex
7a90: 22 36 62 63 31 62 65 65 32 32 65 34 30 39 66 39 "6bc1bee22e409f9
7aa0: 36 65 39 33 64 37 65 31 31 37 33 39 33 31 37 32 6e93d7e117393172
7ab0: 61 61 65 32 64 38 61 35 37 31 65 30 33 61 63 39 aae2d8a571e03ac9
7ac0: 63 39 65 62 37 36 66 61 63 34 35 61 66 38 65 35 c9eb76fac45af8e5
7ad0: 31 33 30 63 38 31 63 34 36 61 33 35 63 65 34 31 130c81c46a35ce41
7ae0: 31 65 35 66 62 63 31 31 39 31 61 30 61 35 32 65 1e5fbc1191a0a52e
7af0: 66 66 36 39 66 32 34 34 35 64 66 34 66 39 62 31 ff69f2445df4f9b1
7b00: 37 61 64 32 62 34 31 37 62 65 36 36 63 33 37 31 7ad2b417be66c371
7b10: 30 22 5d 0a 0a 74 65 73 74 20 4e 49 53 54 38 30 0"]..test NIST80
7b20: 30 2d 33 38 62 2d 41 45 53 2d 31 39 32 2d 33 30 0-38b-AES-192-30
7b30: 2e 34 20 7b 6c 65 6e 3d 35 31 32 7d 20 2d 62 6f .4 {len=512} -bo
7b40: 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 dy {..::tls::cma
7b50: 63 20 2d 63 69 70 68 65 72 20 61 65 73 2d 31 39 c -cipher aes-19
7b60: 32 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 79 20 2-cbc -key $key
7b70: 2d 64 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 -data $data.
7b80: 7d 20 2d 72 65 73 75 6c 74 20 7b 61 31 64 35 64 } -result {a1d5d
7b90: 66 30 65 65 64 37 39 30 66 37 39 34 64 37 37 35 f0eed790f794d775
7ba0: 38 39 36 35 39 66 33 39 61 31 31 7d 0a 0a 23 20 89659f39a11}..#
7bb0: 41 45 53 2d 32 35 36 0a 73 65 74 20 6b 65 79 20 AES-256.set key
7bc0: 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 [binary decode h
7bd0: 65 78 20 22 36 30 33 64 65 62 31 30 31 35 63 61 ex "603deb1015ca
7be0: 37 31 62 65 32 62 37 33 61 65 66 30 38 35 37 64 71be2b73aef0857d
7bf0: 37 37 38 31 31 66 33 35 32 63 30 37 33 62 36 31 77811f352c073b61
7c00: 30 38 64 37 32 64 39 38 31 30 61 33 30 39 31 34 08d72d9810a30914
7c10: 64 66 66 34 22 5d 0a 0a 0a 74 65 73 74 20 4e 49 dff4"]...test NI
7c20: 53 54 38 30 30 2d 33 38 62 2d 41 45 53 2d 32 35 ST800-38b-AES-25
7c30: 36 2d 33 31 2e 31 20 7b 6c 65 6e 3d 30 7d 20 2d 6-31.1 {len=0} -
7c40: 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 body {..::tls::c
7c50: 6d 61 63 20 2d 63 69 70 68 65 72 20 61 65 73 2d mac -cipher aes-
7c60: 32 35 36 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 256-cbc -key $ke
7c70: 79 20 2d 64 61 74 61 20 22 22 0a 20 20 20 20 7d y -data "". }
7c80: 20 2d 72 65 73 75 6c 74 20 7b 30 32 38 39 36 32 -result {028962
7c90: 66 36 31 62 37 62 66 38 39 65 66 63 36 62 35 35 f61b7bf89efc6b55
7ca0: 31 66 34 36 36 37 64 39 38 33 7d 0a 73 65 74 20 1f4667d983}.set
7cb0: 64 61 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63 data [binary dec
7cc0: 6f 64 65 20 68 65 78 20 22 36 62 63 31 62 65 65 ode hex "6bc1bee
7cd0: 32 32 65 34 30 39 66 39 36 65 39 33 64 37 65 31 22e409f96e93d7e1
7ce0: 31 37 33 39 33 31 37 32 61 22 5d 0a 0a 74 65 73 17393172a"]..tes
7cf0: 74 20 4e 49 53 54 38 30 30 2d 33 38 62 2d 41 45 t NIST800-38b-AE
7d00: 53 2d 32 35 36 2d 33 31 2e 32 20 7b 6c 65 6e 3d S-256-31.2 {len=
7d10: 31 32 38 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 128} -body {..::
7d20: 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 tls::cmac -ciphe
7d30: 72 20 61 65 73 2d 32 35 36 2d 63 62 63 20 2d 6b r aes-256-cbc -k
7d40: 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 ey $key -data $d
7d50: 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c ata. } -resul
7d60: 74 20 7b 32 38 61 37 30 32 33 66 34 35 32 65 38 t {28a7023f452e8
7d70: 66 38 32 62 64 34 62 66 32 38 64 38 63 33 37 63 f82bd4bf28d8c37c
7d80: 33 35 63 7d 0a 73 65 74 20 64 61 74 61 20 5b 62 35c}.set data [b
7d90: 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 inary decode hex
7da0: 20 22 36 62 63 31 62 65 65 32 32 65 34 30 39 66 "6bc1bee22e409f
7db0: 39 36 65 39 33 64 37 65 31 31 37 33 39 33 31 37 96e93d7e11739317
7dc0: 32 61 61 65 32 64 38 61 35 37 31 65 30 33 61 63 2aae2d8a571e03ac
7dd0: 39 63 39 65 62 37 36 66 61 63 34 35 61 66 38 65 9c9eb76fac45af8e
7de0: 35 31 33 30 63 38 31 63 34 36 61 33 35 63 65 34 5130c81c46a35ce4
7df0: 31 31 22 5d 0a 0a 74 65 73 74 20 4e 49 53 54 38 11"]..test NIST8
7e00: 30 30 2d 33 38 62 2d 41 45 53 2d 32 35 36 2d 33 00-38b-AES-256-3
7e10: 31 2e 33 20 7b 6c 65 6e 3d 33 32 30 7d 20 2d 62 1.3 {len=320} -b
7e20: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 6d ody {..::tls::cm
7e30: 61 63 20 2d 63 69 70 68 65 72 20 61 65 73 2d 32 ac -cipher aes-2
7e40: 35 36 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 79 56-cbc -key $key
7e50: 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 20 20 -data $data.
7e60: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 61 61 66 33 } -result {aaf3
7e70: 64 38 66 31 64 65 35 36 34 30 63 32 33 32 66 35 d8f1de5640c232f5
7e80: 62 31 36 39 62 39 63 39 31 31 65 36 7d 0a 73 65 b169b9c911e6}.se
7e90: 74 20 64 61 74 61 20 5b 62 69 6e 61 72 79 20 64 t data [binary d
7ea0: 65 63 6f 64 65 20 68 65 78 20 22 36 62 63 31 62 ecode hex "6bc1b
7eb0: 65 65 32 32 65 34 30 39 66 39 36 65 39 33 64 37 ee22e409f96e93d7
7ec0: 65 31 31 37 33 39 33 31 37 32 61 61 65 32 64 38 e117393172aae2d8
7ed0: 61 35 37 31 65 30 33 61 63 39 63 39 65 62 37 36 a571e03ac9c9eb76
7ee0: 66 61 63 34 35 61 66 38 65 35 31 33 30 63 38 31 fac45af8e5130c81
7ef0: 63 34 36 61 33 35 63 65 34 31 31 65 35 66 62 63 c46a35ce411e5fbc
7f00: 31 31 39 31 61 30 61 35 32 65 66 66 36 39 66 32 1191a0a52eff69f2
7f10: 34 34 35 64 66 34 66 39 62 31 37 61 64 32 62 34 445df4f9b17ad2b4
7f20: 31 37 62 65 36 36 63 33 37 31 30 22 5d 0a 0a 74 17be66c3710"]..t
7f30: 65 73 74 20 4e 49 53 54 38 30 30 2d 33 38 62 2d est NIST800-38b-
7f40: 41 45 53 2d 32 35 36 2d 33 31 2e 34 20 7b 6c 65 AES-256-31.4 {le
7f50: 6e 3d 35 31 32 7d 20 2d 62 6f 64 79 20 7b 0a 09 n=512} -body {..
7f60: 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 ::tls::cmac -cip
7f70: 68 65 72 20 61 65 73 2d 32 35 36 2d 63 62 63 20 her aes-256-cbc
7f80: 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 -key $key -data
7f90: 24 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 $data. } -res
7fa0: 75 6c 74 20 7b 65 31 39 39 32 31 39 30 35 34 39 ult {e1992190549
7fb0: 66 36 65 64 35 36 39 36 61 32 63 30 35 36 63 33 f6ed5696a2c056c3
7fc0: 31 35 34 31 30 7d 0a 0a 23 20 43 6c 65 61 6e 75 15410}..# Cleanu
7fd0: 70 0a 3a 3a 74 63 6c 74 65 73 74 3a 3a 72 65 6d p.::tcltest::rem
7fe0: 6f 76 65 46 69 6c 65 20 24 74 65 73 74 5f 66 69 oveFile $test_fi
7ff0: 6c 65 0a 3a 3a 74 63 6c 74 65 73 74 3a 3a 72 65 le.::tcltest::re
8000: 6d 6f 76 65 46 69 6c 65 20 24 74 65 73 74 5f 61 moveFile $test_a
8010: 6c 74 5f 66 69 6c 65 0a 0a 23 20 43 6c 65 61 6e lt_file..# Clean
8020: 75 70 0a 3a 3a 74 63 6c 74 65 73 74 3a 3a 63 6c up.::tcltest::cl
8030: 65 61 6e 75 70 54 65 73 74 73 0a 72 65 74 75 72 eanupTests.retur
8040: 6e 0a n.