Artifact
6439f34d44ccf22b6818b20dbe6a755c70b6367f19706ee511db43f085bc5baf:
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: 0a 09 73 65 74 20 63 68 20 5b 6f 70 65 6e 20 24 ..set ch [open $
01a0: 66 69 6c 65 6e 61 6d 65 20 72 62 5d 0a 09 73 65 filename rb]..se
01b0: 74 20 62 73 69 7a 65 20 5b 66 63 6f 6e 66 69 67 t bsize [fconfig
01c0: 75 72 65 20 24 63 68 20 2d 62 75 66 66 65 72 73 ure $ch -buffers
01d0: 69 7a 65 5d 0a 09 73 65 74 20 6e 65 77 20 5b 24 ize]..set new [$
01e0: 63 6d 64 20 7b 2a 7d 24 61 72 67 73 20 2d 63 68 cmd {*}$args -ch
01f0: 61 6e 20 24 63 68 5d 0a 09 77 68 69 6c 65 20 7b an $ch]..while {
0200: 21 5b 65 6f 66 20 24 6e 65 77 5d 7d 20 7b 73 65 ![eof $new]} {se
0210: 74 20 6d 64 20 5b 72 65 61 64 20 24 6e 65 77 20 t md [read $new
0220: 24 62 73 69 7a 65 5d 7d 0a 09 63 6c 6f 73 65 20 $bsize]}..close
0230: 24 6e 65 77 0a 09 72 65 74 75 72 6e 20 24 6d 64 $new..return $md
0240: 7d 0a 70 72 6f 63 20 64 69 67 65 73 74 5f 77 72 }.proc digest_wr
0250: 69 74 65 5f 63 68 61 6e 20 7b 63 6d 64 20 66 69 ite_chan {cmd fi
0260: 6c 65 6e 61 6d 65 20 64 61 74 61 20 61 72 67 73 lename data args
0270: 7d 20 7b 0a 09 73 65 74 20 63 68 20 5b 6f 70 65 } {..set ch [ope
0280: 6e 20 24 66 69 6c 65 6e 61 6d 65 20 77 62 5d 0a n $filename wb].
0290: 09 73 65 74 20 6e 65 77 20 5b 24 63 6d 64 20 7b .set new [$cmd {
02a0: 2a 7d 24 61 72 67 73 20 2d 63 68 61 6e 20 24 63 *}$args -chan $c
02b0: 68 5d 0a 09 70 75 74 73 20 2d 6e 6f 6e 65 77 6c h]..puts -nonewl
02c0: 69 6e 65 20 24 6e 65 77 20 24 64 61 74 61 0a 09 ine $new $data..
02d0: 66 6c 75 73 68 20 24 6e 65 77 0a 09 63 6c 6f 73 flush $new..clos
02e0: 65 20 24 6e 65 77 0a 09 73 65 74 20 63 68 20 5b e $new..set ch [
02f0: 6f 70 65 6e 20 24 66 69 6c 65 6e 61 6d 65 20 72 open $filename r
0300: 62 5d 0a 09 73 65 74 20 6d 64 20 5b 72 65 61 64 b]..set md [read
0310: 20 24 63 68 5d 0a 09 63 6c 6f 73 65 20 24 63 68 $ch]..close $ch
0320: 0a 09 72 65 74 75 72 6e 20 24 6d 64 7d 0a 70 72 ..return $md}.pr
0330: 6f 63 20 64 69 67 65 73 74 5f 61 63 63 75 6d 75 oc digest_accumu
0340: 6c 61 74 65 20 7b 73 74 72 69 6e 67 20 61 72 67 late {string arg
0350: 73 7d 20 7b 0a 09 73 65 74 20 63 6d 64 20 5b 7b s} {..set cmd [{
0360: 2a 7d 24 61 72 67 73 20 2d 63 6f 6d 6d 61 6e 64 *}$args -command
0370: 20 64 63 6d 64 5d 0a 09 20 24 63 6d 64 20 75 70 dcmd].. $cmd up
0380: 64 61 74 65 20 5b 73 74 72 69 6e 67 20 72 61 6e date [string ran
0390: 67 65 20 24 73 74 72 69 6e 67 20 30 20 32 30 5d ge $string 0 20]
03a0: 0a 09 24 63 6d 64 20 75 70 64 61 74 65 20 5b 73 ..$cmd update [s
03b0: 74 72 69 6e 67 20 72 61 6e 67 65 20 24 73 74 72 tring range $str
03c0: 69 6e 67 20 32 31 20 65 6e 64 5d 0a 09 72 65 74 ing 21 end]..ret
03d0: 75 72 6e 20 5b 24 63 6d 64 20 66 69 6e 61 6c 69 urn [$cmd finali
03e0: 7a 65 5d 7d 0a 0a 73 65 74 20 74 65 73 74 5f 64 ze]}..set test_d
03f0: 61 74 61 20 22 45 78 61 6d 70 6c 65 20 73 74 72 ata "Example str
0400: 69 6e 67 20 66 6f 72 20 6d 65 73 73 61 67 65 20 ing for message
0410: 64 69 67 65 73 74 20 74 65 73 74 73 2e 5c 6e 22 digest tests.\n"
0420: 0a 73 65 74 20 74 65 73 74 5f 66 69 6c 65 20 22 .set test_file "
0430: 6d 64 5f 64 61 74 61 2e 64 61 74 22 0a 73 65 74 md_data.dat".set
0440: 20 74 65 73 74 5f 61 6c 74 5f 66 69 6c 65 20 22 test_alt_file "
0450: 6d 64 5f 61 6c 74 5f 64 61 74 61 2e 64 61 74 22 md_alt_data.dat"
0460: 0a 73 65 74 20 74 65 73 74 5f 6b 65 79 20 22 45 .set test_key "E
0470: 78 61 6d 70 6c 65 20 6b 65 79 22 0a 3a 3a 74 63 xample key".::tc
0480: 6c 74 65 73 74 3a 3a 6d 61 6b 65 46 69 6c 65 20 ltest::makeFile
0490: 24 74 65 73 74 5f 64 61 74 61 20 24 74 65 73 74 $test_data $test
04a0: 5f 66 69 6c 65 0a 0a 23 20 54 65 73 74 20 73 68 _file..# Test sh
04b0: 6f 72 74 2d 63 75 74 20 63 6f 6d 6d 61 6e 64 73 ort-cut commands
04c0: 0a 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f 43 ...test Digest_C
04d0: 6d 64 73 2d 31 2e 31 20 7b 6d 64 34 20 63 6d 64 mds-1.1 {md4 cmd
04e0: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
04f0: 3a 3a 6d 64 34 20 24 74 65 73 74 5f 64 61 74 61 ::md4 $test_data
0500: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
0510: 37 39 33 33 39 39 66 37 39 32 65 63 61 32 37 35 793399f792eca275
0520: 32 63 36 61 66 33 32 33 34 62 61 37 30 38 35 38 2c6af3234ba70858
0530: 7d 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f 43 }..test Digest_C
0540: 6d 64 73 2d 31 2e 32 20 7b 6d 64 35 20 63 6d 64 mds-1.2 {md5 cmd
0550: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
0560: 3a 3a 6d 64 35 20 24 74 65 73 74 5f 64 61 74 61 ::md5 $test_data
0570: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
0580: 39 36 32 62 66 30 38 30 33 62 34 32 33 32 65 63 962bf0803b4232ec
0590: 32 33 62 64 38 34 32 37 62 62 39 34 65 61 30 39 23bd8427bb94ea09
05a0: 7d 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f 43 }..test Digest_C
05b0: 6d 64 73 2d 31 2e 33 20 7b 73 68 61 31 20 63 6d mds-1.3 {sha1 cm
05c0: 64 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c d} -body {..::tl
05d0: 73 3a 3a 73 68 61 31 20 24 74 65 73 74 5f 64 61 s::sha1 $test_da
05e0: 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 ta. } -result
05f0: 20 7b 34 66 65 30 33 62 37 66 32 35 36 38 35 35 {4fe03b7f256855
0600: 31 64 66 61 66 62 39 38 63 61 36 30 30 34 65 36 1dfafb98ca6004e6
0610: 35 63 34 62 37 31 61 61 37 64 7d 0a 0a 74 65 73 5c4b71aa7d}..tes
0620: 74 20 44 69 67 65 73 74 5f 43 6d 64 73 2d 31 2e t Digest_Cmds-1.
0630: 34 20 7b 73 68 61 32 35 36 20 63 6d 64 7d 20 2d 4 {sha256 cmd} -
0640: 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 73 body {..::tls::s
0650: 68 61 32 35 36 20 24 74 65 73 74 5f 64 61 74 61 ha256 $test_data
0660: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
0670: 39 64 33 35 37 38 66 63 31 33 38 32 30 35 63 66 9d3578fc138205cf
0680: 30 65 65 34 62 34 63 65 66 33 35 66 65 31 30 31 0ee4b4cef35fe101
0690: 62 62 34 65 63 61 63 37 62 31 36 31 34 63 31 38 bb4ecac7b1614c18
06a0: 65 36 66 61 34 38 62 35 63 37 66 39 35 65 31 39 e6fa48b5c7f95e19
06b0: 7d 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f 43 }..test Digest_C
06c0: 6d 64 73 2d 31 2e 35 20 7b 73 68 61 35 31 32 20 mds-1.5 {sha512
06d0: 63 6d 64 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a cmd} -body {..::
06e0: 74 6c 73 3a 3a 73 68 61 35 31 32 20 24 74 65 73 tls::sha512 $tes
06f0: 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 t_data. } -re
0700: 73 75 6c 74 20 7b 64 31 37 38 65 37 35 39 64 63 sult {d178e759dc
0710: 35 39 31 32 37 30 37 31 35 38 38 64 32 66 61 64 59127071588d2fad
0720: 31 37 33 63 30 36 32 33 38 64 38 37 65 38 30 30 173c06238d87e800
0730: 61 36 34 30 33 63 30 61 33 30 64 61 61 34 66 61 a6403c0a30daa4fa
0740: 61 66 30 35 64 30 65 37 63 65 30 34 39 31 36 61 af05d0e7ce04916a
0750: 66 61 61 36 61 35 38 61 33 30 63 62 65 62 35 39 faa6a58a30cbeb59
0760: 37 64 61 63 62 30 31 63 36 32 66 39 66 62 39 64 7dacb01c62f9fb9d
0770: 38 39 62 61 62 39 64 61 36 33 30 63 36 39 39 65 89bab9da630c699e
0780: 34 38 31 36 66 31 7d 0a 0a 23 20 54 65 73 74 20 4816f1}..# Test
0790: 4d 44 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 72 MD command for r
07a0: 65 61 64 20 63 68 61 6e 6e 65 6c 0a 0a 0a 74 65 ead channel...te
07b0: 73 74 20 44 69 67 65 73 74 5f 43 68 61 6e 5f 52 st Digest_Chan_R
07c0: 65 61 64 2d 32 2e 31 20 7b 6d 64 34 7d 20 2d 62 ead-2.1 {md4} -b
07d0: 6f 64 79 20 7b 0a 09 64 69 67 65 73 74 5f 72 65 ody {..digest_re
07e0: 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d ad_chan ::tls::m
07f0: 64 20 24 74 65 73 74 5f 66 69 6c 65 20 2d 64 69 d $test_file -di
0800: 67 65 73 74 20 6d 64 34 0a 20 20 20 20 7d 20 2d gest md4. } -
0810: 72 65 73 75 6c 74 20 7b 37 39 33 33 39 39 66 37 result {793399f7
0820: 39 32 65 63 61 32 37 35 32 63 36 61 66 33 32 33 92eca2752c6af323
0830: 34 62 61 37 30 38 35 38 7d 0a 0a 74 65 73 74 20 4ba70858}..test
0840: 44 69 67 65 73 74 5f 43 68 61 6e 5f 52 65 61 64 Digest_Chan_Read
0850: 2d 32 2e 32 20 7b 6d 64 35 7d 20 2d 62 6f 64 79 -2.2 {md5} -body
0860: 20 7b 0a 09 64 69 67 65 73 74 5f 72 65 61 64 5f {..digest_read_
0870: 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 chan ::tls::md $
0880: 74 65 73 74 5f 66 69 6c 65 20 2d 64 69 67 65 73 test_file -diges
0890: 74 20 6d 64 35 0a 20 20 20 20 7d 20 2d 72 65 73 t md5. } -res
08a0: 75 6c 74 20 7b 39 36 32 62 66 30 38 30 33 62 34 ult {962bf0803b4
08b0: 32 33 32 65 63 32 33 62 64 38 34 32 37 62 62 39 232ec23bd8427bb9
08c0: 34 65 61 30 39 7d 0a 0a 74 65 73 74 20 44 69 67 4ea09}..test Dig
08d0: 65 73 74 5f 43 68 61 6e 5f 52 65 61 64 2d 32 2e est_Chan_Read-2.
08e0: 33 20 7b 73 68 61 31 7d 20 2d 62 6f 64 79 20 7b 3 {sha1} -body {
08f0: 0a 09 64 69 67 65 73 74 5f 72 65 61 64 5f 63 68 ..digest_read_ch
0900: 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 an ::tls::md $te
0910: 73 74 5f 66 69 6c 65 20 2d 64 69 67 65 73 74 20 st_file -digest
0920: 73 68 61 31 0a 20 20 20 20 7d 20 2d 72 65 73 75 sha1. } -resu
0930: 6c 74 20 7b 34 66 65 30 33 62 37 66 32 35 36 38 lt {4fe03b7f2568
0940: 35 35 31 64 66 61 66 62 39 38 63 61 36 30 30 34 551dfafb98ca6004
0950: 65 36 35 63 34 62 37 31 61 61 37 64 7d 0a 0a 74 e65c4b71aa7d}..t
0960: 65 73 74 20 44 69 67 65 73 74 5f 43 68 61 6e 5f est Digest_Chan_
0970: 52 65 61 64 2d 32 2e 34 20 7b 73 68 61 32 35 36 Read-2.4 {sha256
0980: 7d 20 2d 62 6f 64 79 20 7b 0a 09 64 69 67 65 73 } -body {..diges
0990: 74 5f 72 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c t_read_chan ::tl
09a0: 73 3a 3a 6d 64 20 24 74 65 73 74 5f 66 69 6c 65 s::md $test_file
09b0: 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 0a -digest sha256.
09c0: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 39 } -result {9
09d0: 64 33 35 37 38 66 63 31 33 38 32 30 35 63 66 30 d3578fc138205cf0
09e0: 65 65 34 62 34 63 65 66 33 35 66 65 31 30 31 62 ee4b4cef35fe101b
09f0: 62 34 65 63 61 63 37 62 31 36 31 34 63 31 38 65 b4ecac7b1614c18e
0a00: 36 66 61 34 38 62 35 63 37 66 39 35 65 31 39 7d 6fa48b5c7f95e19}
0a10: 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f 43 68 ..test Digest_Ch
0a20: 61 6e 5f 52 65 61 64 2d 32 2e 35 20 7b 73 68 61 an_Read-2.5 {sha
0a30: 35 31 32 7d 20 2d 62 6f 64 79 20 7b 0a 09 64 69 512} -body {..di
0a40: 67 65 73 74 5f 72 65 61 64 5f 63 68 61 6e 20 3a gest_read_chan :
0a50: 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74 5f 66 :tls::md $test_f
0a60: 69 6c 65 20 2d 64 69 67 65 73 74 20 73 68 61 35 ile -digest sha5
0a70: 31 32 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 12. } -result
0a80: 20 7b 64 31 37 38 65 37 35 39 64 63 35 39 31 32 {d178e759dc5912
0a90: 37 30 37 31 35 38 38 64 32 66 61 64 31 37 33 63 7071588d2fad173c
0aa0: 30 36 32 33 38 64 38 37 65 38 30 30 61 36 34 30 06238d87e800a640
0ab0: 33 63 30 61 33 30 64 61 61 34 66 61 61 66 30 35 3c0a30daa4faaf05
0ac0: 64 30 65 37 63 65 30 34 39 31 36 61 66 61 61 36 d0e7ce04916afaa6
0ad0: 61 35 38 61 33 30 63 62 65 62 35 39 37 64 61 63 a58a30cbeb597dac
0ae0: 62 30 31 63 36 32 66 39 66 62 39 64 38 39 62 61 b01c62f9fb9d89ba
0af0: 62 39 64 61 36 33 30 63 36 39 39 65 34 38 31 36 b9da630c699e4816
0b00: 66 31 7d 0a 0a 74 65 73 74 20 44 69 67 65 73 74 f1}..test Digest
0b10: 5f 43 68 61 6e 5f 52 65 61 64 2d 32 2e 36 20 7b _Chan_Read-2.6 {
0b20: 6d 64 35 20 62 69 6e 7d 20 2d 62 6f 64 79 20 7b md5 bin} -body {
0b30: 0a 09 62 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 ..binary encode
0b40: 68 65 78 20 5b 64 69 67 65 73 74 5f 72 65 61 64 hex [digest_read
0b50: 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 _chan ::tls::md
0b60: 24 74 65 73 74 5f 66 69 6c 65 20 2d 62 69 6e 20 $test_file -bin
0b70: 2d 64 69 67 65 73 74 20 6d 64 35 5d 0a 20 20 20 -digest md5].
0b80: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 39 36 32 62 } -result {962b
0b90: 66 30 38 30 33 62 34 32 33 32 65 63 32 33 62 64 f0803b4232ec23bd
0ba0: 38 34 32 37 62 62 39 34 65 61 30 39 7d 0a 0a 74 8427bb94ea09}..t
0bb0: 65 73 74 20 44 69 67 65 73 74 5f 43 68 61 6e 5f est Digest_Chan_
0bc0: 52 65 61 64 2d 32 2e 37 20 7b 6d 64 35 20 68 65 Read-2.7 {md5 he
0bd0: 78 7d 20 2d 62 6f 64 79 20 7b 0a 09 64 69 67 65 x} -body {..dige
0be0: 73 74 5f 72 65 61 64 5f 63 68 61 6e 20 3a 3a 74 st_read_chan ::t
0bf0: 6c 73 3a 3a 6d 64 20 24 74 65 73 74 5f 66 69 6c ls::md $test_fil
0c00: 65 20 2d 68 65 78 20 2d 64 69 67 65 73 74 20 6d e -hex -digest m
0c10: 64 35 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 d5. } -result
0c20: 20 7b 39 36 32 62 66 30 38 30 33 62 34 32 33 32 {962bf0803b4232
0c30: 65 63 32 33 62 64 38 34 32 37 62 62 39 34 65 61 ec23bd8427bb94ea
0c40: 30 39 7d 0a 0a 23 20 54 65 73 74 20 4d 44 20 63 09}..# Test MD c
0c50: 6f 6d 6d 61 6e 64 20 66 6f 72 20 77 72 69 74 65 ommand for write
0c60: 20 63 68 61 6e 6e 65 6c 0a 0a 0a 74 65 73 74 20 channel...test
0c70: 44 69 67 65 73 74 5f 43 68 61 6e 5f 57 72 69 74 Digest_Chan_Writ
0c80: 65 2d 33 2e 31 20 7b 6d 64 34 7d 20 2d 62 6f 64 e-3.1 {md4} -bod
0c90: 79 20 7b 0a 09 64 69 67 65 73 74 5f 77 72 69 74 y {..digest_writ
0ca0: 65 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 e_chan ::tls::md
0cb0: 20 24 74 65 73 74 5f 61 6c 74 5f 66 69 6c 65 20 $test_alt_file
0cc0: 24 74 65 73 74 5f 64 61 74 61 20 2d 64 69 67 65 $test_data -dige
0cd0: 73 74 20 6d 64 34 0a 20 20 20 20 7d 20 2d 72 65 st md4. } -re
0ce0: 73 75 6c 74 20 7b 37 39 33 33 39 39 66 37 39 32 sult {793399f792
0cf0: 65 63 61 32 37 35 32 63 36 61 66 33 32 33 34 62 eca2752c6af3234b
0d00: 61 37 30 38 35 38 7d 0a 0a 74 65 73 74 20 44 69 a70858}..test Di
0d10: 67 65 73 74 5f 43 68 61 6e 5f 57 72 69 74 65 2d gest_Chan_Write-
0d20: 33 2e 32 20 7b 6d 64 35 7d 20 2d 62 6f 64 79 20 3.2 {md5} -body
0d30: 7b 0a 09 64 69 67 65 73 74 5f 77 72 69 74 65 5f {..digest_write_
0d40: 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 chan ::tls::md $
0d50: 74 65 73 74 5f 61 6c 74 5f 66 69 6c 65 20 24 74 test_alt_file $t
0d60: 65 73 74 5f 64 61 74 61 20 2d 64 69 67 65 73 74 est_data -digest
0d70: 20 6d 64 35 0a 20 20 20 20 7d 20 2d 72 65 73 75 md5. } -resu
0d80: 6c 74 20 7b 39 36 32 62 66 30 38 30 33 62 34 32 lt {962bf0803b42
0d90: 33 32 65 63 32 33 62 64 38 34 32 37 62 62 39 34 32ec23bd8427bb94
0da0: 65 61 30 39 7d 0a 0a 74 65 73 74 20 44 69 67 65 ea09}..test Dige
0db0: 73 74 5f 43 68 61 6e 5f 57 72 69 74 65 2d 33 2e st_Chan_Write-3.
0dc0: 33 20 7b 73 68 61 31 7d 20 2d 62 6f 64 79 20 7b 3 {sha1} -body {
0dd0: 0a 09 64 69 67 65 73 74 5f 77 72 69 74 65 5f 63 ..digest_write_c
0de0: 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 han ::tls::md $t
0df0: 65 73 74 5f 61 6c 74 5f 66 69 6c 65 20 24 74 65 est_alt_file $te
0e00: 73 74 5f 64 61 74 61 20 2d 64 69 67 65 73 74 20 st_data -digest
0e10: 73 68 61 31 0a 20 20 20 20 7d 20 2d 72 65 73 75 sha1. } -resu
0e20: 6c 74 20 7b 34 66 65 30 33 62 37 66 32 35 36 38 lt {4fe03b7f2568
0e30: 35 35 31 64 66 61 66 62 39 38 63 61 36 30 30 34 551dfafb98ca6004
0e40: 65 36 35 63 34 62 37 31 61 61 37 64 7d 0a 0a 74 e65c4b71aa7d}..t
0e50: 65 73 74 20 44 69 67 65 73 74 5f 43 68 61 6e 5f est Digest_Chan_
0e60: 57 72 69 74 65 2d 33 2e 34 20 7b 73 68 61 32 35 Write-3.4 {sha25
0e70: 36 7d 20 2d 62 6f 64 79 20 7b 0a 09 64 69 67 65 6} -body {..dige
0e80: 73 74 5f 77 72 69 74 65 5f 63 68 61 6e 20 3a 3a st_write_chan ::
0e90: 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74 5f 61 6c tls::md $test_al
0ea0: 74 5f 66 69 6c 65 20 24 74 65 73 74 5f 64 61 74 t_file $test_dat
0eb0: 61 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 a -digest sha256
0ec0: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
0ed0: 39 64 33 35 37 38 66 63 31 33 38 32 30 35 63 66 9d3578fc138205cf
0ee0: 30 65 65 34 62 34 63 65 66 33 35 66 65 31 30 31 0ee4b4cef35fe101
0ef0: 62 62 34 65 63 61 63 37 62 31 36 31 34 63 31 38 bb4ecac7b1614c18
0f00: 65 36 66 61 34 38 62 35 63 37 66 39 35 65 31 39 e6fa48b5c7f95e19
0f10: 7d 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f 43 }..test Digest_C
0f20: 68 61 6e 5f 57 72 69 74 65 2d 33 2e 35 20 7b 73 han_Write-3.5 {s
0f30: 68 61 35 31 32 7d 20 2d 62 6f 64 79 20 7b 0a 09 ha512} -body {..
0f40: 64 69 67 65 73 74 5f 77 72 69 74 65 5f 63 68 61 digest_write_cha
0f50: 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73 n ::tls::md $tes
0f60: 74 5f 61 6c 74 5f 66 69 6c 65 20 24 74 65 73 74 t_alt_file $test
0f70: 5f 64 61 74 61 20 2d 64 69 67 65 73 74 20 73 68 _data -digest sh
0f80: 61 35 31 32 0a 20 20 20 20 7d 20 2d 72 65 73 75 a512. } -resu
0f90: 6c 74 20 7b 64 31 37 38 65 37 35 39 64 63 35 39 lt {d178e759dc59
0fa0: 31 32 37 30 37 31 35 38 38 64 32 66 61 64 31 37 127071588d2fad17
0fb0: 33 63 30 36 32 33 38 64 38 37 65 38 30 30 61 36 3c06238d87e800a6
0fc0: 34 30 33 63 30 61 33 30 64 61 61 34 66 61 61 66 403c0a30daa4faaf
0fd0: 30 35 64 30 65 37 63 65 30 34 39 31 36 61 66 61 05d0e7ce04916afa
0fe0: 61 36 61 35 38 61 33 30 63 62 65 62 35 39 37 64 a6a58a30cbeb597d
0ff0: 61 63 62 30 31 63 36 32 66 39 66 62 39 64 38 39 acb01c62f9fb9d89
1000: 62 61 62 39 64 61 36 33 30 63 36 39 39 65 34 38 bab9da630c699e48
1010: 31 36 66 31 7d 0a 0a 74 65 73 74 20 44 69 67 65 16f1}..test Dige
1020: 73 74 5f 43 68 61 6e 5f 57 72 69 74 65 2d 33 2e st_Chan_Write-3.
1030: 36 20 7b 6d 64 35 20 62 69 6e 7d 20 2d 62 6f 64 6 {md5 bin} -bod
1040: 79 20 7b 0a 09 62 69 6e 61 72 79 20 65 6e 63 6f y {..binary enco
1050: 64 65 20 68 65 78 20 5b 64 69 67 65 73 74 5f 77 de hex [digest_w
1060: 72 69 74 65 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a rite_chan ::tls:
1070: 3a 6d 64 20 24 74 65 73 74 5f 61 6c 74 5f 66 69 :md $test_alt_fi
1080: 6c 65 20 24 74 65 73 74 5f 64 61 74 61 20 2d 62 le $test_data -b
1090: 69 6e 20 2d 64 69 67 65 73 74 20 6d 64 35 5d 0a in -digest md5].
10a0: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 39 } -result {9
10b0: 36 32 62 66 30 38 30 33 62 34 32 33 32 65 63 32 62bf0803b4232ec2
10c0: 33 62 64 38 34 32 37 62 62 39 34 65 61 30 39 7d 3bd8427bb94ea09}
10d0: 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f 43 68 ..test Digest_Ch
10e0: 61 6e 5f 57 72 69 74 65 2d 33 2e 37 20 7b 6d 64 an_Write-3.7 {md
10f0: 35 20 68 65 78 7d 20 2d 62 6f 64 79 20 7b 0a 09 5 hex} -body {..
1100: 64 69 67 65 73 74 5f 77 72 69 74 65 5f 63 68 61 digest_write_cha
1110: 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73 n ::tls::md $tes
1120: 74 5f 61 6c 74 5f 66 69 6c 65 20 24 74 65 73 74 t_alt_file $test
1130: 5f 64 61 74 61 20 2d 68 65 78 20 2d 64 69 67 65 _data -hex -dige
1140: 73 74 20 6d 64 35 0a 20 20 20 20 7d 20 2d 72 65 st md5. } -re
1150: 73 75 6c 74 20 7b 39 36 32 62 66 30 38 30 33 62 sult {962bf0803b
1160: 34 32 33 32 65 63 32 33 62 64 38 34 32 37 62 62 4232ec23bd8427bb
1170: 39 34 65 61 30 39 7d 0a 0a 23 20 54 65 73 74 20 94ea09}..# Test
1180: 4d 44 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 6f MD command for o
1190: 62 6a 65 63 74 20 63 6f 6d 6d 61 6e 64 0a 0a 0a bject command...
11a0: 74 65 73 74 20 44 69 67 65 73 74 5f 43 6f 6d 6d test Digest_Comm
11b0: 61 6e 64 2d 34 2e 31 20 7b 6d 64 34 7d 20 2d 62 and-4.1 {md4} -b
11c0: 6f 64 79 20 7b 0a 09 64 69 67 65 73 74 5f 61 63 ody {..digest_ac
11d0: 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64 cumulate $test_d
11e0: 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 ata ::tls::md -d
11f0: 69 67 65 73 74 20 6d 64 34 0a 20 20 20 20 7d 20 igest md4. }
1200: 2d 72 65 73 75 6c 74 20 7b 37 39 33 33 39 39 66 -result {793399f
1210: 37 39 32 65 63 61 32 37 35 32 63 36 61 66 33 32 792eca2752c6af32
1220: 33 34 62 61 37 30 38 35 38 7d 0a 0a 74 65 73 74 34ba70858}..test
1230: 20 44 69 67 65 73 74 5f 43 6f 6d 6d 61 6e 64 2d Digest_Command-
1240: 34 2e 32 20 7b 6d 64 35 7d 20 2d 62 6f 64 79 20 4.2 {md5} -body
1250: 7b 0a 09 64 69 67 65 73 74 5f 61 63 63 75 6d 75 {..digest_accumu
1260: 6c 61 74 65 20 24 74 65 73 74 5f 64 61 74 61 20 late $test_data
1270: 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 ::tls::md -diges
1280: 74 20 6d 64 35 0a 20 20 20 20 7d 20 2d 72 65 73 t md5. } -res
1290: 75 6c 74 20 7b 39 36 32 62 66 30 38 30 33 62 34 ult {962bf0803b4
12a0: 32 33 32 65 63 32 33 62 64 38 34 32 37 62 62 39 232ec23bd8427bb9
12b0: 34 65 61 30 39 7d 0a 0a 74 65 73 74 20 44 69 67 4ea09}..test Dig
12c0: 65 73 74 5f 43 6f 6d 6d 61 6e 64 2d 34 2e 33 20 est_Command-4.3
12d0: 7b 73 68 61 31 7d 20 2d 62 6f 64 79 20 7b 0a 09 {sha1} -body {..
12e0: 64 69 67 65 73 74 5f 61 63 63 75 6d 75 6c 61 74 digest_accumulat
12f0: 65 20 24 74 65 73 74 5f 64 61 74 61 20 3a 3a 74 e $test_data ::t
1300: 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 ls::md -digest s
1310: 68 61 31 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c ha1. } -resul
1320: 74 20 7b 34 66 65 30 33 62 37 66 32 35 36 38 35 t {4fe03b7f25685
1330: 35 31 64 66 61 66 62 39 38 63 61 36 30 30 34 65 51dfafb98ca6004e
1340: 36 35 63 34 62 37 31 61 61 37 64 7d 0a 0a 74 65 65c4b71aa7d}..te
1350: 73 74 20 44 69 67 65 73 74 5f 43 6f 6d 6d 61 6e st Digest_Comman
1360: 64 2d 34 2e 34 20 7b 73 68 61 32 35 36 7d 20 2d d-4.4 {sha256} -
1370: 62 6f 64 79 20 7b 0a 09 64 69 67 65 73 74 5f 61 body {..digest_a
1380: 63 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f ccumulate $test_
1390: 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d data ::tls::md -
13a0: 64 69 67 65 73 74 20 73 68 61 32 35 36 0a 20 20 digest sha256.
13b0: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 39 64 33 } -result {9d3
13c0: 35 37 38 66 63 31 33 38 32 30 35 63 66 30 65 65 578fc138205cf0ee
13d0: 34 62 34 63 65 66 33 35 66 65 31 30 31 62 62 34 4b4cef35fe101bb4
13e0: 65 63 61 63 37 62 31 36 31 34 63 31 38 65 36 66 ecac7b1614c18e6f
13f0: 61 34 38 62 35 63 37 66 39 35 65 31 39 7d 0a 0a a48b5c7f95e19}..
1400: 74 65 73 74 20 44 69 67 65 73 74 5f 43 6f 6d 6d test Digest_Comm
1410: 61 6e 64 2d 34 2e 35 20 7b 73 68 61 35 31 32 7d and-4.5 {sha512}
1420: 20 2d 62 6f 64 79 20 7b 0a 09 64 69 67 65 73 74 -body {..digest
1430: 5f 61 63 63 75 6d 75 6c 61 74 65 20 24 74 65 73 _accumulate $tes
1440: 74 5f 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 t_data ::tls::md
1450: 20 2d 64 69 67 65 73 74 20 73 68 61 35 31 32 0a -digest sha512.
1460: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 64 } -result {d
1470: 31 37 38 65 37 35 39 64 63 35 39 31 32 37 30 37 178e759dc5912707
1480: 31 35 38 38 64 32 66 61 64 31 37 33 63 30 36 32 1588d2fad173c062
1490: 33 38 64 38 37 65 38 30 30 61 36 34 30 33 63 30 38d87e800a6403c0
14a0: 61 33 30 64 61 61 34 66 61 61 66 30 35 64 30 65 a30daa4faaf05d0e
14b0: 37 63 65 30 34 39 31 36 61 66 61 61 36 61 35 38 7ce04916afaa6a58
14c0: 61 33 30 63 62 65 62 35 39 37 64 61 63 62 30 31 a30cbeb597dacb01
14d0: 63 36 32 66 39 66 62 39 64 38 39 62 61 62 39 64 c62f9fb9d89bab9d
14e0: 61 36 33 30 63 36 39 39 65 34 38 31 36 66 31 7d a630c699e4816f1}
14f0: 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f 43 6f ..test Digest_Co
1500: 6d 6d 61 6e 64 2d 34 2e 36 20 7b 6d 64 35 20 62 mmand-4.6 {md5 b
1510: 69 6e 7d 20 2d 62 6f 64 79 20 7b 0a 09 62 69 6e in} -body {..bin
1520: 61 72 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b ary encode hex [
1530: 64 69 67 65 73 74 5f 61 63 63 75 6d 75 6c 61 74 digest_accumulat
1540: 65 20 24 74 65 73 74 5f 64 61 74 61 20 3a 3a 74 e $test_data ::t
1550: 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d ls::md -digest m
1560: 64 35 20 2d 62 69 6e 5d 0a 20 20 20 20 7d 20 2d d5 -bin]. } -
1570: 72 65 73 75 6c 74 20 7b 39 36 32 62 66 30 38 30 result {962bf080
1580: 33 62 34 32 33 32 65 63 32 33 62 64 38 34 32 37 3b4232ec23bd8427
1590: 62 62 39 34 65 61 30 39 7d 0a 0a 74 65 73 74 20 bb94ea09}..test
15a0: 44 69 67 65 73 74 5f 43 6f 6d 6d 61 6e 64 2d 34 Digest_Command-4
15b0: 2e 37 20 7b 6d 64 35 20 68 65 78 7d 20 2d 62 6f .7 {md5 hex} -bo
15c0: 64 79 20 7b 0a 09 64 69 67 65 73 74 5f 61 63 63 dy {..digest_acc
15d0: 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64 61 umulate $test_da
15e0: 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 ta ::tls::md -di
15f0: 67 65 73 74 20 6d 64 35 20 2d 68 65 78 0a 20 20 gest md5 -hex.
1600: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 39 36 32 } -result {962
1610: 62 66 30 38 30 33 62 34 32 33 32 65 63 32 33 62 bf0803b4232ec23b
1620: 64 38 34 32 37 62 62 39 34 65 61 30 39 7d 0a 0a d8427bb94ea09}..
1630: 23 20 54 65 73 74 20 4d 44 20 63 6f 6d 6d 61 6e # Test MD comman
1640: 64 20 66 6f 72 20 64 61 74 61 20 73 68 6f 72 74 d for data short
1650: 63 75 74 0a 0a 0a 74 65 73 74 20 44 69 67 65 73 cut...test Diges
1660: 74 5f 44 61 74 61 2d 35 2e 31 20 7b 6d 64 34 7d t_Data-5.1 {md4}
1670: 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a -body {..::tls:
1680: 3a 6d 64 20 6d 64 34 20 24 74 65 73 74 5f 64 61 :md md4 $test_da
1690: 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 ta. } -result
16a0: 20 7b 37 39 33 33 39 39 66 37 39 32 65 63 61 32 {793399f792eca2
16b0: 37 35 32 63 36 61 66 33 32 33 34 62 61 37 30 38 752c6af3234ba708
16c0: 35 38 7d 0a 0a 74 65 73 74 20 44 69 67 65 73 74 58}..test Digest
16d0: 5f 44 61 74 61 2d 35 2e 32 20 7b 6d 64 35 7d 20 _Data-5.2 {md5}
16e0: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
16f0: 6d 64 20 6d 64 35 20 24 74 65 73 74 5f 64 61 74 md md5 $test_dat
1700: 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 a. } -result
1710: 7b 39 36 32 62 66 30 38 30 33 62 34 32 33 32 65 {962bf0803b4232e
1720: 63 32 33 62 64 38 34 32 37 62 62 39 34 65 61 30 c23bd8427bb94ea0
1730: 39 7d 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f 9}..test Digest_
1740: 44 61 74 61 2d 35 2e 33 20 7b 73 68 61 31 7d 20 Data-5.3 {sha1}
1750: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
1760: 6d 64 20 73 68 61 31 20 24 74 65 73 74 5f 64 61 md sha1 $test_da
1770: 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 ta. } -result
1780: 20 7b 34 66 65 30 33 62 37 66 32 35 36 38 35 35 {4fe03b7f256855
1790: 31 64 66 61 66 62 39 38 63 61 36 30 30 34 65 36 1dfafb98ca6004e6
17a0: 35 63 34 62 37 31 61 61 37 64 7d 0a 0a 74 65 73 5c4b71aa7d}..tes
17b0: 74 20 44 69 67 65 73 74 5f 44 61 74 61 2d 35 2e t Digest_Data-5.
17c0: 34 20 7b 73 68 61 32 35 36 7d 20 2d 62 6f 64 79 4 {sha256} -body
17d0: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 73 68 {..::tls::md sh
17e0: 61 32 35 36 20 24 74 65 73 74 5f 64 61 74 61 0a a256 $test_data.
17f0: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 39 } -result {9
1800: 64 33 35 37 38 66 63 31 33 38 32 30 35 63 66 30 d3578fc138205cf0
1810: 65 65 34 62 34 63 65 66 33 35 66 65 31 30 31 62 ee4b4cef35fe101b
1820: 62 34 65 63 61 63 37 62 31 36 31 34 63 31 38 65 b4ecac7b1614c18e
1830: 36 66 61 34 38 62 35 63 37 66 39 35 65 31 39 7d 6fa48b5c7f95e19}
1840: 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f 44 61 ..test Digest_Da
1850: 74 61 2d 35 2e 35 20 7b 73 68 61 35 31 32 7d 20 ta-5.5 {sha512}
1860: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
1870: 6d 64 20 73 68 61 35 31 32 20 24 74 65 73 74 5f md sha512 $test_
1880: 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 data. } -resu
1890: 6c 74 20 7b 64 31 37 38 65 37 35 39 64 63 35 39 lt {d178e759dc59
18a0: 31 32 37 30 37 31 35 38 38 64 32 66 61 64 31 37 127071588d2fad17
18b0: 33 63 30 36 32 33 38 64 38 37 65 38 30 30 61 36 3c06238d87e800a6
18c0: 34 30 33 63 30 61 33 30 64 61 61 34 66 61 61 66 403c0a30daa4faaf
18d0: 30 35 64 30 65 37 63 65 30 34 39 31 36 61 66 61 05d0e7ce04916afa
18e0: 61 36 61 35 38 61 33 30 63 62 65 62 35 39 37 64 a6a58a30cbeb597d
18f0: 61 63 62 30 31 63 36 32 66 39 66 62 39 64 38 39 acb01c62f9fb9d89
1900: 62 61 62 39 64 61 36 33 30 63 36 39 39 65 34 38 bab9da630c699e48
1910: 31 36 66 31 7d 0a 0a 23 20 54 65 73 74 20 4d 44 16f1}..# Test MD
1920: 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 64 61 74 command for dat
1930: 61 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f 44 a..test Digest_D
1940: 61 74 61 2d 35 2e 36 20 7b 6d 64 34 7d 20 2d 62 ata-5.6 {md4} -b
1950: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 ody {..::tls::md
1960: 20 2d 64 69 67 65 73 74 20 6d 64 34 20 2d 64 61 -digest md4 -da
1970: 74 61 20 24 74 65 73 74 5f 64 61 74 61 0a 20 20 ta $test_data.
1980: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 37 39 33 } -result {793
1990: 33 39 39 66 37 39 32 65 63 61 32 37 35 32 63 36 399f792eca2752c6
19a0: 61 66 33 32 33 34 62 61 37 30 38 35 38 7d 0a 0a af3234ba70858}..
19b0: 74 65 73 74 20 44 69 67 65 73 74 5f 44 61 74 61 test Digest_Data
19c0: 2d 35 2e 37 20 7b 6d 64 35 7d 20 2d 62 6f 64 79 -5.7 {md5} -body
19d0: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 {..::tls::md -d
19e0: 69 67 65 73 74 20 6d 64 35 20 2d 64 61 74 61 20 igest md5 -data
19f0: 24 74 65 73 74 5f 64 61 74 61 0a 20 20 20 20 7d $test_data. }
1a00: 20 2d 72 65 73 75 6c 74 20 7b 39 36 32 62 66 30 -result {962bf0
1a10: 38 30 33 62 34 32 33 32 65 63 32 33 62 64 38 34 803b4232ec23bd84
1a20: 32 37 62 62 39 34 65 61 30 39 7d 0a 0a 74 65 73 27bb94ea09}..tes
1a30: 74 20 44 69 67 65 73 74 5f 44 61 74 61 2d 35 2e t Digest_Data-5.
1a40: 38 20 7b 73 68 61 31 7d 20 2d 62 6f 64 79 20 7b 8 {sha1} -body {
1a50: 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 ..::tls::md -dig
1a60: 65 73 74 20 73 68 61 31 20 2d 64 61 74 61 20 24 est sha1 -data $
1a70: 74 65 73 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 test_data. }
1a80: 2d 72 65 73 75 6c 74 20 7b 34 66 65 30 33 62 37 -result {4fe03b7
1a90: 66 32 35 36 38 35 35 31 64 66 61 66 62 39 38 63 f2568551dfafb98c
1aa0: 61 36 30 30 34 65 36 35 63 34 62 37 31 61 61 37 a6004e65c4b71aa7
1ab0: 64 7d 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f d}..test Digest_
1ac0: 44 61 74 61 2d 35 2e 39 20 7b 73 68 61 32 35 36 Data-5.9 {sha256
1ad0: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
1ae0: 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 ::md -digest sha
1af0: 32 35 36 20 2d 64 61 74 61 20 24 74 65 73 74 5f 256 -data $test_
1b00: 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 data. } -resu
1b10: 6c 74 20 7b 39 64 33 35 37 38 66 63 31 33 38 32 lt {9d3578fc1382
1b20: 30 35 63 66 30 65 65 34 62 34 63 65 66 33 35 66 05cf0ee4b4cef35f
1b30: 65 31 30 31 62 62 34 65 63 61 63 37 62 31 36 31 e101bb4ecac7b161
1b40: 34 63 31 38 65 36 66 61 34 38 62 35 63 37 66 39 4c18e6fa48b5c7f9
1b50: 35 65 31 39 7d 0a 0a 74 65 73 74 20 44 69 67 65 5e19}..test Dige
1b60: 73 74 5f 44 61 74 61 2d 35 2e 31 30 20 7b 73 68 st_Data-5.10 {sh
1b70: 61 35 31 32 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a a512} -body {..:
1b80: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 :tls::md -digest
1b90: 20 73 68 61 35 31 32 20 2d 64 61 74 61 20 24 74 sha512 -data $t
1ba0: 65 73 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d est_data. } -
1bb0: 72 65 73 75 6c 74 20 7b 64 31 37 38 65 37 35 39 result {d178e759
1bc0: 64 63 35 39 31 32 37 30 37 31 35 38 38 64 32 66 dc59127071588d2f
1bd0: 61 64 31 37 33 63 30 36 32 33 38 64 38 37 65 38 ad173c06238d87e8
1be0: 30 30 61 36 34 30 33 63 30 61 33 30 64 61 61 34 00a6403c0a30daa4
1bf0: 66 61 61 66 30 35 64 30 65 37 63 65 30 34 39 31 faaf05d0e7ce0491
1c00: 36 61 66 61 61 36 61 35 38 61 33 30 63 62 65 62 6afaa6a58a30cbeb
1c10: 35 39 37 64 61 63 62 30 31 63 36 32 66 39 66 62 597dacb01c62f9fb
1c20: 39 64 38 39 62 61 62 39 64 61 36 33 30 63 36 39 9d89bab9da630c69
1c30: 39 65 34 38 31 36 66 31 7d 0a 0a 74 65 73 74 20 9e4816f1}..test
1c40: 44 69 67 65 73 74 5f 44 61 74 61 2d 35 2e 31 31 Digest_Data-5.11
1c50: 20 7b 6d 64 35 20 62 69 6e 7d 20 2d 62 6f 64 79 {md5 bin} -body
1c60: 20 7b 0a 09 62 69 6e 61 72 79 20 65 6e 63 6f 64 {..binary encod
1c70: 65 20 68 65 78 20 5b 3a 3a 74 6c 73 3a 3a 6d 64 e hex [::tls::md
1c80: 20 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 64 61 -digest md5 -da
1c90: 74 61 20 24 74 65 73 74 5f 64 61 74 61 20 2d 62 ta $test_data -b
1ca0: 69 6e 5d 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c in]. } -resul
1cb0: 74 20 7b 39 36 32 62 66 30 38 30 33 62 34 32 33 t {962bf0803b423
1cc0: 32 65 63 32 33 62 64 38 34 32 37 62 62 39 34 65 2ec23bd8427bb94e
1cd0: 61 30 39 7d 0a 0a 74 65 73 74 20 44 69 67 65 73 a09}..test Diges
1ce0: 74 5f 44 61 74 61 2d 35 2e 31 32 20 7b 6d 64 35 t_Data-5.12 {md5
1cf0: 20 68 65 78 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a hex} -body {..:
1d00: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 :tls::md -digest
1d10: 20 6d 64 35 20 2d 64 61 74 61 20 24 74 65 73 74 md5 -data $test
1d20: 5f 64 61 74 61 20 2d 68 65 78 0a 20 20 20 20 7d _data -hex. }
1d30: 20 2d 72 65 73 75 6c 74 20 7b 39 36 32 62 66 30 -result {962bf0
1d40: 38 30 33 62 34 32 33 32 65 63 32 33 62 64 38 34 803b4232ec23bd84
1d50: 32 37 62 62 39 34 65 61 30 39 7d 0a 0a 23 20 54 27bb94ea09}..# T
1d60: 65 73 74 20 4d 44 20 63 6f 6d 6d 61 6e 64 20 66 est MD command f
1d70: 6f 72 20 66 69 6c 65 0a 0a 0a 74 65 73 74 20 44 or file...test D
1d80: 69 67 65 73 74 5f 46 69 6c 65 2d 36 2e 31 20 7b igest_File-6.1 {
1d90: 6d 64 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a md4} -body {..::
1da0: 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 tls::md -digest
1db0: 6d 64 34 20 2d 66 69 6c 65 20 24 74 65 73 74 5f md4 -file $test_
1dc0: 66 69 6c 65 0a 20 20 20 20 7d 20 2d 72 65 73 75 file. } -resu
1dd0: 6c 74 20 7b 37 39 33 33 39 39 66 37 39 32 65 63 lt {793399f792ec
1de0: 61 32 37 35 32 63 36 61 66 33 32 33 34 62 61 37 a2752c6af3234ba7
1df0: 30 38 35 38 7d 0a 0a 74 65 73 74 20 44 69 67 65 0858}..test Dige
1e00: 73 74 5f 46 69 6c 65 2d 36 2e 32 20 7b 6d 64 35 st_File-6.2 {md5
1e10: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
1e20: 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35 ::md -digest md5
1e30: 20 2d 66 69 6c 65 20 24 74 65 73 74 5f 66 69 6c -file $test_fil
1e40: 65 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 e. } -result
1e50: 7b 39 36 32 62 66 30 38 30 33 62 34 32 33 32 65 {962bf0803b4232e
1e60: 63 32 33 62 64 38 34 32 37 62 62 39 34 65 61 30 c23bd8427bb94ea0
1e70: 39 7d 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f 9}..test Digest_
1e80: 46 69 6c 65 2d 36 2e 33 20 7b 73 68 61 31 7d 20 File-6.3 {sha1}
1e90: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
1ea0: 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 31 20 md -digest sha1
1eb0: 2d 66 69 6c 65 20 24 74 65 73 74 5f 66 69 6c 65 -file $test_file
1ec0: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
1ed0: 34 66 65 30 33 62 37 66 32 35 36 38 35 35 31 64 4fe03b7f2568551d
1ee0: 66 61 66 62 39 38 63 61 36 30 30 34 65 36 35 63 fafb98ca6004e65c
1ef0: 34 62 37 31 61 61 37 64 7d 0a 0a 74 65 73 74 20 4b71aa7d}..test
1f00: 44 69 67 65 73 74 5f 46 69 6c 65 2d 36 2e 34 20 Digest_File-6.4
1f10: 7b 73 68 61 32 35 36 7d 20 2d 62 6f 64 79 20 7b {sha256} -body {
1f20: 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 ..::tls::md -dig
1f30: 65 73 74 20 73 68 61 32 35 36 20 2d 66 69 6c 65 est sha256 -file
1f40: 20 24 74 65 73 74 5f 66 69 6c 65 0a 20 20 20 20 $test_file.
1f50: 7d 20 2d 72 65 73 75 6c 74 20 7b 39 64 33 35 37 } -result {9d357
1f60: 38 66 63 31 33 38 32 30 35 63 66 30 65 65 34 62 8fc138205cf0ee4b
1f70: 34 63 65 66 33 35 66 65 31 30 31 62 62 34 65 63 4cef35fe101bb4ec
1f80: 61 63 37 62 31 36 31 34 63 31 38 65 36 66 61 34 ac7b1614c18e6fa4
1f90: 38 62 35 63 37 66 39 35 65 31 39 7d 0a 0a 74 65 8b5c7f95e19}..te
1fa0: 73 74 20 44 69 67 65 73 74 5f 46 69 6c 65 2d 36 st Digest_File-6
1fb0: 2e 35 20 7b 73 68 61 35 31 32 7d 20 2d 62 6f 64 .5 {sha512} -bod
1fc0: 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d y {..::tls::md -
1fd0: 64 69 67 65 73 74 20 73 68 61 35 31 32 20 2d 66 digest sha512 -f
1fe0: 69 6c 65 20 24 74 65 73 74 5f 66 69 6c 65 0a 20 ile $test_file.
1ff0: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 64 31 } -result {d1
2000: 37 38 65 37 35 39 64 63 35 39 31 32 37 30 37 31 78e759dc59127071
2010: 35 38 38 64 32 66 61 64 31 37 33 63 30 36 32 33 588d2fad173c0623
2020: 38 64 38 37 65 38 30 30 61 36 34 30 33 63 30 61 8d87e800a6403c0a
2030: 33 30 64 61 61 34 66 61 61 66 30 35 64 30 65 37 30daa4faaf05d0e7
2040: 63 65 30 34 39 31 36 61 66 61 61 36 61 35 38 61 ce04916afaa6a58a
2050: 33 30 63 62 65 62 35 39 37 64 61 63 62 30 31 63 30cbeb597dacb01c
2060: 36 32 66 39 66 62 39 64 38 39 62 61 62 39 64 61 62f9fb9d89bab9da
2070: 36 33 30 63 36 39 39 65 34 38 31 36 66 31 7d 0a 630c699e4816f1}.
2080: 0a 74 65 73 74 20 44 69 67 65 73 74 5f 46 69 6c .test Digest_Fil
2090: 65 2d 36 2e 36 20 7b 6d 64 35 20 62 69 6e 7d 20 e-6.6 {md5 bin}
20a0: 2d 62 6f 64 79 20 7b 0a 09 62 69 6e 61 72 79 20 -body {..binary
20b0: 65 6e 63 6f 64 65 20 68 65 78 20 5b 3a 3a 74 6c encode hex [::tl
20c0: 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 s::md -digest md
20d0: 35 20 2d 66 69 6c 65 20 24 74 65 73 74 5f 66 69 5 -file $test_fi
20e0: 6c 65 20 2d 62 69 6e 5d 0a 20 20 20 20 7d 20 2d le -bin]. } -
20f0: 72 65 73 75 6c 74 20 7b 39 36 32 62 66 30 38 30 result {962bf080
2100: 33 62 34 32 33 32 65 63 32 33 62 64 38 34 32 37 3b4232ec23bd8427
2110: 62 62 39 34 65 61 30 39 7d 0a 0a 74 65 73 74 20 bb94ea09}..test
2120: 44 69 67 65 73 74 5f 46 69 6c 65 2d 36 2e 37 20 Digest_File-6.7
2130: 7b 6d 64 35 20 68 65 78 7d 20 2d 62 6f 64 79 20 {md5 hex} -body
2140: 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 {..::tls::md -di
2150: 67 65 73 74 20 6d 64 35 20 2d 66 69 6c 65 20 24 gest md5 -file $
2160: 74 65 73 74 5f 66 69 6c 65 20 2d 68 65 78 0a 20 test_file -hex.
2170: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 39 36 } -result {96
2180: 32 62 66 30 38 30 33 62 34 32 33 32 65 63 32 33 2bf0803b4232ec23
2190: 62 64 38 34 32 37 62 62 39 34 65 61 30 39 7d 0a bd8427bb94ea09}.
21a0: 0a 23 20 54 65 73 74 20 48 4d 41 43 20 63 6f 6d .# Test HMAC com
21b0: 6d 61 6e 64 0a 0a 0a 74 65 73 74 20 48 4d 41 43 mand...test HMAC
21c0: 2d 37 2e 31 20 7b 64 61 74 61 7d 20 2d 62 6f 64 -7.1 {data} -bod
21d0: 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 y {..::tls::hmac
21e0: 20 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 6b 65 -digest md5 -ke
21f0: 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 y $test_key -dat
2200: 61 20 24 74 65 73 74 5f 64 61 74 61 0a 20 20 20 a $test_data.
2210: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 66 39 38 33 } -result {f983
2220: 32 37 65 66 33 65 32 30 61 62 36 64 33 38 38 66 27ef3e20ab6d388f
2230: 36 37 36 63 36 61 37 39 64 39 33 64 7d 0a 0a 74 676c6a79d93d}..t
2240: 65 73 74 20 48 4d 41 43 2d 37 2e 32 20 7b 66 69 est HMAC-7.2 {fi
2250: 6c 65 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 le} -body {..::t
2260: 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 ls::hmac -digest
2270: 20 6d 64 35 20 2d 6b 65 79 20 24 74 65 73 74 5f md5 -key $test_
2280: 6b 65 79 20 2d 66 69 6c 65 20 24 74 65 73 74 5f key -file $test_
2290: 66 69 6c 65 0a 20 20 20 20 7d 20 2d 72 65 73 75 file. } -resu
22a0: 6c 74 20 7b 66 39 38 33 32 37 65 66 33 65 32 30 lt {f98327ef3e20
22b0: 61 62 36 64 33 38 38 66 36 37 36 63 36 61 37 39 ab6d388f676c6a79
22c0: 64 39 33 64 7d 0a 0a 74 65 73 74 20 48 4d 41 43 d93d}..test HMAC
22d0: 2d 37 2e 33 20 7b 63 68 61 6e 6e 65 6c 7d 20 2d -7.3 {channel} -
22e0: 62 6f 64 79 20 7b 0a 09 64 69 67 65 73 74 5f 72 body {..digest_r
22f0: 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a ead_chan ::tls::
2300: 68 6d 61 63 20 24 74 65 73 74 5f 66 69 6c 65 20 hmac $test_file
2310: 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 6b 65 79 -digest md5 -key
2320: 20 24 74 65 73 74 5f 6b 65 79 0a 20 20 20 20 7d $test_key. }
2330: 20 2d 72 65 73 75 6c 74 20 7b 66 39 38 33 32 37 -result {f98327
2340: 65 66 33 65 32 30 61 62 36 64 33 38 38 66 36 37 ef3e20ab6d388f67
2350: 36 63 36 61 37 39 64 39 33 64 7d 0a 0a 74 65 73 6c6a79d93d}..tes
2360: 74 20 48 4d 41 43 2d 37 2e 34 20 7b 63 6f 6d 6d t HMAC-7.4 {comm
2370: 61 6e 64 7d 20 2d 62 6f 64 79 20 7b 0a 09 64 69 and} -body {..di
2380: 67 65 73 74 5f 61 63 63 75 6d 75 6c 61 74 65 20 gest_accumulate
2390: 24 74 65 73 74 5f 64 61 74 61 20 3a 3a 74 6c 73 $test_data ::tls
23a0: 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 6d ::hmac -digest m
23b0: 64 35 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 d5 -key $test_ke
23c0: 79 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 y. } -result
23d0: 7b 66 39 38 33 32 37 65 66 33 65 32 30 61 62 36 {f98327ef3e20ab6
23e0: 64 33 38 38 66 36 37 36 63 36 61 37 39 64 39 33 d388f676c6a79d93
23f0: 64 7d 0a 0a 74 65 73 74 20 48 4d 41 43 2d 37 2e d}..test HMAC-7.
2400: 35 20 7b 64 61 74 61 20 62 69 6e 7d 20 2d 62 6f 5 {data bin} -bo
2410: 64 79 20 7b 0a 09 62 69 6e 61 72 79 20 65 6e 63 dy {..binary enc
2420: 6f 64 65 20 68 65 78 20 5b 3a 3a 74 6c 73 3a 3a ode hex [::tls::
2430: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 6d 64 35 hmac -digest md5
2440: 20 2d 62 69 6e 20 2d 6b 65 79 20 24 74 65 73 74 -bin -key $test
2450: 5f 6b 65 79 20 2d 64 61 74 61 20 24 74 65 73 74 _key -data $test
2460: 5f 64 61 74 61 5d 0a 20 20 20 20 7d 20 2d 72 65 _data]. } -re
2470: 73 75 6c 74 20 7b 66 39 38 33 32 37 65 66 33 65 sult {f98327ef3e
2480: 32 30 61 62 36 64 33 38 38 66 36 37 36 63 36 61 20ab6d388f676c6a
2490: 37 39 64 39 33 64 7d 0a 0a 23 20 54 65 73 74 20 79d93d}..# Test
24a0: 44 69 67 65 73 74 20 48 4d 41 43 0a 0a 0a 74 65 Digest HMAC...te
24b0: 73 74 20 44 69 67 65 73 74 5f 48 4d 41 43 2d 38 st Digest_HMAC-8
24c0: 2e 31 20 7b 64 61 74 61 7d 20 2d 62 6f 64 79 20 .1 {data} -body
24d0: 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 {..::tls::md -di
24e0: 67 65 73 74 20 6d 64 35 20 2d 6b 65 79 20 24 74 gest md5 -key $t
24f0: 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 20 24 74 est_key -data $t
2500: 65 73 74 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d est_data. } -
2510: 72 65 73 75 6c 74 20 7b 66 39 38 33 32 37 65 66 result {f98327ef
2520: 33 65 32 30 61 62 36 64 33 38 38 66 36 37 36 63 3e20ab6d388f676c
2530: 36 61 37 39 64 39 33 64 7d 0a 0a 74 65 73 74 20 6a79d93d}..test
2540: 44 69 67 65 73 74 5f 48 4d 41 43 2d 38 2e 32 20 Digest_HMAC-8.2
2550: 7b 66 69 6c 65 7d 20 2d 62 6f 64 79 20 7b 0a 09 {file} -body {..
2560: 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 ::tls::md -diges
2570: 74 20 6d 64 35 20 2d 6b 65 79 20 24 74 65 73 74 t md5 -key $test
2580: 5f 6b 65 79 20 2d 66 69 6c 65 20 24 74 65 73 74 _key -file $test
2590: 5f 66 69 6c 65 0a 20 20 20 20 7d 20 2d 72 65 73 _file. } -res
25a0: 75 6c 74 20 7b 66 39 38 33 32 37 65 66 33 65 32 ult {f98327ef3e2
25b0: 30 61 62 36 64 33 38 38 66 36 37 36 63 36 61 37 0ab6d388f676c6a7
25c0: 39 64 39 33 64 7d 0a 0a 74 65 73 74 20 44 69 67 9d93d}..test Dig
25d0: 65 73 74 5f 48 4d 41 43 2d 38 2e 33 20 7b 63 68 est_HMAC-8.3 {ch
25e0: 61 6e 6e 65 6c 7d 20 2d 62 6f 64 79 20 7b 0a 09 annel} -body {..
25f0: 64 69 67 65 73 74 5f 72 65 61 64 5f 63 68 61 6e digest_read_chan
2600: 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74 ::tls::md $test
2610: 5f 66 69 6c 65 20 2d 64 69 67 65 73 74 20 6d 64 _file -digest md
2620: 35 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 5 -key $test_key
2630: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
2640: 66 39 38 33 32 37 65 66 33 65 32 30 61 62 36 64 f98327ef3e20ab6d
2650: 33 38 38 66 36 37 36 63 36 61 37 39 64 39 33 64 388f676c6a79d93d
2660: 7d 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f 48 }..test Digest_H
2670: 4d 41 43 2d 38 2e 34 20 7b 63 6f 6d 6d 61 6e 64 MAC-8.4 {command
2680: 7d 20 2d 62 6f 64 79 20 7b 0a 09 64 69 67 65 73 } -body {..diges
2690: 74 5f 61 63 63 75 6d 75 6c 61 74 65 20 24 74 65 t_accumulate $te
26a0: 73 74 5f 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d st_data ::tls::m
26b0: 64 20 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 6b d -digest md5 -k
26c0: 65 79 20 24 74 65 73 74 5f 6b 65 79 0a 20 20 20 ey $test_key.
26d0: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 66 39 38 33 } -result {f983
26e0: 32 37 65 66 33 65 32 30 61 62 36 64 33 38 38 66 27ef3e20ab6d388f
26f0: 36 37 36 63 36 61 37 39 64 39 33 64 7d 0a 0a 74 676c6a79d93d}..t
2700: 65 73 74 20 44 69 67 65 73 74 5f 48 4d 41 43 2d est Digest_HMAC-
2710: 38 2e 35 20 7b 64 61 74 61 20 62 69 6e 7d 20 2d 8.5 {data bin} -
2720: 62 6f 64 79 20 7b 0a 09 62 69 6e 61 72 79 20 65 body {..binary e
2730: 6e 63 6f 64 65 20 68 65 78 20 5b 3a 3a 74 6c 73 ncode hex [::tls
2740: 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35 ::md -digest md5
2750: 20 2d 62 69 6e 20 2d 6b 65 79 20 24 74 65 73 74 -bin -key $test
2760: 5f 6b 65 79 20 2d 64 61 74 61 20 24 74 65 73 74 _key -data $test
2770: 5f 64 61 74 61 5d 0a 20 20 20 20 7d 20 2d 72 65 _data]. } -re
2780: 73 75 6c 74 20 7b 66 39 38 33 32 37 65 66 33 65 sult {f98327ef3e
2790: 32 30 61 62 36 64 33 38 38 66 36 37 36 63 36 61 20ab6d388f676c6a
27a0: 37 39 64 39 33 64 7d 0a 0a 23 20 54 65 73 74 20 79d93d}..# Test
27b0: 43 4d 41 43 20 63 6f 6d 6d 61 6e 64 0a 73 65 74 CMAC command.set
27c0: 20 74 65 73 74 5f 63 69 70 68 65 72 20 22 61 65 test_cipher "ae
27d0: 73 2d 31 32 38 2d 63 62 63 22 0a 73 65 74 20 74 s-128-cbc".set t
27e0: 65 73 74 5f 6b 65 79 20 22 45 78 61 6d 70 6c 65 est_key "Example
27f0: 20 6b 65 79 20 31 32 33 34 22 0a 0a 0a 74 65 73 key 1234"...tes
2800: 74 20 43 4d 41 43 2d 39 2e 31 20 7b 64 61 74 61 t CMAC-9.1 {data
2810: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
2820: 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 20 24 ::cmac -cipher $
2830: 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 test_cipher -key
2840: 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 $test_key -data
2850: 20 24 74 65 73 74 5f 64 61 74 61 0a 20 20 20 20 $test_data.
2860: 7d 20 2d 72 65 73 75 6c 74 20 7b 62 61 66 35 63 } -result {baf5c
2870: 32 30 66 39 39 37 33 65 32 64 36 30 36 62 31 34 20f9973e2d606b14
2880: 63 37 65 66 64 66 65 35 32 66 61 7d 0a 0a 74 65 c7efdfe52fa}..te
2890: 73 74 20 43 4d 41 43 2d 39 2e 32 20 7b 66 69 6c st CMAC-9.2 {fil
28a0: 65 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c e} -body {..::tl
28b0: 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 20 s::cmac -cipher
28c0: 24 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 $test_cipher -ke
28d0: 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 66 69 6c y $test_key -fil
28e0: 65 20 24 74 65 73 74 5f 66 69 6c 65 0a 20 20 20 e $test_file.
28f0: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 62 61 66 35 } -result {baf5
2900: 63 32 30 66 39 39 37 33 65 32 64 36 30 36 62 31 c20f9973e2d606b1
2910: 34 63 37 65 66 64 66 65 35 32 66 61 7d 0a 0a 74 4c7efdfe52fa}..t
2920: 65 73 74 20 43 4d 41 43 2d 39 2e 33 20 7b 63 68 est CMAC-9.3 {ch
2930: 61 6e 6e 65 6c 7d 20 2d 62 6f 64 79 20 7b 0a 09 annel} -body {..
2940: 64 69 67 65 73 74 5f 72 65 61 64 5f 63 68 61 6e digest_read_chan
2950: 20 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 24 74 65 ::tls::cmac $te
2960: 73 74 5f 66 69 6c 65 20 2d 63 69 70 68 65 72 20 st_file -cipher
2970: 24 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 $test_cipher -ke
2980: 79 20 24 74 65 73 74 5f 6b 65 79 0a 20 20 20 20 y $test_key.
2990: 7d 20 2d 72 65 73 75 6c 74 20 7b 62 61 66 35 63 } -result {baf5c
29a0: 32 30 66 39 39 37 33 65 32 64 36 30 36 62 31 34 20f9973e2d606b14
29b0: 63 37 65 66 64 66 65 35 32 66 61 7d 0a 0a 74 65 c7efdfe52fa}..te
29c0: 73 74 20 43 4d 41 43 2d 39 2e 34 20 7b 63 6f 6d st CMAC-9.4 {com
29d0: 6d 61 6e 64 7d 20 2d 62 6f 64 79 20 7b 0a 09 64 mand} -body {..d
29e0: 69 67 65 73 74 5f 61 63 63 75 6d 75 6c 61 74 65 igest_accumulate
29f0: 20 24 74 65 73 74 5f 64 61 74 61 20 3a 3a 74 6c $test_data ::tl
2a00: 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 20 s::cmac -cipher
2a10: 24 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 $test_cipher -ke
2a20: 79 20 24 74 65 73 74 5f 6b 65 79 0a 20 20 20 20 y $test_key.
2a30: 7d 20 2d 72 65 73 75 6c 74 20 7b 62 61 66 35 63 } -result {baf5c
2a40: 32 30 66 39 39 37 33 65 32 64 36 30 36 62 31 34 20f9973e2d606b14
2a50: 63 37 65 66 64 66 65 35 32 66 61 7d 0a 0a 74 65 c7efdfe52fa}..te
2a60: 73 74 20 43 4d 41 43 2d 39 2e 35 20 7b 64 61 74 st CMAC-9.5 {dat
2a70: 61 20 62 69 6e 7d 20 2d 62 6f 64 79 20 7b 0a 09 a bin} -body {..
2a80: 62 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 68 65 binary encode he
2a90: 78 20 5b 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d x [::tls::cmac -
2aa0: 62 69 6e 20 2d 63 69 70 68 65 72 20 24 74 65 73 bin -cipher $tes
2ab0: 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 20 24 74 t_cipher -key $t
2ac0: 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 20 24 74 est_key -data $t
2ad0: 65 73 74 5f 64 61 74 61 5d 0a 20 20 20 20 7d 20 est_data]. }
2ae0: 2d 72 65 73 75 6c 74 20 7b 62 61 66 35 63 32 30 -result {baf5c20
2af0: 66 39 39 37 33 65 32 64 36 30 36 62 31 34 63 37 f9973e2d606b14c7
2b00: 65 66 64 66 65 35 32 66 61 7d 0a 0a 23 20 54 65 efdfe52fa}..# Te
2b10: 73 74 20 44 69 67 65 73 74 20 43 4d 41 43 0a 0a st Digest CMAC..
2b20: 0a 74 65 73 74 20 44 69 67 65 73 74 5f 43 4d 41 .test Digest_CMA
2b30: 43 2d 31 30 2e 31 20 7b 64 61 74 61 7d 20 2d 62 C-10.1 {data} -b
2b40: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 ody {..::tls::md
2b50: 20 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f 63 -cipher $test_c
2b60: 69 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74 ipher -key $test
2b70: 5f 6b 65 79 20 2d 64 61 74 61 20 24 74 65 73 74 _key -data $test
2b80: 5f 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 _data. } -res
2b90: 75 6c 74 20 7b 62 61 66 35 63 32 30 66 39 39 37 ult {baf5c20f997
2ba0: 33 65 32 64 36 30 36 62 31 34 63 37 65 66 64 66 3e2d606b14c7efdf
2bb0: 65 35 32 66 61 7d 0a 0a 74 65 73 74 20 44 69 67 e52fa}..test Dig
2bc0: 65 73 74 5f 43 4d 41 43 2d 31 30 2e 32 20 7b 66 est_CMAC-10.2 {f
2bd0: 69 6c 65 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a ile} -body {..::
2be0: 74 6c 73 3a 3a 6d 64 20 2d 63 69 70 68 65 72 20 tls::md -cipher
2bf0: 24 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 $test_cipher -ke
2c00: 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 66 69 6c y $test_key -fil
2c10: 65 20 24 74 65 73 74 5f 66 69 6c 65 0a 20 20 20 e $test_file.
2c20: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 62 61 66 35 } -result {baf5
2c30: 63 32 30 66 39 39 37 33 65 32 64 36 30 36 62 31 c20f9973e2d606b1
2c40: 34 63 37 65 66 64 66 65 35 32 66 61 7d 0a 0a 74 4c7efdfe52fa}..t
2c50: 65 73 74 20 44 69 67 65 73 74 5f 43 4d 41 43 2d est Digest_CMAC-
2c60: 31 30 2e 33 20 7b 63 68 61 6e 6e 65 6c 7d 20 2d 10.3 {channel} -
2c70: 62 6f 64 79 20 7b 0a 09 64 69 67 65 73 74 5f 72 body {..digest_r
2c80: 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a ead_chan ::tls::
2c90: 6d 64 20 24 74 65 73 74 5f 66 69 6c 65 20 2d 63 md $test_file -c
2ca0: 69 70 68 65 72 20 24 74 65 73 74 5f 63 69 70 68 ipher $test_ciph
2cb0: 65 72 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 er -key $test_ke
2cc0: 79 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 y. } -result
2cd0: 7b 62 61 66 35 63 32 30 66 39 39 37 33 65 32 64 {baf5c20f9973e2d
2ce0: 36 30 36 62 31 34 63 37 65 66 64 66 65 35 32 66 606b14c7efdfe52f
2cf0: 61 7d 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f a}..test Digest_
2d00: 43 4d 41 43 2d 31 30 2e 34 20 7b 63 6f 6d 6d 61 CMAC-10.4 {comma
2d10: 6e 64 7d 20 2d 62 6f 64 79 20 7b 0a 09 64 69 67 nd} -body {..dig
2d20: 65 73 74 5f 61 63 63 75 6d 75 6c 61 74 65 20 24 est_accumulate $
2d30: 74 65 73 74 5f 64 61 74 61 20 3a 3a 74 6c 73 3a test_data ::tls:
2d40: 3a 6d 64 20 2d 63 69 70 68 65 72 20 24 74 65 73 :md -cipher $tes
2d50: 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 20 24 74 t_cipher -key $t
2d60: 65 73 74 5f 6b 65 79 0a 20 20 20 20 7d 20 2d 72 est_key. } -r
2d70: 65 73 75 6c 74 20 7b 62 61 66 35 63 32 30 66 39 esult {baf5c20f9
2d80: 39 37 33 65 32 64 36 30 36 62 31 34 63 37 65 66 973e2d606b14c7ef
2d90: 64 66 65 35 32 66 61 7d 0a 0a 74 65 73 74 20 44 dfe52fa}..test D
2da0: 69 67 65 73 74 5f 43 4d 41 43 2d 31 30 2e 35 20 igest_CMAC-10.5
2db0: 7b 64 61 74 61 20 62 69 6e 7d 20 2d 62 6f 64 79 {data bin} -body
2dc0: 20 7b 0a 09 62 69 6e 61 72 79 20 65 6e 63 6f 64 {..binary encod
2dd0: 65 20 68 65 78 20 5b 3a 3a 74 6c 73 3a 3a 6d 64 e hex [::tls::md
2de0: 20 2d 62 69 6e 20 2d 63 69 70 68 65 72 20 24 74 -bin -cipher $t
2df0: 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 20 est_cipher -key
2e00: 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 20 $test_key -data
2e10: 24 74 65 73 74 5f 64 61 74 61 5d 0a 20 20 20 20 $test_data].
2e20: 7d 20 2d 72 65 73 75 6c 74 20 7b 62 61 66 35 63 } -result {baf5c
2e30: 32 30 66 39 39 37 33 65 32 64 36 30 36 62 31 34 20f9973e2d606b14
2e40: 63 37 65 66 64 66 65 35 32 66 61 7d 0a 0a 23 20 c7efdfe52fa}..#
2e50: 54 65 73 74 20 4d 41 43 20 63 6f 6d 6d 61 6e 64 Test MAC command
2e60: 0a 0a 0a 74 65 73 74 20 4d 41 43 2d 31 31 2e 31 ...test MAC-11.1
2e70: 20 7b 48 4d 41 43 7d 20 2d 63 6f 6e 73 74 72 61 {HMAC} -constra
2e80: 69 6e 74 73 20 7b 6e 65 77 5f 61 70 69 7d 20 2d ints {new_api} -
2e90: 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d body {..::tls::m
2ea0: 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 ac -digest sha25
2eb0: 36 20 2d 6d 61 63 20 68 6d 61 63 20 2d 6b 65 79 6 -mac hmac -key
2ec0: 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 $test_key -data
2ed0: 20 24 74 65 73 74 5f 64 61 74 61 0a 20 20 20 20 $test_data.
2ee0: 7d 20 2d 72 65 73 75 6c 74 20 7b 34 39 38 65 66 } -result {498ef
2ef0: 35 65 66 37 31 34 32 34 66 38 31 64 61 37 34 39 5ef71424f81da749
2f00: 39 62 32 65 65 61 65 31 64 30 61 33 34 38 64 64 9b2eeae1d0a348dd
2f10: 34 30 62 38 34 31 65 61 32 37 62 64 64 65 34 39 40b841ea27bdde49
2f20: 34 66 36 62 63 39 30 34 36 66 66 7d 0a 0a 74 65 4f6bc9046ff}..te
2f30: 73 74 20 4d 41 43 2d 31 31 2e 32 20 7b 43 4d 41 st MAC-11.2 {CMA
2f40: 43 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 C} -constraints
2f50: 7b 6e 65 77 5f 61 70 69 7d 20 2d 62 6f 64 79 20 {new_api} -body
2f60: 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 61 63 20 2d 63 {..::tls::mac -c
2f70: 69 70 68 65 72 20 24 74 65 73 74 5f 63 69 70 68 ipher $test_ciph
2f80: 65 72 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 er -digest sha25
2f90: 36 20 2d 6d 61 63 20 63 6d 61 63 20 2d 6b 65 79 6 -mac cmac -key
2fa0: 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 $test_key -data
2fb0: 20 24 74 65 73 74 5f 64 61 74 61 0a 20 20 20 20 $test_data.
2fc0: 7d 20 2d 72 65 73 75 6c 74 20 7b 34 39 38 65 66 } -result {498ef
2fd0: 35 65 66 37 31 34 32 34 66 38 31 64 61 37 34 39 5ef71424f81da749
2fe0: 39 62 32 65 65 61 65 31 64 30 61 33 34 38 64 64 9b2eeae1d0a348dd
2ff0: 34 30 62 38 34 31 65 61 32 37 62 64 64 65 34 39 40b841ea27bdde49
3000: 34 66 36 62 63 39 30 34 36 66 66 7d 0a 0a 23 20 4f6bc9046ff}..#
3010: 4d 44 20 45 72 72 6f 72 20 43 61 73 65 73 0a 0a MD Error Cases..
3020: 0a 74 65 73 74 20 44 69 67 65 73 74 5f 45 72 72 .test Digest_Err
3030: 6f 72 73 2d 31 32 2e 31 20 7b 54 6f 6f 20 66 65 ors-12.1 {Too fe
3040: 77 20 61 72 67 73 7d 20 2d 62 6f 64 79 20 7b 0a w args} -body {.
3050: 09 3a 3a 74 6c 73 3a 3a 6d 64 0a 20 20 20 20 7d .::tls::md. }
3060: 20 2d 72 65 73 75 6c 74 20 7b 77 72 6f 6e 67 20 -result {wrong
3070: 23 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 # args: should b
3080: 65 20 22 3a 3a 74 6c 73 3a 3a 6d 64 20 3f 2d 62 e "::tls::md ?-b
3090: 69 6e 7c 2d 68 65 78 3f 20 3f 2d 63 69 70 68 65 in|-hex? ?-ciphe
30a0: 72 20 6e 61 6d 65 3f 20 3f 2d 64 69 67 65 73 74 r name? ?-digest
30b0: 20 6e 61 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65 79 name? ?-key key
30c0: 3f 20 3f 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b 2d ? ?-mac name? [-
30d0: 63 68 61 6e 6e 65 6c 20 63 68 61 6e 20 7c 20 2d channel chan | -
30e0: 63 6f 6d 6d 61 6e 64 20 63 6d 64 4e 61 6d 65 20 command cmdName
30f0: 7c 20 2d 66 69 6c 65 20 66 69 6c 65 6e 61 6d 65 | -file filename
3100: 20 7c 20 3f 2d 64 61 74 61 3f 20 64 61 74 61 5d | ?-data? data]
3110: 22 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 "} -returnCodes
3120: 7b 31 7d 0a 0a 74 65 73 74 20 44 69 67 65 73 74 {1}..test Digest
3130: 5f 45 72 72 6f 72 73 2d 31 32 2e 32 20 7b 54 6f _Errors-12.2 {To
3140: 6f 20 6d 61 6e 79 20 61 72 67 73 7d 20 2d 62 6f o many args} -bo
3150: 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 dy {..::tls::md
3160: 74 6f 6f 20 6d 61 6e 79 20 63 6f 6d 6d 61 6e 64 too many command
3170: 20 6c 69 6e 65 20 61 72 67 73 20 74 6f 20 70 61 line args to pa
3180: 73 73 20 74 68 65 20 74 65 73 74 20 77 69 74 68 ss the test with
3190: 6f 75 74 20 61 6e 20 65 72 72 6f 72 20 6f 72 20 out an error or
31a0: 66 61 69 6c 69 6e 67 0a 20 20 20 20 7d 20 2d 72 failing. } -r
31b0: 65 73 75 6c 74 20 7b 77 72 6f 6e 67 20 23 20 61 esult {wrong # a
31c0: 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 rgs: should be "
31d0: 3a 3a 74 6c 73 3a 3a 6d 64 20 3f 2d 62 69 6e 7c ::tls::md ?-bin|
31e0: 2d 68 65 78 3f 20 3f 2d 63 69 70 68 65 72 20 6e -hex? ?-cipher n
31f0: 61 6d 65 3f 20 3f 2d 64 69 67 65 73 74 20 6e 61 ame? ?-digest na
3200: 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65 79 3f 20 3f me? ?-key key? ?
3210: 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b 2d 63 68 61 -mac name? [-cha
3220: 6e 6e 65 6c 20 63 68 61 6e 20 7c 20 2d 63 6f 6d nnel chan | -com
3230: 6d 61 6e 64 20 63 6d 64 4e 61 6d 65 20 7c 20 2d mand cmdName | -
3240: 66 69 6c 65 20 66 69 6c 65 6e 61 6d 65 20 7c 20 file filename |
3250: 3f 2d 64 61 74 61 3f 20 64 61 74 61 5d 22 7d 20 ?-data? data]"}
3260: 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d -returnCodes {1}
3270: 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f 45 72 ..test Digest_Er
3280: 72 6f 72 73 2d 31 32 2e 33 20 7b 49 6e 76 61 6c rors-12.3 {Inval
3290: 69 64 20 64 69 67 65 73 74 7d 20 2d 62 6f 64 79 id digest} -body
32a0: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 62 6f {..::tls::md bo
32b0: 67 75 73 20 64 61 74 61 0a 20 20 20 20 7d 20 2d gus data. } -
32c0: 72 65 73 75 6c 74 20 7b 49 6e 76 61 6c 69 64 20 result {Invalid
32d0: 64 69 67 65 73 74 20 22 62 6f 67 75 73 22 7d 20 digest "bogus"}
32e0: 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d -returnCodes {1}
32f0: 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f 45 72 ..test Digest_Er
3300: 72 6f 72 73 2d 31 32 2e 34 20 7b 49 6e 76 61 6c rors-12.4 {Inval
3310: 69 64 20 64 69 67 65 73 74 20 41 72 67 7d 20 2d id digest Arg} -
3320: 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d body {..::tls::m
3330: 64 20 2d 64 69 67 65 73 74 20 62 6f 67 75 73 20 d -digest bogus
3340: 2d 64 61 74 61 20 64 61 74 61 0a 20 20 20 20 7d -data data. }
3350: 20 2d 72 65 73 75 6c 74 20 7b 49 6e 76 61 6c 69 -result {Invali
3360: 64 20 64 69 67 65 73 74 20 22 62 6f 67 75 73 22 d digest "bogus"
3370: 7d 20 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b } -returnCodes {
3380: 31 7d 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f 1}..test Digest_
3390: 45 72 72 6f 72 73 2d 31 32 2e 35 20 7b 4e 6f 20 Errors-12.5 {No
33a0: 64 69 67 65 73 74 7d 20 2d 62 6f 64 79 20 7b 0a digest} -body {.
33b0: 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 68 65 78 20 .::tls::md -hex
33c0: 2d 64 61 74 61 20 76 61 6c 75 65 0a 20 20 20 20 -data value.
33d0: 7d 20 2d 72 65 73 75 6c 74 20 7b 4e 6f 20 64 69 } -result {No di
33e0: 67 65 73 74 20 73 70 65 63 69 66 69 65 64 7d 20 gest specified}
33f0: 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d -returnCodes {1}
3400: 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f 45 72 ..test Digest_Er
3410: 72 6f 72 73 2d 31 32 2e 36 20 7b 49 6e 76 61 6c rors-12.6 {Inval
3420: 69 64 20 6f 70 74 69 6f 6e 7d 20 2d 62 6f 64 79 id option} -body
3430: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 {..::tls::md -d
3440: 69 67 65 73 74 20 73 68 61 32 35 36 20 2d 62 6f igest sha256 -bo
3450: 67 75 73 20 76 61 6c 75 65 0a 20 20 20 20 7d 20 gus value. }
3460: 2d 72 65 73 75 6c 74 20 7b 62 61 64 20 6f 70 74 -result {bad opt
3470: 69 6f 6e 20 22 2d 62 6f 67 75 73 22 3a 20 6d 75 ion "-bogus": mu
3480: 73 74 20 62 65 20 2d 62 69 6e 2c 20 2d 63 68 61 st be -bin, -cha
3490: 6e 6e 65 6c 2c 20 2d 63 69 70 68 65 72 2c 20 2d nnel, -cipher, -
34a0: 63 6f 6d 6d 61 6e 64 2c 20 2d 64 61 74 61 2c 20 command, -data,
34b0: 2d 64 69 67 65 73 74 2c 20 2d 66 69 6c 65 2c 20 -digest, -file,
34c0: 2d 66 69 6c 65 6e 61 6d 65 2c 20 2d 68 65 78 2c -filename, -hex,
34d0: 20 2d 6b 65 79 2c 20 6f 72 20 2d 6d 61 63 7d 20 -key, or -mac}
34e0: 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d -returnCodes {1}
34f0: 0a 0a 74 65 73 74 20 44 69 67 65 73 74 5f 45 72 ..test Digest_Er
3500: 72 6f 72 73 2d 31 32 2e 37 20 7b 49 6e 76 61 6c rors-12.7 {Inval
3510: 69 64 20 66 69 6c 65 7d 20 2d 62 6f 64 79 20 7b id file} -body {
3520: 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 ..::tls::md -dig
3530: 65 73 74 20 73 68 61 32 35 36 20 2d 66 69 6c 65 est sha256 -file
3540: 20 62 6f 67 75 73 0a 20 20 20 20 7d 20 2d 72 65 bogus. } -re
3550: 73 75 6c 74 20 7b 63 6f 75 6c 64 6e 27 74 20 6f sult {couldn't o
3560: 70 65 6e 20 22 62 6f 67 75 73 22 3a 20 6e 6f 20 pen "bogus": no
3570: 73 75 63 68 20 66 69 6c 65 20 6f 72 20 64 69 72 such file or dir
3580: 65 63 74 6f 72 79 7d 20 2d 72 65 74 75 72 6e 43 ectory} -returnC
3590: 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 74 20 44 odes {1}..test D
35a0: 69 67 65 73 74 5f 45 72 72 6f 72 73 2d 31 32 2e igest_Errors-12.
35b0: 38 20 7b 49 6e 76 61 6c 69 64 20 63 68 61 6e 6e 8 {Invalid chann
35c0: 65 6c 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 el} -body {..::t
35d0: 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 ls::md -digest s
35e0: 68 61 32 35 36 20 2d 63 68 61 6e 6e 65 6c 20 62 ha256 -channel b
35f0: 6f 67 75 73 0a 20 20 20 20 7d 20 2d 72 65 73 75 ogus. } -resu
3600: 6c 74 20 7b 63 61 6e 20 6e 6f 74 20 66 69 6e 64 lt {can not find
3610: 20 63 68 61 6e 6e 65 6c 20 6e 61 6d 65 64 20 22 channel named "
3620: 62 6f 67 75 73 22 7d 20 2d 72 65 74 75 72 6e 43 bogus"} -returnC
3630: 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 74 20 44 odes {1}..test D
3640: 69 67 65 73 74 5f 45 72 72 6f 72 73 2d 31 32 2e igest_Errors-12.
3650: 39 20 7b 4e 6f 20 6f 70 65 72 61 74 69 6f 6e 7d 9 {No operation}
3660: 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a -body {..::tls:
3670: 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 32 :md -digest sha2
3680: 35 36 20 2d 62 69 6e 0a 20 20 20 20 7d 20 2d 72 56 -bin. } -r
3690: 65 73 75 6c 74 20 7b 4e 6f 20 6f 70 65 72 61 74 esult {No operat
36a0: 69 6f 6e 20 73 70 65 63 69 66 69 65 64 3a 20 55 ion specified: U
36b0: 73 65 20 2d 63 68 61 6e 6e 65 6c 2c 20 2d 63 6f se -channel, -co
36c0: 6d 6d 61 6e 64 2c 20 2d 64 61 74 61 2c 20 6f 72 mmand, -data, or
36d0: 20 2d 66 69 6c 65 20 6f 70 74 69 6f 6e 7d 20 2d -file option} -
36e0: 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a returnCodes {1}.
36f0: 0a 23 20 43 4d 41 43 20 45 72 72 6f 72 20 43 61 .# CMAC Error Ca
3700: 73 65 73 0a 0a 0a 74 65 73 74 20 43 4d 41 43 5f ses...test CMAC_
3710: 45 72 72 6f 72 73 2d 31 33 2e 31 20 7b 54 6f 6f Errors-13.1 {Too
3720: 20 66 65 77 20 61 72 67 73 7d 20 2d 62 6f 64 79 few args} -body
3730: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 0a {..::tls::cmac.
3740: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 77 } -result {w
3750: 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f rong # args: sho
3760: 75 6c 64 20 62 65 20 22 3a 3a 74 6c 73 3a 3a 63 uld be "::tls::c
3770: 6d 61 63 20 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20 mac ?-bin|-hex?
3780: 3f 2d 63 69 70 68 65 72 20 6e 61 6d 65 3f 20 3f ?-cipher name? ?
3790: 2d 64 69 67 65 73 74 20 6e 61 6d 65 3f 20 3f 2d -digest name? ?-
37a0: 6b 65 79 20 6b 65 79 3f 20 3f 2d 6d 61 63 20 6e key key? ?-mac n
37b0: 61 6d 65 3f 20 5b 2d 63 68 61 6e 6e 65 6c 20 63 ame? [-channel c
37c0: 68 61 6e 20 7c 20 2d 63 6f 6d 6d 61 6e 64 20 63 han | -command c
37d0: 6d 64 4e 61 6d 65 20 7c 20 2d 66 69 6c 65 20 66 mdName | -file f
37e0: 69 6c 65 6e 61 6d 65 20 7c 20 3f 2d 64 61 74 61 ilename | ?-data
37f0: 3f 20 64 61 74 61 5d 22 7d 20 2d 72 65 74 75 72 ? data]"} -retur
3800: 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 74 nCodes {1}..test
3810: 20 43 4d 41 43 5f 45 72 72 6f 72 73 2d 31 33 2e CMAC_Errors-13.
3820: 32 20 7b 4e 6f 20 63 69 70 68 65 72 7d 20 2d 62 2 {No cipher} -b
3830: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 6d ody {..::tls::cm
3840: 61 63 20 2d 68 65 78 20 2d 64 61 74 61 20 76 61 ac -hex -data va
3850: 6c 75 65 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c lue. } -resul
3860: 74 20 7b 4e 6f 20 63 69 70 68 65 72 20 73 70 65 t {No cipher spe
3870: 63 69 66 69 65 64 7d 20 2d 72 65 74 75 72 6e 43 cified} -returnC
3880: 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 74 20 43 odes {1}..test C
3890: 4d 41 43 5f 45 72 72 6f 72 73 2d 31 33 2e 33 20 MAC_Errors-13.3
38a0: 7b 4e 6f 20 6b 65 79 7d 20 2d 62 6f 64 79 20 7b {No key} -body {
38b0: 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 ..::tls::cmac -c
38c0: 69 70 68 65 72 20 24 74 65 73 74 5f 63 69 70 68 ipher $test_ciph
38d0: 65 72 20 2d 64 61 74 61 20 76 61 6c 75 65 0a 20 er -data value.
38e0: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 4e 6f } -result {No
38f0: 20 6b 65 79 20 73 70 65 63 69 66 69 65 64 7d 20 key specified}
3900: 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d -returnCodes {1}
3910: 0a 0a 74 65 73 74 20 43 4d 41 43 5f 45 72 72 6f ..test CMAC_Erro
3920: 72 73 2d 31 33 2e 34 20 7b 49 6e 76 61 6c 69 64 rs-13.4 {Invalid
3930: 20 63 69 70 68 65 72 7d 20 2d 62 6f 64 79 20 7b cipher} -body {
3940: 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 ..::tls::cmac -c
3950: 69 70 68 65 72 20 62 6f 67 75 73 20 2d 64 61 74 ipher bogus -dat
3960: 61 20 76 61 6c 75 65 0a 20 20 20 20 7d 20 2d 72 a value. } -r
3970: 65 73 75 6c 74 20 7b 49 6e 76 61 6c 69 64 20 63 esult {Invalid c
3980: 69 70 68 65 72 20 22 62 6f 67 75 73 22 7d 20 2d ipher "bogus"} -
3990: 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a returnCodes {1}.
39a0: 0a 23 20 48 4d 41 43 20 45 72 72 6f 72 20 43 61 .# HMAC Error Ca
39b0: 73 65 73 0a 0a 0a 74 65 73 74 20 48 4d 41 43 5f ses...test HMAC_
39c0: 45 72 72 6f 72 73 2d 31 34 2e 31 20 7b 54 6f 6f Errors-14.1 {Too
39d0: 20 66 65 77 20 61 72 67 73 7d 20 2d 62 6f 64 79 few args} -body
39e0: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 0a {..::tls::hmac.
39f0: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 77 } -result {w
3a00: 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f rong # args: sho
3a10: 75 6c 64 20 62 65 20 22 3a 3a 74 6c 73 3a 3a 68 uld be "::tls::h
3a20: 6d 61 63 20 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20 mac ?-bin|-hex?
3a30: 3f 2d 63 69 70 68 65 72 20 6e 61 6d 65 3f 20 3f ?-cipher name? ?
3a40: 2d 64 69 67 65 73 74 20 6e 61 6d 65 3f 20 3f 2d -digest name? ?-
3a50: 6b 65 79 20 6b 65 79 3f 20 3f 2d 6d 61 63 20 6e key key? ?-mac n
3a60: 61 6d 65 3f 20 5b 2d 63 68 61 6e 6e 65 6c 20 63 ame? [-channel c
3a70: 68 61 6e 20 7c 20 2d 63 6f 6d 6d 61 6e 64 20 63 han | -command c
3a80: 6d 64 4e 61 6d 65 20 7c 20 2d 66 69 6c 65 20 66 mdName | -file f
3a90: 69 6c 65 6e 61 6d 65 20 7c 20 3f 2d 64 61 74 61 ilename | ?-data
3aa0: 3f 20 64 61 74 61 5d 22 7d 20 2d 72 65 74 75 72 ? data]"} -retur
3ab0: 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 74 nCodes {1}..test
3ac0: 20 48 4d 41 43 5f 45 72 72 6f 72 73 2d 31 34 2e HMAC_Errors-14.
3ad0: 32 20 7b 4e 6f 20 64 69 67 65 73 74 7d 20 2d 62 2 {No digest} -b
3ae0: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d ody {..::tls::hm
3af0: 61 63 20 2d 68 65 78 20 2d 64 61 74 61 20 76 61 ac -hex -data va
3b00: 6c 75 65 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c lue. } -resul
3b10: 74 20 7b 4e 6f 20 64 69 67 65 73 74 20 73 70 65 t {No digest spe
3b20: 63 69 66 69 65 64 7d 20 2d 72 65 74 75 72 6e 43 cified} -returnC
3b30: 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 74 20 48 odes {1}..test H
3b40: 4d 41 43 5f 45 72 72 6f 72 73 2d 31 34 2e 33 20 MAC_Errors-14.3
3b50: 7b 4e 6f 20 6b 65 79 7d 20 2d 62 6f 64 79 20 7b {No key} -body {
3b60: 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 ..::tls::hmac -d
3b70: 69 67 65 73 74 20 73 68 61 32 35 36 20 2d 64 61 igest sha256 -da
3b80: 74 61 20 76 61 6c 75 65 0a 20 20 20 20 7d 20 2d ta value. } -
3b90: 72 65 73 75 6c 74 20 7b 4e 6f 20 6b 65 79 20 73 result {No key s
3ba0: 70 65 63 69 66 69 65 64 7d 20 2d 72 65 74 75 72 pecified} -retur
3bb0: 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 23 20 4d 41 nCodes {1}..# MA
3bc0: 43 20 45 72 72 6f 72 20 43 61 73 65 73 0a 0a 0a C Error Cases...
3bd0: 74 65 73 74 20 4d 41 43 5f 45 72 72 6f 72 73 2d test MAC_Errors-
3be0: 31 35 2e 31 20 7b 54 6f 6f 20 66 65 77 20 61 72 15.1 {Too few ar
3bf0: 67 73 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 gs} -constraints
3c00: 20 7b 6e 65 77 5f 61 70 69 7d 20 2d 62 6f 64 79 {new_api} -body
3c10: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 6d 61 63 0a {..::tls::mmac.
3c20: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 77 } -result {w
3c30: 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f rong # args: sho
3c40: 75 6c 64 20 62 65 20 22 3a 3a 74 6c 73 3a 3a 6d uld be "::tls::m
3c50: 61 63 20 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20 3f ac ?-bin|-hex? ?
3c60: 2d 63 69 70 68 65 72 20 6e 61 6d 65 3f 20 3f 2d -cipher name? ?-
3c70: 64 69 67 65 73 74 20 6e 61 6d 65 3f 20 3f 2d 6b digest name? ?-k
3c80: 65 79 20 6b 65 79 3f 20 3f 2d 6d 61 63 20 6e 61 ey key? ?-mac na
3c90: 6d 65 3f 20 5b 2d 63 68 61 6e 6e 65 6c 20 63 68 me? [-channel ch
3ca0: 61 6e 20 7c 20 2d 63 6f 6d 6d 61 6e 64 20 63 6d an | -command cm
3cb0: 64 4e 61 6d 65 20 7c 20 2d 66 69 6c 65 20 66 69 dName | -file fi
3cc0: 6c 65 6e 61 6d 65 20 7c 20 3f 2d 64 61 74 61 3f lename | ?-data?
3cd0: 20 64 61 74 61 5d 22 7d 20 2d 72 65 74 75 72 6e data]"} -return
3ce0: 43 6f 64 65 73 20 7b 31 7d 0a 0a 74 65 73 74 20 Codes {1}..test
3cf0: 4d 41 43 5f 45 72 72 6f 72 73 2d 31 35 2e 32 20 MAC_Errors-15.2
3d00: 7b 4e 6f 20 6d 61 63 7d 20 2d 63 6f 6e 73 74 72 {No mac} -constr
3d10: 61 69 6e 74 73 20 7b 6e 65 77 5f 61 70 69 7d 20 aints {new_api}
3d20: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
3d30: 6d 61 63 20 2d 68 65 78 20 2d 64 61 74 61 20 76 mac -hex -data v
3d40: 61 6c 75 65 0a 20 20 20 20 7d 20 2d 72 65 73 75 alue. } -resu
3d50: 6c 74 20 7b 4e 6f 20 4d 41 43 20 73 70 65 63 69 lt {No MAC speci
3d60: 66 69 65 64 7d 20 2d 72 65 74 75 72 6e 43 6f 64 fied} -returnCod
3d70: 65 73 20 7b 31 7d 0a 0a 74 65 73 74 20 4d 41 43 es {1}..test MAC
3d80: 5f 45 72 72 6f 72 73 2d 31 35 2e 33 20 7b 4e 6f _Errors-15.3 {No
3d90: 20 6b 65 79 7d 20 2d 63 6f 6e 73 74 72 61 69 6e key} -constrain
3da0: 74 73 20 7b 6e 65 77 5f 61 70 69 7d 20 2d 62 6f ts {new_api} -bo
3db0: 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 61 63 dy {..::tls::mac
3dc0: 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 -digest sha256
3dd0: 2d 64 61 74 61 20 76 61 6c 75 65 0a 20 20 20 20 -data value.
3de0: 7d 20 2d 72 65 73 75 6c 74 20 7b 4e 6f 20 6b 65 } -result {No ke
3df0: 79 20 73 70 65 63 69 66 69 65 64 7d 20 2d 72 65 y specified} -re
3e00: 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d 0a 0a 74 turnCodes {1}..t
3e10: 65 73 74 20 4d 41 43 5f 45 72 72 6f 72 73 2d 31 est MAC_Errors-1
3e20: 35 2e 34 20 7b 54 6f 6f 20 6d 61 6e 79 20 61 72 5.4 {Too many ar
3e30: 67 73 7d 20 2d 63 6f 6e 73 74 72 61 69 6e 74 73 gs} -constraints
3e40: 20 7b 6e 65 77 5f 61 70 69 7d 20 2d 62 6f 64 79 {new_api} -body
3e50: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 61 63 20 74 {..::tls::mac t
3e60: 6f 6f 20 6d 61 6e 79 20 63 6f 6d 6d 61 6e 64 20 oo many command
3e70: 6c 69 6e 65 20 61 72 67 73 20 74 6f 20 70 61 73 line args to pas
3e80: 73 20 74 68 65 20 74 65 73 74 20 77 69 74 68 6f s the test witho
3e90: 75 74 20 61 6e 20 65 72 72 6f 72 20 6f 72 20 66 ut an error or f
3ea0: 61 69 6c 69 6e 67 0a 20 20 20 20 7d 20 2d 72 65 ailing. } -re
3eb0: 73 75 6c 74 20 7b 77 72 6f 6e 67 20 23 20 61 72 sult {wrong # ar
3ec0: 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 3a gs: should be ":
3ed0: 3a 74 6c 73 3a 3a 6d 61 63 20 3f 2d 62 69 6e 7c :tls::mac ?-bin|
3ee0: 2d 68 65 78 3f 20 3f 2d 63 69 70 68 65 72 20 6e -hex? ?-cipher n
3ef0: 61 6d 65 3f 20 3f 2d 64 69 67 65 73 74 20 6e 61 ame? ?-digest na
3f00: 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65 79 3f 20 3f me? ?-key key? ?
3f10: 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b 2d 63 68 61 -mac name? [-cha
3f20: 6e 6e 65 6c 20 63 68 61 6e 20 7c 20 2d 63 6f 6d nnel chan | -com
3f30: 6d 61 6e 64 20 63 6d 64 4e 61 6d 65 20 7c 20 2d mand cmdName | -
3f40: 66 69 6c 65 20 66 69 6c 65 6e 61 6d 65 20 7c 20 file filename |
3f50: 3f 2d 64 61 74 61 3f 20 64 61 74 61 5d 22 7d 20 ?-data? data]"}
3f60: 2d 72 65 74 75 72 6e 43 6f 64 65 73 20 7b 31 7d -returnCodes {1}
3f70: 0a 0a 23 20 52 46 43 20 31 33 32 31 20 4d 65 73 ..# RFC 1321 Mes
3f80: 73 61 67 65 20 44 69 67 65 73 74 20 35 0a 0a 0a sage Digest 5...
3f90: 74 65 73 74 20 52 46 43 31 33 32 31 2d 4d 44 35 test RFC1321-MD5
3fa0: 2d 31 36 2e 31 20 7b 54 43 31 7d 20 2d 62 6f 64 -16.1 {TC1} -bod
3fb0: 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d y {..::tls::md -
3fc0: 64 69 67 65 73 74 20 6d 64 35 20 2d 64 61 74 61 digest md5 -data
3fd0: 20 22 22 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c "". } -resul
3fe0: 74 20 7b 64 34 31 64 38 63 64 39 38 66 30 30 62 t {d41d8cd98f00b
3ff0: 32 30 34 65 39 38 30 30 39 39 38 65 63 66 38 34 204e9800998ecf84
4000: 32 37 65 7d 0a 0a 74 65 73 74 20 52 46 43 31 33 27e}..test RFC13
4010: 32 31 2d 4d 44 35 2d 31 36 2e 32 20 7b 54 43 32 21-MD5-16.2 {TC2
4020: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
4030: 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35 ::md -digest md5
4040: 20 2d 64 61 74 61 20 22 61 22 0a 20 20 20 20 7d -data "a". }
4050: 20 2d 72 65 73 75 6c 74 20 7b 30 63 63 31 37 35 -result {0cc175
4060: 62 39 63 30 66 31 62 36 61 38 33 31 63 33 39 39 b9c0f1b6a831c399
4070: 65 32 36 39 37 37 32 36 36 31 7d 0a 0a 74 65 73 e269772661}..tes
4080: 74 20 52 46 43 31 33 32 31 2d 4d 44 35 2d 31 36 t RFC1321-MD5-16
4090: 2e 33 20 7b 54 43 33 7d 20 2d 62 6f 64 79 20 7b .3 {TC3} -body {
40a0: 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 ..::tls::md -dig
40b0: 65 73 74 20 6d 64 35 20 2d 64 61 74 61 20 22 61 est md5 -data "a
40c0: 62 63 22 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c bc". } -resul
40d0: 74 20 7b 39 30 30 31 35 30 39 38 33 63 64 32 34 t {900150983cd24
40e0: 66 62 30 64 36 39 36 33 66 37 64 32 38 65 31 37 fb0d6963f7d28e17
40f0: 66 37 32 7d 0a 0a 74 65 73 74 20 52 46 43 31 33 f72}..test RFC13
4100: 32 31 2d 4d 44 35 2d 31 36 2e 34 20 7b 54 43 34 21-MD5-16.4 {TC4
4110: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
4120: 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35 ::md -digest md5
4130: 20 2d 64 61 74 61 20 22 6d 65 73 73 61 67 65 20 -data "message
4140: 64 69 67 65 73 74 22 0a 20 20 20 20 7d 20 2d 72 digest". } -r
4150: 65 73 75 6c 74 20 7b 66 39 36 62 36 39 37 64 37 esult {f96b697d7
4160: 63 62 37 39 33 38 64 35 32 35 61 32 66 33 31 61 cb7938d525a2f31a
4170: 61 66 31 36 31 64 30 7d 0a 0a 74 65 73 74 20 52 af161d0}..test R
4180: 46 43 31 33 32 31 2d 4d 44 35 2d 31 36 2e 35 20 FC1321-MD5-16.5
4190: 7b 54 43 35 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a {TC5} -body {..:
41a0: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 :tls::md -digest
41b0: 20 6d 64 35 20 2d 64 61 74 61 20 22 61 62 63 64 md5 -data "abcd
41c0: 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 efghijklmnopqrst
41d0: 75 76 77 78 79 7a 22 0a 20 20 20 20 7d 20 2d 72 uvwxyz". } -r
41e0: 65 73 75 6c 74 20 7b 63 33 66 63 64 33 64 37 36 esult {c3fcd3d76
41f0: 31 39 32 65 34 30 30 37 64 66 62 34 39 36 63 63 192e4007dfb496cc
4200: 61 36 37 65 31 33 62 7d 0a 0a 74 65 73 74 20 52 a67e13b}..test R
4210: 46 43 31 33 32 31 2d 4d 44 35 2d 31 36 2e 36 20 FC1321-MD5-16.6
4220: 7b 54 43 36 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a {TC6} -body {..:
4230: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 :tls::md -digest
4240: 20 6d 64 35 20 2d 64 61 74 61 20 22 41 42 43 44 md5 -data "ABCD
4250: 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 EFGHIJKLMNOPQRST
4260: 55 56 57 58 59 5a 61 62 63 64 65 66 67 68 69 6a UVWXYZabcdefghij
4270: 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a klmnopqrstuvwxyz
4280: 30 31 32 33 34 35 36 37 38 39 22 0a 20 20 20 20 0123456789".
4290: 7d 20 2d 72 65 73 75 6c 74 20 7b 64 31 37 34 61 } -result {d174a
42a0: 62 39 38 64 32 37 37 64 39 66 35 61 35 36 31 31 b98d277d9f5a5611
42b0: 63 32 63 39 66 34 31 39 64 39 66 7d 0a 0a 74 65 c2c9f419d9f}..te
42c0: 73 74 20 52 46 43 31 33 32 31 2d 4d 44 35 2d 31 st RFC1321-MD5-1
42d0: 36 2e 37 20 7b 54 43 37 7d 20 2d 62 6f 64 79 20 6.7 {TC7} -body
42e0: 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 {..::tls::md -di
42f0: 67 65 73 74 20 6d 64 35 20 2d 64 61 74 61 20 5b gest md5 -data [
4300: 73 74 72 69 6e 67 20 72 65 70 65 61 74 20 22 31 string repeat "1
4310: 32 33 34 35 36 37 38 39 30 22 20 38 5d 0a 20 20 234567890" 8].
4320: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 35 37 65 } -result {57e
4330: 64 66 34 61 32 32 62 65 33 63 39 35 35 61 63 34 df4a22be3c955ac4
4340: 39 64 61 32 65 32 31 30 37 62 36 37 61 7d 0a 0a 9da2e2107b67a}..
4350: 23 20 52 46 43 20 36 32 33 34 20 53 48 41 31 0a # RFC 6234 SHA1.
4360: 0a 0a 74 65 73 74 20 52 46 43 36 32 33 34 2d 4d ..test RFC6234-M
4370: 44 2d 53 48 41 31 2d 31 37 2e 31 20 7b 54 43 31 D-SHA1-17.1 {TC1
4380: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
4390: 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 ::md -digest sha
43a0: 31 20 2d 64 61 74 61 20 22 61 62 63 22 0a 20 20 1 -data "abc".
43b0: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 61 39 39 } -result {a99
43c0: 39 33 65 33 36 34 37 30 36 38 31 36 61 62 61 33 93e364706816aba3
43d0: 65 32 35 37 31 37 38 35 30 63 32 36 63 39 63 64 e25717850c26c9cd
43e0: 30 64 38 39 64 7d 0a 0a 74 65 73 74 20 52 46 43 0d89d}..test RFC
43f0: 36 32 33 34 2d 4d 44 2d 53 48 41 31 2d 31 37 2e 6234-MD-SHA1-17.
4400: 32 20 7b 54 43 32 5f 31 7d 20 2d 62 6f 64 79 20 2 {TC2_1} -body
4410: 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 {..::tls::md -di
4420: 67 65 73 74 20 73 68 61 31 20 2d 64 61 74 61 20 gest sha1 -data
4430: 22 61 62 63 64 62 63 64 65 63 64 65 66 64 65 66 "abcdbcdecdefdef
4440: 67 65 66 67 68 66 67 68 69 67 68 69 6a 68 69 6a gefghfghighijhij
4450: 6b 69 6a 6b 6c 6a 6b 6c 6d 6b 6c 6d 6e 6c 6d 6e kijkljklmklmnlmn
4460: 6f 6d 6e 6f 70 6e 6f 70 71 22 0a 20 20 20 20 7d omnopnopq". }
4470: 20 2d 72 65 73 75 6c 74 20 7b 38 34 39 38 33 65 -result {84983e
4480: 34 34 31 63 33 62 64 32 36 65 62 61 61 65 34 61 441c3bd26ebaae4a
4490: 61 31 66 39 35 31 32 39 65 35 65 35 34 36 37 30 a1f95129e5e54670
44a0: 66 31 7d 0a 0a 74 65 73 74 20 52 46 43 36 32 33 f1}..test RFC623
44b0: 34 2d 4d 44 2d 53 48 41 31 2d 31 37 2e 33 20 7b 4-MD-SHA1-17.3 {
44c0: 54 43 33 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a TC3} -body {..::
44d0: 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 tls::md -digest
44e0: 73 68 61 31 20 2d 64 61 74 61 20 5b 73 74 72 69 sha1 -data [stri
44f0: 6e 67 20 72 65 70 65 61 74 20 22 61 22 20 31 30 ng repeat "a" 10
4500: 30 30 30 30 30 5d 0a 20 20 20 20 7d 20 2d 72 65 00000]. } -re
4510: 73 75 6c 74 20 7b 33 34 61 61 39 37 33 63 64 34 sult {34aa973cd4
4520: 63 34 64 61 61 34 66 36 31 65 65 62 32 62 64 62 c4daa4f61eeb2bdb
4530: 61 64 32 37 33 31 36 35 33 34 30 31 36 66 7d 0a ad27316534016f}.
4540: 0a 74 65 73 74 20 52 46 43 36 32 33 34 2d 4d 44 .test RFC6234-MD
4550: 2d 53 48 41 31 2d 31 37 2e 34 20 7b 54 43 34 7d -SHA1-17.4 {TC4}
4560: 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a -body {..::tls:
4570: 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 31 :md -digest sha1
4580: 20 2d 64 61 74 61 20 5b 73 74 72 69 6e 67 20 72 -data [string r
4590: 65 70 65 61 74 20 22 30 31 32 33 34 35 36 37 22 epeat "01234567"
45a0: 20 38 30 5d 0a 20 20 20 20 7d 20 2d 72 65 73 75 80]. } -resu
45b0: 6c 74 20 7b 64 65 61 33 35 36 61 32 63 64 64 64 lt {dea356a2cddd
45c0: 39 30 63 37 61 37 65 63 65 64 63 35 65 62 62 35 90c7a7ecedc5ebb5
45d0: 36 33 39 33 34 66 34 36 30 34 35 32 7d 0a 0a 74 63934f460452}..t
45e0: 65 73 74 20 52 46 43 36 32 33 34 2d 4d 44 2d 53 est RFC6234-MD-S
45f0: 48 41 31 2d 31 37 2e 35 20 7b 54 43 36 7d 20 2d HA1-17.5 {TC6} -
4600: 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d body {..::tls::m
4610: 64 20 2d 64 69 67 65 73 74 20 73 68 61 31 20 2d d -digest sha1 -
4620: 64 61 74 61 20 22 5c 78 35 65 22 0a 20 20 20 20 data "\x5e".
4630: 7d 20 2d 72 65 73 75 6c 74 20 7b 35 65 36 66 38 } -result {5e6f8
4640: 30 61 33 34 61 39 37 39 38 63 61 66 63 36 61 35 0a34a9798cafc6a5
4650: 64 62 39 36 63 63 35 37 62 61 34 63 34 64 62 35 db96cc57ba4c4db5
4660: 39 63 32 7d 0a 0a 74 65 73 74 20 52 46 43 36 32 9c2}..test RFC62
4670: 33 34 2d 4d 44 2d 53 48 41 31 2d 31 37 2e 36 20 34-MD-SHA1-17.6
4680: 7b 54 43 38 5f 31 7d 20 2d 62 6f 64 79 20 7b 0a {TC8_1} -body {.
4690: 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 .::tls::md -dige
46a0: 73 74 20 73 68 61 31 20 2d 64 61 74 61 20 22 5c st sha1 -data "\
46b0: 78 39 61 5c 78 37 64 5c 78 66 64 5c 78 66 31 5c x9a\x7d\xfd\xf1\
46c0: 78 65 63 5c 78 65 61 5c 78 64 30 5c 78 36 65 5c xec\xea\xd0\x6e\
46d0: 78 64 36 5c 78 34 36 5c 78 61 61 5c 78 35 35 5c xd6\x46\xaa\x55\
46e0: 78 66 65 5c 78 37 35 5c 78 37 31 5c 78 34 36 22 xfe\x75\x71\x46"
46f0: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
4700: 38 32 61 62 66 66 36 36 30 35 64 62 65 31 63 31 82abff6605dbe1c1
4710: 37 64 65 66 31 32 61 33 39 34 66 61 32 32 61 38 7def12a394fa22a8
4720: 32 62 35 34 34 61 33 35 7d 0a 0a 74 65 73 74 20 2b544a35}..test
4730: 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 41 31 2d RFC6234-MD-SHA1-
4740: 31 37 2e 37 20 7b 54 43 31 30 5f 31 7d 20 2d 62 17.7 {TC10_1} -b
4750: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 ody {..::tls::md
4760: 20 2d 64 69 67 65 73 74 20 73 68 61 31 20 2d 64 -digest sha1 -d
4770: 61 74 61 20 22 5c 78 66 37 5c 78 38 66 5c 78 39 ata "\xf7\x8f\x9
4780: 32 5c 78 31 34 5c 78 31 62 5c 78 63 64 5c 78 31 2\x14\x1b\xcd\x1
4790: 37 5c 78 30 61 5c 78 65 38 5c 78 39 62 5c 78 34 7\x0a\xe8\x9b\x4
47a0: 66 5c 78 62 61 5c 78 31 35 5c 78 61 31 5c 78 64 f\xba\x15\xa1\xd
47b0: 35 5c 78 39 66 5c 78 33 66 5c 78 64 38 5c 78 34 5\x9f\x3f\xd8\x4
47c0: 64 5c 78 32 32 5c 78 33 63 5c 78 39 32 5c 78 35 d\x22\x3c\x92\x5
47d0: 31 5c 78 62 64 5c 78 61 63 5c 78 62 62 5c 78 61 1\xbd\xac\xbb\xa
47e0: 65 5c 78 36 31 5c 78 64 30 5c 78 35 65 5c 78 64 e\x61\xd0\x5e\xd
47f0: 31 5c 78 31 35 5c 78 61 30 5c 78 36 61 5c 78 37 1\x15\xa0\x6a\x7
4800: 63 5c 78 65 31 5c 78 31 37 5c 78 62 37 5c 78 62 c\xe1\x17\xb7\xb
4810: 65 5c 78 65 61 5c 78 64 32 5c 78 34 34 5c 78 32 e\xea\xd2\x44\x2
4820: 31 5c 78 64 65 5c 78 64 39 5c 78 63 33 5c 78 32 1\xde\xd9\xc3\x2
4830: 35 5c 78 39 32 5c 78 62 64 5c 78 35 37 5c 78 65 5\x92\xbd\x57\xe
4840: 64 5c 78 65 61 5c 78 65 33 5c 78 39 63 5c 78 33 d\xea\xe3\x9c\x3
4850: 39 5c 78 66 61 5c 78 31 66 5c 78 65 38 5c 78 39 9\xfa\x1f\xe8\x9
4860: 34 5c 78 36 61 5c 78 38 34 5c 78 64 30 5c 78 63 4\x6a\x84\xd0\xc
4870: 66 5c 78 31 66 5c 78 37 62 5c 78 65 65 5c 78 61 f\x1f\x7b\xee\xa
4880: 64 5c 78 31 37 5c 78 31 33 5c 78 65 32 5c 78 65 d\x17\x13\xe2\xe
4890: 30 5c 78 39 35 5c 78 39 38 5c 78 39 37 5c 78 33 0\x95\x98\x97\x3
48a0: 34 5c 78 37 66 5c 78 36 37 5c 78 63 38 5c 78 30 4\x7f\x67\xc8\x0
48b0: 62 5c 78 30 34 5c 78 30 30 5c 78 63 32 5c 78 30 b\x04\x00\xc2\x0
48c0: 39 5c 78 38 31 5c 78 35 64 5c 78 36 62 5c 78 31 9\x81\x5d\x6b\x1
48d0: 30 5c 78 61 36 5c 78 38 33 5c 78 38 33 5c 78 36 0\xa6\x83\x83\x6
48e0: 66 5c 78 64 35 5c 78 35 36 5c 78 32 61 5c 78 35 f\xd5\x56\x2a\x5
48f0: 36 5c 78 63 61 5c 78 62 31 5c 78 61 32 5c 78 38 6\xca\xb1\xa2\x8
4900: 65 5c 78 38 31 5c 78 62 36 5c 78 35 37 5c 78 36 e\x81\xb6\x57\x6
4910: 36 5c 78 35 34 5c 78 36 33 5c 78 31 63 5c 78 66 6\x54\x63\x1c\xf
4920: 31 5c 78 36 35 5c 78 36 36 5c 78 62 38 5c 78 36 1\x65\x66\xb8\x6
4930: 65 5c 78 33 62 5c 78 33 33 5c 78 61 31 5c 78 30 e\x3b\x33\xa1\x0
4940: 38 5c 78 62 30 5c 78 35 33 5c 78 30 37 5c 78 63 8\xb0\x53\x07\xc
4950: 30 5c 78 30 61 5c 78 66 66 5c 78 31 34 5c 78 61 0\x0a\xff\x14\xa
4960: 37 5c 78 36 38 5c 78 65 64 5c 78 37 33 5c 78 35 7\x68\xed\x73\x5
4970: 30 5c 78 36 30 5c 78 36 61 5c 78 30 66 5c 78 38 0\x60\x6a\x0f\x8
4980: 35 5c 78 65 36 5c 78 61 39 5c 78 31 64 5c 78 33 5\xe6\xa9\x1d\x3
4990: 39 5c 78 36 66 5c 78 35 62 5c 78 35 63 5c 78 62 9\x6f\x5b\x5c\xb
49a0: 65 5c 78 35 37 5c 78 37 66 5c 78 39 62 5c 78 33 e\x57\x7f\x9b\x3
49b0: 38 5c 78 38 30 5c 78 37 63 5c 78 37 64 5c 78 35 8\x80\x7c\x7d\x5
49c0: 32 5c 78 33 64 5c 78 36 64 5c 78 37 39 5c 78 32 2\x3d\x6d\x79\x2
49d0: 66 5c 78 36 65 5c 78 62 63 5c 78 32 34 5c 78 61 f\x6e\xbc\x24\xa
49e0: 34 5c 78 65 63 5c 78 66 32 5c 78 62 33 5c 78 61 4\xec\xf2\xb3\xa
49f0: 34 5c 78 32 37 5c 78 63 64 5c 78 62 62 5c 78 66 4\x27\xcd\xbb\xf
4a00: 62 22 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 b". } -result
4a10: 20 7b 63 62 30 30 38 32 63 38 66 31 39 37 64 32 {cb0082c8f197d2
4a20: 36 30 39 39 31 62 61 36 61 34 36 30 65 37 36 65 60991ba6a460e76e
4a30: 32 30 32 62 61 64 32 37 62 33 7d 0a 0a 23 20 52 202bad27b3}..# R
4a40: 46 43 20 36 32 33 34 20 53 48 41 32 35 36 0a 0a FC 6234 SHA256..
4a50: 0a 74 65 73 74 20 52 46 43 36 32 33 34 2d 4d 44 .test RFC6234-MD
4a60: 2d 53 48 41 32 35 36 2d 31 38 2e 31 20 7b 54 43 -SHA256-18.1 {TC
4a70: 31 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 1} -body {..::tl
4a80: 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 s::md -digest sh
4a90: 61 32 35 36 20 2d 64 61 74 61 20 22 61 62 63 22 a256 -data "abc"
4aa0: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
4ab0: 62 61 37 38 31 36 62 66 38 66 30 31 63 66 65 61 ba7816bf8f01cfea
4ac0: 34 31 34 31 34 30 64 65 35 64 61 65 32 32 32 33 414140de5dae2223
4ad0: 62 30 30 33 36 31 61 33 39 36 31 37 37 61 39 63 b00361a396177a9c
4ae0: 62 34 31 30 66 66 36 31 66 32 30 30 31 35 61 64 b410ff61f20015ad
4af0: 7d 0a 0a 74 65 73 74 20 52 46 43 36 32 33 34 2d }..test RFC6234-
4b00: 4d 44 2d 53 48 41 32 35 36 2d 31 38 2e 32 20 7b MD-SHA256-18.2 {
4b10: 54 43 32 5f 31 7d 20 2d 62 6f 64 79 20 7b 0a 09 TC2_1} -body {..
4b20: 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 ::tls::md -diges
4b30: 74 20 73 68 61 32 35 36 20 2d 64 61 74 61 20 22 t sha256 -data "
4b40: 61 62 63 64 62 63 64 65 63 64 65 66 64 65 66 67 abcdbcdecdefdefg
4b50: 65 66 67 68 66 67 68 69 67 68 69 6a 68 69 6a 6b efghfghighijhijk
4b60: 69 6a 6b 6c 6a 6b 6c 6d 6b 6c 6d 6e 6c 6d 6e 6f ijkljklmklmnlmno
4b70: 6d 6e 6f 70 6e 6f 70 71 22 0a 20 20 20 20 7d 20 mnopnopq". }
4b80: 2d 72 65 73 75 6c 74 20 7b 32 34 38 64 36 61 36 -result {248d6a6
4b90: 31 64 32 30 36 33 38 62 38 65 35 63 30 32 36 39 1d20638b8e5c0269
4ba0: 33 30 63 33 65 36 30 33 39 61 33 33 63 65 34 35 30c3e6039a33ce45
4bb0: 39 36 34 66 66 32 31 36 37 66 36 65 63 65 64 64 964ff2167f6ecedd
4bc0: 34 31 39 64 62 30 36 63 31 7d 0a 0a 74 65 73 74 419db06c1}..test
4bd0: 20 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 41 32 RFC6234-MD-SHA2
4be0: 35 36 2d 31 38 2e 33 20 7b 54 43 33 7d 20 2d 62 56-18.3 {TC3} -b
4bf0: 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 ody {..::tls::md
4c00: 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 -digest sha256
4c10: 2d 64 61 74 61 20 5b 73 74 72 69 6e 67 20 72 65 -data [string re
4c20: 70 65 61 74 20 22 61 22 20 31 30 30 30 30 30 30 peat "a" 1000000
4c30: 5d 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 ]. } -result
4c40: 7b 63 64 63 37 36 65 35 63 39 39 31 34 66 62 39 {cdc76e5c9914fb9
4c50: 32 38 31 61 31 63 37 65 32 38 34 64 37 33 65 36 281a1c7e284d73e6
4c60: 37 66 31 38 30 39 61 34 38 61 34 39 37 32 30 30 7f1809a48a497200
4c70: 65 30 34 36 64 33 39 63 63 63 37 31 31 32 63 64 e046d39ccc7112cd
4c80: 30 7d 0a 0a 74 65 73 74 20 52 46 43 36 32 33 34 0}..test RFC6234
4c90: 2d 4d 44 2d 53 48 41 32 35 36 2d 31 38 2e 34 20 -MD-SHA256-18.4
4ca0: 7b 54 43 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a {TC4} -body {..:
4cb0: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 :tls::md -digest
4cc0: 20 73 68 61 32 35 36 20 2d 64 61 74 61 20 5b 73 sha256 -data [s
4cd0: 74 72 69 6e 67 20 72 65 70 65 61 74 20 22 30 31 tring repeat "01
4ce0: 32 33 34 35 36 37 22 20 38 30 5d 0a 20 20 20 20 234567" 80].
4cf0: 7d 20 2d 72 65 73 75 6c 74 20 7b 35 39 34 38 34 } -result {59484
4d00: 37 33 32 38 34 35 31 62 64 66 61 38 35 30 35 36 7328451bdfa85056
4d10: 32 32 35 34 36 32 63 63 31 64 38 36 37 64 38 37 225462cc1d867d87
4d20: 37 66 62 33 38 38 64 66 30 63 65 33 35 66 32 35 7fb388df0ce35f25
4d30: 61 62 35 35 36 32 62 66 62 62 35 7d 0a 0a 74 65 ab5562bfbb5}..te
4d40: 73 74 20 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 st RFC6234-MD-SH
4d50: 41 32 35 36 2d 31 38 2e 35 20 7b 54 43 36 7d 20 A256-18.5 {TC6}
4d60: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
4d70: 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 md -digest sha25
4d80: 36 20 2d 64 61 74 61 20 22 5c 78 31 39 22 0a 20 6 -data "\x19".
4d90: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 36 38 } -result {68
4da0: 61 61 32 65 32 65 65 35 64 66 66 39 36 65 33 33 aa2e2ee5dff96e33
4db0: 35 35 65 36 63 37 65 65 33 37 33 65 33 64 36 61 55e6c7ee373e3d6a
4dc0: 34 65 31 37 66 37 35 66 39 35 31 38 64 38 34 33 4e17f75f9518d843
4dd0: 37 30 39 63 30 63 39 62 63 33 65 33 64 34 7d 0a 709c0c9bc3e3d4}.
4de0: 0a 74 65 73 74 20 52 46 43 36 32 33 34 2d 4d 44 .test RFC6234-MD
4df0: 2d 53 48 41 32 35 36 2d 31 38 2e 36 20 7b 54 43 -SHA256-18.6 {TC
4e00: 38 5f 32 35 36 7d 20 2d 62 6f 64 79 20 7b 0a 09 8_256} -body {..
4e10: 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 ::tls::md -diges
4e20: 74 20 73 68 61 32 35 36 20 2d 64 61 74 61 20 22 t sha256 -data "
4e30: 5c 78 65 33 5c 78 64 37 5c 78 32 35 5c 78 37 30 \xe3\xd7\x25\x70
4e40: 5c 78 64 63 5c 78 64 64 5c 78 37 38 5c 78 37 63 \xdc\xdd\x78\x7c
4e50: 5c 78 65 33 5c 78 38 38 5c 78 37 61 5c 78 62 32 \xe3\x88\x7a\xb2
4e60: 5c 78 63 64 5c 78 36 38 5c 78 34 36 5c 78 35 32 \xcd\x68\x46\x52
4e70: 22 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 ". } -result
4e80: 7b 31 37 35 65 65 36 39 62 30 32 62 61 39 62 35 {175ee69b02ba9b5
4e90: 38 65 32 62 30 61 35 66 64 31 33 38 31 39 63 65 8e2b0a5fd13819ce
4ea0: 61 35 37 33 66 33 39 34 30 61 39 34 66 38 32 35 a573f3940a94f825
4eb0: 31 32 38 63 66 34 32 30 39 62 65 61 62 62 34 65 128cf4209beabb4e
4ec0: 38 7d 0a 0a 74 65 73 74 20 52 46 43 36 32 33 34 8}..test RFC6234
4ed0: 2d 4d 44 2d 53 48 41 32 35 36 2d 31 38 2e 37 20 -MD-SHA256-18.7
4ee0: 7b 54 43 31 30 5f 32 35 36 7d 20 2d 62 6f 64 79 {TC10_256} -body
4ef0: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 {..::tls::md -d
4f00: 69 67 65 73 74 20 73 68 61 32 35 36 20 2d 64 61 igest sha256 -da
4f10: 74 61 20 22 5c 78 38 33 5c 78 32 36 5c 78 37 35 ta "\x83\x26\x75
4f20: 5c 78 34 65 5c 78 32 32 5c 78 37 37 5c 78 33 37 \x4e\x22\x77\x37
4f30: 5c 78 32 66 5c 78 34 66 5c 78 63 31 5c 78 32 62 \x2f\x4f\xc1\x2b
4f40: 5c 78 32 30 5c 78 35 32 5c 78 37 61 5c 78 66 65 \x20\x52\x7a\xfe
4f50: 5c 78 66 30 5c 78 34 64 5c 78 38 61 5c 78 30 35 \xf0\x4d\x8a\x05
4f60: 5c 78 36 39 5c 78 37 31 5c 78 62 31 5c 78 31 61 \x69\x71\xb1\x1a
4f70: 5c 78 64 35 5c 78 37 31 5c 78 32 33 5c 78 61 37 \xd5\x71\x23\xa7
4f80: 5c 78 63 31 5c 78 33 37 5c 78 37 36 5c 78 30 30 \xc1\x37\x76\x00
4f90: 5c 78 30 30 5c 78 64 37 5c 78 62 65 5c 78 66 36 \x00\xd7\xbe\xf6
4fa0: 5c 78 66 33 5c 78 63 31 5c 78 66 37 5c 78 61 39 \xf3\xc1\xf7\xa9
4fb0: 5c 78 30 38 5c 78 33 61 5c 78 61 33 5c 78 39 64 \x08\x3a\xa3\x9d
4fc0: 5c 78 38 31 5c 78 30 64 5c 78 62 33 5c 78 31 30 \x81\x0d\xb3\x10
4fd0: 5c 78 37 37 5c 78 37 64 5c 78 61 62 5c 78 38 62 \x77\x7d\xab\x8b
4fe0: 5c 78 31 65 5c 78 37 66 5c 78 30 32 5c 78 62 38 \x1e\x7f\x02\xb8
4ff0: 5c 78 34 61 5c 78 32 36 5c 78 63 37 5c 78 37 33 \x4a\x26\xc7\x73
5000: 5c 78 33 32 5c 78 35 66 5c 78 38 62 5c 78 32 33 \x32\x5f\x8b\x23
5010: 5c 78 37 34 5c 78 64 65 5c 78 37 61 5c 78 34 62 \x74\xde\x7a\x4b
5020: 5c 78 35 61 5c 78 35 38 5c 78 63 62 5c 78 35 63 \x5a\x58\xcb\x5c
5030: 5c 78 35 63 5c 78 66 33 5c 78 35 62 5c 78 63 65 \x5c\xf3\x5b\xce
5040: 5c 78 65 36 5c 78 66 62 5c 78 39 34 5c 78 36 65 \xe6\xfb\x94\x6e
5050: 5c 78 35 62 5c 78 64 36 5c 78 39 34 5c 78 66 61 \x5b\xd6\x94\xfa
5060: 5c 78 35 39 5c 78 33 61 5c 78 38 62 5c 78 65 62 \x59\x3a\x8b\xeb
5070: 5c 78 33 66 5c 78 39 64 5c 78 36 35 5c 78 39 32 \x3f\x9d\x65\x92
5080: 5c 78 65 63 5c 78 65 64 5c 78 61 61 5c 78 36 36 \xec\xed\xaa\x66
5090: 5c 78 63 61 5c 78 38 32 5c 78 61 32 5c 78 39 64 \xca\x82\xa2\x9d
50a0: 5c 78 30 63 5c 78 35 31 5c 78 62 63 5c 78 66 39 \x0c\x51\xbc\xf9
50b0: 5c 78 33 33 5c 78 36 32 5c 78 33 30 5c 78 65 35 \x33\x62\x30\xe5
50c0: 5c 78 64 37 5c 78 38 34 5c 78 65 34 5c 78 63 30 \xd7\x84\xe4\xc0
50d0: 5c 78 61 34 5c 78 33 66 5c 78 38 64 5c 78 37 39 \xa4\x3f\x8d\x79
50e0: 5c 78 61 33 5c 78 30 61 5c 78 31 36 5c 78 35 63 \xa3\x0a\x16\x5c
50f0: 5c 78 62 61 5c 78 62 65 5c 78 34 35 5c 78 32 62 \xba\xbe\x45\x2b
5100: 5c 78 37 37 5c 78 34 62 5c 78 39 63 5c 78 37 31 \x77\x4b\x9c\x71
5110: 5c 78 30 39 5c 78 61 39 5c 78 37 64 5c 78 31 33 \x09\xa9\x7d\x13
5120: 5c 78 38 66 5c 78 31 32 5c 78 39 32 5c 78 32 38 \x8f\x12\x92\x28
5130: 5c 78 39 36 5c 78 36 66 5c 78 36 63 5c 78 30 61 \x96\x6f\x6c\x0a
5140: 5c 78 64 63 5c 78 31 30 5c 78 36 61 5c 78 61 64 \xdc\x10\x6a\xad
5150: 5c 78 35 61 5c 78 39 66 5c 78 64 64 5c 78 33 30 \x5a\x9f\xdd\x30
5160: 5c 78 38 32 5c 78 35 37 5c 78 36 39 5c 78 62 32 \x82\x57\x69\xb2
5170: 5c 78 63 36 5c 78 37 31 5c 78 61 66 5c 78 36 37 \xc6\x71\xaf\x67
5180: 5c 78 35 39 5c 78 64 66 5c 78 32 38 5c 78 65 62 \x59\xdf\x28\xeb
5190: 5c 78 33 39 5c 78 33 64 5c 78 35 34 5c 78 64 36 \x39\x3d\x54\xd6
51a0: 22 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 ". } -result
51b0: 7b 39 37 64 62 63 61 37 64 66 34 36 64 36 32 63 {97dbca7df46d62c
51c0: 38 61 34 32 32 63 39 34 31 64 64 37 65 38 33 35 8a422c941dd7e835
51d0: 62 38 61 64 33 33 36 31 37 36 33 66 37 65 39 62 b8ad3361763f7e9b
51e0: 32 64 39 35 66 34 66 30 64 61 36 65 31 63 63 62 2d95f4f0da6e1ccb
51f0: 63 7d 0a 0a 23 20 52 46 43 20 34 32 33 31 20 48 c}..# RFC 4231 H
5200: 4d 41 43 20 45 78 61 6d 70 6c 65 73 20 54 65 73 MAC Examples Tes
5210: 74 20 43 61 73 65 20 23 31 0a 73 65 74 20 6b 65 t Case #1.set ke
5220: 79 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 y [binary decode
5230: 20 68 65 78 20 5b 73 74 72 69 6e 67 20 72 65 70 hex [string rep
5240: 65 61 74 20 22 30 62 22 20 32 30 5d 5d 0a 73 65 eat "0b" 20]].se
5250: 74 20 64 61 74 61 20 22 48 69 20 54 68 65 72 65 t data "Hi There
5260: 22 0a 0a 0a 74 65 73 74 20 52 46 43 34 32 33 31 "...test RFC4231
5270: 5f 48 4d 41 43 5f 54 43 31 2d 31 39 2e 31 20 7b _HMAC_TC1-19.1 {
5280: 73 68 61 32 32 34 7d 20 2d 62 6f 64 79 20 7b 0a sha224} -body {.
5290: 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 .::tls::hmac -di
52a0: 67 65 73 74 20 73 68 61 32 32 34 20 2d 6b 65 79 gest sha224 -key
52b0: 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 $key -data $dat
52c0: 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 a. } -result
52d0: 7b 38 39 36 66 62 31 31 32 38 61 62 62 64 66 31 {896fb1128abbdf1
52e0: 39 36 38 33 32 31 30 37 63 64 34 39 64 66 33 33 96832107cd49df33
52f0: 66 34 37 62 34 62 31 31 36 39 39 31 32 62 61 34 f47b4b1169912ba4
5300: 66 35 33 36 38 34 62 32 32 7d 0a 0a 74 65 73 74 f53684b22}..test
5310: 20 52 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 RFC4231_HMAC_TC
5320: 31 2d 31 39 2e 32 20 7b 73 68 61 32 35 36 7d 20 1-19.2 {sha256}
5330: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
5340: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 hmac -digest sha
5350: 32 35 36 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 256 -key $key -d
5360: 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 ata $data. }
5370: 2d 72 65 73 75 6c 74 20 7b 62 30 33 34 34 63 36 -result {b0344c6
5380: 31 64 38 64 62 33 38 35 33 35 63 61 38 61 66 63 1d8db38535ca8afc
5390: 65 61 66 30 62 66 31 32 62 38 38 31 64 63 32 30 eaf0bf12b881dc20
53a0: 30 63 39 38 33 33 64 61 37 32 36 65 39 33 37 36 0c9833da726e9376
53b0: 63 32 65 33 32 63 66 66 37 7d 0a 0a 74 65 73 74 c2e32cff7}..test
53c0: 20 52 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 RFC4231_HMAC_TC
53d0: 31 2d 31 39 2e 33 20 7b 73 68 61 33 38 34 7d 20 1-19.3 {sha384}
53e0: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
53f0: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 hmac -digest sha
5400: 33 38 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 384 -key $key -d
5410: 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 ata $data. }
5420: 2d 72 65 73 75 6c 74 20 7b 61 66 64 30 33 39 34 -result {afd0394
5430: 34 64 38 34 38 39 35 36 32 36 62 30 38 32 35 66 4d84895626b0825f
5440: 34 61 62 34 36 39 30 37 66 31 35 66 39 64 61 64 4ab46907f15f9dad
5450: 62 65 34 31 30 31 65 63 36 38 32 61 61 30 33 34 be4101ec682aa034
5460: 63 37 63 65 62 63 35 39 63 66 61 65 61 39 65 61 c7cebc59cfaea9ea
5470: 39 30 37 36 65 64 65 37 66 34 61 66 31 35 32 65 9076ede7f4af152e
5480: 38 62 32 66 61 39 63 62 36 7d 0a 0a 74 65 73 74 8b2fa9cb6}..test
5490: 20 52 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 RFC4231_HMAC_TC
54a0: 31 2d 31 39 2e 34 20 7b 73 68 61 35 31 32 7d 20 1-19.4 {sha512}
54b0: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
54c0: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 hmac -digest sha
54d0: 35 31 32 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 512 -key $key -d
54e0: 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 ata $data. }
54f0: 2d 72 65 73 75 6c 74 20 7b 38 37 61 61 37 63 64 -result {87aa7cd
5500: 65 61 35 65 66 36 31 39 64 34 66 66 30 62 34 32 ea5ef619d4ff0b42
5510: 34 31 61 31 64 36 63 62 30 32 33 37 39 66 34 65 41a1d6cb02379f4e
5520: 32 63 65 34 65 63 32 37 38 37 61 64 30 62 33 30 2ce4ec2787ad0b30
5530: 35 34 35 65 31 37 63 64 65 64 61 61 38 33 33 62 545e17cdedaa833b
5540: 37 64 36 62 38 61 37 30 32 30 33 38 62 32 37 34 7d6b8a702038b274
5550: 65 61 65 61 33 66 34 65 34 62 65 39 64 39 31 34 eaea3f4e4be9d914
5560: 65 65 62 36 31 66 31 37 30 32 65 36 39 36 63 32 eeb61f1702e696c2
5570: 30 33 61 31 32 36 38 35 34 7d 0a 0a 23 20 52 46 03a126854}..# RF
5580: 43 20 34 32 33 31 20 48 4d 41 43 20 45 78 61 6d C 4231 HMAC Exam
5590: 70 6c 65 73 20 54 65 73 74 20 43 61 73 65 20 23 ples Test Case #
55a0: 32 20 2d 20 54 65 73 74 20 77 69 74 68 20 61 20 2 - Test with a
55b0: 6b 65 79 20 73 68 6f 72 74 65 72 20 74 68 61 6e key shorter than
55c0: 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 the length of t
55d0: 68 65 20 48 4d 41 43 20 6f 75 74 70 75 74 2e 0a he HMAC output..
55e0: 73 65 74 20 6b 65 79 20 22 4a 65 66 65 22 0a 73 set key "Jefe".s
55f0: 65 74 20 64 61 74 61 20 22 77 68 61 74 20 64 6f et data "what do
5600: 20 79 61 20 77 61 6e 74 20 66 6f 72 20 6e 6f 74 ya want for not
5610: 68 69 6e 67 3f 22 0a 0a 0a 74 65 73 74 20 52 46 hing?"...test RF
5620: 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 32 2d 32 C4231_HMAC_TC2-2
5630: 30 2e 31 20 7b 73 68 61 32 32 34 7d 20 2d 62 6f 0.1 {sha224} -bo
5640: 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 dy {..::tls::hma
5650: 63 20 2d 64 69 67 65 73 74 20 73 68 61 32 32 34 c -digest sha224
5660: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 -key $key -data
5670: 20 24 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 $data. } -re
5680: 73 75 6c 74 20 7b 61 33 30 65 30 31 30 39 38 62 sult {a30e01098b
5690: 63 36 64 62 62 66 34 35 36 39 30 66 33 61 37 65 c6dbbf45690f3a7e
56a0: 39 65 36 64 30 66 38 62 62 65 61 32 61 33 39 65 9e6d0f8bbea2a39e
56b0: 36 31 34 38 30 30 38 66 64 30 35 65 34 34 7d 0a 6148008fd05e44}.
56c0: 0a 74 65 73 74 20 52 46 43 34 32 33 31 5f 48 4d .test RFC4231_HM
56d0: 41 43 5f 54 43 32 2d 32 30 2e 32 20 7b 73 68 61 AC_TC2-20.2 {sha
56e0: 32 35 36 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 256} -body {..::
56f0: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 tls::hmac -diges
5700: 74 20 73 68 61 32 35 36 20 2d 6b 65 79 20 24 6b t sha256 -key $k
5710: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 ey -data $data.
5720: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 35 62 } -result {5b
5730: 64 63 63 31 34 36 62 66 36 30 37 35 34 65 36 61 dcc146bf60754e6a
5740: 30 34 32 34 32 36 30 38 39 35 37 35 63 37 35 61 042426089575c75a
5750: 30 30 33 66 30 38 39 64 32 37 33 39 38 33 39 64 003f089d2739839d
5760: 65 63 35 38 62 39 36 34 65 63 33 38 34 33 7d 0a ec58b964ec3843}.
5770: 0a 74 65 73 74 20 52 46 43 34 32 33 31 5f 48 4d .test RFC4231_HM
5780: 41 43 5f 54 43 32 2d 32 30 2e 33 20 7b 73 68 61 AC_TC2-20.3 {sha
5790: 33 38 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 384} -body {..::
57a0: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 tls::hmac -diges
57b0: 74 20 73 68 61 33 38 34 20 2d 6b 65 79 20 24 6b t sha384 -key $k
57c0: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 ey -data $data.
57d0: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 61 66 } -result {af
57e0: 34 35 64 32 65 33 37 36 34 38 34 30 33 31 36 31 45d2e37648403161
57f0: 37 66 37 38 64 32 62 35 38 61 36 62 31 62 39 63 7f78d2b58a6b1b9c
5800: 37 65 66 34 36 34 66 35 61 30 31 62 34 37 65 34 7ef464f5a01b47e4
5810: 32 65 63 33 37 33 36 33 32 32 34 34 35 65 38 65 2ec3736322445e8e
5820: 32 32 34 30 63 61 35 65 36 39 65 32 63 37 38 62 2240ca5e69e2c78b
5830: 33 32 33 39 65 63 66 61 62 32 31 36 34 39 7d 0a 3239ecfab21649}.
5840: 0a 74 65 73 74 20 52 46 43 34 32 33 31 5f 48 4d .test RFC4231_HM
5850: 41 43 5f 54 43 32 2d 32 30 2e 34 20 7b 73 68 61 AC_TC2-20.4 {sha
5860: 35 31 32 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 512} -body {..::
5870: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 tls::hmac -diges
5880: 74 20 73 68 61 35 31 32 20 2d 6b 65 79 20 24 6b t sha512 -key $k
5890: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 ey -data $data.
58a0: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 31 36 } -result {16
58b0: 34 62 37 61 37 62 66 63 66 38 31 39 65 32 65 33 4b7a7bfcf819e2e3
58c0: 39 35 66 62 65 37 33 62 35 36 65 30 61 33 38 37 95fbe73b56e0a387
58d0: 62 64 36 34 32 32 32 65 38 33 31 66 64 36 31 30 bd64222e831fd610
58e0: 32 37 30 63 64 37 65 61 32 35 30 35 35 34 39 37 270cd7ea25055497
58f0: 35 38 62 66 37 35 63 30 35 61 39 39 34 61 36 64 58bf75c05a994a6d
5900: 30 33 34 66 36 35 66 38 66 30 65 36 66 64 63 61 034f65f8f0e6fdca
5910: 65 61 62 31 61 33 34 64 34 61 36 62 34 62 36 33 eab1a34d4a6b4b63
5920: 36 65 30 37 30 61 33 38 62 63 65 37 33 37 7d 0a 6e070a38bce737}.
5930: 0a 23 20 52 46 43 20 34 32 33 31 20 48 4d 41 43 .# RFC 4231 HMAC
5940: 20 45 78 61 6d 70 6c 65 73 20 54 65 73 74 20 43 Examples Test C
5950: 61 73 65 20 23 33 20 2d 20 54 65 73 74 20 77 69 ase #3 - Test wi
5960: 74 68 20 61 20 63 6f 6d 62 69 6e 65 64 20 6c 65 th a combined le
5970: 6e 67 74 68 20 6f 66 20 6b 65 79 20 61 6e 64 20 ngth of key and
5980: 64 61 74 61 20 74 68 61 74 20 69 73 20 6c 61 72 data that is lar
5990: 67 65 72 20 74 68 61 6e 20 36 34 20 62 79 74 65 ger than 64 byte
59a0: 73 20 28 3d 20 62 6c 6f 63 6b 2d 73 69 7a 65 20 s (= block-size
59b0: 6f 66 20 53 48 41 2d 32 32 34 20 61 6e 64 20 53 of SHA-224 and S
59c0: 48 41 2d 32 35 36 29 2e 0a 73 65 74 20 6b 65 79 HA-256)..set key
59d0: 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 [binary decode
59e0: 68 65 78 20 5b 73 74 72 69 6e 67 20 72 65 70 65 hex [string repe
59f0: 61 74 20 22 61 61 22 20 32 30 5d 5d 0a 73 65 74 at "aa" 20]].set
5a00: 20 64 61 74 61 20 5b 62 69 6e 61 72 79 20 64 65 data [binary de
5a10: 63 6f 64 65 20 68 65 78 20 5b 73 74 72 69 6e 67 code hex [string
5a20: 20 72 65 70 65 61 74 20 22 64 64 22 20 35 30 5d repeat "dd" 50]
5a30: 5d 0a 0a 0a 74 65 73 74 20 52 46 43 34 32 33 31 ]...test RFC4231
5a40: 5f 48 4d 41 43 5f 54 43 33 2d 32 31 2e 31 20 7b _HMAC_TC3-21.1 {
5a50: 73 68 61 32 32 34 7d 20 2d 62 6f 64 79 20 7b 0a sha224} -body {.
5a60: 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 .::tls::hmac -di
5a70: 67 65 73 74 20 73 68 61 32 32 34 20 2d 6b 65 79 gest sha224 -key
5a80: 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 $key -data $dat
5a90: 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 a. } -result
5aa0: 7b 37 66 62 33 63 62 33 35 38 38 63 36 63 31 66 {7fb3cb3588c6c1f
5ab0: 36 66 66 61 39 36 39 34 64 37 64 36 61 64 32 36 6ffa9694d7d6ad26
5ac0: 34 39 33 36 35 62 30 63 31 66 36 35 64 36 39 64 49365b0c1f65d69d
5ad0: 31 65 63 38 33 33 33 65 61 7d 0a 0a 74 65 73 74 1ec8333ea}..test
5ae0: 20 52 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 RFC4231_HMAC_TC
5af0: 33 2d 32 31 2e 32 20 7b 73 68 61 32 35 36 7d 20 3-21.2 {sha256}
5b00: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
5b10: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 hmac -digest sha
5b20: 32 35 36 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 256 -key $key -d
5b30: 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 ata $data. }
5b40: 2d 72 65 73 75 6c 74 20 7b 37 37 33 65 61 39 31 -result {773ea91
5b50: 65 33 36 38 30 30 65 34 36 38 35 34 64 62 38 65 e36800e46854db8e
5b60: 62 64 30 39 31 38 31 61 37 32 39 35 39 30 39 38 bd09181a72959098
5b70: 62 33 65 66 38 63 31 32 32 64 39 36 33 35 35 31 b3ef8c122d963551
5b80: 34 63 65 64 35 36 35 66 65 7d 0a 0a 74 65 73 74 4ced565fe}..test
5b90: 20 52 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 RFC4231_HMAC_TC
5ba0: 33 2d 32 31 2e 33 20 7b 73 68 61 33 38 34 7d 20 3-21.3 {sha384}
5bb0: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
5bc0: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 hmac -digest sha
5bd0: 33 38 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 384 -key $key -d
5be0: 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 ata $data. }
5bf0: 2d 72 65 73 75 6c 74 20 7b 38 38 30 36 32 36 30 -result {8806260
5c00: 38 64 33 65 36 61 64 38 61 30 61 61 32 61 63 65 8d3e6ad8a0aa2ace
5c10: 30 31 34 63 38 61 38 36 66 30 61 61 36 33 35 64 014c8a86f0aa635d
5c20: 39 34 37 61 63 39 66 65 62 65 38 33 65 66 34 65 947ac9febe83ef4e
5c30: 35 35 39 36 36 31 34 34 62 32 61 35 61 62 33 39 55966144b2a5ab39
5c40: 64 63 31 33 38 31 34 62 39 34 65 33 61 62 36 65 dc13814b94e3ab6e
5c50: 31 30 31 61 33 34 66 32 37 7d 0a 0a 74 65 73 74 101a34f27}..test
5c60: 20 52 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 RFC4231_HMAC_TC
5c70: 33 2d 32 31 2e 34 20 7b 73 68 61 35 31 32 7d 20 3-21.4 {sha512}
5c80: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
5c90: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 hmac -digest sha
5ca0: 35 31 32 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 512 -key $key -d
5cb0: 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 ata $data. }
5cc0: 2d 72 65 73 75 6c 74 20 7b 66 61 37 33 62 30 30 -result {fa73b00
5cd0: 38 39 64 35 36 61 32 38 34 65 66 62 30 66 30 37 89d56a284efb0f07
5ce0: 35 36 63 38 39 30 62 65 39 62 31 62 35 64 62 64 56c890be9b1b5dbd
5cf0: 64 38 65 65 38 31 61 33 36 35 35 66 38 33 65 33 d8ee81a3655f83e3
5d00: 33 62 32 32 37 39 64 33 39 62 66 33 65 38 34 38 3b2279d39bf3e848
5d10: 32 37 39 61 37 32 32 63 38 30 36 62 34 38 35 61 279a722c806b485a
5d20: 34 37 65 36 37 63 38 30 37 62 39 34 36 61 33 33 47e67c807b946a33
5d30: 37 62 65 65 38 39 34 32 36 37 34 32 37 38 38 35 7bee894267427885
5d40: 39 65 31 33 32 39 32 66 62 7d 0a 0a 23 20 52 46 9e13292fb}..# RF
5d50: 43 20 34 32 33 31 20 48 4d 41 43 20 45 78 61 6d C 4231 HMAC Exam
5d60: 70 6c 65 73 20 54 65 73 74 20 43 61 73 65 20 23 ples Test Case #
5d70: 34 20 2d 20 54 65 73 74 20 77 69 74 68 20 61 20 4 - Test with a
5d80: 63 6f 6d 62 69 6e 65 64 20 6c 65 6e 67 74 68 20 combined length
5d90: 6f 66 20 6b 65 79 20 61 6e 64 20 64 61 74 61 20 of key and data
5da0: 74 68 61 74 20 69 73 20 6c 61 72 67 65 72 20 74 that is larger t
5db0: 68 61 6e 20 36 34 20 62 79 74 65 73 20 28 3d 20 han 64 bytes (=
5dc0: 62 6c 6f 63 6b 2d 73 69 7a 65 20 6f 66 20 53 48 block-size of SH
5dd0: 41 2d 32 32 34 20 61 6e 64 20 53 48 41 2d 32 35 A-224 and SHA-25
5de0: 36 29 2e 0a 73 65 74 20 6b 65 79 20 5b 62 69 6e 6)..set key [bin
5df0: 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 22 ary decode hex "
5e00: 30 31 30 32 30 33 30 34 30 35 30 36 30 37 30 38 0102030405060708
5e10: 30 39 30 61 30 62 30 63 30 64 30 65 30 66 31 30 090a0b0c0d0e0f10
5e20: 31 31 31 32 31 33 31 34 31 35 31 36 31 37 31 38 1112131415161718
5e30: 31 39 22 5d 0a 73 65 74 20 64 61 74 61 20 5b 62 19"].set data [b
5e40: 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 inary decode hex
5e50: 20 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 20 [string repeat
5e60: 22 63 64 22 20 35 30 5d 5d 0a 0a 0a 74 65 73 74 "cd" 50]]...test
5e70: 20 52 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 RFC4231_HMAC_TC
5e80: 34 2d 32 32 2e 31 20 7b 73 68 61 32 32 34 7d 20 4-22.1 {sha224}
5e90: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
5ea0: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 hmac -digest sha
5eb0: 32 32 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 224 -key $key -d
5ec0: 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 ata $data. }
5ed0: 2d 72 65 73 75 6c 74 20 7b 36 63 31 31 35 30 36 -result {6c11506
5ee0: 38 37 34 30 31 33 63 61 63 36 61 32 61 62 63 31 874013cac6a2abc1
5ef0: 62 62 33 38 32 36 32 37 63 65 63 36 61 39 30 64 bb382627cec6a90d
5f00: 38 36 65 66 63 30 31 32 64 65 37 61 66 65 63 35 86efc012de7afec5
5f10: 61 7d 0a 0a 74 65 73 74 20 52 46 43 34 32 33 31 a}..test RFC4231
5f20: 5f 48 4d 41 43 5f 54 43 34 2d 32 32 2e 32 20 7b _HMAC_TC4-22.2 {
5f30: 73 68 61 32 35 36 7d 20 2d 62 6f 64 79 20 7b 0a sha256} -body {.
5f40: 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 .::tls::hmac -di
5f50: 67 65 73 74 20 73 68 61 32 35 36 20 2d 6b 65 79 gest sha256 -key
5f60: 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 $key -data $dat
5f70: 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 a. } -result
5f80: 7b 38 32 35 35 38 61 33 38 39 61 34 34 33 63 30 {82558a389a443c0
5f90: 65 61 34 63 63 38 31 39 38 39 39 66 32 30 38 33 ea4cc819899f2083
5fa0: 61 38 35 66 30 66 61 61 33 65 35 37 38 66 38 30 a85f0faa3e578f80
5fb0: 37 37 61 32 65 33 66 66 34 36 37 32 39 36 36 35 77a2e3ff46729665
5fc0: 62 7d 0a 0a 74 65 73 74 20 52 46 43 34 32 33 31 b}..test RFC4231
5fd0: 5f 48 4d 41 43 5f 54 43 34 2d 32 32 2e 33 20 7b _HMAC_TC4-22.3 {
5fe0: 73 68 61 33 38 34 7d 20 2d 62 6f 64 79 20 7b 0a sha384} -body {.
5ff0: 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 .::tls::hmac -di
6000: 67 65 73 74 20 73 68 61 33 38 34 20 2d 6b 65 79 gest sha384 -key
6010: 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 $key -data $dat
6020: 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 a. } -result
6030: 7b 33 65 38 61 36 39 62 37 37 38 33 63 32 35 38 {3e8a69b7783c258
6040: 35 31 39 33 33 61 62 36 32 39 30 61 66 36 63 61 51933ab6290af6ca
6050: 37 37 61 39 39 38 31 34 38 30 38 35 30 30 30 39 77a9981480850009
6060: 63 63 35 35 37 37 63 36 65 31 66 35 37 33 62 34 cc5577c6e1f573b4
6070: 65 36 38 30 31 64 64 32 33 63 34 61 37 64 36 37 e6801dd23c4a7d67
6080: 39 63 63 66 38 61 33 38 36 63 36 37 34 63 66 66 9ccf8a386c674cff
6090: 62 7d 0a 0a 74 65 73 74 20 52 46 43 34 32 33 31 b}..test RFC4231
60a0: 5f 48 4d 41 43 5f 54 43 34 2d 32 32 2e 34 20 7b _HMAC_TC4-22.4 {
60b0: 73 68 61 35 31 32 7d 20 2d 62 6f 64 79 20 7b 0a sha512} -body {.
60c0: 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 .::tls::hmac -di
60d0: 67 65 73 74 20 73 68 61 35 31 32 20 2d 6b 65 79 gest sha512 -key
60e0: 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 $key -data $dat
60f0: 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 a. } -result
6100: 7b 62 30 62 61 34 36 35 36 33 37 34 35 38 63 36 {b0ba465637458c6
6110: 39 39 30 65 35 61 38 63 35 66 36 31 64 34 61 66 990e5a8c5f61d4af
6120: 37 65 35 37 36 64 39 37 66 66 39 34 62 38 37 32 7e576d97ff94b872
6130: 64 65 37 36 66 38 30 35 30 33 36 31 65 65 33 64 de76f8050361ee3d
6140: 62 61 39 31 63 61 35 63 31 31 61 61 32 35 65 62 ba91ca5c11aa25eb
6150: 34 64 36 37 39 32 37 35 63 63 35 37 38 38 30 36 4d679275cc578806
6160: 33 61 35 66 31 39 37 34 31 31 32 30 63 34 66 32 3a5f19741120c4f2
6170: 64 65 32 61 64 65 62 65 62 31 30 61 32 39 38 64 de2adebeb10a298d
6180: 64 7d 0a 0a 23 20 52 46 43 20 34 32 33 31 20 48 d}..# RFC 4231 H
6190: 4d 41 43 20 45 78 61 6d 70 6c 65 73 20 54 65 73 MAC Examples Tes
61a0: 74 20 43 61 73 65 20 23 35 20 2d 20 54 65 73 74 t Case #5 - Test
61b0: 20 77 69 74 68 20 61 20 74 72 75 6e 63 61 74 69 with a truncati
61c0: 6f 6e 20 6f 66 20 6f 75 74 70 75 74 20 74 6f 20 on of output to
61d0: 31 32 38 20 62 69 74 73 2e 0a 73 65 74 20 6b 65 128 bits..set ke
61e0: 79 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 y [binary decode
61f0: 20 68 65 78 20 5b 73 74 72 69 6e 67 20 72 65 70 hex [string rep
6200: 65 61 74 20 22 30 63 22 20 32 30 5d 5d 0a 73 65 eat "0c" 20]].se
6210: 74 20 64 61 74 61 20 22 54 65 73 74 20 57 69 74 t data "Test Wit
6220: 68 20 54 72 75 6e 63 61 74 69 6f 6e 22 0a 0a 0a h Truncation"...
6230: 74 65 73 74 20 52 46 43 34 32 33 31 5f 48 4d 41 test RFC4231_HMA
6240: 43 5f 54 43 35 2d 32 33 2e 31 20 7b 73 68 61 32 C_TC5-23.1 {sha2
6250: 32 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 73 74 72 24} -body {..str
6260: 69 6e 67 20 72 61 6e 67 65 20 5b 3a 3a 74 6c 73 ing range [::tls
6270: 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 ::hmac -digest s
6280: 68 61 32 32 34 20 2d 6b 65 79 20 24 6b 65 79 20 ha224 -key $key
6290: 2d 64 61 74 61 20 24 64 61 74 61 5d 20 30 20 33 -data $data] 0 3
62a0: 31 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 1. } -result
62b0: 7b 30 65 32 61 65 61 36 38 61 39 30 63 38 64 33 {0e2aea68a90c8d3
62c0: 37 63 39 38 38 62 63 64 62 39 66 63 61 36 66 61 7c988bcdb9fca6fa
62d0: 38 7d 0a 0a 74 65 73 74 20 52 46 43 34 32 33 31 8}..test RFC4231
62e0: 5f 48 4d 41 43 5f 54 43 35 2d 32 33 2e 32 20 7b _HMAC_TC5-23.2 {
62f0: 73 68 61 32 35 36 7d 20 2d 62 6f 64 79 20 7b 0a sha256} -body {.
6300: 09 73 74 72 69 6e 67 20 72 61 6e 67 65 20 5b 3a .string range [:
6310: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 :tls::hmac -dige
6320: 73 74 20 73 68 61 32 35 36 20 2d 6b 65 79 20 24 st sha256 -key $
6330: 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 5d key -data $data]
6340: 20 30 20 33 31 0a 20 20 20 20 7d 20 2d 72 65 73 0 31. } -res
6350: 75 6c 74 20 7b 61 33 62 36 31 36 37 34 37 33 31 ult {a3b61674731
6360: 30 30 65 65 30 36 65 30 63 37 39 36 63 32 39 35 00ee06e0c796c295
6370: 35 35 35 32 62 7d 0a 0a 74 65 73 74 20 52 46 43 5552b}..test RFC
6380: 34 32 33 31 5f 48 4d 41 43 5f 54 43 35 2d 32 33 4231_HMAC_TC5-23
6390: 2e 33 20 7b 73 68 61 33 38 34 7d 20 2d 62 6f 64 .3 {sha384} -bod
63a0: 79 20 7b 0a 09 73 74 72 69 6e 67 20 72 61 6e 67 y {..string rang
63b0: 65 20 5b 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d e [::tls::hmac -
63c0: 64 69 67 65 73 74 20 73 68 61 33 38 34 20 2d 6b digest sha384 -k
63d0: 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 ey $key -data $d
63e0: 61 74 61 5d 20 30 20 33 31 0a 20 20 20 20 7d 20 ata] 0 31. }
63f0: 2d 72 65 73 75 6c 74 20 7b 33 61 62 66 33 34 63 -result {3abf34c
6400: 33 35 30 33 62 32 61 32 33 61 34 36 65 66 63 36 3503b2a23a46efc6
6410: 31 39 62 61 65 66 38 39 37 7d 0a 0a 74 65 73 74 19baef897}..test
6420: 20 52 46 43 34 32 33 31 5f 48 4d 41 43 5f 54 43 RFC4231_HMAC_TC
6430: 35 2d 32 33 2e 34 20 7b 73 68 61 35 31 32 7d 20 5-23.4 {sha512}
6440: 2d 62 6f 64 79 20 7b 0a 09 73 74 72 69 6e 67 20 -body {..string
6450: 72 61 6e 67 65 20 5b 3a 3a 74 6c 73 3a 3a 68 6d range [::tls::hm
6460: 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 35 31 ac -digest sha51
6470: 32 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 2 -key $key -dat
6480: 61 20 24 64 61 74 61 5d 20 30 20 33 31 0a 20 20 a $data] 0 31.
6490: 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 34 31 35 } -result {415
64a0: 66 61 64 36 32 37 31 35 38 30 61 35 33 31 64 34 fad6271580a531d4
64b0: 31 37 39 62 63 38 39 31 64 38 37 61 36 7d 0a 0a 179bc891d87a6}..
64c0: 23 20 52 46 43 20 34 32 33 31 20 48 4d 41 43 20 # RFC 4231 HMAC
64d0: 45 78 61 6d 70 6c 65 73 20 54 65 73 74 20 43 61 Examples Test Ca
64e0: 73 65 20 23 36 20 2d 20 54 65 73 74 20 77 69 74 se #6 - Test wit
64f0: 68 20 61 20 6b 65 79 20 6c 61 72 67 65 72 20 74 h a key larger t
6500: 68 61 6e 20 31 32 38 20 62 79 74 65 73 20 28 3d han 128 bytes (=
6510: 20 62 6c 6f 63 6b 2d 73 69 7a 65 20 6f 66 20 53 block-size of S
6520: 48 41 2d 33 38 34 20 61 6e 64 20 53 48 41 2d 35 HA-384 and SHA-5
6530: 31 32 29 2e 0a 73 65 74 20 6b 65 79 20 5b 62 69 12)..set key [bi
6540: 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 nary decode hex
6550: 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 20 22 [string repeat "
6560: 61 61 22 20 31 33 31 5d 5d 0a 73 65 74 20 64 61 aa" 131]].set da
6570: 74 61 20 22 54 65 73 74 20 55 73 69 6e 67 20 4c ta "Test Using L
6580: 61 72 67 65 72 20 54 68 61 6e 20 42 6c 6f 63 6b arger Than Block
6590: 2d 53 69 7a 65 20 4b 65 79 20 2d 20 48 61 73 68 -Size Key - Hash
65a0: 20 4b 65 79 20 46 69 72 73 74 22 0a 0a 0a 74 65 Key First"...te
65b0: 73 74 20 52 46 43 34 32 33 31 5f 48 4d 41 43 5f st RFC4231_HMAC_
65c0: 54 43 36 2d 32 34 2e 31 20 7b 73 68 61 32 32 34 TC6-24.1 {sha224
65d0: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
65e0: 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 ::hmac -digest s
65f0: 68 61 32 32 34 20 2d 6b 65 79 20 24 6b 65 79 20 ha224 -key $key
6600: 2d 64 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 -data $data.
6610: 7d 20 2d 72 65 73 75 6c 74 20 7b 39 35 65 39 61 } -result {95e9a
6620: 30 64 62 39 36 32 30 39 35 61 64 61 65 62 65 39 0db962095adaebe9
6630: 62 32 64 36 66 30 64 62 63 65 32 64 34 39 39 66 b2d6f0dbce2d499f
6640: 31 31 32 66 32 64 32 62 37 32 37 33 66 61 36 38 112f2d2b7273fa68
6650: 37 30 65 7d 0a 0a 74 65 73 74 20 52 46 43 34 32 70e}..test RFC42
6660: 33 31 5f 48 4d 41 43 5f 54 43 36 2d 32 34 2e 32 31_HMAC_TC6-24.2
6670: 20 7b 73 68 61 32 35 36 7d 20 2d 62 6f 64 79 20 {sha256} -body
6680: 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d {..::tls::hmac -
6690: 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d 6b digest sha256 -k
66a0: 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 ey $key -data $d
66b0: 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c ata. } -resul
66c0: 74 20 7b 36 30 65 34 33 31 35 39 31 65 65 30 62 t {60e431591ee0b
66d0: 36 37 66 30 64 38 61 32 36 61 61 63 62 66 35 62 67f0d8a26aacbf5b
66e0: 37 37 66 38 65 30 62 63 36 32 31 33 37 32 38 63 77f8e0bc6213728c
66f0: 35 31 34 30 35 34 36 30 34 30 66 30 65 65 33 37 5140546040f0ee37
6700: 66 35 34 7d 0a 0a 74 65 73 74 20 52 46 43 34 32 f54}..test RFC42
6710: 33 31 5f 48 4d 41 43 5f 54 43 36 2d 32 34 2e 33 31_HMAC_TC6-24.3
6720: 20 7b 73 68 61 33 38 34 7d 20 2d 62 6f 64 79 20 {sha384} -body
6730: 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d {..::tls::hmac -
6740: 64 69 67 65 73 74 20 73 68 61 33 38 34 20 2d 6b digest sha384 -k
6750: 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 ey $key -data $d
6760: 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c ata. } -resul
6770: 74 20 7b 34 65 63 65 30 38 34 34 38 35 38 31 33 t {4ece084485813
6780: 65 39 30 38 38 64 32 63 36 33 61 30 34 31 62 63 e9088d2c63a041bc
6790: 35 62 34 34 66 39 65 66 31 30 31 32 61 32 62 35 5b44f9ef1012a2b5
67a0: 38 38 66 33 63 64 31 31 66 30 35 30 33 33 61 63 88f3cd11f05033ac
67b0: 34 63 36 30 63 32 65 66 36 61 62 34 30 33 30 66 4c60c2ef6ab4030f
67c0: 65 38 32 39 36 32 34 38 64 66 31 36 33 66 34 34 e8296248df163f44
67d0: 39 35 32 7d 0a 0a 74 65 73 74 20 52 46 43 34 32 952}..test RFC42
67e0: 33 31 5f 48 4d 41 43 5f 54 43 36 2d 32 34 2e 34 31_HMAC_TC6-24.4
67f0: 20 7b 73 68 61 35 31 32 7d 20 2d 62 6f 64 79 20 {sha512} -body
6800: 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d {..::tls::hmac -
6810: 64 69 67 65 73 74 20 73 68 61 35 31 32 20 2d 6b digest sha512 -k
6820: 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 ey $key -data $d
6830: 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c ata. } -resul
6840: 74 20 7b 38 30 62 32 34 32 36 33 63 37 63 31 61 t {80b24263c7c1a
6850: 33 65 62 62 37 31 34 39 33 63 31 64 64 37 62 65 3ebb71493c1dd7be
6860: 38 62 34 39 62 34 36 64 31 66 34 31 62 34 61 65 8b49b46d1f41b4ae
6870: 65 63 31 31 32 31 62 30 31 33 37 38 33 66 38 66 ec1121b013783f8f
6880: 33 35 32 36 62 35 36 64 30 33 37 65 30 35 66 32 3526b56d037e05f2
6890: 35 39 38 62 64 30 66 64 32 32 31 35 64 36 61 31 598bd0fd2215d6a1
68a0: 65 35 32 39 35 65 36 34 66 37 33 66 36 33 66 30 e5295e64f73f63f0
68b0: 61 65 63 38 62 39 31 35 61 39 38 35 64 37 38 36 aec8b915a985d786
68c0: 35 39 38 7d 0a 0a 23 20 52 46 43 20 34 32 33 31 598}..# RFC 4231
68d0: 20 48 4d 41 43 20 45 78 61 6d 70 6c 65 73 20 54 HMAC Examples T
68e0: 65 73 74 20 43 61 73 65 20 23 37 20 2d 20 54 65 est Case #7 - Te
68f0: 73 74 20 77 69 74 68 20 61 20 6b 65 79 20 61 6e st with a key an
6900: 64 20 64 61 74 61 20 74 68 61 74 20 69 73 20 6c d data that is l
6910: 61 72 67 65 72 20 74 68 61 6e 20 31 32 38 20 62 arger than 128 b
6920: 79 74 65 73 20 28 3d 20 62 6c 6f 63 6b 2d 73 69 ytes (= block-si
6930: 7a 65 20 6f 66 20 53 48 41 2d 33 38 34 20 61 6e ze of SHA-384 an
6940: 64 20 53 48 41 2d 35 31 32 29 2e 0a 73 65 74 20 d SHA-512)..set
6950: 6b 65 79 20 5b 62 69 6e 61 72 79 20 64 65 63 6f key [binary deco
6960: 64 65 20 68 65 78 20 5b 73 74 72 69 6e 67 20 72 de hex [string r
6970: 65 70 65 61 74 20 22 61 61 22 20 31 33 31 5d 5d epeat "aa" 131]]
6980: 0a 73 65 74 20 64 61 74 61 20 22 54 68 69 73 20 .set data "This
6990: 69 73 20 61 20 74 65 73 74 20 75 73 69 6e 67 20 is a test using
69a0: 61 20 6c 61 72 67 65 72 20 74 68 61 6e 20 62 6c a larger than bl
69b0: 6f 63 6b 2d 73 69 7a 65 20 6b 65 79 20 61 6e 64 ock-size key and
69c0: 20 61 20 6c 61 72 67 65 72 20 74 68 61 6e 20 62 a larger than b
69d0: 6c 6f 63 6b 2d 73 69 7a 65 20 64 61 74 61 2e 20 lock-size data.
69e0: 54 68 65 20 6b 65 79 20 6e 65 65 64 73 20 74 6f The key needs to
69f0: 20 62 65 20 68 61 73 68 65 64 20 62 65 66 6f 72 be hashed befor
6a00: 65 20 62 65 69 6e 67 20 75 73 65 64 20 62 79 20 e being used by
6a10: 74 68 65 20 48 4d 41 43 20 61 6c 67 6f 72 69 74 the HMAC algorit
6a20: 68 6d 2e 22 0a 0a 0a 74 65 73 74 20 52 46 43 34 hm."...test RFC4
6a30: 32 33 31 5f 48 4d 41 43 5f 54 43 37 2d 32 35 2e 231_HMAC_TC7-25.
6a40: 31 20 7b 73 68 61 32 32 34 7d 20 2d 62 6f 64 79 1 {sha224} -body
6a50: 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 {..::tls::hmac
6a60: 2d 64 69 67 65 73 74 20 73 68 61 32 32 34 20 2d -digest sha224 -
6a70: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 key $key -data $
6a80: 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 data. } -resu
6a90: 6c 74 20 7b 33 61 38 35 34 31 36 36 61 63 35 64 lt {3a854166ac5d
6aa0: 39 66 30 32 33 66 35 34 64 35 31 37 64 30 62 33 9f023f54d517d0b3
6ab0: 39 64 62 64 39 34 36 37 37 30 64 62 39 63 32 62 9dbd946770db9c2b
6ac0: 39 35 63 39 66 36 66 35 36 35 64 31 7d 0a 0a 74 95c9f6f565d1}..t
6ad0: 65 73 74 20 52 46 43 34 32 33 31 5f 48 4d 41 43 est RFC4231_HMAC
6ae0: 5f 54 43 37 2d 32 35 2e 32 20 7b 73 68 61 32 35 _TC7-25.2 {sha25
6af0: 36 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 6} -body {..::tl
6b00: 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 s::hmac -digest
6b10: 73 68 61 32 35 36 20 2d 6b 65 79 20 24 6b 65 79 sha256 -key $key
6b20: 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 20 20 -data $data.
6b30: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 39 62 30 39 } -result {9b09
6b40: 66 66 61 37 31 62 39 34 32 66 63 62 32 37 36 33 ffa71b942fcb2763
6b50: 35 66 62 63 64 35 62 30 65 39 34 34 62 66 64 63 5fbcd5b0e944bfdc
6b60: 36 33 36 34 34 66 30 37 31 33 39 33 38 61 37 66 63644f0713938a7f
6b70: 35 31 35 33 35 63 33 61 33 35 65 32 7d 0a 0a 74 51535c3a35e2}..t
6b80: 65 73 74 20 52 46 43 34 32 33 31 5f 48 4d 41 43 est RFC4231_HMAC
6b90: 5f 54 43 37 2d 32 35 2e 33 20 7b 73 68 61 33 38 _TC7-25.3 {sha38
6ba0: 34 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 4} -body {..::tl
6bb0: 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 s::hmac -digest
6bc0: 73 68 61 33 38 34 20 2d 6b 65 79 20 24 6b 65 79 sha384 -key $key
6bd0: 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 20 20 -data $data.
6be0: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 36 36 31 37 } -result {6617
6bf0: 31 37 38 65 39 34 31 66 30 32 30 64 33 35 31 65 178e941f020d351e
6c00: 32 66 32 35 34 65 38 66 64 33 32 63 36 30 32 34 2f254e8fd32c6024
6c10: 32 30 66 65 62 30 62 38 66 62 39 61 64 63 63 65 20feb0b8fb9adcce
6c20: 62 62 38 32 34 36 31 65 39 39 63 35 61 36 37 38 bb82461e99c5a678
6c30: 63 63 33 31 65 37 39 39 31 37 36 64 33 38 36 30 cc31e799176d3860
6c40: 65 36 31 31 30 63 34 36 35 32 33 65 7d 0a 0a 74 e6110c46523e}..t
6c50: 65 73 74 20 52 46 43 34 32 33 31 5f 48 4d 41 43 est RFC4231_HMAC
6c60: 5f 54 43 37 2d 32 35 2e 34 20 7b 73 68 61 35 31 _TC7-25.4 {sha51
6c70: 32 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 2} -body {..::tl
6c80: 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 s::hmac -digest
6c90: 73 68 61 35 31 32 20 2d 6b 65 79 20 24 6b 65 79 sha512 -key $key
6ca0: 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 20 20 -data $data.
6cb0: 20 7d 20 2d 72 65 73 75 6c 74 20 7b 65 33 37 62 } -result {e37b
6cc0: 36 61 37 37 35 64 63 38 37 64 62 61 61 34 64 66 6a775dc87dbaa4df
6cd0: 61 39 66 39 36 65 35 65 33 66 66 64 64 65 62 64 a9f96e5e3ffddebd
6ce0: 37 31 66 38 38 36 37 32 38 39 38 36 35 64 66 35 71f8867289865df5
6cf0: 61 33 32 64 32 30 63 64 63 39 34 34 62 36 30 32 a32d20cdc944b602
6d00: 32 63 61 63 33 63 34 39 38 32 62 31 30 64 35 65 2cac3c4982b10d5e
6d10: 65 62 35 35 63 33 65 34 64 65 31 35 31 33 34 36 eb55c3e4de151346
6d20: 37 36 66 62 36 64 65 30 34 34 36 30 36 35 63 39 76fb6de0446065c9
6d30: 37 34 34 30 66 61 38 63 36 61 35 38 7d 0a 0a 23 7440fa8c6a58}..#
6d40: 20 4e 49 53 54 20 38 30 30 2d 33 38 62 20 52 65 NIST 800-38b Re
6d50: 63 6f 6d 6d 65 6e 64 61 74 69 6f 6e 20 66 6f 72 commendation for
6d60: 20 42 6c 6f 63 6b 20 43 69 70 68 65 72 20 4d 6f Block Cipher Mo
6d70: 64 65 73 20 6f 66 20 4f 70 65 72 61 74 69 6f 6e des of Operation
6d80: 3a 20 54 68 65 20 43 4d 41 43 20 4d 6f 64 65 20 : The CMAC Mode
6d90: 66 6f 72 20 41 75 74 68 65 6e 74 69 63 61 74 69 for Authenticati
6da0: 6f 6e 0a 23 20 41 45 53 2d 31 32 38 0a 73 65 74 on.# AES-128.set
6db0: 20 6b 65 79 20 5b 62 69 6e 61 72 79 20 64 65 63 key [binary dec
6dc0: 6f 64 65 20 68 65 78 20 22 32 62 37 65 31 35 31 ode hex "2b7e151
6dd0: 36 32 38 61 65 64 32 61 36 61 62 66 37 31 35 38 628aed2a6abf7158
6de0: 38 30 39 63 66 34 66 33 63 22 5d 0a 0a 0a 74 65 809cf4f3c"]...te
6df0: 73 74 20 4e 49 53 54 38 30 30 2d 33 38 62 2d 41 st NIST800-38b-A
6e00: 45 53 31 32 38 2d 32 36 2e 31 20 7b 6c 65 6e 3d ES128-26.1 {len=
6e10: 30 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 0} -body {..::tl
6e20: 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 20 s::cmac -cipher
6e30: 61 65 73 2d 31 32 38 2d 63 62 63 20 2d 6b 65 79 aes-128-cbc -key
6e40: 20 24 6b 65 79 20 2d 64 61 74 61 20 22 22 0a 20 $key -data "".
6e50: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 62 62 } -result {bb
6e60: 31 64 36 39 32 39 65 39 35 39 33 37 32 38 37 66 1d6929e95937287f
6e70: 61 33 37 64 31 32 39 62 37 35 36 37 34 36 7d 0a a37d129b756746}.
6e80: 73 65 74 20 64 61 74 61 20 5b 62 69 6e 61 72 79 set data [binary
6e90: 20 64 65 63 6f 64 65 20 68 65 78 20 22 36 62 63 decode hex "6bc
6ea0: 31 62 65 65 32 32 65 34 30 39 66 39 36 65 39 33 1bee22e409f96e93
6eb0: 64 37 65 31 31 37 33 39 33 31 37 32 61 22 5d 0a d7e117393172a"].
6ec0: 0a 74 65 73 74 20 4e 49 53 54 38 30 30 2d 33 38 .test NIST800-38
6ed0: 62 2d 41 45 53 31 32 38 2d 32 36 2e 32 20 7b 6c b-AES128-26.2 {l
6ee0: 65 6e 3d 31 32 38 7d 20 2d 62 6f 64 79 20 7b 0a en=128} -body {.
6ef0: 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 .::tls::cmac -ci
6f00: 70 68 65 72 20 61 65 73 2d 31 32 38 2d 63 62 63 pher aes-128-cbc
6f10: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 -key $key -data
6f20: 20 24 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 $data. } -re
6f30: 73 75 6c 74 20 7b 30 37 30 61 31 36 62 34 36 62 sult {070a16b46b
6f40: 34 64 34 31 34 34 66 37 39 62 64 64 39 64 64 30 4d4144f79bdd9dd0
6f50: 34 61 32 38 37 63 7d 0a 73 65 74 20 64 61 74 61 4a287c}.set data
6f60: 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 [binary decode
6f70: 68 65 78 20 22 36 62 63 31 62 65 65 32 32 65 34 hex "6bc1bee22e4
6f80: 30 39 66 39 36 65 39 33 64 37 65 31 31 37 33 39 09f96e93d7e11739
6f90: 33 31 37 32 61 61 65 32 64 38 61 35 37 31 65 30 3172aae2d8a571e0
6fa0: 33 61 63 39 63 39 65 62 37 36 66 61 63 34 35 61 3ac9c9eb76fac45a
6fb0: 66 38 65 35 31 33 30 63 38 31 63 34 36 61 33 35 f8e5130c81c46a35
6fc0: 63 65 34 31 31 22 5d 0a 0a 74 65 73 74 20 4e 49 ce411"]..test NI
6fd0: 53 54 38 30 30 2d 33 38 62 2d 41 45 53 31 32 38 ST800-38b-AES128
6fe0: 2d 32 36 2e 33 20 7b 6c 65 6e 3d 33 32 30 7d 20 -26.3 {len=320}
6ff0: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
7000: 63 6d 61 63 20 2d 63 69 70 68 65 72 20 61 65 73 cmac -cipher aes
7010: 2d 31 32 38 2d 63 62 63 20 2d 6b 65 79 20 24 6b -128-cbc -key $k
7020: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 ey -data $data.
7030: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 64 66 } -result {df
7040: 61 36 36 37 34 37 64 65 39 61 65 36 33 30 33 30 a66747de9ae63030
7050: 63 61 33 32 36 31 31 34 39 37 63 38 32 37 7d 0a ca32611497c827}.
7060: 73 65 74 20 64 61 74 61 20 5b 62 69 6e 61 72 79 set data [binary
7070: 20 64 65 63 6f 64 65 20 68 65 78 20 22 36 62 63 decode hex "6bc
7080: 31 62 65 65 32 32 65 34 30 39 66 39 36 65 39 33 1bee22e409f96e93
7090: 64 37 65 31 31 37 33 39 33 31 37 32 61 61 65 32 d7e117393172aae2
70a0: 64 38 61 35 37 31 65 30 33 61 63 39 63 39 65 62 d8a571e03ac9c9eb
70b0: 37 36 66 61 63 34 35 61 66 38 65 35 31 33 30 63 76fac45af8e5130c
70c0: 38 31 63 34 36 61 33 35 63 65 34 31 31 65 35 66 81c46a35ce411e5f
70d0: 62 63 31 31 39 31 61 30 61 35 32 65 66 66 36 39 bc1191a0a52eff69
70e0: 66 32 34 34 35 64 66 34 66 39 62 31 37 61 64 32 f2445df4f9b17ad2
70f0: 62 34 31 37 62 65 36 36 63 33 37 31 30 22 5d 0a b417be66c3710"].
7100: 0a 74 65 73 74 20 4e 49 53 54 38 30 30 2d 33 38 .test NIST800-38
7110: 62 2d 41 45 53 31 32 38 2d 32 36 2e 34 20 7b 6c b-AES128-26.4 {l
7120: 65 6e 3d 35 31 32 7d 20 2d 62 6f 64 79 20 7b 0a en=512} -body {.
7130: 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 .::tls::cmac -ci
7140: 70 68 65 72 20 61 65 73 2d 31 32 38 2d 63 62 63 pher aes-128-cbc
7150: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 -key $key -data
7160: 20 24 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 65 $data. } -re
7170: 73 75 6c 74 20 7b 35 31 66 30 62 65 62 66 37 65 sult {51f0bebf7e
7180: 33 62 39 64 39 32 66 63 34 39 37 34 31 37 37 39 3b9d92fc49741779
7190: 33 36 33 63 66 65 7d 0a 0a 23 20 41 45 53 2d 31 363cfe}..# AES-1
71a0: 39 32 0a 73 65 74 20 6b 65 79 20 5b 62 69 6e 61 92.set key [bina
71b0: 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 22 38 ry decode hex "8
71c0: 65 37 33 62 30 66 37 64 61 30 65 36 34 35 32 63 e73b0f7da0e6452c
71d0: 38 31 30 66 33 32 62 38 30 39 30 37 39 65 35 36 810f32b809079e56
71e0: 32 66 38 65 61 64 32 35 32 32 63 36 62 37 62 22 2f8ead2522c6b7b"
71f0: 5d 0a 0a 0a 74 65 73 74 20 4e 49 53 54 38 30 30 ]...test NIST800
7200: 2d 33 38 62 2d 41 45 53 2d 31 39 32 2d 32 37 2e -38b-AES-192-27.
7210: 31 20 7b 6c 65 6e 3d 30 7d 20 2d 62 6f 64 79 20 1 {len=0} -body
7220: 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d {..::tls::cmac -
7230: 63 69 70 68 65 72 20 61 65 73 2d 31 39 32 2d 63 cipher aes-192-c
7240: 62 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 bc -key $key -da
7250: 74 61 20 22 22 0a 20 20 20 20 7d 20 2d 72 65 73 ta "". } -res
7260: 75 6c 74 20 7b 64 31 37 64 64 66 34 36 61 64 61 ult {d17ddf46ada
7270: 61 63 64 65 35 33 31 63 61 63 34 38 33 64 65 37 acde531cac483de7
7280: 61 39 33 36 37 7d 0a 73 65 74 20 64 61 74 61 20 a9367}.set data
7290: 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 [binary decode h
72a0: 65 78 20 22 36 62 63 31 62 65 65 32 32 65 34 30 ex "6bc1bee22e40
72b0: 39 66 39 36 65 39 33 64 37 65 31 31 37 33 39 33 9f96e93d7e117393
72c0: 31 37 32 61 22 5d 0a 0a 74 65 73 74 20 4e 49 53 172a"]..test NIS
72d0: 54 38 30 30 2d 33 38 62 2d 41 45 53 2d 31 39 32 T800-38b-AES-192
72e0: 2d 32 37 2e 32 20 7b 6c 65 6e 3d 31 32 38 7d 20 -27.2 {len=128}
72f0: 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a -body {..::tls::
7300: 63 6d 61 63 20 2d 63 69 70 68 65 72 20 61 65 73 cmac -cipher aes
7310: 2d 31 39 32 2d 63 62 63 20 2d 6b 65 79 20 24 6b -192-cbc -key $k
7320: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 0a 20 ey -data $data.
7330: 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 39 65 } -result {9e
7340: 39 39 61 37 62 66 33 31 65 37 31 30 39 30 30 36 99a7bf31e7109006
7350: 36 32 66 36 35 65 36 31 37 63 35 31 38 34 7d 0a 62f65e617c5184}.
7360: 73 65 74 20 64 61 74 61 20 5b 62 69 6e 61 72 79 set data [binary
7370: 20 64 65 63 6f 64 65 20 68 65 78 20 22 36 62 63 decode hex "6bc
7380: 31 62 65 65 32 32 65 34 30 39 66 39 36 65 39 33 1bee22e409f96e93
7390: 64 37 65 31 31 37 33 39 33 31 37 32 61 61 65 32 d7e117393172aae2
73a0: 64 38 61 35 37 31 65 30 33 61 63 39 63 39 65 62 d8a571e03ac9c9eb
73b0: 37 36 66 61 63 34 35 61 66 38 65 35 31 33 30 63 76fac45af8e5130c
73c0: 38 31 63 34 36 61 33 35 63 65 34 31 31 22 5d 0a 81c46a35ce411"].
73d0: 0a 74 65 73 74 20 4e 49 53 54 38 30 30 2d 33 38 .test NIST800-38
73e0: 62 2d 41 45 53 2d 31 39 32 2d 32 37 2e 33 20 7b b-AES-192-27.3 {
73f0: 6c 65 6e 3d 33 32 30 7d 20 2d 62 6f 64 79 20 7b len=320} -body {
7400: 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 ..::tls::cmac -c
7410: 69 70 68 65 72 20 61 65 73 2d 31 39 32 2d 63 62 ipher aes-192-cb
7420: 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 c -key $key -dat
7430: 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 2d 72 a $data. } -r
7440: 65 73 75 6c 74 20 7b 38 61 31 64 65 35 62 65 32 esult {8a1de5be2
7450: 65 62 33 31 61 61 64 30 38 39 61 38 32 65 36 65 eb31aad089a82e6e
7460: 65 39 30 38 62 30 65 7d 0a 73 65 74 20 64 61 74 e908b0e}.set dat
7470: 61 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 a [binary decode
7480: 20 68 65 78 20 22 36 62 63 31 62 65 65 32 32 65 hex "6bc1bee22e
7490: 34 30 39 66 39 36 65 39 33 64 37 65 31 31 37 33 409f96e93d7e1173
74a0: 39 33 31 37 32 61 61 65 32 64 38 61 35 37 31 65 93172aae2d8a571e
74b0: 30 33 61 63 39 63 39 65 62 37 36 66 61 63 34 35 03ac9c9eb76fac45
74c0: 61 66 38 65 35 31 33 30 63 38 31 63 34 36 61 33 af8e5130c81c46a3
74d0: 35 63 65 34 31 31 65 35 66 62 63 31 31 39 31 61 5ce411e5fbc1191a
74e0: 30 61 35 32 65 66 66 36 39 66 32 34 34 35 64 66 0a52eff69f2445df
74f0: 34 66 39 62 31 37 61 64 32 62 34 31 37 62 65 36 4f9b17ad2b417be6
7500: 36 63 33 37 31 30 22 5d 0a 0a 74 65 73 74 20 4e 6c3710"]..test N
7510: 49 53 54 38 30 30 2d 33 38 62 2d 41 45 53 2d 31 IST800-38b-AES-1
7520: 39 32 2d 32 37 2e 34 20 7b 6c 65 6e 3d 35 31 32 92-27.4 {len=512
7530: 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 73 } -body {..::tls
7540: 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 20 61 ::cmac -cipher a
7550: 65 73 2d 31 39 32 2d 63 62 63 20 2d 6b 65 79 20 es-192-cbc -key
7560: 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 $key -data $data
7570: 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b . } -result {
7580: 61 31 64 35 64 66 30 65 65 64 37 39 30 66 37 39 a1d5df0eed790f79
7590: 34 64 37 37 35 38 39 36 35 39 66 33 39 61 31 31 4d77589659f39a11
75a0: 7d 0a 0a 23 20 41 45 53 2d 32 35 36 0a 73 65 74 }..# AES-256.set
75b0: 20 6b 65 79 20 5b 62 69 6e 61 72 79 20 64 65 63 key [binary dec
75c0: 6f 64 65 20 68 65 78 20 22 36 30 33 64 65 62 31 ode hex "603deb1
75d0: 30 31 35 63 61 37 31 62 65 32 62 37 33 61 65 66 015ca71be2b73aef
75e0: 30 38 35 37 64 37 37 38 31 31 66 33 35 32 63 30 0857d77811f352c0
75f0: 37 33 62 36 31 30 38 64 37 32 64 39 38 31 30 61 73b6108d72d9810a
7600: 33 30 39 31 34 64 66 66 34 22 5d 0a 0a 0a 74 65 30914dff4"]...te
7610: 73 74 20 4e 49 53 54 38 30 30 2d 33 38 62 2d 41 st NIST800-38b-A
7620: 45 53 2d 32 35 36 2d 32 38 2e 31 20 7b 6c 65 6e ES-256-28.1 {len
7630: 3d 30 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 =0} -body {..::t
7640: 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 ls::cmac -cipher
7650: 20 61 65 73 2d 32 35 36 2d 63 62 63 20 2d 6b 65 aes-256-cbc -ke
7660: 79 20 24 6b 65 79 20 2d 64 61 74 61 20 22 22 0a y $key -data "".
7670: 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 7b 30 } -result {0
7680: 32 38 39 36 32 66 36 31 62 37 62 66 38 39 65 66 28962f61b7bf89ef
7690: 63 36 62 35 35 31 66 34 36 36 37 64 39 38 33 7d c6b551f4667d983}
76a0: 0a 73 65 74 20 64 61 74 61 20 5b 62 69 6e 61 72 .set data [binar
76b0: 79 20 64 65 63 6f 64 65 20 68 65 78 20 22 36 62 y decode hex "6b
76c0: 63 31 62 65 65 32 32 65 34 30 39 66 39 36 65 39 c1bee22e409f96e9
76d0: 33 64 37 65 31 31 37 33 39 33 31 37 32 61 22 5d 3d7e117393172a"]
76e0: 0a 0a 74 65 73 74 20 4e 49 53 54 38 30 30 2d 33 ..test NIST800-3
76f0: 38 62 2d 41 45 53 2d 32 35 36 2d 32 38 2e 32 20 8b-AES-256-28.2
7700: 7b 6c 65 6e 3d 31 32 38 7d 20 2d 62 6f 64 79 20 {len=128} -body
7710: 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d {..::tls::cmac -
7720: 63 69 70 68 65 72 20 61 65 73 2d 32 35 36 2d 63 cipher aes-256-c
7730: 62 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 bc -key $key -da
7740: 74 61 20 24 64 61 74 61 0a 20 20 20 20 7d 20 2d ta $data. } -
7750: 72 65 73 75 6c 74 20 7b 32 38 61 37 30 32 33 66 result {28a7023f
7760: 34 35 32 65 38 66 38 32 62 64 34 62 66 32 38 64 452e8f82bd4bf28d
7770: 38 63 33 37 63 33 35 63 7d 0a 73 65 74 20 64 61 8c37c35c}.set da
7780: 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 ta [binary decod
7790: 65 20 68 65 78 20 22 36 62 63 31 62 65 65 32 32 e hex "6bc1bee22
77a0: 65 34 30 39 66 39 36 65 39 33 64 37 65 31 31 37 e409f96e93d7e117
77b0: 33 39 33 31 37 32 61 61 65 32 64 38 61 35 37 31 393172aae2d8a571
77c0: 65 30 33 61 63 39 63 39 65 62 37 36 66 61 63 34 e03ac9c9eb76fac4
77d0: 35 61 66 38 65 35 31 33 30 63 38 31 63 34 36 61 5af8e5130c81c46a
77e0: 33 35 63 65 34 31 31 22 5d 0a 0a 74 65 73 74 20 35ce411"]..test
77f0: 4e 49 53 54 38 30 30 2d 33 38 62 2d 41 45 53 2d NIST800-38b-AES-
7800: 32 35 36 2d 32 38 2e 33 20 7b 6c 65 6e 3d 33 32 256-28.3 {len=32
7810: 30 7d 20 2d 62 6f 64 79 20 7b 0a 09 3a 3a 74 6c 0} -body {..::tl
7820: 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 20 s::cmac -cipher
7830: 61 65 73 2d 32 35 36 2d 63 62 63 20 2d 6b 65 79 aes-256-cbc -key
7840: 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 $key -data $dat
7850: 61 0a 20 20 20 20 7d 20 2d 72 65 73 75 6c 74 20 a. } -result
7860: 7b 61 61 66 33 64 38 66 31 64 65 35 36 34 30 63 {aaf3d8f1de5640c
7870: 32 33 32 66 35 62 31 36 39 62 39 63 39 31 31 65 232f5b169b9c911e
7880: 36 7d 0a 73 65 74 20 64 61 74 61 20 5b 62 69 6e 6}.set data [bin
7890: 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 22 ary decode hex "
78a0: 36 62 63 31 62 65 65 32 32 65 34 30 39 66 39 36 6bc1bee22e409f96
78b0: 65 39 33 64 37 65 31 31 37 33 39 33 31 37 32 61 e93d7e117393172a
78c0: 61 65 32 64 38 61 35 37 31 65 30 33 61 63 39 63 ae2d8a571e03ac9c
78d0: 39 65 62 37 36 66 61 63 34 35 61 66 38 65 35 31 9eb76fac45af8e51
78e0: 33 30 63 38 31 63 34 36 61 33 35 63 65 34 31 31 30c81c46a35ce411
78f0: 65 35 66 62 63 31 31 39 31 61 30 61 35 32 65 66 e5fbc1191a0a52ef
7900: 66 36 39 66 32 34 34 35 64 66 34 66 39 62 31 37 f69f2445df4f9b17
7910: 61 64 32 62 34 31 37 62 65 36 36 63 33 37 31 30 ad2b417be66c3710
7920: 22 5d 0a 0a 74 65 73 74 20 4e 49 53 54 38 30 30 "]..test NIST800
7930: 2d 33 38 62 2d 41 45 53 2d 32 35 36 2d 32 38 2e -38b-AES-256-28.
7940: 34 20 7b 6c 65 6e 3d 35 31 32 7d 20 2d 62 6f 64 4 {len=512} -bod
7950: 79 20 7b 0a 09 3a 3a 74 6c 73 3a 3a 63 6d 61 63 y {..::tls::cmac
7960: 20 2d 63 69 70 68 65 72 20 61 65 73 2d 32 35 36 -cipher aes-256
7970: 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d -cbc -key $key -
7980: 64 61 74 61 20 24 64 61 74 61 0a 20 20 20 20 7d data $data. }
7990: 20 2d 72 65 73 75 6c 74 20 7b 65 31 39 39 32 31 -result {e19921
79a0: 39 30 35 34 39 66 36 65 64 35 36 39 36 61 32 63 90549f6ed5696a2c
79b0: 30 35 36 63 33 31 35 34 31 30 7d 0a 0a 23 20 43 056c315410}..# C
79c0: 6c 65 61 6e 75 70 0a 3a 3a 74 63 6c 74 65 73 74 leanup.::tcltest
79d0: 3a 3a 72 65 6d 6f 76 65 46 69 6c 65 20 24 74 65 ::removeFile $te
79e0: 73 74 5f 66 69 6c 65 0a 3a 3a 74 63 6c 74 65 73 st_file.::tcltes
79f0: 74 3a 3a 72 65 6d 6f 76 65 46 69 6c 65 20 24 74 t::removeFile $t
7a00: 65 73 74 5f 61 6c 74 5f 66 69 6c 65 0a 0a 23 20 est_alt_file..#
7a10: 43 6c 65 61 6e 75 70 0a 3a 3a 74 63 6c 74 65 73 Cleanup.::tcltes
7a20: 74 3a 3a 63 6c 65 61 6e 75 70 54 65 73 74 73 0a t::cleanupTests.
7a30: 72 65 74 75 72 6e 0a return.