Hex Artifact Content

Artifact c6f01eee035cda79c320a1d4472edc400e8ec01252efb7961e6e30d39c539bf8:


0000: 23 20 47 72 6f 75 70 2c 4e 61 6d 65 2c 43 6f 6e  # Group,Name,Con
0010: 73 74 72 61 69 6e 74 73 2c 53 65 74 75 70 2c 42  straints,Setup,B
0020: 6f 64 79 2c 43 6c 65 61 6e 75 70 2c 4d 61 74 63  ody,Cleanup,Matc
0030: 68 2c 52 65 73 75 6c 74 2c 4f 75 74 70 75 74 2c  h,Result,Output,
0040: 45 72 72 6f 72 20 4f 75 74 70 75 74 2c 52 65 74  Error Output,Ret
0050: 75 72 6e 20 43 6f 64 65 73 0a 63 6f 6d 6d 61 6e  urn Codes.comman
0060: 64 2c 70 61 63 6b 61 67 65 20 72 65 71 75 69 72  d,package requir
0070: 65 20 74 6c 73 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 2c  e tls,,,,,,,,,.,
0080: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e  ,,,,,,,,,.comman
0090: 64 2c 23 20 43 6f 6e 73 74 72 61 69 6e 74 73 2c  d,# Constraints,
00a0: 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64  ,,,,,,,,.command
00b0: 2c 73 6f 75 72 63 65 20 63 6f 6d 6d 6f 6e 2e 74  ,source common.t
00c0: 63 6c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 2c 2c 2c 2c  cl,,,,,,,,,.,,,,
00d0: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23  ,,,,,,.command,#
00e0: 20 48 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e   Helper function
00f0: 73 20 2d 20 53 65 65 20 63 6f 6d 6d 6f 6e 2e 74  s - See common.t
0100: 63 6c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  cl,,,,,,,,,.comm
0110: 61 6e 64 2c 70 72 6f 63 20 64 69 67 65 73 74 5f  and,proc digest_
0120: 72 65 61 64 5f 63 68 61 6e 20 7b 63 6d 64 20 66  read_chan {cmd f
0130: 69 6c 65 6e 61 6d 65 20 61 72 67 73 7d 20 7b 3b  ilename args} {;
0140: 73 65 74 20 63 68 20 5b 6f 70 65 6e 20 24 66 69  set ch [open $fi
0150: 6c 65 6e 61 6d 65 20 72 62 5d 3b 73 65 74 20 62  lename rb];set b
0160: 73 69 7a 65 20 5b 66 63 6f 6e 66 69 67 75 72 65  size [fconfigure
0170: 20 24 63 68 20 2d 62 75 66 66 65 72 73 69 7a 65   $ch -buffersize
0180: 5d 3b 73 65 74 20 6e 65 77 20 5b 24 63 6d 64 20  ];set new [$cmd 
0190: 7b 2a 7d 24 61 72 67 73 20 2d 63 68 61 6e 20 24  {*}$args -chan $
01a0: 63 68 5d 3b 77 68 69 6c 65 20 7b 21 5b 65 6f 66  ch];while {![eof
01b0: 20 24 6e 65 77 5d 7d 20 7b 73 65 74 20 6d 64 20   $new]} {set md 
01c0: 5b 72 65 61 64 20 24 6e 65 77 20 24 62 73 69 7a  [read $new $bsiz
01d0: 65 5d 7d 3b 63 6c 6f 73 65 20 24 6e 65 77 3b 72  e]};close $new;r
01e0: 65 74 75 72 6e 20 24 6d 64 7d 2c 2c 2c 2c 2c 2c  eturn $md},,,,,,
01f0: 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 70 72 6f 63  ,,,.command,proc
0200: 20 64 69 67 65 73 74 5f 77 72 69 74 65 5f 63 68   digest_write_ch
0210: 61 6e 20 7b 63 6d 64 20 66 69 6c 65 6e 61 6d 65  an {cmd filename
0220: 20 64 61 74 61 20 61 72 67 73 7d 20 7b 3b 73 65   data args} {;se
0230: 74 20 63 68 20 5b 6f 70 65 6e 20 24 66 69 6c 65  t ch [open $file
0240: 6e 61 6d 65 20 77 62 5d 3b 73 65 74 20 6e 65 77  name wb];set new
0250: 20 5b 24 63 6d 64 20 7b 2a 7d 24 61 72 67 73 20   [$cmd {*}$args 
0260: 2d 63 68 61 6e 20 24 63 68 5d 3b 70 75 74 73 20  -chan $ch];puts 
0270: 2d 6e 6f 6e 65 77 6c 69 6e 65 20 24 6e 65 77 20  -nonewline $new 
0280: 24 64 61 74 61 3b 66 6c 75 73 68 20 24 6e 65 77  $data;flush $new
0290: 3b 63 6c 6f 73 65 20 24 6e 65 77 3b 73 65 74 20  ;close $new;set 
02a0: 63 68 20 5b 6f 70 65 6e 20 24 66 69 6c 65 6e 61  ch [open $filena
02b0: 6d 65 20 72 62 5d 3b 73 65 74 20 6d 64 20 5b 72  me rb];set md [r
02c0: 65 61 64 20 24 63 68 5d 3b 63 6c 6f 73 65 20 24  ead $ch];close $
02d0: 63 68 3b 72 65 74 75 72 6e 20 24 6d 64 7d 2c 2c  ch;return $md},,
02e0: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
02f0: 70 72 6f 63 20 64 69 67 65 73 74 5f 61 63 63 75  proc digest_accu
0300: 6d 75 6c 61 74 65 20 7b 73 74 72 69 6e 67 20 61  mulate {string a
0310: 72 67 73 7d 20 7b 3b 73 65 74 20 63 6d 64 20 5b  rgs} {;set cmd [
0320: 7b 2a 7d 24 61 72 67 73 20 2d 63 6f 6d 6d 61 6e  {*}$args -comman
0330: 64 20 64 63 6d 64 5d 3b 20 24 63 6d 64 20 75 70  d dcmd]; $cmd up
0340: 64 61 74 65 20 5b 73 74 72 69 6e 67 20 72 61 6e  date [string ran
0350: 67 65 20 24 73 74 72 69 6e 67 20 30 20 32 30 5d  ge $string 0 20]
0360: 3b 24 63 6d 64 20 75 70 64 61 74 65 20 5b 73 74  ;$cmd update [st
0370: 72 69 6e 67 20 72 61 6e 67 65 20 24 73 74 72 69  ring range $stri
0380: 6e 67 20 32 31 20 65 6e 64 5d 3b 72 65 74 75 72  ng 21 end];retur
0390: 6e 20 5b 24 63 6d 64 20 66 69 6e 61 6c 69 7a 65  n [$cmd finalize
03a0: 5d 7d 2c 24 63 6d 64 20 75 70 64 61 74 65 20 5b  ]},$cmd update [
03b0: 73 74 72 69 6e 67 20 72 61 6e 67 65 20 24 73 74  string range $st
03c0: 72 69 6e 67 20 30 20 32 30 5d 3b 24 63 6d 64 20  ring 0 20];$cmd 
03d0: 75 70 64 61 74 65 20 5b 73 74 72 69 6e 67 20 72  update [string r
03e0: 61 6e 67 65 20 24 73 74 72 69 6e 67 20 32 31 20  ange $string 21 
03f0: 65 6e 64 5d 3b 72 65 74 75 72 6e 20 5b 24 63 6d  end];return [$cm
0400: 64 20 66 69 6e 61 6c 69 7a 65 5d 7d 2c 2c 2c 2c  d finalize]},,,,
0410: 2c 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  ,,,,.,,,,,,,,,,.
0420: 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 74 65 73  command,"set tes
0430: 74 5f 64 61 74 61 20 22 22 45 78 61 6d 70 6c 65  t_data ""Example
0440: 20 73 74 72 69 6e 67 20 66 6f 72 20 6d 65 73 73   string for mess
0450: 61 67 65 20 64 69 67 65 73 74 20 74 65 73 74 73  age digest tests
0460: 2e 5c 6e 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  .\n""",,,,,,,,,.
0470: 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 74 65 73  command,"set tes
0480: 74 5f 66 69 6c 65 20 22 22 6d 64 5f 64 61 74 61  t_file ""md_data
0490: 2e 64 61 74 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c  .dat""",,,,,,,,,
04a0: 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 74 65  .command,"set te
04b0: 73 74 5f 61 6c 74 5f 66 69 6c 65 20 22 22 6d 64  st_alt_file ""md
04c0: 5f 61 6c 74 5f 64 61 74 61 2e 64 61 74 22 22 22  _alt_data.dat"""
04d0: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e  ,,,,,,,,,.comman
04e0: 64 2c 22 73 65 74 20 74 65 73 74 5f 6b 65 79 20  d,"set test_key 
04f0: 22 22 45 78 61 6d 70 6c 65 20 6b 65 79 22 22 22  ""Example key"""
0500: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e  ,,,,,,,,,.comman
0510: 64 2c 3a 3a 74 63 6c 74 65 73 74 3a 3a 6d 61 6b  d,::tcltest::mak
0520: 65 46 69 6c 65 20 24 74 65 73 74 5f 64 61 74 61  eFile $test_data
0530: 20 24 74 65 73 74 5f 66 69 6c 65 2c 2c 2c 2c 2c   $test_file,,,,,
0540: 2c 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  ,,,,.,,,,,,,,,,.
0550: 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73 74 20 73  command,# Test s
0560: 68 6f 72 74 2d 63 75 74 20 63 6f 6d 6d 61 6e 64  hort-cut command
0570: 73 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 53 68 6f 72 74  s,,,,,,,,,.Short
0580: 63 75 74 20 43 6d 64 73 2c 6d 64 34 20 63 6d 64  cut Cmds,md4 cmd
0590: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 34 20 24 74  ,,,::tls::md4 $t
05a0: 65 73 74 5f 64 61 74 61 2c 2c 2c 37 39 33 33 39  est_data,,,79339
05b0: 39 66 37 39 32 65 63 61 32 37 35 32 63 36 61 66  9f792eca2752c6af
05c0: 33 32 33 34 62 61 37 30 38 35 38 2c 2c 2c 0a 53  3234ba70858,,,.S
05d0: 68 6f 72 74 63 75 74 20 43 6d 64 73 2c 6d 64 35  hortcut Cmds,md5
05e0: 20 63 6d 64 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64   cmd,,,::tls::md
05f0: 35 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 39  5 $test_data,,,9
0600: 36 32 62 66 30 38 30 33 62 34 32 33 32 65 63 32  62bf0803b4232ec2
0610: 33 62 64 38 34 32 37 62 62 39 34 65 61 30 39 2c  3bd8427bb94ea09,
0620: 2c 2c 0a 53 68 6f 72 74 63 75 74 20 43 6d 64 73  ,,.Shortcut Cmds
0630: 2c 73 68 61 31 20 63 6d 64 2c 2c 2c 3a 3a 74 6c  ,sha1 cmd,,,::tl
0640: 73 3a 3a 73 68 61 31 20 24 74 65 73 74 5f 64 61  s::sha1 $test_da
0650: 74 61 2c 2c 2c 34 66 65 30 33 62 37 66 32 35 36  ta,,,4fe03b7f256
0660: 38 35 35 31 64 66 61 66 62 39 38 63 61 36 30 30  8551dfafb98ca600
0670: 34 65 36 35 63 34 62 37 31 61 61 37 64 2c 2c 2c  4e65c4b71aa7d,,,
0680: 0a 53 68 6f 72 74 63 75 74 20 43 6d 64 73 2c 73  .Shortcut Cmds,s
0690: 68 61 32 35 36 20 63 6d 64 2c 2c 2c 3a 3a 74 6c  ha256 cmd,,,::tl
06a0: 73 3a 3a 73 68 61 32 35 36 20 24 74 65 73 74 5f  s::sha256 $test_
06b0: 64 61 74 61 2c 2c 2c 39 64 33 35 37 38 66 63 31  data,,,9d3578fc1
06c0: 33 38 32 30 35 63 66 30 65 65 34 62 34 63 65 66  38205cf0ee4b4cef
06d0: 33 35 66 65 31 30 31 62 62 34 65 63 61 63 37 62  35fe101bb4ecac7b
06e0: 31 36 31 34 63 31 38 65 36 66 61 34 38 62 35 63  1614c18e6fa48b5c
06f0: 37 66 39 35 65 31 39 2c 2c 2c 0a 53 68 6f 72 74  7f95e19,,,.Short
0700: 63 75 74 20 43 6d 64 73 2c 73 68 61 35 31 32 20  cut Cmds,sha512 
0710: 63 6d 64 2c 2c 2c 3a 3a 74 6c 73 3a 3a 73 68 61  cmd,,,::tls::sha
0720: 35 31 32 20 24 74 65 73 74 5f 64 61 74 61 2c 2c  512 $test_data,,
0730: 2c 64 31 37 38 65 37 35 39 64 63 35 39 31 32 37  ,d178e759dc59127
0740: 30 37 31 35 38 38 64 32 66 61 64 31 37 33 63 30  071588d2fad173c0
0750: 36 32 33 38 64 38 37 65 38 30 30 61 36 34 30 33  6238d87e800a6403
0760: 63 30 61 33 30 64 61 61 34 66 61 61 66 30 35 64  c0a30daa4faaf05d
0770: 30 65 37 63 65 30 34 39 31 36 61 66 61 61 36 61  0e7ce04916afaa6a
0780: 35 38 61 33 30 63 62 65 62 35 39 37 64 61 63 62  58a30cbeb597dacb
0790: 30 31 63 36 32 66 39 66 62 39 64 38 39 62 61 62  01c62f9fb9d89bab
07a0: 39 64 61 36 33 30 63 36 39 39 65 34 38 31 36 66  9da630c699e4816f
07b0: 31 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  1,,,.,,,,,,,,,,.
07c0: 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61  ,,,,,,,,,,.comma
07d0: 6e 64 2c 23 20 54 65 73 74 20 4d 44 20 63 6f 6d  nd,# Test MD com
07e0: 6d 61 6e 64 20 66 6f 72 20 72 65 61 64 20 63 68  mand for read ch
07f0: 61 6e 6e 65 6c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4d  annel,,,,,,,,,.M
0800: 44 20 43 68 61 6e 20 52 65 61 64 2c 6d 64 34 2c  D Chan Read,md4,
0810: 2c 2c 64 69 67 65 73 74 5f 72 65 61 64 5f 63 68  ,,digest_read_ch
0820: 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 65  an ::tls::md $te
0830: 73 74 5f 66 69 6c 65 20 2d 64 69 67 65 73 74 20  st_file -digest 
0840: 6d 64 34 2c 2c 2c 37 39 33 33 39 39 66 37 39 32  md4,,,793399f792
0850: 65 63 61 32 37 35 32 63 36 61 66 33 32 33 34 62  eca2752c6af3234b
0860: 61 37 30 38 35 38 2c 2c 2c 0a 4d 44 20 43 68 61  a70858,,,.MD Cha
0870: 6e 20 52 65 61 64 2c 6d 64 35 2c 2c 2c 64 69 67  n Read,md5,,,dig
0880: 65 73 74 5f 72 65 61 64 5f 63 68 61 6e 20 3a 3a  est_read_chan ::
0890: 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74 5f 66 69  tls::md $test_fi
08a0: 6c 65 20 2d 64 69 67 65 73 74 20 6d 64 35 2c 2c  le -digest md5,,
08b0: 2c 39 36 32 62 66 30 38 30 33 62 34 32 33 32 65  ,962bf0803b4232e
08c0: 63 32 33 62 64 38 34 32 37 62 62 39 34 65 61 30  c23bd8427bb94ea0
08d0: 39 2c 2c 2c 0a 4d 44 20 43 68 61 6e 20 52 65 61  9,,,.MD Chan Rea
08e0: 64 2c 73 68 61 31 2c 2c 2c 64 69 67 65 73 74 5f  d,sha1,,,digest_
08f0: 72 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a  read_chan ::tls:
0900: 3a 6d 64 20 24 74 65 73 74 5f 66 69 6c 65 20 2d  :md $test_file -
0910: 64 69 67 65 73 74 20 73 68 61 31 2c 2c 2c 34 66  digest sha1,,,4f
0920: 65 30 33 62 37 66 32 35 36 38 35 35 31 64 66 61  e03b7f2568551dfa
0930: 66 62 39 38 63 61 36 30 30 34 65 36 35 63 34 62  fb98ca6004e65c4b
0940: 37 31 61 61 37 64 2c 2c 2c 0a 4d 44 20 43 68 61  71aa7d,,,.MD Cha
0950: 6e 20 52 65 61 64 2c 73 68 61 32 35 36 2c 2c 2c  n Read,sha256,,,
0960: 64 69 67 65 73 74 5f 72 65 61 64 5f 63 68 61 6e  digest_read_chan
0970: 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74   ::tls::md $test
0980: 5f 66 69 6c 65 20 2d 64 69 67 65 73 74 20 73 68  _file -digest sh
0990: 61 32 35 36 2c 2c 2c 39 64 33 35 37 38 66 63 31  a256,,,9d3578fc1
09a0: 33 38 32 30 35 63 66 30 65 65 34 62 34 63 65 66  38205cf0ee4b4cef
09b0: 33 35 66 65 31 30 31 62 62 34 65 63 61 63 37 62  35fe101bb4ecac7b
09c0: 31 36 31 34 63 31 38 65 36 66 61 34 38 62 35 63  1614c18e6fa48b5c
09d0: 37 66 39 35 65 31 39 2c 2c 2c 0a 4d 44 20 43 68  7f95e19,,,.MD Ch
09e0: 61 6e 20 52 65 61 64 2c 73 68 61 35 31 32 2c 2c  an Read,sha512,,
09f0: 2c 64 69 67 65 73 74 5f 72 65 61 64 5f 63 68 61  ,digest_read_cha
0a00: 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73  n ::tls::md $tes
0a10: 74 5f 66 69 6c 65 20 2d 64 69 67 65 73 74 20 73  t_file -digest s
0a20: 68 61 35 31 32 2c 2c 2c 64 31 37 38 65 37 35 39  ha512,,,d178e759
0a30: 64 63 35 39 31 32 37 30 37 31 35 38 38 64 32 66  dc59127071588d2f
0a40: 61 64 31 37 33 63 30 36 32 33 38 64 38 37 65 38  ad173c06238d87e8
0a50: 30 30 61 36 34 30 33 63 30 61 33 30 64 61 61 34  00a6403c0a30daa4
0a60: 66 61 61 66 30 35 64 30 65 37 63 65 30 34 39 31  faaf05d0e7ce0491
0a70: 36 61 66 61 61 36 61 35 38 61 33 30 63 62 65 62  6afaa6a58a30cbeb
0a80: 35 39 37 64 61 63 62 30 31 63 36 32 66 39 66 62  597dacb01c62f9fb
0a90: 39 64 38 39 62 61 62 39 64 61 36 33 30 63 36 39  9d89bab9da630c69
0aa0: 39 65 34 38 31 36 66 31 2c 2c 2c 0a 4d 44 20 43  9e4816f1,,,.MD C
0ab0: 68 61 6e 20 52 65 61 64 2c 6d 64 35 20 62 69 6e  han Read,md5 bin
0ac0: 2c 2c 2c 62 69 6e 61 72 79 20 65 6e 63 6f 64 65  ,,,binary encode
0ad0: 20 68 65 78 20 5b 64 69 67 65 73 74 5f 72 65 61   hex [digest_rea
0ae0: 64 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64  d_chan ::tls::md
0af0: 20 24 74 65 73 74 5f 66 69 6c 65 20 2d 62 69 6e   $test_file -bin
0b00: 20 2d 64 69 67 65 73 74 20 6d 64 35 5d 2c 2c 2c   -digest md5],,,
0b10: 39 36 32 62 66 30 38 30 33 62 34 32 33 32 65 63  962bf0803b4232ec
0b20: 32 33 62 64 38 34 32 37 62 62 39 34 65 61 30 39  23bd8427bb94ea09
0b30: 2c 2c 2c 0a 4d 44 20 43 68 61 6e 20 52 65 61 64  ,,,.MD Chan Read
0b40: 2c 6d 64 35 20 68 65 78 2c 2c 2c 64 69 67 65 73  ,md5 hex,,,diges
0b50: 74 5f 72 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c  t_read_chan ::tl
0b60: 73 3a 3a 6d 64 20 24 74 65 73 74 5f 66 69 6c 65  s::md $test_file
0b70: 20 2d 68 65 78 20 2d 64 69 67 65 73 74 20 6d 64   -hex -digest md
0b80: 35 2c 2c 2c 39 36 32 62 66 30 38 30 33 62 34 32  5,,,962bf0803b42
0b90: 33 32 65 63 32 33 62 64 38 34 32 37 62 62 39 34  32ec23bd8427bb94
0ba0: 65 61 30 39 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c  ea09,,,.,,,,,,,,
0bb0: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73  ,,.command,# Tes
0bc0: 74 20 4d 44 20 63 6f 6d 6d 61 6e 64 20 66 6f 72  t MD command for
0bd0: 20 77 72 69 74 65 20 63 68 61 6e 6e 65 6c 2c 2c   write channel,,
0be0: 2c 2c 2c 2c 2c 2c 2c 0a 4d 44 20 43 68 61 6e 20  ,,,,,,,.MD Chan 
0bf0: 57 72 69 74 65 2c 6d 64 34 2c 2c 2c 64 69 67 65  Write,md4,,,dige
0c00: 73 74 5f 77 72 69 74 65 5f 63 68 61 6e 20 3a 3a  st_write_chan ::
0c10: 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74 5f 61 6c  tls::md $test_al
0c20: 74 5f 66 69 6c 65 20 24 74 65 73 74 5f 64 61 74  t_file $test_dat
0c30: 61 20 2d 64 69 67 65 73 74 20 6d 64 34 2c 2c 2c  a -digest md4,,,
0c40: 37 39 33 33 39 39 66 37 39 32 65 63 61 32 37 35  793399f792eca275
0c50: 32 63 36 61 66 33 32 33 34 62 61 37 30 38 35 38  2c6af3234ba70858
0c60: 2c 2c 2c 0a 4d 44 20 43 68 61 6e 20 57 72 69 74  ,,,.MD Chan Writ
0c70: 65 2c 6d 64 35 2c 2c 2c 64 69 67 65 73 74 5f 77  e,md5,,,digest_w
0c80: 72 69 74 65 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a  rite_chan ::tls:
0c90: 3a 6d 64 20 24 74 65 73 74 5f 61 6c 74 5f 66 69  :md $test_alt_fi
0ca0: 6c 65 20 24 74 65 73 74 5f 64 61 74 61 20 2d 64  le $test_data -d
0cb0: 69 67 65 73 74 20 6d 64 35 2c 2c 2c 39 36 32 62  igest md5,,,962b
0cc0: 66 30 38 30 33 62 34 32 33 32 65 63 32 33 62 64  f0803b4232ec23bd
0cd0: 38 34 32 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a  8427bb94ea09,,,.
0ce0: 4d 44 20 43 68 61 6e 20 57 72 69 74 65 2c 73 68  MD Chan Write,sh
0cf0: 61 31 2c 2c 2c 64 69 67 65 73 74 5f 77 72 69 74  a1,,,digest_writ
0d00: 65 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64  e_chan ::tls::md
0d10: 20 24 74 65 73 74 5f 61 6c 74 5f 66 69 6c 65 20   $test_alt_file 
0d20: 24 74 65 73 74 5f 64 61 74 61 20 2d 64 69 67 65  $test_data -dige
0d30: 73 74 20 73 68 61 31 2c 2c 2c 34 66 65 30 33 62  st sha1,,,4fe03b
0d40: 37 66 32 35 36 38 35 35 31 64 66 61 66 62 39 38  7f2568551dfafb98
0d50: 63 61 36 30 30 34 65 36 35 63 34 62 37 31 61 61  ca6004e65c4b71aa
0d60: 37 64 2c 2c 2c 0a 4d 44 20 43 68 61 6e 20 57 72  7d,,,.MD Chan Wr
0d70: 69 74 65 2c 73 68 61 32 35 36 2c 2c 2c 64 69 67  ite,sha256,,,dig
0d80: 65 73 74 5f 77 72 69 74 65 5f 63 68 61 6e 20 3a  est_write_chan :
0d90: 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74 5f 61  :tls::md $test_a
0da0: 6c 74 5f 66 69 6c 65 20 24 74 65 73 74 5f 64 61  lt_file $test_da
0db0: 74 61 20 2d 64 69 67 65 73 74 20 73 68 61 32 35  ta -digest sha25
0dc0: 36 2c 2c 2c 39 64 33 35 37 38 66 63 31 33 38 32  6,,,9d3578fc1382
0dd0: 30 35 63 66 30 65 65 34 62 34 63 65 66 33 35 66  05cf0ee4b4cef35f
0de0: 65 31 30 31 62 62 34 65 63 61 63 37 62 31 36 31  e101bb4ecac7b161
0df0: 34 63 31 38 65 36 66 61 34 38 62 35 63 37 66 39  4c18e6fa48b5c7f9
0e00: 35 65 31 39 2c 2c 2c 0a 4d 44 20 43 68 61 6e 20  5e19,,,.MD Chan 
0e10: 57 72 69 74 65 2c 73 68 61 35 31 32 2c 2c 2c 64  Write,sha512,,,d
0e20: 69 67 65 73 74 5f 77 72 69 74 65 5f 63 68 61 6e  igest_write_chan
0e30: 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74   ::tls::md $test
0e40: 5f 61 6c 74 5f 66 69 6c 65 20 24 74 65 73 74 5f  _alt_file $test_
0e50: 64 61 74 61 20 2d 64 69 67 65 73 74 20 73 68 61  data -digest sha
0e60: 35 31 32 2c 2c 2c 64 31 37 38 65 37 35 39 64 63  512,,,d178e759dc
0e70: 35 39 31 32 37 30 37 31 35 38 38 64 32 66 61 64  59127071588d2fad
0e80: 31 37 33 63 30 36 32 33 38 64 38 37 65 38 30 30  173c06238d87e800
0e90: 61 36 34 30 33 63 30 61 33 30 64 61 61 34 66 61  a6403c0a30daa4fa
0ea0: 61 66 30 35 64 30 65 37 63 65 30 34 39 31 36 61  af05d0e7ce04916a
0eb0: 66 61 61 36 61 35 38 61 33 30 63 62 65 62 35 39  faa6a58a30cbeb59
0ec0: 37 64 61 63 62 30 31 63 36 32 66 39 66 62 39 64  7dacb01c62f9fb9d
0ed0: 38 39 62 61 62 39 64 61 36 33 30 63 36 39 39 65  89bab9da630c699e
0ee0: 34 38 31 36 66 31 2c 2c 2c 0a 4d 44 20 43 68 61  4816f1,,,.MD Cha
0ef0: 6e 20 57 72 69 74 65 2c 6d 64 35 20 62 69 6e 2c  n Write,md5 bin,
0f00: 2c 2c 62 69 6e 61 72 79 20 65 6e 63 6f 64 65 20  ,,binary encode 
0f10: 68 65 78 20 5b 64 69 67 65 73 74 5f 77 72 69 74  hex [digest_writ
0f20: 65 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64  e_chan ::tls::md
0f30: 20 24 74 65 73 74 5f 61 6c 74 5f 66 69 6c 65 20   $test_alt_file 
0f40: 24 74 65 73 74 5f 64 61 74 61 20 2d 62 69 6e 20  $test_data -bin 
0f50: 2d 64 69 67 65 73 74 20 6d 64 35 5d 2c 2c 2c 39  -digest md5],,,9
0f60: 36 32 62 66 30 38 30 33 62 34 32 33 32 65 63 32  62bf0803b4232ec2
0f70: 33 62 64 38 34 32 37 62 62 39 34 65 61 30 39 2c  3bd8427bb94ea09,
0f80: 2c 2c 0a 4d 44 20 43 68 61 6e 20 57 72 69 74 65  ,,.MD Chan Write
0f90: 2c 6d 64 35 20 68 65 78 2c 2c 2c 64 69 67 65 73  ,md5 hex,,,diges
0fa0: 74 5f 77 72 69 74 65 5f 63 68 61 6e 20 3a 3a 74  t_write_chan ::t
0fb0: 6c 73 3a 3a 6d 64 20 24 74 65 73 74 5f 61 6c 74  ls::md $test_alt
0fc0: 5f 66 69 6c 65 20 24 74 65 73 74 5f 64 61 74 61  _file $test_data
0fd0: 20 2d 68 65 78 20 2d 64 69 67 65 73 74 20 6d 64   -hex -digest md
0fe0: 35 2c 2c 2c 39 36 32 62 66 30 38 30 33 62 34 32  5,,,962bf0803b42
0ff0: 33 32 65 63 32 33 62 64 38 34 32 37 62 62 39 34  32ec23bd8427bb94
1000: 65 61 30 39 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c  ea09,,,.,,,,,,,,
1010: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73  ,,.command,# Tes
1020: 74 20 4d 44 20 63 6f 6d 6d 61 6e 64 20 66 6f 72  t MD command for
1030: 20 6f 62 6a 65 63 74 20 63 6f 6d 6d 61 6e 64 2c   object command,
1040: 2c 2c 2c 2c 2c 2c 2c 2c 0a 4d 44 20 43 6f 6d 6d  ,,,,,,,,.MD Comm
1050: 61 6e 64 2c 6d 64 34 2c 2c 2c 64 69 67 65 73 74  and,md4,,,digest
1060: 5f 61 63 63 75 6d 75 6c 61 74 65 20 24 74 65 73  _accumulate $tes
1070: 74 5f 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64  t_data ::tls::md
1080: 20 2d 64 69 67 65 73 74 20 6d 64 34 2c 2c 2c 37   -digest md4,,,7
1090: 39 33 33 39 39 66 37 39 32 65 63 61 32 37 35 32  93399f792eca2752
10a0: 63 36 61 66 33 32 33 34 62 61 37 30 38 35 38 2c  c6af3234ba70858,
10b0: 2c 2c 0a 4d 44 20 43 6f 6d 6d 61 6e 64 2c 6d 64  ,,.MD Command,md
10c0: 35 2c 2c 2c 64 69 67 65 73 74 5f 61 63 63 75 6d  5,,,digest_accum
10d0: 75 6c 61 74 65 20 24 74 65 73 74 5f 64 61 74 61  ulate $test_data
10e0: 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65   ::tls::md -dige
10f0: 73 74 20 6d 64 35 2c 2c 2c 39 36 32 62 66 30 38  st md5,,,962bf08
1100: 30 33 62 34 32 33 32 65 63 32 33 62 64 38 34 32  03b4232ec23bd842
1110: 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a 4d 44 20  7bb94ea09,,,.MD 
1120: 43 6f 6d 6d 61 6e 64 2c 73 68 61 31 2c 2c 2c 64  Command,sha1,,,d
1130: 69 67 65 73 74 5f 61 63 63 75 6d 75 6c 61 74 65  igest_accumulate
1140: 20 24 74 65 73 74 5f 64 61 74 61 20 3a 3a 74 6c   $test_data ::tl
1150: 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68  s::md -digest sh
1160: 61 31 2c 2c 2c 34 66 65 30 33 62 37 66 32 35 36  a1,,,4fe03b7f256
1170: 38 35 35 31 64 66 61 66 62 39 38 63 61 36 30 30  8551dfafb98ca600
1180: 34 65 36 35 63 34 62 37 31 61 61 37 64 2c 2c 2c  4e65c4b71aa7d,,,
1190: 0a 4d 44 20 43 6f 6d 6d 61 6e 64 2c 73 68 61 32  .MD Command,sha2
11a0: 35 36 2c 2c 2c 64 69 67 65 73 74 5f 61 63 63 75  56,,,digest_accu
11b0: 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64 61 74  mulate $test_dat
11c0: 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67  a ::tls::md -dig
11d0: 65 73 74 20 73 68 61 32 35 36 2c 2c 2c 39 64 33  est sha256,,,9d3
11e0: 35 37 38 66 63 31 33 38 32 30 35 63 66 30 65 65  578fc138205cf0ee
11f0: 34 62 34 63 65 66 33 35 66 65 31 30 31 62 62 34  4b4cef35fe101bb4
1200: 65 63 61 63 37 62 31 36 31 34 63 31 38 65 36 66  ecac7b1614c18e6f
1210: 61 34 38 62 35 63 37 66 39 35 65 31 39 2c 2c 2c  a48b5c7f95e19,,,
1220: 0a 4d 44 20 43 6f 6d 6d 61 6e 64 2c 73 68 61 35  .MD Command,sha5
1230: 31 32 2c 2c 2c 64 69 67 65 73 74 5f 61 63 63 75  12,,,digest_accu
1240: 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64 61 74  mulate $test_dat
1250: 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67  a ::tls::md -dig
1260: 65 73 74 20 73 68 61 35 31 32 2c 2c 2c 64 31 37  est sha512,,,d17
1270: 38 65 37 35 39 64 63 35 39 31 32 37 30 37 31 35  8e759dc591270715
1280: 38 38 64 32 66 61 64 31 37 33 63 30 36 32 33 38  88d2fad173c06238
1290: 64 38 37 65 38 30 30 61 36 34 30 33 63 30 61 33  d87e800a6403c0a3
12a0: 30 64 61 61 34 66 61 61 66 30 35 64 30 65 37 63  0daa4faaf05d0e7c
12b0: 65 30 34 39 31 36 61 66 61 61 36 61 35 38 61 33  e04916afaa6a58a3
12c0: 30 63 62 65 62 35 39 37 64 61 63 62 30 31 63 36  0cbeb597dacb01c6
12d0: 32 66 39 66 62 39 64 38 39 62 61 62 39 64 61 36  2f9fb9d89bab9da6
12e0: 33 30 63 36 39 39 65 34 38 31 36 66 31 2c 2c 2c  30c699e4816f1,,,
12f0: 0a 4d 44 20 43 6f 6d 6d 61 6e 64 2c 6d 64 35 20  .MD Command,md5 
1300: 62 69 6e 2c 2c 2c 62 69 6e 61 72 79 20 65 6e 63  bin,,,binary enc
1310: 6f 64 65 20 68 65 78 20 5b 64 69 67 65 73 74 5f  ode hex [digest_
1320: 61 63 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74  accumulate $test
1330: 5f 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20  _data ::tls::md 
1340: 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 62 69 6e  -digest md5 -bin
1350: 5d 2c 2c 2c 39 36 32 62 66 30 38 30 33 62 34 32  ],,,962bf0803b42
1360: 33 32 65 63 32 33 62 64 38 34 32 37 62 62 39 34  32ec23bd8427bb94
1370: 65 61 30 39 2c 2c 2c 0a 4d 44 20 43 6f 6d 6d 61  ea09,,,.MD Comma
1380: 6e 64 2c 6d 64 35 20 68 65 78 2c 2c 2c 64 69 67  nd,md5 hex,,,dig
1390: 65 73 74 5f 61 63 63 75 6d 75 6c 61 74 65 20 24  est_accumulate $
13a0: 74 65 73 74 5f 64 61 74 61 20 3a 3a 74 6c 73 3a  test_data ::tls:
13b0: 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35 20  :md -digest md5 
13c0: 2d 68 65 78 2c 2c 2c 39 36 32 62 66 30 38 30 33  -hex,,,962bf0803
13d0: 62 34 32 33 32 65 63 32 33 62 64 38 34 32 37 62  b4232ec23bd8427b
13e0: 62 39 34 65 61 30 39 2c 2c 2c 0a 2c 2c 2c 2c 2c  b94ea09,,,.,,,,,
13f0: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20  ,,,,,.command,# 
1400: 54 65 73 74 20 4d 44 20 63 6f 6d 6d 61 6e 64 20  Test MD command 
1410: 66 6f 72 20 64 61 74 61 20 73 68 6f 72 74 63 75  for data shortcu
1420: 74 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4d 44 20 53 68  t,,,,,,,,,.MD Sh
1430: 6f 72 74 63 75 74 2c 6d 64 34 2c 2c 2c 3a 3a 74  ortcut,md4,,,::t
1440: 6c 73 3a 3a 6d 64 20 6d 64 34 20 24 74 65 73 74  ls::md md4 $test
1450: 5f 64 61 74 61 2c 2c 2c 37 39 33 33 39 39 66 37  _data,,,793399f7
1460: 39 32 65 63 61 32 37 35 32 63 36 61 66 33 32 33  92eca2752c6af323
1470: 34 62 61 37 30 38 35 38 2c 2c 2c 0a 4d 44 20 53  4ba70858,,,.MD S
1480: 68 6f 72 74 63 75 74 2c 6d 64 35 2c 2c 2c 3a 3a  hortcut,md5,,,::
1490: 74 6c 73 3a 3a 6d 64 20 6d 64 35 20 24 74 65 73  tls::md md5 $tes
14a0: 74 5f 64 61 74 61 2c 2c 2c 39 36 32 62 66 30 38  t_data,,,962bf08
14b0: 30 33 62 34 32 33 32 65 63 32 33 62 64 38 34 32  03b4232ec23bd842
14c0: 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a 4d 44 20  7bb94ea09,,,.MD 
14d0: 53 68 6f 72 74 63 75 74 2c 73 68 61 31 2c 2c 2c  Shortcut,sha1,,,
14e0: 3a 3a 74 6c 73 3a 3a 6d 64 20 73 68 61 31 20 24  ::tls::md sha1 $
14f0: 74 65 73 74 5f 64 61 74 61 2c 2c 2c 34 66 65 30  test_data,,,4fe0
1500: 33 62 37 66 32 35 36 38 35 35 31 64 66 61 66 62  3b7f2568551dfafb
1510: 39 38 63 61 36 30 30 34 65 36 35 63 34 62 37 31  98ca6004e65c4b71
1520: 61 61 37 64 2c 2c 2c 0a 4d 44 20 53 68 6f 72 74  aa7d,,,.MD Short
1530: 63 75 74 2c 73 68 61 32 35 36 2c 2c 2c 3a 3a 74  cut,sha256,,,::t
1540: 6c 73 3a 3a 6d 64 20 73 68 61 32 35 36 20 24 74  ls::md sha256 $t
1550: 65 73 74 5f 64 61 74 61 2c 2c 2c 39 64 33 35 37  est_data,,,9d357
1560: 38 66 63 31 33 38 32 30 35 63 66 30 65 65 34 62  8fc138205cf0ee4b
1570: 34 63 65 66 33 35 66 65 31 30 31 62 62 34 65 63  4cef35fe101bb4ec
1580: 61 63 37 62 31 36 31 34 63 31 38 65 36 66 61 34  ac7b1614c18e6fa4
1590: 38 62 35 63 37 66 39 35 65 31 39 2c 2c 2c 0a 4d  8b5c7f95e19,,,.M
15a0: 44 20 53 68 6f 72 74 63 75 74 2c 73 68 61 35 31  D Shortcut,sha51
15b0: 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 73 68  2,,,::tls::md sh
15c0: 61 35 31 32 20 24 74 65 73 74 5f 64 61 74 61 2c  a512 $test_data,
15d0: 2c 2c 64 31 37 38 65 37 35 39 64 63 35 39 31 32  ,,d178e759dc5912
15e0: 37 30 37 31 35 38 38 64 32 66 61 64 31 37 33 63  7071588d2fad173c
15f0: 30 36 32 33 38 64 38 37 65 38 30 30 61 36 34 30  06238d87e800a640
1600: 33 63 30 61 33 30 64 61 61 34 66 61 61 66 30 35  3c0a30daa4faaf05
1610: 64 30 65 37 63 65 30 34 39 31 36 61 66 61 61 36  d0e7ce04916afaa6
1620: 61 35 38 61 33 30 63 62 65 62 35 39 37 64 61 63  a58a30cbeb597dac
1630: 62 30 31 63 36 32 66 39 66 62 39 64 38 39 62 61  b01c62f9fb9d89ba
1640: 62 39 64 61 36 33 30 63 36 39 39 65 34 38 31 36  b9da630c699e4816
1650: 66 31 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c  f1,,,.,,,,,,,,,,
1660: 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73 74 20  .command,# Test 
1670: 4d 44 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 64  MD command for d
1680: 61 74 61 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4d 44 20  ata,,,,,,,,,.MD 
1690: 44 61 74 61 2c 6d 64 34 2c 2c 2c 3a 3a 74 6c 73  Data,md4,,,::tls
16a0: 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 34  ::md -digest md4
16b0: 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74   -data $test_dat
16c0: 61 2c 2c 2c 37 39 33 33 39 39 66 37 39 32 65 63  a,,,793399f792ec
16d0: 61 32 37 35 32 63 36 61 66 33 32 33 34 62 61 37  a2752c6af3234ba7
16e0: 30 38 35 38 2c 2c 2c 0a 4d 44 20 44 61 74 61 2c  0858,,,.MD Data,
16f0: 6d 64 35 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20  md5,,,::tls::md 
1700: 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 64 61 74  -digest md5 -dat
1710: 61 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 39  a $test_data,,,9
1720: 36 32 62 66 30 38 30 33 62 34 32 33 32 65 63 32  62bf0803b4232ec2
1730: 33 62 64 38 34 32 37 62 62 39 34 65 61 30 39 2c  3bd8427bb94ea09,
1740: 2c 2c 0a 4d 44 20 44 61 74 61 2c 73 68 61 31 2c  ,,.MD Data,sha1,
1750: 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67  ,,::tls::md -dig
1760: 65 73 74 20 73 68 61 31 20 2d 64 61 74 61 20 24  est sha1 -data $
1770: 74 65 73 74 5f 64 61 74 61 2c 2c 2c 34 66 65 30  test_data,,,4fe0
1780: 33 62 37 66 32 35 36 38 35 35 31 64 66 61 66 62  3b7f2568551dfafb
1790: 39 38 63 61 36 30 30 34 65 36 35 63 34 62 37 31  98ca6004e65c4b71
17a0: 61 61 37 64 2c 2c 2c 0a 4d 44 20 44 61 74 61 2c  aa7d,,,.MD Data,
17b0: 73 68 61 32 35 36 2c 2c 2c 3a 3a 74 6c 73 3a 3a  sha256,,,::tls::
17c0: 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 32 35  md -digest sha25
17d0: 36 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61  6 -data $test_da
17e0: 74 61 2c 2c 2c 39 64 33 35 37 38 66 63 31 33 38  ta,,,9d3578fc138
17f0: 32 30 35 63 66 30 65 65 34 62 34 63 65 66 33 35  205cf0ee4b4cef35
1800: 66 65 31 30 31 62 62 34 65 63 61 63 37 62 31 36  fe101bb4ecac7b16
1810: 31 34 63 31 38 65 36 66 61 34 38 62 35 63 37 66  14c18e6fa48b5c7f
1820: 39 35 65 31 39 2c 2c 2c 0a 4d 44 20 44 61 74 61  95e19,,,.MD Data
1830: 2c 73 68 61 35 31 32 2c 2c 2c 3a 3a 74 6c 73 3a  ,sha512,,,::tls:
1840: 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 35  :md -digest sha5
1850: 31 32 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64  12 -data $test_d
1860: 61 74 61 2c 2c 2c 64 31 37 38 65 37 35 39 64 63  ata,,,d178e759dc
1870: 35 39 31 32 37 30 37 31 35 38 38 64 32 66 61 64  59127071588d2fad
1880: 31 37 33 63 30 36 32 33 38 64 38 37 65 38 30 30  173c06238d87e800
1890: 61 36 34 30 33 63 30 61 33 30 64 61 61 34 66 61  a6403c0a30daa4fa
18a0: 61 66 30 35 64 30 65 37 63 65 30 34 39 31 36 61  af05d0e7ce04916a
18b0: 66 61 61 36 61 35 38 61 33 30 63 62 65 62 35 39  faa6a58a30cbeb59
18c0: 37 64 61 63 62 30 31 63 36 32 66 39 66 62 39 64  7dacb01c62f9fb9d
18d0: 38 39 62 61 62 39 64 61 36 33 30 63 36 39 39 65  89bab9da630c699e
18e0: 34 38 31 36 66 31 2c 2c 2c 0a 4d 44 20 44 61 74  4816f1,,,.MD Dat
18f0: 61 2c 6d 64 35 20 62 69 6e 2c 2c 2c 62 69 6e 61  a,md5 bin,,,bina
1900: 72 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 3a  ry encode hex [:
1910: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74  :tls::md -digest
1920: 20 6d 64 35 20 2d 64 61 74 61 20 24 74 65 73 74   md5 -data $test
1930: 5f 64 61 74 61 20 2d 62 69 6e 5d 2c 2c 2c 39 36  _data -bin],,,96
1940: 32 62 66 30 38 30 33 62 34 32 33 32 65 63 32 33  2bf0803b4232ec23
1950: 62 64 38 34 32 37 62 62 39 34 65 61 30 39 2c 2c  bd8427bb94ea09,,
1960: 2c 0a 4d 44 20 44 61 74 61 2c 6d 64 35 20 68 65  ,.MD Data,md5 he
1970: 78 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64  x,,,::tls::md -d
1980: 69 67 65 73 74 20 6d 64 35 20 2d 64 61 74 61 20  igest md5 -data 
1990: 24 74 65 73 74 5f 64 61 74 61 20 2d 68 65 78 2c  $test_data -hex,
19a0: 2c 2c 39 36 32 62 66 30 38 30 33 62 34 32 33 32  ,,962bf0803b4232
19b0: 65 63 32 33 62 64 38 34 32 37 62 62 39 34 65 61  ec23bd8427bb94ea
19c0: 30 39 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c  09,,,.,,,,,,,,,,
19d0: 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73 74 20  .command,# Test 
19e0: 4d 44 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 66  MD command for f
19f0: 69 6c 65 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4d 44 20  ile,,,,,,,,,.MD 
1a00: 46 69 6c 65 2c 6d 64 34 2c 2c 2c 3a 3a 74 6c 73  File,md4,,,::tls
1a10: 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 34  ::md -digest md4
1a20: 20 2d 66 69 6c 65 20 24 74 65 73 74 5f 66 69 6c   -file $test_fil
1a30: 65 2c 2c 2c 37 39 33 33 39 39 66 37 39 32 65 63  e,,,793399f792ec
1a40: 61 32 37 35 32 63 36 61 66 33 32 33 34 62 61 37  a2752c6af3234ba7
1a50: 30 38 35 38 2c 2c 2c 0a 4d 44 20 46 69 6c 65 2c  0858,,,.MD File,
1a60: 6d 64 35 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20  md5,,,::tls::md 
1a70: 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 66 69 6c  -digest md5 -fil
1a80: 65 20 24 74 65 73 74 5f 66 69 6c 65 2c 2c 2c 39  e $test_file,,,9
1a90: 36 32 62 66 30 38 30 33 62 34 32 33 32 65 63 32  62bf0803b4232ec2
1aa0: 33 62 64 38 34 32 37 62 62 39 34 65 61 30 39 2c  3bd8427bb94ea09,
1ab0: 2c 2c 0a 4d 44 20 46 69 6c 65 2c 73 68 61 31 2c  ,,.MD File,sha1,
1ac0: 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67  ,,::tls::md -dig
1ad0: 65 73 74 20 73 68 61 31 20 2d 66 69 6c 65 20 24  est sha1 -file $
1ae0: 74 65 73 74 5f 66 69 6c 65 2c 2c 2c 34 66 65 30  test_file,,,4fe0
1af0: 33 62 37 66 32 35 36 38 35 35 31 64 66 61 66 62  3b7f2568551dfafb
1b00: 39 38 63 61 36 30 30 34 65 36 35 63 34 62 37 31  98ca6004e65c4b71
1b10: 61 61 37 64 2c 2c 2c 0a 4d 44 20 46 69 6c 65 2c  aa7d,,,.MD File,
1b20: 73 68 61 32 35 36 2c 2c 2c 3a 3a 74 6c 73 3a 3a  sha256,,,::tls::
1b30: 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 32 35  md -digest sha25
1b40: 36 20 2d 66 69 6c 65 20 24 74 65 73 74 5f 66 69  6 -file $test_fi
1b50: 6c 65 2c 2c 2c 39 64 33 35 37 38 66 63 31 33 38  le,,,9d3578fc138
1b60: 32 30 35 63 66 30 65 65 34 62 34 63 65 66 33 35  205cf0ee4b4cef35
1b70: 66 65 31 30 31 62 62 34 65 63 61 63 37 62 31 36  fe101bb4ecac7b16
1b80: 31 34 63 31 38 65 36 66 61 34 38 62 35 63 37 66  14c18e6fa48b5c7f
1b90: 39 35 65 31 39 2c 2c 2c 0a 4d 44 20 46 69 6c 65  95e19,,,.MD File
1ba0: 2c 73 68 61 35 31 32 2c 2c 2c 3a 3a 74 6c 73 3a  ,sha512,,,::tls:
1bb0: 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 35  :md -digest sha5
1bc0: 31 32 20 2d 66 69 6c 65 20 24 74 65 73 74 5f 66  12 -file $test_f
1bd0: 69 6c 65 2c 2c 2c 64 31 37 38 65 37 35 39 64 63  ile,,,d178e759dc
1be0: 35 39 31 32 37 30 37 31 35 38 38 64 32 66 61 64  59127071588d2fad
1bf0: 31 37 33 63 30 36 32 33 38 64 38 37 65 38 30 30  173c06238d87e800
1c00: 61 36 34 30 33 63 30 61 33 30 64 61 61 34 66 61  a6403c0a30daa4fa
1c10: 61 66 30 35 64 30 65 37 63 65 30 34 39 31 36 61  af05d0e7ce04916a
1c20: 66 61 61 36 61 35 38 61 33 30 63 62 65 62 35 39  faa6a58a30cbeb59
1c30: 37 64 61 63 62 30 31 63 36 32 66 39 66 62 39 64  7dacb01c62f9fb9d
1c40: 38 39 62 61 62 39 64 61 36 33 30 63 36 39 39 65  89bab9da630c699e
1c50: 34 38 31 36 66 31 2c 2c 2c 0a 4d 44 20 46 69 6c  4816f1,,,.MD Fil
1c60: 65 2c 6d 64 35 20 62 69 6e 2c 2c 2c 62 69 6e 61  e,md5 bin,,,bina
1c70: 72 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 3a  ry encode hex [:
1c80: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74  :tls::md -digest
1c90: 20 6d 64 35 20 2d 66 69 6c 65 20 24 74 65 73 74   md5 -file $test
1ca0: 5f 66 69 6c 65 20 2d 62 69 6e 5d 2c 2c 2c 39 36  _file -bin],,,96
1cb0: 32 62 66 30 38 30 33 62 34 32 33 32 65 63 32 33  2bf0803b4232ec23
1cc0: 62 64 38 34 32 37 62 62 39 34 65 61 30 39 2c 2c  bd8427bb94ea09,,
1cd0: 2c 0a 4d 44 20 46 69 6c 65 2c 6d 64 35 20 68 65  ,.MD File,md5 he
1ce0: 78 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64  x,,,::tls::md -d
1cf0: 69 67 65 73 74 20 6d 64 35 20 2d 66 69 6c 65 20  igest md5 -file 
1d00: 24 74 65 73 74 5f 66 69 6c 65 20 2d 68 65 78 2c  $test_file -hex,
1d10: 2c 2c 39 36 32 62 66 30 38 30 33 62 34 32 33 32  ,,962bf0803b4232
1d20: 65 63 32 33 62 64 38 34 32 37 62 62 39 34 65 61  ec23bd8427bb94ea
1d30: 30 39 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c  09,,,.,,,,,,,,,,
1d40: 0a 63 6f 6d 6d 61 6e 64 2c 23 20 4d 44 20 45 72  .command,# MD Er
1d50: 72 6f 72 20 43 61 73 65 73 2c 2c 2c 2c 2c 2c 2c  ror Cases,,,,,,,
1d60: 2c 2c 0a 4d 44 20 45 72 72 6f 72 73 2c 54 6f 6f  ,,.MD Errors,Too
1d70: 20 66 65 77 20 61 72 67 73 2c 2c 2c 3a 3a 74 6c   few args,,,::tl
1d80: 73 3a 3a 6d 64 2c 2c 2c 22 77 72 6f 6e 67 20 23  s::md,,,"wrong #
1d90: 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 65   args: should be
1da0: 20 22 22 3a 3a 74 6c 73 3a 3a 6d 64 20 3f 2d 62   ""::tls::md ?-b
1db0: 69 6e 7c 2d 68 65 78 3f 20 3f 2d 63 69 70 68 65  in|-hex? ?-ciphe
1dc0: 72 20 6e 61 6d 65 3f 20 3f 2d 64 69 67 65 73 74  r name? ?-digest
1dd0: 20 6e 61 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65 79   name? ?-key key
1de0: 3f 20 3f 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b 2d  ? ?-mac name? [-
1df0: 63 68 61 6e 6e 65 6c 20 63 68 61 6e 20 7c 20 2d  channel chan | -
1e00: 63 6f 6d 6d 61 6e 64 20 63 6d 64 4e 61 6d 65 20  command cmdName 
1e10: 7c 20 2d 66 69 6c 65 20 66 69 6c 65 6e 61 6d 65  | -file filename
1e20: 20 7c 20 3f 2d 64 61 74 61 3f 20 64 61 74 61 5d   | ?-data? data]
1e30: 22 22 22 2c 2c 2c 31 0a 4d 44 20 45 72 72 6f 72  """,,,1.MD Error
1e40: 73 2c 54 6f 6f 20 6d 61 6e 79 20 61 72 67 73 2c  s,Too many args,
1e50: 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 74 6f 6f 20  ,,::tls::md too 
1e60: 6d 61 6e 79 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e  many command lin
1e70: 65 20 61 72 67 73 20 74 6f 20 70 61 73 73 20 74  e args to pass t
1e80: 68 65 20 74 65 73 74 20 77 69 74 68 6f 75 74 20  he test without 
1e90: 61 6e 20 65 72 72 6f 72 20 6f 72 20 66 61 69 6c  an error or fail
1ea0: 69 6e 67 2c 2c 2c 22 77 72 6f 6e 67 20 23 20 61  ing,,,"wrong # a
1eb0: 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 22  rgs: should be "
1ec0: 22 3a 3a 74 6c 73 3a 3a 6d 64 20 3f 2d 62 69 6e  "::tls::md ?-bin
1ed0: 7c 2d 68 65 78 3f 20 3f 2d 63 69 70 68 65 72 20  |-hex? ?-cipher 
1ee0: 6e 61 6d 65 3f 20 3f 2d 64 69 67 65 73 74 20 6e  name? ?-digest n
1ef0: 61 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65 79 3f 20  ame? ?-key key? 
1f00: 3f 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b 2d 63 68  ?-mac name? [-ch
1f10: 61 6e 6e 65 6c 20 63 68 61 6e 20 7c 20 2d 63 6f  annel chan | -co
1f20: 6d 6d 61 6e 64 20 63 6d 64 4e 61 6d 65 20 7c 20  mmand cmdName | 
1f30: 2d 66 69 6c 65 20 66 69 6c 65 6e 61 6d 65 20 7c  -file filename |
1f40: 20 3f 2d 64 61 74 61 3f 20 64 61 74 61 5d 22 22   ?-data? data]""
1f50: 22 2c 2c 2c 31 0a 4d 44 20 45 72 72 6f 72 73 2c  ",,,1.MD Errors,
1f60: 49 6e 76 61 6c 69 64 20 64 69 67 65 73 74 2c 2c  Invalid digest,,
1f70: 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 62 6f 67 75 73  ,::tls::md bogus
1f80: 20 64 61 74 61 2c 2c 2c 22 69 6e 76 61 6c 69 64   data,,,"invalid
1f90: 20 64 69 67 65 73 74 20 22 22 62 6f 67 75 73 22   digest ""bogus"
1fa0: 22 22 2c 2c 2c 31 0a 4d 44 20 45 72 72 6f 72 73  "",,,1.MD Errors
1fb0: 2c 49 6e 76 61 6c 69 64 20 64 69 67 65 73 74 20  ,Invalid digest 
1fc0: 41 72 67 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20  Arg,,,::tls::md 
1fd0: 2d 64 69 67 65 73 74 20 62 6f 67 75 73 20 2d 64  -digest bogus -d
1fe0: 61 74 61 20 64 61 74 61 2c 2c 2c 22 69 6e 76 61  ata data,,,"inva
1ff0: 6c 69 64 20 64 69 67 65 73 74 20 22 22 62 6f 67  lid digest ""bog
2000: 75 73 22 22 22 2c 2c 2c 31 0a 4d 44 20 45 72 72  us""",,,1.MD Err
2010: 6f 72 73 2c 4e 6f 20 64 69 67 65 73 74 2c 2c 2c  ors,No digest,,,
2020: 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 68 65 78 20 2d  ::tls::md -hex -
2030: 64 61 74 61 20 76 61 6c 75 65 2c 2c 2c 6e 6f 20  data value,,,no 
2040: 64 69 67 65 73 74 2c 2c 2c 31 0a 4d 44 20 45 72  digest,,,1.MD Er
2050: 72 6f 72 73 2c 49 6e 76 61 6c 69 64 20 6f 70 74  rors,Invalid opt
2060: 69 6f 6e 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20  ion,,,::tls::md 
2070: 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d  -digest sha256 -
2080: 62 6f 67 75 73 20 76 61 6c 75 65 2c 2c 2c 22 62  bogus value,,,"b
2090: 61 64 20 6f 70 74 69 6f 6e 20 22 22 2d 62 6f 67  ad option ""-bog
20a0: 75 73 22 22 3a 20 6d 75 73 74 20 62 65 20 2d 62  us"": must be -b
20b0: 69 6e 2c 20 2d 62 69 6e 61 72 79 2c 20 2d 68 65  in, -binary, -he
20c0: 78 2c 20 2d 68 65 78 61 64 65 63 69 6d 61 6c 2c  x, -hexadecimal,
20d0: 20 2d 63 68 61 6e 2c 20 2d 63 68 61 6e 6e 65 6c   -chan, -channel
20e0: 2c 20 2d 63 69 70 68 65 72 2c 20 2d 63 6f 6d 6d  , -cipher, -comm
20f0: 61 6e 64 2c 20 2d 64 61 74 61 2c 20 2d 64 69 67  and, -data, -dig
2100: 65 73 74 2c 20 2d 66 69 6c 65 2c 20 2d 66 69 6c  est, -file, -fil
2110: 65 6e 61 6d 65 2c 20 2d 68 61 73 68 2c 20 2d 6b  ename, -hash, -k
2120: 65 79 2c 20 6f 72 20 2d 6d 61 63 22 2c 2c 2c 31  ey, or -mac",,,1
2130: 0a 4d 44 20 45 72 72 6f 72 73 2c 49 6e 76 61 6c  .MD Errors,Inval
2140: 69 64 20 66 69 6c 65 2c 2c 2c 3a 3a 74 6c 73 3a  id file,,,::tls:
2150: 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 32  :md -digest sha2
2160: 35 36 20 2d 66 69 6c 65 20 62 6f 67 75 73 2c 2c  56 -file bogus,,
2170: 2c 22 63 6f 75 6c 64 6e 27 74 20 6f 70 65 6e 20  ,"couldn't open 
2180: 22 22 62 6f 67 75 73 22 22 3a 20 6e 6f 20 73 75  ""bogus"": no su
2190: 63 68 20 66 69 6c 65 20 6f 72 20 64 69 72 65 63  ch file or direc
21a0: 74 6f 72 79 22 2c 2c 2c 31 0a 4d 44 20 45 72 72  tory",,,1.MD Err
21b0: 6f 72 73 2c 49 6e 76 61 6c 69 64 20 63 68 61 6e  ors,Invalid chan
21c0: 6e 65 6c 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20  nel,,,::tls::md 
21d0: 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d  -digest sha256 -
21e0: 63 68 61 6e 6e 65 6c 20 62 6f 67 75 73 2c 2c 2c  channel bogus,,,
21f0: 22 63 61 6e 20 6e 6f 74 20 66 69 6e 64 20 63 68  "can not find ch
2200: 61 6e 6e 65 6c 20 6e 61 6d 65 64 20 22 22 62 6f  annel named ""bo
2210: 67 75 73 22 22 22 2c 2c 2c 31 0a 4d 44 20 45 72  gus""",,,1.MD Er
2220: 72 6f 72 73 2c 4e 6f 20 6f 70 65 72 61 74 69 6f  rors,No operatio
2230: 6e 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64  n,,,::tls::md -d
2240: 69 67 65 73 74 20 73 68 61 32 35 36 20 2d 62 69  igest sha256 -bi
2250: 6e 2c 2c 2c 22 4e 6f 20 6f 70 65 72 61 74 69 6f  n,,,"No operatio
2260: 6e 3a 20 55 73 65 20 2d 63 68 61 6e 6e 65 6c 2c  n: Use -channel,
2270: 20 2d 63 6f 6d 6d 61 6e 64 2c 20 2d 64 61 74 61   -command, -data
2280: 2c 20 6f 72 20 2d 66 69 6c 65 20 6f 70 74 69 6f  , or -file optio
2290: 6e 22 2c 2c 2c 31 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c  n",,,1.,,,,,,,,,
22a0: 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  ,.,,,,,,,,,,.com
22b0: 6d 61 6e 64 2c 23 20 54 65 73 74 20 43 4d 41 43  mand,# Test CMAC
22c0: 20 63 6f 6d 6d 61 6e 64 2c 2c 2c 2c 2c 2c 2c 2c   command,,,,,,,,
22d0: 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 74  ,.command,"set t
22e0: 65 73 74 5f 63 69 70 68 65 72 20 22 22 61 65 73  est_cipher ""aes
22f0: 2d 31 32 38 2d 63 62 63 22 22 22 2c 2c 2c 2c 2c  -128-cbc""",,,,,
2300: 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65  ,,,,.command,"se
2310: 74 20 74 65 73 74 5f 6b 65 79 20 22 22 45 78 61  t test_key ""Exa
2320: 6d 70 6c 65 20 6b 65 79 20 31 32 33 34 22 22 22  mple key 1234"""
2330: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 43 4d 41 43 2c 64  ,,,,,,,,,.CMAC,d
2340: 61 74 61 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d 61  ata,,,::tls::cma
2350: 63 20 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f  c -cipher $test_
2360: 63 69 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73  cipher -key $tes
2370: 74 5f 6b 65 79 20 2d 64 61 74 61 20 24 74 65 73  t_key -data $tes
2380: 74 5f 64 61 74 61 2c 2c 2c 62 61 66 35 63 32 30  t_data,,,baf5c20
2390: 66 39 39 37 33 65 32 64 36 30 36 62 31 34 63 37  f9973e2d606b14c7
23a0: 65 66 64 66 65 35 32 66 61 2c 2c 2c 0a 43 4d 41  efdfe52fa,,,.CMA
23b0: 43 2c 66 69 6c 65 2c 2c 2c 3a 3a 74 6c 73 3a 3a  C,file,,,::tls::
23c0: 63 6d 61 63 20 2d 63 69 70 68 65 72 20 24 74 65  cmac -cipher $te
23d0: 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 20 24  st_cipher -key $
23e0: 74 65 73 74 5f 6b 65 79 20 2d 66 69 6c 65 20 24  test_key -file $
23f0: 74 65 73 74 5f 66 69 6c 65 2c 2c 2c 62 61 66 35  test_file,,,baf5
2400: 63 32 30 66 39 39 37 33 65 32 64 36 30 36 62 31  c20f9973e2d606b1
2410: 34 63 37 65 66 64 66 65 35 32 66 61 2c 2c 2c 0a  4c7efdfe52fa,,,.
2420: 43 4d 41 43 2c 63 68 61 6e 6e 65 6c 2c 2c 2c 64  CMAC,channel,,,d
2430: 69 67 65 73 74 5f 72 65 61 64 5f 63 68 61 6e 20  igest_read_chan 
2440: 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 24 74 65 73  ::tls::cmac $tes
2450: 74 5f 66 69 6c 65 20 2d 63 69 70 68 65 72 20 24  t_file -cipher $
2460: 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79  test_cipher -key
2470: 20 24 74 65 73 74 5f 6b 65 79 2c 2c 2c 62 61 66   $test_key,,,baf
2480: 35 63 32 30 66 39 39 37 33 65 32 64 36 30 36 62  5c20f9973e2d606b
2490: 31 34 63 37 65 66 64 66 65 35 32 66 61 2c 2c 2c  14c7efdfe52fa,,,
24a0: 0a 43 4d 41 43 2c 63 6f 6d 6d 61 6e 64 2c 2c 2c  .CMAC,command,,,
24b0: 64 69 67 65 73 74 5f 61 63 63 75 6d 75 6c 61 74  digest_accumulat
24c0: 65 20 24 74 65 73 74 5f 64 61 74 61 20 3a 3a 74  e $test_data ::t
24d0: 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72  ls::cmac -cipher
24e0: 20 24 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b   $test_cipher -k
24f0: 65 79 20 24 74 65 73 74 5f 6b 65 79 2c 2c 2c 62  ey $test_key,,,b
2500: 61 66 35 63 32 30 66 39 39 37 33 65 32 64 36 30  af5c20f9973e2d60
2510: 36 62 31 34 63 37 65 66 64 66 65 35 32 66 61 2c  6b14c7efdfe52fa,
2520: 2c 2c 0a 43 4d 41 43 2c 64 61 74 61 20 62 69 6e  ,,.CMAC,data bin
2530: 2c 2c 2c 62 69 6e 61 72 79 20 65 6e 63 6f 64 65  ,,,binary encode
2540: 20 68 65 78 20 5b 3a 3a 74 6c 73 3a 3a 63 6d 61   hex [::tls::cma
2550: 63 20 2d 62 69 6e 20 2d 63 69 70 68 65 72 20 24  c -bin -cipher $
2560: 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79  test_cipher -key
2570: 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61   $test_key -data
2580: 20 24 74 65 73 74 5f 64 61 74 61 5d 2c 2c 2c 62   $test_data],,,b
2590: 61 66 35 63 32 30 66 39 39 37 33 65 32 64 36 30  af5c20f9973e2d60
25a0: 36 62 31 34 63 37 65 66 64 66 65 35 32 66 61 2c  6b14c7efdfe52fa,
25b0: 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f  ,,.,,,,,,,,,,.co
25c0: 6d 6d 61 6e 64 2c 23 20 54 65 73 74 20 4d 44 20  mmand,# Test MD 
25d0: 43 4d 41 43 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4d 44  CMAC,,,,,,,,,.MD
25e0: 20 43 4d 41 43 2c 64 61 74 61 2c 2c 2c 3a 3a 74   CMAC,data,,,::t
25f0: 6c 73 3a 3a 6d 64 20 2d 63 69 70 68 65 72 20 24  ls::md -cipher $
2600: 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79  test_cipher -key
2610: 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61   $test_key -data
2620: 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 62 61   $test_data,,,ba
2630: 66 35 63 32 30 66 39 39 37 33 65 32 64 36 30 36  f5c20f9973e2d606
2640: 62 31 34 63 37 65 66 64 66 65 35 32 66 61 2c 2c  b14c7efdfe52fa,,
2650: 2c 0a 4d 44 20 43 4d 41 43 2c 66 69 6c 65 2c 2c  ,.MD CMAC,file,,
2660: 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 63 69 70 68  ,::tls::md -ciph
2670: 65 72 20 24 74 65 73 74 5f 63 69 70 68 65 72 20  er $test_cipher 
2680: 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20 2d  -key $test_key -
2690: 66 69 6c 65 20 24 74 65 73 74 5f 66 69 6c 65 2c  file $test_file,
26a0: 2c 2c 62 61 66 35 63 32 30 66 39 39 37 33 65 32  ,,baf5c20f9973e2
26b0: 64 36 30 36 62 31 34 63 37 65 66 64 66 65 35 32  d606b14c7efdfe52
26c0: 66 61 2c 2c 2c 0a 4d 44 20 43 4d 41 43 2c 63 68  fa,,,.MD CMAC,ch
26d0: 61 6e 6e 65 6c 2c 2c 2c 64 69 67 65 73 74 5f 72  annel,,,digest_r
26e0: 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a  ead_chan ::tls::
26f0: 6d 64 20 24 74 65 73 74 5f 66 69 6c 65 20 2d 63  md $test_file -c
2700: 69 70 68 65 72 20 24 74 65 73 74 5f 63 69 70 68  ipher $test_ciph
2710: 65 72 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65  er -key $test_ke
2720: 79 2c 2c 2c 62 61 66 35 63 32 30 66 39 39 37 33  y,,,baf5c20f9973
2730: 65 32 64 36 30 36 62 31 34 63 37 65 66 64 66 65  e2d606b14c7efdfe
2740: 35 32 66 61 2c 2c 2c 0a 4d 44 20 43 4d 41 43 2c  52fa,,,.MD CMAC,
2750: 63 6f 6d 6d 61 6e 64 2c 2c 2c 64 69 67 65 73 74  command,,,digest
2760: 5f 61 63 63 75 6d 75 6c 61 74 65 20 24 74 65 73  _accumulate $tes
2770: 74 5f 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64  t_data ::tls::md
2780: 20 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f 63   -cipher $test_c
2790: 69 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74  ipher -key $test
27a0: 5f 6b 65 79 2c 2c 2c 62 61 66 35 63 32 30 66 39  _key,,,baf5c20f9
27b0: 39 37 33 65 32 64 36 30 36 62 31 34 63 37 65 66  973e2d606b14c7ef
27c0: 64 66 65 35 32 66 61 2c 2c 2c 0a 4d 44 20 43 4d  dfe52fa,,,.MD CM
27d0: 41 43 2c 64 61 74 61 20 62 69 6e 2c 2c 2c 62 69  AC,data bin,,,bi
27e0: 6e 61 72 79 20 65 6e 63 6f 64 65 20 68 65 78 20  nary encode hex 
27f0: 5b 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 62 69 6e 20  [::tls::md -bin 
2800: 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f 63 69  -cipher $test_ci
2810: 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74 5f  pher -key $test_
2820: 6b 65 79 20 2d 64 61 74 61 20 24 74 65 73 74 5f  key -data $test_
2830: 64 61 74 61 5d 2c 2c 2c 62 61 66 35 63 32 30 66  data],,,baf5c20f
2840: 39 39 37 33 65 32 64 36 30 36 62 31 34 63 37 65  9973e2d606b14c7e
2850: 66 64 66 65 35 32 66 61 2c 2c 2c 0a 2c 2c 2c 2c  fdfe52fa,,,.,,,,
2860: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23  ,,,,,,.command,#
2870: 20 54 65 73 74 20 43 4d 41 43 20 53 68 6f 72 74   Test CMAC Short
2880: 63 75 74 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 43 4d 41  cut,,,,,,,,,.CMA
2890: 43 20 53 68 6f 72 74 63 75 74 2c 64 61 74 61 2c  C Shortcut,data,
28a0: 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 24 74  ,,::tls::cmac $t
28b0: 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 20  est_cipher -key 
28c0: 24 74 65 73 74 5f 6b 65 79 20 24 74 65 73 74 5f  $test_key $test_
28d0: 64 61 74 61 2c 2c 2c 62 61 66 35 63 32 30 66 39  data,,,baf5c20f9
28e0: 39 37 33 65 32 64 36 30 36 62 31 34 63 37 65 66  973e2d606b14c7ef
28f0: 64 66 65 35 32 66 61 2c 2c 2c 0a 2c 2c 2c 2c 2c  dfe52fa,,,.,,,,,
2900: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20  ,,,,,.command,# 
2910: 43 4d 41 43 20 45 72 72 6f 72 20 43 61 73 65 73  CMAC Error Cases
2920: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 43 4d 41 43 20 45  ,,,,,,,,,.CMAC E
2930: 72 72 6f 72 73 2c 54 6f 6f 20 66 65 77 20 61 72  rrors,Too few ar
2940: 67 73 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d 61 63  gs,,,::tls::cmac
2950: 2c 2c 2c 22 77 72 6f 6e 67 20 23 20 61 72 67 73  ,,,"wrong # args
2960: 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 22 3a 3a  : should be ""::
2970: 74 6c 73 3a 3a 63 6d 61 63 20 3f 2d 62 69 6e 7c  tls::cmac ?-bin|
2980: 2d 68 65 78 3f 20 3f 2d 63 69 70 68 65 72 20 6e  -hex? ?-cipher n
2990: 61 6d 65 3f 20 3f 2d 64 69 67 65 73 74 20 6e 61  ame? ?-digest na
29a0: 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65 79 3f 20 3f  me? ?-key key? ?
29b0: 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b 2d 63 68 61  -mac name? [-cha
29c0: 6e 6e 65 6c 20 63 68 61 6e 20 7c 20 2d 63 6f 6d  nnel chan | -com
29d0: 6d 61 6e 64 20 63 6d 64 4e 61 6d 65 20 7c 20 2d  mand cmdName | -
29e0: 66 69 6c 65 20 66 69 6c 65 6e 61 6d 65 20 7c 20  file filename | 
29f0: 3f 2d 64 61 74 61 3f 20 64 61 74 61 5d 22 22 22  ?-data? data]"""
2a00: 2c 2c 2c 31 0a 43 4d 41 43 20 45 72 72 6f 72 73  ,,,1.CMAC Errors
2a10: 2c 54 6f 6f 20 6d 61 6e 79 20 61 72 67 73 2c 2c  ,Too many args,,
2a20: 2c 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 74 6f 6f  ,::tls::cmac too
2a30: 20 6d 61 6e 79 20 63 6f 6d 6d 61 6e 64 20 6c 69   many command li
2a40: 6e 65 20 61 72 67 73 20 74 6f 20 70 61 73 73 20  ne args to pass 
2a50: 74 68 65 20 74 65 73 74 20 77 69 74 68 6f 75 74  the test without
2a60: 20 61 6e 20 65 72 72 6f 72 20 6f 72 20 66 61 69   an error or fai
2a70: 6c 69 6e 67 2c 2c 2c 22 77 72 6f 6e 67 20 23 20  ling,,,"wrong # 
2a80: 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20  args: should be 
2a90: 22 22 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 3f 2d  ""::tls::cmac ?-
2aa0: 62 69 6e 7c 2d 68 65 78 3f 20 3f 2d 63 69 70 68  bin|-hex? ?-ciph
2ab0: 65 72 20 6e 61 6d 65 3f 20 3f 2d 64 69 67 65 73  er name? ?-diges
2ac0: 74 20 6e 61 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65  t name? ?-key ke
2ad0: 79 3f 20 3f 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b  y? ?-mac name? [
2ae0: 2d 63 68 61 6e 6e 65 6c 20 63 68 61 6e 20 7c 20  -channel chan | 
2af0: 2d 63 6f 6d 6d 61 6e 64 20 63 6d 64 4e 61 6d 65  -command cmdName
2b00: 20 7c 20 2d 66 69 6c 65 20 66 69 6c 65 6e 61 6d   | -file filenam
2b10: 65 20 7c 20 3f 2d 64 61 74 61 3f 20 64 61 74 61  e | ?-data? data
2b20: 5d 22 22 22 2c 2c 2c 31 0a 43 4d 41 43 20 45 72  ]""",,,1.CMAC Er
2b30: 72 6f 72 73 2c 4e 6f 20 63 69 70 68 65 72 2c 2c  rors,No cipher,,
2b40: 2c 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 68 65  ,::tls::cmac -he
2b50: 78 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61  x -data $test_da
2b60: 74 61 2c 2c 2c 6e 6f 20 63 69 70 68 65 72 2c 2c  ta,,,no cipher,,
2b70: 2c 31 0a 43 4d 41 43 20 45 72 72 6f 72 73 2c 4e  ,1.CMAC Errors,N
2b80: 6f 20 6b 65 79 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63  o key,,,::tls::c
2b90: 6d 61 63 20 2d 63 69 70 68 65 72 20 24 74 65 73  mac -cipher $tes
2ba0: 74 5f 63 69 70 68 65 72 20 2d 64 61 74 61 20 24  t_cipher -data $
2bb0: 74 65 73 74 5f 64 61 74 61 2c 2c 2c 6e 6f 20 6b  test_data,,,no k
2bc0: 65 79 2c 2c 2c 31 0a 43 4d 41 43 20 45 72 72 6f  ey,,,1.CMAC Erro
2bd0: 72 73 2c 49 6e 76 61 6c 69 64 20 63 69 70 68 65  rs,Invalid ciphe
2be0: 72 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20  r,,,::tls::cmac 
2bf0: 2d 63 69 70 68 65 72 20 62 6f 67 75 73 20 2d 64  -cipher bogus -d
2c00: 61 74 61 20 24 74 65 73 74 5f 64 61 74 61 2c 2c  ata $test_data,,
2c10: 2c 22 69 6e 76 61 6c 69 64 20 63 69 70 68 65 72  ,"invalid cipher
2c20: 20 22 22 62 6f 67 75 73 22 22 22 2c 2c 2c 31 0a   ""bogus""",,,1.
2c30: 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 2c 2c 2c 2c 2c  ,,,,,,,,,,.,,,,,
2c40: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20  ,,,,,.command,# 
2c50: 54 65 73 74 20 48 4d 41 43 20 63 6f 6d 6d 61 6e  Test HMAC comman
2c60: 64 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61  d,,,,,,,,,.comma
2c70: 6e 64 2c 73 65 74 20 74 65 73 74 5f 64 69 67 65  nd,set test_dige
2c80: 73 74 20 6d 64 35 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  st md5,,,,,,,,,.
2c90: 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 74 65 73  command,"set tes
2ca0: 74 5f 6b 65 79 20 22 22 45 78 61 6d 70 6c 65 20  t_key ""Example 
2cb0: 6b 65 79 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  key""",,,,,,,,,.
2cc0: 48 4d 41 43 2c 64 61 74 61 2c 2c 2c 3a 3a 74 6c  HMAC,data,,,::tl
2cd0: 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20  s::hmac -digest 
2ce0: 24 74 65 73 74 5f 64 69 67 65 73 74 20 2d 6b 65  $test_digest -ke
2cf0: 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74  y $test_key -dat
2d00: 61 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 66  a $test_data,,,f
2d10: 39 38 33 32 37 65 66 33 65 32 30 61 62 36 64 33  98327ef3e20ab6d3
2d20: 38 38 66 36 37 36 63 36 61 37 39 64 39 33 64 2c  88f676c6a79d93d,
2d30: 2c 2c 0a 48 4d 41 43 2c 66 69 6c 65 2c 2c 2c 3a  ,,.HMAC,file,,,:
2d40: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65  :tls::hmac -dige
2d50: 73 74 20 24 74 65 73 74 5f 64 69 67 65 73 74 20  st $test_digest 
2d60: 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20 2d  -key $test_key -
2d70: 66 69 6c 65 20 24 74 65 73 74 5f 66 69 6c 65 2c  file $test_file,
2d80: 2c 2c 66 39 38 33 32 37 65 66 33 65 32 30 61 62  ,,f98327ef3e20ab
2d90: 36 64 33 38 38 66 36 37 36 63 36 61 37 39 64 39  6d388f676c6a79d9
2da0: 33 64 2c 2c 2c 0a 48 4d 41 43 2c 63 68 61 6e 6e  3d,,,.HMAC,chann
2db0: 65 6c 2c 2c 2c 64 69 67 65 73 74 5f 72 65 61 64  el,,,digest_read
2dc0: 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 68 6d 61  _chan ::tls::hma
2dd0: 63 20 24 74 65 73 74 5f 66 69 6c 65 20 2d 64 69  c $test_file -di
2de0: 67 65 73 74 20 24 74 65 73 74 5f 64 69 67 65 73  gest $test_diges
2df0: 74 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79  t -key $test_key
2e00: 2c 2c 2c 66 39 38 33 32 37 65 66 33 65 32 30 61  ,,,f98327ef3e20a
2e10: 62 36 64 33 38 38 66 36 37 36 63 36 61 37 39 64  b6d388f676c6a79d
2e20: 39 33 64 2c 2c 2c 0a 48 4d 41 43 2c 63 6f 6d 6d  93d,,,.HMAC,comm
2e30: 61 6e 64 2c 2c 2c 64 69 67 65 73 74 5f 61 63 63  and,,,digest_acc
2e40: 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64 61  umulate $test_da
2e50: 74 61 20 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d  ta ::tls::hmac -
2e60: 64 69 67 65 73 74 20 24 74 65 73 74 5f 64 69 67  digest $test_dig
2e70: 65 73 74 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b  est -key $test_k
2e80: 65 79 2c 2c 2c 66 39 38 33 32 37 65 66 33 65 32  ey,,,f98327ef3e2
2e90: 30 61 62 36 64 33 38 38 66 36 37 36 63 36 61 37  0ab6d388f676c6a7
2ea0: 39 64 39 33 64 2c 2c 2c 0a 48 4d 41 43 2c 64 61  9d93d,,,.HMAC,da
2eb0: 74 61 20 62 69 6e 2c 2c 2c 62 69 6e 61 72 79 20  ta bin,,,binary 
2ec0: 65 6e 63 6f 64 65 20 68 65 78 20 5b 3a 3a 74 6c  encode hex [::tl
2ed0: 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20  s::hmac -digest 
2ee0: 24 74 65 73 74 5f 64 69 67 65 73 74 20 2d 62 69  $test_digest -bi
2ef0: 6e 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79  n -key $test_key
2f00: 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74   -data $test_dat
2f10: 61 5d 2c 2c 2c 66 39 38 33 32 37 65 66 33 65 32  a],,,f98327ef3e2
2f20: 30 61 62 36 64 33 38 38 66 36 37 36 63 36 61 37  0ab6d388f676c6a7
2f30: 39 64 39 33 64 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c  9d93d,,,.,,,,,,,
2f40: 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65  ,,,.command,# Te
2f50: 73 74 20 4d 44 20 48 4d 41 43 2c 2c 2c 2c 2c 2c  st MD HMAC,,,,,,
2f60: 2c 2c 2c 0a 4d 44 20 48 4d 41 43 2c 64 61 74 61  ,,,.MD HMAC,data
2f70: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69  ,,,::tls::md -di
2f80: 67 65 73 74 20 24 74 65 73 74 5f 64 69 67 65 73  gest $test_diges
2f90: 74 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79  t -key $test_key
2fa0: 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74   -data $test_dat
2fb0: 61 2c 2c 2c 66 39 38 33 32 37 65 66 33 65 32 30  a,,,f98327ef3e20
2fc0: 61 62 36 64 33 38 38 66 36 37 36 63 36 61 37 39  ab6d388f676c6a79
2fd0: 64 39 33 64 2c 2c 2c 0a 4d 44 20 48 4d 41 43 2c  d93d,,,.MD HMAC,
2fe0: 66 69 6c 65 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64  file,,,::tls::md
2ff0: 20 2d 64 69 67 65 73 74 20 24 74 65 73 74 5f 64   -digest $test_d
3000: 69 67 65 73 74 20 2d 6b 65 79 20 24 74 65 73 74  igest -key $test
3010: 5f 6b 65 79 20 2d 66 69 6c 65 20 24 74 65 73 74  _key -file $test
3020: 5f 66 69 6c 65 2c 2c 2c 66 39 38 33 32 37 65 66  _file,,,f98327ef
3030: 33 65 32 30 61 62 36 64 33 38 38 66 36 37 36 63  3e20ab6d388f676c
3040: 36 61 37 39 64 39 33 64 2c 2c 2c 0a 4d 44 20 48  6a79d93d,,,.MD H
3050: 4d 41 43 2c 63 68 61 6e 6e 65 6c 2c 2c 2c 64 69  MAC,channel,,,di
3060: 67 65 73 74 5f 72 65 61 64 5f 63 68 61 6e 20 3a  gest_read_chan :
3070: 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74 5f 66  :tls::md $test_f
3080: 69 6c 65 20 2d 64 69 67 65 73 74 20 24 74 65 73  ile -digest $tes
3090: 74 5f 64 69 67 65 73 74 20 2d 6b 65 79 20 24 74  t_digest -key $t
30a0: 65 73 74 5f 6b 65 79 2c 2c 2c 66 39 38 33 32 37  est_key,,,f98327
30b0: 65 66 33 65 32 30 61 62 36 64 33 38 38 66 36 37  ef3e20ab6d388f67
30c0: 36 63 36 61 37 39 64 39 33 64 2c 2c 2c 0a 4d 44  6c6a79d93d,,,.MD
30d0: 20 48 4d 41 43 2c 63 6f 6d 6d 61 6e 64 2c 2c 2c   HMAC,command,,,
30e0: 64 69 67 65 73 74 5f 61 63 63 75 6d 75 6c 61 74  digest_accumulat
30f0: 65 20 24 74 65 73 74 5f 64 61 74 61 20 3a 3a 74  e $test_data ::t
3100: 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 24  ls::md -digest $
3110: 74 65 73 74 5f 64 69 67 65 73 74 20 2d 6b 65 79  test_digest -key
3120: 20 24 74 65 73 74 5f 6b 65 79 2c 2c 2c 66 39 38   $test_key,,,f98
3130: 33 32 37 65 66 33 65 32 30 61 62 36 64 33 38 38  327ef3e20ab6d388
3140: 66 36 37 36 63 36 61 37 39 64 39 33 64 2c 2c 2c  f676c6a79d93d,,,
3150: 0a 4d 44 20 48 4d 41 43 2c 64 61 74 61 20 62 69  .MD HMAC,data bi
3160: 6e 2c 2c 2c 62 69 6e 61 72 79 20 65 6e 63 6f 64  n,,,binary encod
3170: 65 20 68 65 78 20 5b 3a 3a 74 6c 73 3a 3a 6d 64  e hex [::tls::md
3180: 20 2d 64 69 67 65 73 74 20 24 74 65 73 74 5f 64   -digest $test_d
3190: 69 67 65 73 74 20 2d 62 69 6e 20 2d 6b 65 79 20  igest -bin -key 
31a0: 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 20  $test_key -data 
31b0: 24 74 65 73 74 5f 64 61 74 61 5d 2c 2c 2c 66 39  $test_data],,,f9
31c0: 38 33 32 37 65 66 33 65 32 30 61 62 36 64 33 38  8327ef3e20ab6d38
31d0: 38 66 36 37 36 63 36 61 37 39 64 39 33 64 2c 2c  8f676c6a79d93d,,
31e0: 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  ,.,,,,,,,,,,.com
31f0: 6d 61 6e 64 2c 23 20 54 65 73 74 20 48 4d 41 43  mand,# Test HMAC
3200: 20 53 68 6f 72 74 63 75 74 2c 2c 2c 2c 2c 2c 2c   Shortcut,,,,,,,
3210: 2c 2c 0a 48 4d 41 43 20 53 68 6f 72 74 63 75 74  ,,.HMAC Shortcut
3220: 2c 64 61 74 61 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68  ,data,,,::tls::h
3230: 6d 61 63 20 24 74 65 73 74 5f 64 69 67 65 73 74  mac $test_digest
3240: 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20   -key $test_key 
3250: 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 66 39 38  $test_data,,,f98
3260: 33 32 37 65 66 33 65 32 30 61 62 36 64 33 38 38  327ef3e20ab6d388
3270: 66 36 37 36 63 36 61 37 39 64 39 33 64 2c 2c 2c  f676c6a79d93d,,,
3280: 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  .,,,,,,,,,,.comm
3290: 61 6e 64 2c 23 20 48 4d 41 43 20 45 72 72 6f 72  and,# HMAC Error
32a0: 20 43 61 73 65 73 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a   Cases,,,,,,,,,.
32b0: 48 4d 41 43 20 45 72 72 6f 72 73 2c 54 6f 6f 20  HMAC Errors,Too 
32c0: 66 65 77 20 61 72 67 73 2c 2c 2c 3a 3a 74 6c 73  few args,,,::tls
32d0: 3a 3a 68 6d 61 63 2c 2c 2c 22 77 72 6f 6e 67 20  ::hmac,,,"wrong 
32e0: 23 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62  # args: should b
32f0: 65 20 22 22 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20  e ""::tls::hmac 
3300: 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20 3f 2d 63 69  ?-bin|-hex? ?-ci
3310: 70 68 65 72 20 6e 61 6d 65 3f 20 3f 2d 64 69 67  pher name? ?-dig
3320: 65 73 74 20 6e 61 6d 65 3f 20 3f 2d 6b 65 79 20  est name? ?-key 
3330: 6b 65 79 3f 20 3f 2d 6d 61 63 20 6e 61 6d 65 3f  key? ?-mac name?
3340: 20 5b 2d 63 68 61 6e 6e 65 6c 20 63 68 61 6e 20   [-channel chan 
3350: 7c 20 2d 63 6f 6d 6d 61 6e 64 20 63 6d 64 4e 61  | -command cmdNa
3360: 6d 65 20 7c 20 2d 66 69 6c 65 20 66 69 6c 65 6e  me | -file filen
3370: 61 6d 65 20 7c 20 3f 2d 64 61 74 61 3f 20 64 61  ame | ?-data? da
3380: 74 61 5d 22 22 22 2c 2c 2c 31 0a 48 4d 41 43 20  ta]""",,,1.HMAC 
3390: 45 72 72 6f 72 73 2c 54 6f 6f 20 6d 61 6e 79 20  Errors,Too many 
33a0: 61 72 67 73 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d  args,,,::tls::hm
33b0: 61 63 20 74 6f 6f 20 6d 61 6e 79 20 63 6f 6d 6d  ac too many comm
33c0: 61 6e 64 20 6c 69 6e 65 20 61 72 67 73 20 74 6f  and line args to
33d0: 20 70 61 73 73 20 74 68 65 20 74 65 73 74 20 77   pass the test w
33e0: 69 74 68 6f 75 74 20 61 6e 20 65 72 72 6f 72 20  ithout an error 
33f0: 6f 72 20 66 61 69 6c 69 6e 67 2c 2c 2c 22 77 72  or failing,,,"wr
3400: 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75  ong # args: shou
3410: 6c 64 20 62 65 20 22 22 3a 3a 74 6c 73 3a 3a 68  ld be ""::tls::h
3420: 6d 61 63 20 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20  mac ?-bin|-hex? 
3430: 3f 2d 63 69 70 68 65 72 20 6e 61 6d 65 3f 20 3f  ?-cipher name? ?
3440: 2d 64 69 67 65 73 74 20 6e 61 6d 65 3f 20 3f 2d  -digest name? ?-
3450: 6b 65 79 20 6b 65 79 3f 20 3f 2d 6d 61 63 20 6e  key key? ?-mac n
3460: 61 6d 65 3f 20 5b 2d 63 68 61 6e 6e 65 6c 20 63  ame? [-channel c
3470: 68 61 6e 20 7c 20 2d 63 6f 6d 6d 61 6e 64 20 63  han | -command c
3480: 6d 64 4e 61 6d 65 20 7c 20 2d 66 69 6c 65 20 66  mdName | -file f
3490: 69 6c 65 6e 61 6d 65 20 7c 20 3f 2d 64 61 74 61  ilename | ?-data
34a0: 3f 20 64 61 74 61 5d 22 22 22 2c 2c 2c 31 0a 48  ? data]""",,,1.H
34b0: 4d 41 43 20 45 72 72 6f 72 73 2c 4e 6f 20 64 69  MAC Errors,No di
34c0: 67 65 73 74 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d  gest,,,::tls::hm
34d0: 61 63 20 2d 68 65 78 20 2d 64 61 74 61 20 24 74  ac -hex -data $t
34e0: 65 73 74 5f 64 61 74 61 2c 2c 2c 6e 6f 20 64 69  est_data,,,no di
34f0: 67 65 73 74 2c 2c 2c 31 0a 48 4d 41 43 20 45 72  gest,,,1.HMAC Er
3500: 72 6f 72 73 2c 4e 6f 20 6b 65 79 2c 2c 2c 3a 3a  rors,No key,,,::
3510: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73  tls::hmac -diges
3520: 74 20 73 68 61 32 35 36 20 2d 64 61 74 61 20 24  t sha256 -data $
3530: 74 65 73 74 5f 64 61 74 61 2c 2c 2c 6e 6f 20 6b  test_data,,,no k
3540: 65 79 2c 2c 2c 31 0a 48 4d 41 43 20 45 72 72 6f  ey,,,1.HMAC Erro
3550: 72 73 2c 49 6e 76 61 6c 69 64 20 64 69 67 65 73  rs,Invalid diges
3560: 74 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64  t,,,::tls::md -d
3570: 69 67 65 73 74 20 62 6f 67 75 73 20 2d 6b 65 79  igest bogus -key
3580: 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61   $test_key -data
3590: 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 22 69   $test_data,,,"i
35a0: 6e 76 61 6c 69 64 20 64 69 67 65 73 74 20 22 22  nvalid digest ""
35b0: 62 6f 67 75 73 22 22 22 2c 2c 2c 31 0a 2c 2c 2c  bogus""",,,1.,,,
35c0: 2c 2c 2c 2c 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c  ,,,,,,,.,,,,,,,,
35d0: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73  ,,.command,# Tes
35e0: 74 20 4d 41 43 20 63 6f 6d 6d 61 6e 64 2c 2c 2c  t MAC command,,,
35f0: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22  ,,,,,,.command,"
3600: 73 65 74 20 74 65 73 74 5f 63 69 70 68 65 72 20  set test_cipher 
3610: 22 22 61 65 73 2d 31 32 38 2d 63 62 63 22 22 22  ""aes-128-cbc"""
3620: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e  ,,,,,,,,,.comman
3630: 64 2c 73 65 74 20 74 65 73 74 5f 64 69 67 65 73  d,set test_diges
3640: 74 20 73 68 61 32 35 36 2c 2c 2c 2c 2c 2c 2c 2c  t sha256,,,,,,,,
3650: 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 74  ,.command,"set t
3660: 65 73 74 5f 6b 65 79 20 22 22 45 78 61 6d 70 6c  est_key ""Exampl
3670: 65 20 6b 65 79 20 31 32 33 34 22 22 22 2c 2c 2c  e key 1234""",,,
3680: 2c 2c 2c 2c 2c 2c 0a 4d 41 43 2c 43 4d 41 43 2c  ,,,,,,.MAC,CMAC,
3690: 2c 2c 3a 3a 74 6c 73 3a 3a 6d 61 63 20 2d 63 69  ,,::tls::mac -ci
36a0: 70 68 65 72 20 24 74 65 73 74 5f 63 69 70 68 65  pher $test_ciphe
36b0: 72 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79  r -key $test_key
36c0: 20 2d 6d 61 63 20 63 6d 61 63 20 2d 64 61 74 61   -mac cmac -data
36d0: 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 62 61   $test_data,,,ba
36e0: 66 35 63 32 30 66 39 39 37 33 65 32 64 36 30 36  f5c20f9973e2d606
36f0: 62 31 34 63 37 65 66 64 66 65 35 32 66 61 2c 2c  b14c7efdfe52fa,,
3700: 2c 0a 4d 41 43 2c 48 4d 41 43 2c 2c 2c 3a 3a 74  ,.MAC,HMAC,,,::t
3710: 6c 73 3a 3a 6d 61 63 20 2d 64 69 67 65 73 74 20  ls::mac -digest 
3720: 24 74 65 73 74 5f 64 69 67 65 73 74 20 2d 6b 65  $test_digest -ke
3730: 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 6d 61 63  y $test_key -mac
3740: 20 68 6d 61 63 20 2d 64 61 74 61 20 24 74 65 73   hmac -data $tes
3750: 74 5f 64 61 74 61 2c 2c 2c 36 37 36 64 61 66 39  t_data,,,676daf9
3760: 36 33 37 30 64 30 65 33 63 35 35 39 38 35 35 37  6370d0e3c5598557
3770: 64 61 33 38 61 39 61 38 31 30 61 34 66 62 61 63  da38a9a810a4fbac
3780: 62 62 32 64 31 30 63 36 37 66 36 64 66 61 38 33  bb2d10c67f6dfa83
3790: 66 31 30 66 34 38 65 39 36 2c 2c 2c 0a 4d 41 43  f10f48e96,,,.MAC
37a0: 2c 4d 44 2d 43 4d 41 43 2c 2c 2c 3a 3a 74 6c 73  ,MD-CMAC,,,::tls
37b0: 3a 3a 6d 64 20 2d 63 69 70 68 65 72 20 24 74 65  ::md -cipher $te
37c0: 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 20 24  st_cipher -key $
37d0: 74 65 73 74 5f 6b 65 79 20 2d 6d 61 63 20 63 6d  test_key -mac cm
37e0: 61 63 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64  ac -data $test_d
37f0: 61 74 61 2c 2c 2c 62 61 66 35 63 32 30 66 39 39  ata,,,baf5c20f99
3800: 37 33 65 32 64 36 30 36 62 31 34 63 37 65 66 64  73e2d606b14c7efd
3810: 66 65 35 32 66 61 2c 2c 2c 0a 4d 41 43 2c 4d 44  fe52fa,,,.MAC,MD
3820: 2d 48 4d 41 43 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d  -HMAC,,,::tls::m
3830: 64 20 2d 64 69 67 65 73 74 20 24 74 65 73 74 5f  d -digest $test_
3840: 64 69 67 65 73 74 20 2d 6b 65 79 20 24 74 65 73  digest -key $tes
3850: 74 5f 6b 65 79 20 2d 6d 61 63 20 68 6d 61 63 20  t_key -mac hmac 
3860: 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 61  -data $test_data
3870: 2c 2c 2c 36 37 36 64 61 66 39 36 33 37 30 64 30  ,,,676daf96370d0
3880: 65 33 63 35 35 39 38 35 35 37 64 61 33 38 61 39  e3c5598557da38a9
3890: 61 38 31 30 61 34 66 62 61 63 62 62 32 64 31 30  a810a4fbacbb2d10
38a0: 63 36 37 66 36 64 66 61 38 33 66 31 30 66 34 38  c67f6dfa83f10f48
38b0: 65 39 36 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c  e96,,,.,,,,,,,,,
38c0: 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 4d 41 43 20  ,.command,# MAC 
38d0: 45 72 72 6f 72 20 43 61 73 65 73 2c 2c 2c 2c 2c  Error Cases,,,,,
38e0: 2c 2c 2c 2c 0a 4d 41 43 20 45 72 72 6f 72 73 2c  ,,,,.MAC Errors,
38f0: 54 6f 6f 20 66 65 77 20 61 72 67 73 2c 2c 2c 3a  Too few args,,,:
3900: 3a 74 6c 73 3a 3a 6d 61 63 2c 2c 2c 22 77 72 6f  :tls::mac,,,"wro
3910: 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75 6c  ng # args: shoul
3920: 64 20 62 65 20 22 22 3a 3a 74 6c 73 3a 3a 6d 61  d be ""::tls::ma
3930: 63 20 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20 3f 2d  c ?-bin|-hex? ?-
3940: 63 69 70 68 65 72 20 6e 61 6d 65 3f 20 3f 2d 64  cipher name? ?-d
3950: 69 67 65 73 74 20 6e 61 6d 65 3f 20 3f 2d 6b 65  igest name? ?-ke
3960: 79 20 6b 65 79 3f 20 3f 2d 6d 61 63 20 6e 61 6d  y key? ?-mac nam
3970: 65 3f 20 5b 2d 63 68 61 6e 6e 65 6c 20 63 68 61  e? [-channel cha
3980: 6e 20 7c 20 2d 63 6f 6d 6d 61 6e 64 20 63 6d 64  n | -command cmd
3990: 4e 61 6d 65 20 7c 20 2d 66 69 6c 65 20 66 69 6c  Name | -file fil
39a0: 65 6e 61 6d 65 20 7c 20 3f 2d 64 61 74 61 3f 20  ename | ?-data? 
39b0: 64 61 74 61 5d 22 22 22 2c 2c 2c 31 0a 4d 41 43  data]""",,,1.MAC
39c0: 20 45 72 72 6f 72 73 2c 4e 6f 20 6d 61 63 2c 2c   Errors,No mac,,
39d0: 2c 3a 3a 74 6c 73 3a 3a 6d 61 63 20 2d 6b 65 79  ,::tls::mac -key
39e0: 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61   $test_key -data
39f0: 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 6e 6f   $test_data,,,no
3a00: 20 4d 41 43 2c 2c 2c 31 0a 4d 41 43 20 45 72 72   MAC,,,1.MAC Err
3a10: 6f 72 73 2c 4e 6f 20 6b 65 79 2c 2c 2c 3a 3a 74  ors,No key,,,::t
3a20: 6c 73 3a 3a 6d 61 63 20 2d 6d 61 63 20 68 6d 61  ls::mac -mac hma
3a30: 63 20 2d 64 69 67 65 73 74 20 24 74 65 73 74 5f  c -digest $test_
3a40: 64 69 67 65 73 74 20 2d 64 61 74 61 20 24 74 65  digest -data $te
3a50: 73 74 5f 64 61 74 61 2c 2c 2c 6e 6f 20 6b 65 79  st_data,,,no key
3a60: 2c 2c 2c 31 0a 4d 41 43 20 45 72 72 6f 72 73 2c  ,,,1.MAC Errors,
3a70: 49 6e 76 61 6c 69 64 20 4d 41 43 2c 2c 2c 3a 3a  Invalid MAC,,,::
3a80: 74 6c 73 3a 3a 6d 61 63 20 2d 6d 61 63 20 62 6f  tls::mac -mac bo
3a90: 67 75 73 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b  gus -key $test_k
3aa0: 65 79 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64  ey -data $test_d
3ab0: 61 74 61 2c 2c 2c 22 69 6e 76 61 6c 69 64 20 4d  ata,,,"invalid M
3ac0: 41 43 20 22 22 62 6f 67 75 73 22 22 22 2c 2c 2c  AC ""bogus""",,,
3ad0: 31 0a 4d 41 43 20 45 72 72 6f 72 73 2c 54 6f 6f  1.MAC Errors,Too
3ae0: 20 6d 61 6e 79 20 61 72 67 73 2c 2c 2c 3a 3a 74   many args,,,::t
3af0: 6c 73 3a 3a 6d 61 63 20 74 6f 6f 20 6d 61 6e 79  ls::mac too many
3b00: 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 72   command line ar
3b10: 67 73 20 74 6f 20 70 61 73 73 20 74 68 65 20 74  gs to pass the t
3b20: 65 73 74 20 77 69 74 68 6f 75 74 20 61 6e 20 65  est without an e
3b30: 72 72 6f 72 20 6f 72 20 66 61 69 6c 69 6e 67 2c  rror or failing,
3b40: 2c 2c 22 77 72 6f 6e 67 20 23 20 61 72 67 73 3a  ,,"wrong # args:
3b50: 20 73 68 6f 75 6c 64 20 62 65 20 22 22 3a 3a 74   should be ""::t
3b60: 6c 73 3a 3a 6d 61 63 20 3f 2d 62 69 6e 7c 2d 68  ls::mac ?-bin|-h
3b70: 65 78 3f 20 3f 2d 63 69 70 68 65 72 20 6e 61 6d  ex? ?-cipher nam
3b80: 65 3f 20 3f 2d 64 69 67 65 73 74 20 6e 61 6d 65  e? ?-digest name
3b90: 3f 20 3f 2d 6b 65 79 20 6b 65 79 3f 20 3f 2d 6d  ? ?-key key? ?-m
3ba0: 61 63 20 6e 61 6d 65 3f 20 5b 2d 63 68 61 6e 6e  ac name? [-chann
3bb0: 65 6c 20 63 68 61 6e 20 7c 20 2d 63 6f 6d 6d 61  el chan | -comma
3bc0: 6e 64 20 63 6d 64 4e 61 6d 65 20 7c 20 2d 66 69  nd cmdName | -fi
3bd0: 6c 65 20 66 69 6c 65 6e 61 6d 65 20 7c 20 3f 2d  le filename | ?-
3be0: 64 61 74 61 3f 20 64 61 74 61 5d 22 22 22 2c 2c  data? data]""",,
3bf0: 2c 31 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 2c 2c  ,1.,,,,,,,,,,.,,
3c00: 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64  ,,,,,,,,.command
3c10: 2c 23 20 52 46 43 20 31 33 32 31 20 4d 65 73 73  ,# RFC 1321 Mess
3c20: 61 67 65 20 44 69 67 65 73 74 20 35 2c 2c 2c 2c  age Digest 5,,,,
3c30: 2c 2c 2c 2c 2c 0a 52 46 43 31 33 32 31 2d 4d 44  ,,,,,.RFC1321-MD
3c40: 35 2c 54 43 31 2c 2c 2c 22 3a 3a 74 6c 73 3a 3a  5,TC1,,,"::tls::
3c50: 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35 20 2d  md -digest md5 -
3c60: 64 61 74 61 20 22 22 22 22 22 2c 2c 2c 64 34 31  data """"",,,d41
3c70: 64 38 63 64 39 38 66 30 30 62 32 30 34 65 39 38  d8cd98f00b204e98
3c80: 30 30 39 39 38 65 63 66 38 34 32 37 65 2c 2c 2c  00998ecf8427e,,,
3c90: 0a 52 46 43 31 33 32 31 2d 4d 44 35 2c 54 43 32  .RFC1321-MD5,TC2
3ca0: 2c 2c 2c 22 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64  ,,,"::tls::md -d
3cb0: 69 67 65 73 74 20 6d 64 35 20 2d 64 61 74 61 20  igest md5 -data 
3cc0: 22 22 61 22 22 22 2c 2c 2c 30 63 63 31 37 35 62  ""a""",,,0cc175b
3cd0: 39 63 30 66 31 62 36 61 38 33 31 63 33 39 39 65  9c0f1b6a831c399e
3ce0: 32 36 39 37 37 32 36 36 31 2c 2c 2c 0a 52 46 43  269772661,,,.RFC
3cf0: 31 33 32 31 2d 4d 44 35 2c 54 43 33 2c 2c 2c 22  1321-MD5,TC3,,,"
3d00: 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73  ::tls::md -diges
3d10: 74 20 6d 64 35 20 2d 64 61 74 61 20 22 22 61 62  t md5 -data ""ab
3d20: 63 22 22 22 2c 2c 2c 39 30 30 31 35 30 39 38 33  c""",,,900150983
3d30: 63 64 32 34 66 62 30 64 36 39 36 33 66 37 64 32  cd24fb0d6963f7d2
3d40: 38 65 31 37 66 37 32 2c 2c 2c 0a 52 46 43 31 33  8e17f72,,,.RFC13
3d50: 32 31 2d 4d 44 35 2c 54 43 34 2c 2c 2c 22 3a 3a  21-MD5,TC4,,,"::
3d60: 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20  tls::md -digest 
3d70: 6d 64 35 20 2d 64 61 74 61 20 22 22 6d 65 73 73  md5 -data ""mess
3d80: 61 67 65 20 64 69 67 65 73 74 22 22 22 2c 2c 2c  age digest""",,,
3d90: 66 39 36 62 36 39 37 64 37 63 62 37 39 33 38 64  f96b697d7cb7938d
3da0: 35 32 35 61 32 66 33 31 61 61 66 31 36 31 64 30  525a2f31aaf161d0
3db0: 2c 2c 2c 0a 52 46 43 31 33 32 31 2d 4d 44 35 2c  ,,,.RFC1321-MD5,
3dc0: 54 43 35 2c 2c 2c 22 3a 3a 74 6c 73 3a 3a 6d 64  TC5,,,"::tls::md
3dd0: 20 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 64 61   -digest md5 -da
3de0: 74 61 20 22 22 61 62 63 64 65 66 67 68 69 6a 6b  ta ""abcdefghijk
3df0: 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 22  lmnopqrstuvwxyz"
3e00: 22 22 2c 2c 2c 63 33 66 63 64 33 64 37 36 31 39  "",,,c3fcd3d7619
3e10: 32 65 34 30 30 37 64 66 62 34 39 36 63 63 61 36  2e4007dfb496cca6
3e20: 37 65 31 33 62 2c 2c 2c 0a 52 46 43 31 33 32 31  7e13b,,,.RFC1321
3e30: 2d 4d 44 35 2c 54 43 36 2c 2c 2c 22 3a 3a 74 6c  -MD5,TC6,,,"::tl
3e40: 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64  s::md -digest md
3e50: 35 20 2d 64 61 74 61 20 22 22 41 42 43 44 45 46  5 -data ""ABCDEF
3e60: 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56  GHIJKLMNOPQRSTUV
3e70: 57 58 59 5a 61 62 63 64 65 66 67 68 69 6a 6b 6c  WXYZabcdefghijkl
3e80: 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 30 31  mnopqrstuvwxyz01
3e90: 32 33 34 35 36 37 38 39 22 22 22 2c 2c 2c 64 31  23456789""",,,d1
3ea0: 37 34 61 62 39 38 64 32 37 37 64 39 66 35 61 35  74ab98d277d9f5a5
3eb0: 36 31 31 63 32 63 39 66 34 31 39 64 39 66 2c 2c  611c2c9f419d9f,,
3ec0: 2c 0a 52 46 43 31 33 32 31 2d 4d 44 35 2c 54 43  ,.RFC1321-MD5,TC
3ed0: 37 2c 2c 2c 22 3a 3a 74 6c 73 3a 3a 6d 64 20 2d  7,,,"::tls::md -
3ee0: 64 69 67 65 73 74 20 6d 64 35 20 2d 64 61 74 61  digest md5 -data
3ef0: 20 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 20   [string repeat 
3f00: 22 22 31 32 33 34 35 36 37 38 39 30 22 22 20 38  ""1234567890"" 8
3f10: 5d 22 2c 2c 2c 35 37 65 64 66 34 61 32 32 62 65  ]",,,57edf4a22be
3f20: 33 63 39 35 35 61 63 34 39 64 61 32 65 32 31 30  3c955ac49da2e210
3f30: 37 62 36 37 61 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c  7b67a,,,.,,,,,,,
3f40: 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 52 46  ,,,.command,# RF
3f50: 43 20 36 32 33 34 20 53 48 41 31 2c 2c 2c 2c 2c  C 6234 SHA1,,,,,
3f60: 2c 2c 2c 2c 0a 52 46 43 36 32 33 34 2d 4d 44 2d  ,,,,.RFC6234-MD-
3f70: 53 48 41 31 2c 54 43 31 2c 2c 2c 22 3a 3a 74 6c  SHA1,TC1,,,"::tl
3f80: 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68  s::md -digest sh
3f90: 61 31 20 2d 64 61 74 61 20 22 22 61 62 63 22 22  a1 -data ""abc""
3fa0: 22 2c 2c 2c 61 39 39 39 33 65 33 36 34 37 30 36  ",,,a9993e364706
3fb0: 38 31 36 61 62 61 33 65 32 35 37 31 37 38 35 30  816aba3e25717850
3fc0: 63 32 36 63 39 63 64 30 64 38 39 64 2c 2c 2c 0a  c26c9cd0d89d,,,.
3fd0: 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 41 31 2c  RFC6234-MD-SHA1,
3fe0: 54 43 32 5f 31 2c 2c 2c 22 3a 3a 74 6c 73 3a 3a  TC2_1,,,"::tls::
3ff0: 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 31 20  md -digest sha1 
4000: 2d 64 61 74 61 20 22 22 61 62 63 64 62 63 64 65  -data ""abcdbcde
4010: 63 64 65 66 64 65 66 67 65 66 67 68 66 67 68 69  cdefdefgefghfghi
4020: 67 68 69 6a 68 69 6a 6b 69 6a 6b 6c 6a 6b 6c 6d  ghijhijkijkljklm
4030: 6b 6c 6d 6e 6c 6d 6e 6f 6d 6e 6f 70 6e 6f 70 71  klmnlmnomnopnopq
4040: 22 22 22 2c 2c 2c 38 34 39 38 33 65 34 34 31 63  """,,,84983e441c
4050: 33 62 64 32 36 65 62 61 61 65 34 61 61 31 66 39  3bd26ebaae4aa1f9
4060: 35 31 32 39 65 35 65 35 34 36 37 30 66 31 2c 2c  5129e5e54670f1,,
4070: 2c 0a 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 41  ,.RFC6234-MD-SHA
4080: 31 2c 54 43 33 2c 2c 2c 22 3a 3a 74 6c 73 3a 3a  1,TC3,,,"::tls::
4090: 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 31 20  md -digest sha1 
40a0: 2d 64 61 74 61 20 5b 73 74 72 69 6e 67 20 72 65  -data [string re
40b0: 70 65 61 74 20 22 22 61 22 22 20 31 30 30 30 30  peat ""a"" 10000
40c0: 30 30 5d 22 2c 2c 2c 33 34 61 61 39 37 33 63 64  00]",,,34aa973cd
40d0: 34 63 34 64 61 61 34 66 36 31 65 65 62 32 62 64  4c4daa4f61eeb2bd
40e0: 62 61 64 32 37 33 31 36 35 33 34 30 31 36 66 2c  bad27316534016f,
40f0: 2c 2c 0a 52 46 43 36 32 33 34 2d 4d 44 2d 53 48  ,,.RFC6234-MD-SH
4100: 41 31 2c 54 43 34 2c 2c 2c 22 3a 3a 74 6c 73 3a  A1,TC4,,,"::tls:
4110: 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 31  :md -digest sha1
4120: 20 2d 64 61 74 61 20 5b 73 74 72 69 6e 67 20 72   -data [string r
4130: 65 70 65 61 74 20 22 22 30 31 32 33 34 35 36 37  epeat ""01234567
4140: 22 22 20 38 30 5d 22 2c 2c 2c 64 65 61 33 35 36  "" 80]",,,dea356
4150: 61 32 63 64 64 64 39 30 63 37 61 37 65 63 65 64  a2cddd90c7a7eced
4160: 63 35 65 62 62 35 36 33 39 33 34 66 34 36 30 34  c5ebb563934f4604
4170: 35 32 2c 2c 2c 0a 52 46 43 36 32 33 34 2d 4d 44  52,,,.RFC6234-MD
4180: 2d 53 48 41 31 2c 54 43 36 2c 2c 2c 22 3a 3a 74  -SHA1,TC6,,,"::t
4190: 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73  ls::md -digest s
41a0: 68 61 31 20 2d 64 61 74 61 20 22 22 5c 78 35 65  ha1 -data ""\x5e
41b0: 22 22 22 2c 2c 2c 35 65 36 66 38 30 61 33 34 61  """,,,5e6f80a34a
41c0: 39 37 39 38 63 61 66 63 36 61 35 64 62 39 36 63  9798cafc6a5db96c
41d0: 63 35 37 62 61 34 63 34 64 62 35 39 63 32 2c 2c  c57ba4c4db59c2,,
41e0: 2c 0a 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 41  ,.RFC6234-MD-SHA
41f0: 31 2c 54 43 38 5f 31 2c 2c 2c 22 3a 3a 74 6c 73  1,TC8_1,,,"::tls
4200: 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61  ::md -digest sha
4210: 31 20 2d 64 61 74 61 20 22 22 5c 78 39 61 5c 78  1 -data ""\x9a\x
4220: 37 64 5c 78 66 64 5c 78 66 31 5c 78 65 63 5c 78  7d\xfd\xf1\xec\x
4230: 65 61 5c 78 64 30 5c 78 36 65 5c 78 64 36 5c 78  ea\xd0\x6e\xd6\x
4240: 34 36 5c 78 61 61 5c 78 35 35 5c 78 66 65 5c 78  46\xaa\x55\xfe\x
4250: 37 35 5c 78 37 31 5c 78 34 36 22 22 22 2c 2c 2c  75\x71\x46""",,,
4260: 38 32 61 62 66 66 36 36 30 35 64 62 65 31 63 31  82abff6605dbe1c1
4270: 37 64 65 66 31 32 61 33 39 34 66 61 32 32 61 38  7def12a394fa22a8
4280: 32 62 35 34 34 61 33 35 2c 2c 2c 0a 52 46 43 36  2b544a35,,,.RFC6
4290: 32 33 34 2d 4d 44 2d 53 48 41 31 2c 54 43 31 30  234-MD-SHA1,TC10
42a0: 5f 31 2c 2c 2c 22 3a 3a 74 6c 73 3a 3a 6d 64 20  _1,,,"::tls::md 
42b0: 2d 64 69 67 65 73 74 20 73 68 61 31 20 2d 64 61  -digest sha1 -da
42c0: 74 61 20 22 22 5c 78 66 37 5c 78 38 66 5c 78 39  ta ""\xf7\x8f\x9
42d0: 32 5c 78 31 34 5c 78 31 62 5c 78 63 64 5c 78 31  2\x14\x1b\xcd\x1
42e0: 37 5c 78 30 61 5c 78 65 38 5c 78 39 62 5c 78 34  7\x0a\xe8\x9b\x4
42f0: 66 5c 78 62 61 5c 78 31 35 5c 78 61 31 5c 78 64  f\xba\x15\xa1\xd
4300: 35 5c 78 39 66 5c 78 33 66 5c 78 64 38 5c 78 34  5\x9f\x3f\xd8\x4
4310: 64 5c 78 32 32 5c 78 33 63 5c 78 39 32 5c 78 35  d\x22\x3c\x92\x5
4320: 31 5c 78 62 64 5c 78 61 63 5c 78 62 62 5c 78 61  1\xbd\xac\xbb\xa
4330: 65 5c 78 36 31 5c 78 64 30 5c 78 35 65 5c 78 64  e\x61\xd0\x5e\xd
4340: 31 5c 78 31 35 5c 78 61 30 5c 78 36 61 5c 78 37  1\x15\xa0\x6a\x7
4350: 63 5c 78 65 31 5c 78 31 37 5c 78 62 37 5c 78 62  c\xe1\x17\xb7\xb
4360: 65 5c 78 65 61 5c 78 64 32 5c 78 34 34 5c 78 32  e\xea\xd2\x44\x2
4370: 31 5c 78 64 65 5c 78 64 39 5c 78 63 33 5c 78 32  1\xde\xd9\xc3\x2
4380: 35 5c 78 39 32 5c 78 62 64 5c 78 35 37 5c 78 65  5\x92\xbd\x57\xe
4390: 64 5c 78 65 61 5c 78 65 33 5c 78 39 63 5c 78 33  d\xea\xe3\x9c\x3
43a0: 39 5c 78 66 61 5c 78 31 66 5c 78 65 38 5c 78 39  9\xfa\x1f\xe8\x9
43b0: 34 5c 78 36 61 5c 78 38 34 5c 78 64 30 5c 78 63  4\x6a\x84\xd0\xc
43c0: 66 5c 78 31 66 5c 78 37 62 5c 78 65 65 5c 78 61  f\x1f\x7b\xee\xa
43d0: 64 5c 78 31 37 5c 78 31 33 5c 78 65 32 5c 78 65  d\x17\x13\xe2\xe
43e0: 30 5c 78 39 35 5c 78 39 38 5c 78 39 37 5c 78 33  0\x95\x98\x97\x3
43f0: 34 5c 78 37 66 5c 78 36 37 5c 78 63 38 5c 78 30  4\x7f\x67\xc8\x0
4400: 62 5c 78 30 34 5c 78 30 30 5c 78 63 32 5c 78 30  b\x04\x00\xc2\x0
4410: 39 5c 78 38 31 5c 78 35 64 5c 78 36 62 5c 78 31  9\x81\x5d\x6b\x1
4420: 30 5c 78 61 36 5c 78 38 33 5c 78 38 33 5c 78 36  0\xa6\x83\x83\x6
4430: 66 5c 78 64 35 5c 78 35 36 5c 78 32 61 5c 78 35  f\xd5\x56\x2a\x5
4440: 36 5c 78 63 61 5c 78 62 31 5c 78 61 32 5c 78 38  6\xca\xb1\xa2\x8
4450: 65 5c 78 38 31 5c 78 62 36 5c 78 35 37 5c 78 36  e\x81\xb6\x57\x6
4460: 36 5c 78 35 34 5c 78 36 33 5c 78 31 63 5c 78 66  6\x54\x63\x1c\xf
4470: 31 5c 78 36 35 5c 78 36 36 5c 78 62 38 5c 78 36  1\x65\x66\xb8\x6
4480: 65 5c 78 33 62 5c 78 33 33 5c 78 61 31 5c 78 30  e\x3b\x33\xa1\x0
4490: 38 5c 78 62 30 5c 78 35 33 5c 78 30 37 5c 78 63  8\xb0\x53\x07\xc
44a0: 30 5c 78 30 61 5c 78 66 66 5c 78 31 34 5c 78 61  0\x0a\xff\x14\xa
44b0: 37 5c 78 36 38 5c 78 65 64 5c 78 37 33 5c 78 35  7\x68\xed\x73\x5
44c0: 30 5c 78 36 30 5c 78 36 61 5c 78 30 66 5c 78 38  0\x60\x6a\x0f\x8
44d0: 35 5c 78 65 36 5c 78 61 39 5c 78 31 64 5c 78 33  5\xe6\xa9\x1d\x3
44e0: 39 5c 78 36 66 5c 78 35 62 5c 78 35 63 5c 78 62  9\x6f\x5b\x5c\xb
44f0: 65 5c 78 35 37 5c 78 37 66 5c 78 39 62 5c 78 33  e\x57\x7f\x9b\x3
4500: 38 5c 78 38 30 5c 78 37 63 5c 78 37 64 5c 78 35  8\x80\x7c\x7d\x5
4510: 32 5c 78 33 64 5c 78 36 64 5c 78 37 39 5c 78 32  2\x3d\x6d\x79\x2
4520: 66 5c 78 36 65 5c 78 62 63 5c 78 32 34 5c 78 61  f\x6e\xbc\x24\xa
4530: 34 5c 78 65 63 5c 78 66 32 5c 78 62 33 5c 78 61  4\xec\xf2\xb3\xa
4540: 34 5c 78 32 37 5c 78 63 64 5c 78 62 62 5c 78 66  4\x27\xcd\xbb\xf
4550: 62 22 22 22 2c 2c 2c 63 62 30 30 38 32 63 38 66  b""",,,cb0082c8f
4560: 31 39 37 64 32 36 30 39 39 31 62 61 36 61 34 36  197d260991ba6a46
4570: 30 65 37 36 65 32 30 32 62 61 64 32 37 62 33 2c  0e76e202bad27b3,
4580: 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f  ,,.,,,,,,,,,,.co
4590: 6d 6d 61 6e 64 2c 23 20 52 46 43 20 36 32 33 34  mmand,# RFC 6234
45a0: 20 53 48 41 32 35 36 2c 2c 2c 2c 2c 2c 2c 2c 2c   SHA256,,,,,,,,,
45b0: 0a 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 41 32  .RFC6234-MD-SHA2
45c0: 35 36 2c 54 43 31 2c 2c 2c 22 3a 3a 74 6c 73 3a  56,TC1,,,"::tls:
45d0: 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 32  :md -digest sha2
45e0: 35 36 20 2d 64 61 74 61 20 22 22 61 62 63 22 22  56 -data ""abc""
45f0: 22 2c 2c 2c 62 61 37 38 31 36 62 66 38 66 30 31  ",,,ba7816bf8f01
4600: 63 66 65 61 34 31 34 31 34 30 64 65 35 64 61 65  cfea414140de5dae
4610: 32 32 32 33 62 30 30 33 36 31 61 33 39 36 31 37  2223b00361a39617
4620: 37 61 39 63 62 34 31 30 66 66 36 31 66 32 30 30  7a9cb410ff61f200
4630: 31 35 61 64 2c 2c 2c 0a 52 46 43 36 32 33 34 2d  15ad,,,.RFC6234-
4640: 4d 44 2d 53 48 41 32 35 36 2c 54 43 32 5f 31 2c  MD-SHA256,TC2_1,
4650: 2c 2c 22 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69  ,,"::tls::md -di
4660: 67 65 73 74 20 73 68 61 32 35 36 20 2d 64 61 74  gest sha256 -dat
4670: 61 20 22 22 61 62 63 64 62 63 64 65 63 64 65 66  a ""abcdbcdecdef
4680: 64 65 66 67 65 66 67 68 66 67 68 69 67 68 69 6a  defgefghfghighij
4690: 68 69 6a 6b 69 6a 6b 6c 6a 6b 6c 6d 6b 6c 6d 6e  hijkijkljklmklmn
46a0: 6c 6d 6e 6f 6d 6e 6f 70 6e 6f 70 71 22 22 22 2c  lmnomnopnopq""",
46b0: 2c 2c 32 34 38 64 36 61 36 31 64 32 30 36 33 38  ,,248d6a61d20638
46c0: 62 38 65 35 63 30 32 36 39 33 30 63 33 65 36 30  b8e5c026930c3e60
46d0: 33 39 61 33 33 63 65 34 35 39 36 34 66 66 32 31  39a33ce45964ff21
46e0: 36 37 66 36 65 63 65 64 64 34 31 39 64 62 30 36  67f6ecedd419db06
46f0: 63 31 2c 2c 2c 0a 52 46 43 36 32 33 34 2d 4d 44  c1,,,.RFC6234-MD
4700: 2d 53 48 41 32 35 36 2c 54 43 33 2c 2c 2c 22 3a  -SHA256,TC3,,,":
4710: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74  :tls::md -digest
4720: 20 73 68 61 32 35 36 20 2d 64 61 74 61 20 5b 73   sha256 -data [s
4730: 74 72 69 6e 67 20 72 65 70 65 61 74 20 22 22 61  tring repeat ""a
4740: 22 22 20 31 30 30 30 30 30 30 5d 22 2c 2c 2c 63  "" 1000000]",,,c
4750: 64 63 37 36 65 35 63 39 39 31 34 66 62 39 32 38  dc76e5c9914fb928
4760: 31 61 31 63 37 65 32 38 34 64 37 33 65 36 37 66  1a1c7e284d73e67f
4770: 31 38 30 39 61 34 38 61 34 39 37 32 30 30 65 30  1809a48a497200e0
4780: 34 36 64 33 39 63 63 63 37 31 31 32 63 64 30 2c  46d39ccc7112cd0,
4790: 2c 2c 0a 52 46 43 36 32 33 34 2d 4d 44 2d 53 48  ,,.RFC6234-MD-SH
47a0: 41 32 35 36 2c 54 43 34 2c 2c 2c 22 3a 3a 74 6c  A256,TC4,,,"::tl
47b0: 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68  s::md -digest sh
47c0: 61 32 35 36 20 2d 64 61 74 61 20 5b 73 74 72 69  a256 -data [stri
47d0: 6e 67 20 72 65 70 65 61 74 20 22 22 30 31 32 33  ng repeat ""0123
47e0: 34 35 36 37 22 22 20 38 30 5d 22 2c 2c 2c 35 39  4567"" 80]",,,59
47f0: 34 38 34 37 33 32 38 34 35 31 62 64 66 61 38 35  4847328451bdfa85
4800: 30 35 36 32 32 35 34 36 32 63 63 31 64 38 36 37  056225462cc1d867
4810: 64 38 37 37 66 62 33 38 38 64 66 30 63 65 33 35  d877fb388df0ce35
4820: 66 32 35 61 62 35 35 36 32 62 66 62 62 35 2c 2c  f25ab5562bfbb5,,
4830: 2c 0a 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 41  ,.RFC6234-MD-SHA
4840: 32 35 36 2c 54 43 36 2c 2c 2c 22 3a 3a 74 6c 73  256,TC6,,,"::tls
4850: 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61  ::md -digest sha
4860: 32 35 36 20 2d 64 61 74 61 20 22 22 5c 78 31 39  256 -data ""\x19
4870: 22 22 22 2c 2c 2c 36 38 61 61 32 65 32 65 65 35  """,,,68aa2e2ee5
4880: 64 66 66 39 36 65 33 33 35 35 65 36 63 37 65 65  dff96e3355e6c7ee
4890: 33 37 33 65 33 64 36 61 34 65 31 37 66 37 35 66  373e3d6a4e17f75f
48a0: 39 35 31 38 64 38 34 33 37 30 39 63 30 63 39 62  9518d843709c0c9b
48b0: 63 33 65 33 64 34 2c 2c 2c 0a 52 46 43 36 32 33  c3e3d4,,,.RFC623
48c0: 34 2d 4d 44 2d 53 48 41 32 35 36 2c 54 43 38 5f  4-MD-SHA256,TC8_
48d0: 32 35 36 2c 2c 2c 22 3a 3a 74 6c 73 3a 3a 6d 64  256,,,"::tls::md
48e0: 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20   -digest sha256 
48f0: 2d 64 61 74 61 20 22 22 5c 78 65 33 5c 78 64 37  -data ""\xe3\xd7
4900: 5c 78 32 35 5c 78 37 30 5c 78 64 63 5c 78 64 64  \x25\x70\xdc\xdd
4910: 5c 78 37 38 5c 78 37 63 5c 78 65 33 5c 78 38 38  \x78\x7c\xe3\x88
4920: 5c 78 37 61 5c 78 62 32 5c 78 63 64 5c 78 36 38  \x7a\xb2\xcd\x68
4930: 5c 78 34 36 5c 78 35 32 22 22 22 2c 2c 2c 31 37  \x46\x52""",,,17
4940: 35 65 65 36 39 62 30 32 62 61 39 62 35 38 65 32  5ee69b02ba9b58e2
4950: 62 30 61 35 66 64 31 33 38 31 39 63 65 61 35 37  b0a5fd13819cea57
4960: 33 66 33 39 34 30 61 39 34 66 38 32 35 31 32 38  3f3940a94f825128
4970: 63 66 34 32 30 39 62 65 61 62 62 34 65 38 2c 2c  cf4209beabb4e8,,
4980: 2c 0a 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 41  ,.RFC6234-MD-SHA
4990: 32 35 36 2c 54 43 31 30 5f 32 35 36 2c 2c 2c 22  256,TC10_256,,,"
49a0: 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73  ::tls::md -diges
49b0: 74 20 73 68 61 32 35 36 20 2d 64 61 74 61 20 22  t sha256 -data "
49c0: 22 5c 78 38 33 5c 78 32 36 5c 78 37 35 5c 78 34  "\x83\x26\x75\x4
49d0: 65 5c 78 32 32 5c 78 37 37 5c 78 33 37 5c 78 32  e\x22\x77\x37\x2
49e0: 66 5c 78 34 66 5c 78 63 31 5c 78 32 62 5c 78 32  f\x4f\xc1\x2b\x2
49f0: 30 5c 78 35 32 5c 78 37 61 5c 78 66 65 5c 78 66  0\x52\x7a\xfe\xf
4a00: 30 5c 78 34 64 5c 78 38 61 5c 78 30 35 5c 78 36  0\x4d\x8a\x05\x6
4a10: 39 5c 78 37 31 5c 78 62 31 5c 78 31 61 5c 78 64  9\x71\xb1\x1a\xd
4a20: 35 5c 78 37 31 5c 78 32 33 5c 78 61 37 5c 78 63  5\x71\x23\xa7\xc
4a30: 31 5c 78 33 37 5c 78 37 36 5c 78 30 30 5c 78 30  1\x37\x76\x00\x0
4a40: 30 5c 78 64 37 5c 78 62 65 5c 78 66 36 5c 78 66  0\xd7\xbe\xf6\xf
4a50: 33 5c 78 63 31 5c 78 66 37 5c 78 61 39 5c 78 30  3\xc1\xf7\xa9\x0
4a60: 38 5c 78 33 61 5c 78 61 33 5c 78 39 64 5c 78 38  8\x3a\xa3\x9d\x8
4a70: 31 5c 78 30 64 5c 78 62 33 5c 78 31 30 5c 78 37  1\x0d\xb3\x10\x7
4a80: 37 5c 78 37 64 5c 78 61 62 5c 78 38 62 5c 78 31  7\x7d\xab\x8b\x1
4a90: 65 5c 78 37 66 5c 78 30 32 5c 78 62 38 5c 78 34  e\x7f\x02\xb8\x4
4aa0: 61 5c 78 32 36 5c 78 63 37 5c 78 37 33 5c 78 33  a\x26\xc7\x73\x3
4ab0: 32 5c 78 35 66 5c 78 38 62 5c 78 32 33 5c 78 37  2\x5f\x8b\x23\x7
4ac0: 34 5c 78 64 65 5c 78 37 61 5c 78 34 62 5c 78 35  4\xde\x7a\x4b\x5
4ad0: 61 5c 78 35 38 5c 78 63 62 5c 78 35 63 5c 78 35  a\x58\xcb\x5c\x5
4ae0: 63 5c 78 66 33 5c 78 35 62 5c 78 63 65 5c 78 65  c\xf3\x5b\xce\xe
4af0: 36 5c 78 66 62 5c 78 39 34 5c 78 36 65 5c 78 35  6\xfb\x94\x6e\x5
4b00: 62 5c 78 64 36 5c 78 39 34 5c 78 66 61 5c 78 35  b\xd6\x94\xfa\x5
4b10: 39 5c 78 33 61 5c 78 38 62 5c 78 65 62 5c 78 33  9\x3a\x8b\xeb\x3
4b20: 66 5c 78 39 64 5c 78 36 35 5c 78 39 32 5c 78 65  f\x9d\x65\x92\xe
4b30: 63 5c 78 65 64 5c 78 61 61 5c 78 36 36 5c 78 63  c\xed\xaa\x66\xc
4b40: 61 5c 78 38 32 5c 78 61 32 5c 78 39 64 5c 78 30  a\x82\xa2\x9d\x0
4b50: 63 5c 78 35 31 5c 78 62 63 5c 78 66 39 5c 78 33  c\x51\xbc\xf9\x3
4b60: 33 5c 78 36 32 5c 78 33 30 5c 78 65 35 5c 78 64  3\x62\x30\xe5\xd
4b70: 37 5c 78 38 34 5c 78 65 34 5c 78 63 30 5c 78 61  7\x84\xe4\xc0\xa
4b80: 34 5c 78 33 66 5c 78 38 64 5c 78 37 39 5c 78 61  4\x3f\x8d\x79\xa
4b90: 33 5c 78 30 61 5c 78 31 36 5c 78 35 63 5c 78 62  3\x0a\x16\x5c\xb
4ba0: 61 5c 78 62 65 5c 78 34 35 5c 78 32 62 5c 78 37  a\xbe\x45\x2b\x7
4bb0: 37 5c 78 34 62 5c 78 39 63 5c 78 37 31 5c 78 30  7\x4b\x9c\x71\x0
4bc0: 39 5c 78 61 39 5c 78 37 64 5c 78 31 33 5c 78 38  9\xa9\x7d\x13\x8
4bd0: 66 5c 78 31 32 5c 78 39 32 5c 78 32 38 5c 78 39  f\x12\x92\x28\x9
4be0: 36 5c 78 36 66 5c 78 36 63 5c 78 30 61 5c 78 64  6\x6f\x6c\x0a\xd
4bf0: 63 5c 78 31 30 5c 78 36 61 5c 78 61 64 5c 78 35  c\x10\x6a\xad\x5
4c00: 61 5c 78 39 66 5c 78 64 64 5c 78 33 30 5c 78 38  a\x9f\xdd\x30\x8
4c10: 32 5c 78 35 37 5c 78 36 39 5c 78 62 32 5c 78 63  2\x57\x69\xb2\xc
4c20: 36 5c 78 37 31 5c 78 61 66 5c 78 36 37 5c 78 35  6\x71\xaf\x67\x5
4c30: 39 5c 78 64 66 5c 78 32 38 5c 78 65 62 5c 78 33  9\xdf\x28\xeb\x3
4c40: 39 5c 78 33 64 5c 78 35 34 5c 78 64 36 22 22 22  9\x3d\x54\xd6"""
4c50: 2c 2c 2c 39 37 64 62 63 61 37 64 66 34 36 64 36  ,,,97dbca7df46d6
4c60: 32 63 38 61 34 32 32 63 39 34 31 64 64 37 65 38  2c8a422c941dd7e8
4c70: 33 35 62 38 61 64 33 33 36 31 37 36 33 66 37 65  35b8ad3361763f7e
4c80: 39 62 32 64 39 35 66 34 66 30 64 61 36 65 31 63  9b2d95f4f0da6e1c
4c90: 63 62 63 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c  cbc,,,.,,,,,,,,,
4ca0: 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 52 46 43 20  ,.command,# RFC 
4cb0: 34 32 33 31 20 48 4d 41 43 20 45 78 61 6d 70 6c  4231 HMAC Exampl
4cc0: 65 73 20 54 65 73 74 20 43 61 73 65 20 23 31 2c  es Test Case #1,
4cd0: 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64  ,,,,,,,,.command
4ce0: 2c 22 73 65 74 20 6b 65 79 20 5b 62 69 6e 61 72  ,"set key [binar
4cf0: 79 20 64 65 63 6f 64 65 20 68 65 78 20 5b 73 74  y decode hex [st
4d00: 72 69 6e 67 20 72 65 70 65 61 74 20 22 22 30 62  ring repeat ""0b
4d10: 22 22 20 32 30 5d 5d 22 2c 2c 2c 2c 2c 2c 2c 2c  "" 20]]",,,,,,,,
4d20: 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 64  ,.command,"set d
4d30: 61 74 61 20 22 22 48 69 20 54 68 65 72 65 22 22  ata ""Hi There""
4d40: 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 52 46 43 34 32  ",,,,,,,,,.RFC42
4d50: 33 31 20 48 4d 41 43 20 54 43 31 2c 73 68 61 32  31 HMAC TC1,sha2
4d60: 32 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63  24,,,::tls::hmac
4d70: 20 2d 64 69 67 65 73 74 20 73 68 61 32 32 34 20   -digest sha224 
4d80: 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20  -key $key -data 
4d90: 24 64 61 74 61 2c 2c 2c 38 39 36 66 62 31 31 32  $data,,,896fb112
4da0: 38 61 62 62 64 66 31 39 36 38 33 32 31 30 37 63  8abbdf196832107c
4db0: 64 34 39 64 66 33 33 66 34 37 62 34 62 31 31 36  d49df33f47b4b116
4dc0: 39 39 31 32 62 61 34 66 35 33 36 38 34 62 32 32  9912ba4f53684b22
4dd0: 2c 2c 2c 0a 52 46 43 34 32 33 31 20 48 4d 41 43  ,,,.RFC4231 HMAC
4de0: 20 54 43 31 2c 73 68 61 32 35 36 2c 2c 2c 3a 3a   TC1,sha256,,,::
4df0: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73  tls::hmac -diges
4e00: 74 20 73 68 61 32 35 36 20 2d 6b 65 79 20 24 6b  t sha256 -key $k
4e10: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c  ey -data $data,,
4e20: 2c 62 30 33 34 34 63 36 31 64 38 64 62 33 38 35  ,b0344c61d8db385
4e30: 33 35 63 61 38 61 66 63 65 61 66 30 62 66 31 32  35ca8afceaf0bf12
4e40: 62 38 38 31 64 63 32 30 30 63 39 38 33 33 64 61  b881dc200c9833da
4e50: 37 32 36 65 39 33 37 36 63 32 65 33 32 63 66 66  726e9376c2e32cff
4e60: 37 2c 2c 2c 0a 52 46 43 34 32 33 31 20 48 4d 41  7,,,.RFC4231 HMA
4e70: 43 20 54 43 31 2c 73 68 61 33 38 34 2c 2c 2c 3a  C TC1,sha384,,,:
4e80: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65  :tls::hmac -dige
4e90: 73 74 20 73 68 61 33 38 34 20 2d 6b 65 79 20 24  st sha384 -key $
4ea0: 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c  key -data $data,
4eb0: 2c 2c 61 66 64 30 33 39 34 34 64 38 34 38 39 35  ,,afd03944d84895
4ec0: 36 32 36 62 30 38 32 35 66 34 61 62 34 36 39 30  626b0825f4ab4690
4ed0: 37 66 31 35 66 39 64 61 64 62 65 34 31 30 31 65  7f15f9dadbe4101e
4ee0: 63 36 38 32 61 61 30 33 34 63 37 63 65 62 63 35  c682aa034c7cebc5
4ef0: 39 63 66 61 65 61 39 65 61 39 30 37 36 65 64 65  9cfaea9ea9076ede
4f00: 37 66 34 61 66 31 35 32 65 38 62 32 66 61 39 63  7f4af152e8b2fa9c
4f10: 62 36 2c 2c 2c 0a 52 46 43 34 32 33 31 20 48 4d  b6,,,.RFC4231 HM
4f20: 41 43 20 54 43 31 2c 73 68 61 35 31 32 2c 2c 2c  AC TC1,sha512,,,
4f30: 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67  ::tls::hmac -dig
4f40: 65 73 74 20 73 68 61 35 31 32 20 2d 6b 65 79 20  est sha512 -key 
4f50: 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61  $key -data $data
4f60: 2c 2c 2c 38 37 61 61 37 63 64 65 61 35 65 66 36  ,,,87aa7cdea5ef6
4f70: 31 39 64 34 66 66 30 62 34 32 34 31 61 31 64 36  19d4ff0b4241a1d6
4f80: 63 62 30 32 33 37 39 66 34 65 32 63 65 34 65 63  cb02379f4e2ce4ec
4f90: 32 37 38 37 61 64 30 62 33 30 35 34 35 65 31 37  2787ad0b30545e17
4fa0: 63 64 65 64 61 61 38 33 33 62 37 64 36 62 38 61  cdedaa833b7d6b8a
4fb0: 37 30 32 30 33 38 62 32 37 34 65 61 65 61 33 66  702038b274eaea3f
4fc0: 34 65 34 62 65 39 64 39 31 34 65 65 62 36 31 66  4e4be9d914eeb61f
4fd0: 31 37 30 32 65 36 39 36 63 32 30 33 61 31 32 36  1702e696c203a126
4fe0: 38 35 34 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c  854,,,.,,,,,,,,,
4ff0: 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 52 46 43 20  ,.command,# RFC 
5000: 34 32 33 31 20 48 4d 41 43 20 45 78 61 6d 70 6c  4231 HMAC Exampl
5010: 65 73 20 54 65 73 74 20 43 61 73 65 20 23 32 20  es Test Case #2 
5020: 2d 20 54 65 73 74 20 77 69 74 68 20 61 20 6b 65  - Test with a ke
5030: 79 20 73 68 6f 72 74 65 72 20 74 68 61 6e 20 74  y shorter than t
5040: 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65  he length of the
5050: 20 48 4d 41 43 20 6f 75 74 70 75 74 2e 2c 2c 2c   HMAC output.,,,
5060: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22  ,,,,,,.command,"
5070: 73 65 74 20 6b 65 79 20 22 22 4a 65 66 65 22 22  set key ""Jefe""
5080: 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61  ",,,,,,,,,.comma
5090: 6e 64 2c 22 73 65 74 20 64 61 74 61 20 22 22 77  nd,"set data ""w
50a0: 68 61 74 20 64 6f 20 79 61 20 77 61 6e 74 20 66  hat do ya want f
50b0: 6f 72 20 6e 6f 74 68 69 6e 67 3f 22 22 22 2c 2c  or nothing?""",,
50c0: 2c 2c 2c 2c 2c 2c 2c 0a 52 46 43 34 32 33 31 20  ,,,,,,,.RFC4231 
50d0: 48 4d 41 43 20 54 43 32 2c 73 68 61 32 32 34 2c  HMAC TC2,sha224,
50e0: 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64  ,,::tls::hmac -d
50f0: 69 67 65 73 74 20 73 68 61 32 32 34 20 2d 6b 65  igest sha224 -ke
5100: 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61  y $key -data $da
5110: 74 61 2c 2c 2c 61 33 30 65 30 31 30 39 38 62 63  ta,,,a30e01098bc
5120: 36 64 62 62 66 34 35 36 39 30 66 33 61 37 65 39  6dbbf45690f3a7e9
5130: 65 36 64 30 66 38 62 62 65 61 32 61 33 39 65 36  e6d0f8bbea2a39e6
5140: 31 34 38 30 30 38 66 64 30 35 65 34 34 2c 2c 2c  148008fd05e44,,,
5150: 0a 52 46 43 34 32 33 31 20 48 4d 41 43 20 54 43  .RFC4231 HMAC TC
5160: 32 2c 73 68 61 32 35 36 2c 2c 2c 3a 3a 74 6c 73  2,sha256,,,::tls
5170: 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73  ::hmac -digest s
5180: 68 61 32 35 36 20 2d 6b 65 79 20 24 6b 65 79 20  ha256 -key $key 
5190: 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 35 62  -data $data,,,5b
51a0: 64 63 63 31 34 36 62 66 36 30 37 35 34 65 36 61  dcc146bf60754e6a
51b0: 30 34 32 34 32 36 30 38 39 35 37 35 63 37 35 61  042426089575c75a
51c0: 30 30 33 66 30 38 39 64 32 37 33 39 38 33 39 64  003f089d2739839d
51d0: 65 63 35 38 62 39 36 34 65 63 33 38 34 33 2c 2c  ec58b964ec3843,,
51e0: 2c 0a 52 46 43 34 32 33 31 20 48 4d 41 43 20 54  ,.RFC4231 HMAC T
51f0: 43 32 2c 73 68 61 33 38 34 2c 2c 2c 3a 3a 74 6c  C2,sha384,,,::tl
5200: 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20  s::hmac -digest 
5210: 73 68 61 33 38 34 20 2d 6b 65 79 20 24 6b 65 79  sha384 -key $key
5220: 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 61   -data $data,,,a
5230: 66 34 35 64 32 65 33 37 36 34 38 34 30 33 31 36  f45d2e3764840316
5240: 31 37 66 37 38 64 32 62 35 38 61 36 62 31 62 39  17f78d2b58a6b1b9
5250: 63 37 65 66 34 36 34 66 35 61 30 31 62 34 37 65  c7ef464f5a01b47e
5260: 34 32 65 63 33 37 33 36 33 32 32 34 34 35 65 38  42ec3736322445e8
5270: 65 32 32 34 30 63 61 35 65 36 39 65 32 63 37 38  e2240ca5e69e2c78
5280: 62 33 32 33 39 65 63 66 61 62 32 31 36 34 39 2c  b3239ecfab21649,
5290: 2c 2c 0a 52 46 43 34 32 33 31 20 48 4d 41 43 20  ,,.RFC4231 HMAC 
52a0: 54 43 32 2c 73 68 61 35 31 32 2c 2c 2c 3a 3a 74  TC2,sha512,,,::t
52b0: 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74  ls::hmac -digest
52c0: 20 73 68 61 35 31 32 20 2d 6b 65 79 20 24 6b 65   sha512 -key $ke
52d0: 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c  y -data $data,,,
52e0: 31 36 34 62 37 61 37 62 66 63 66 38 31 39 65 32  164b7a7bfcf819e2
52f0: 65 33 39 35 66 62 65 37 33 62 35 36 65 30 61 33  e395fbe73b56e0a3
5300: 38 37 62 64 36 34 32 32 32 65 38 33 31 66 64 36  87bd64222e831fd6
5310: 31 30 32 37 30 63 64 37 65 61 32 35 30 35 35 34  10270cd7ea250554
5320: 39 37 35 38 62 66 37 35 63 30 35 61 39 39 34 61  9758bf75c05a994a
5330: 36 64 30 33 34 66 36 35 66 38 66 30 65 36 66 64  6d034f65f8f0e6fd
5340: 63 61 65 61 62 31 61 33 34 64 34 61 36 62 34 62  caeab1a34d4a6b4b
5350: 36 33 36 65 30 37 30 61 33 38 62 63 65 37 33 37  636e070a38bce737
5360: 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63  ,,,.,,,,,,,,,,.c
5370: 6f 6d 6d 61 6e 64 2c 23 20 52 46 43 20 34 32 33  ommand,# RFC 423
5380: 31 20 48 4d 41 43 20 45 78 61 6d 70 6c 65 73 20  1 HMAC Examples 
5390: 54 65 73 74 20 43 61 73 65 20 23 33 20 2d 20 54  Test Case #3 - T
53a0: 65 73 74 20 77 69 74 68 20 61 20 63 6f 6d 62 69  est with a combi
53b0: 6e 65 64 20 6c 65 6e 67 74 68 20 6f 66 20 6b 65  ned length of ke
53c0: 79 20 61 6e 64 20 64 61 74 61 20 74 68 61 74 20  y and data that 
53d0: 69 73 20 6c 61 72 67 65 72 20 74 68 61 6e 20 36  is larger than 6
53e0: 34 20 62 79 74 65 73 20 28 3d 20 62 6c 6f 63 6b  4 bytes (= block
53f0: 2d 73 69 7a 65 20 6f 66 20 53 48 41 2d 32 32 34  -size of SHA-224
5400: 20 61 6e 64 20 53 48 41 2d 32 35 36 29 2e 2c 2c   and SHA-256).,,
5410: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
5420: 22 73 65 74 20 6b 65 79 20 5b 62 69 6e 61 72 79  "set key [binary
5430: 20 64 65 63 6f 64 65 20 68 65 78 20 5b 73 74 72   decode hex [str
5440: 69 6e 67 20 72 65 70 65 61 74 20 22 22 61 61 22  ing repeat ""aa"
5450: 22 20 32 30 5d 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c  " 20]]",,,,,,,,,
5460: 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 64 61  .command,"set da
5470: 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64  ta [binary decod
5480: 65 20 68 65 78 20 5b 73 74 72 69 6e 67 20 72 65  e hex [string re
5490: 70 65 61 74 20 22 22 64 64 22 22 20 35 30 5d 5d  peat ""dd"" 50]]
54a0: 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 52 46 43 34 32  ",,,,,,,,,.RFC42
54b0: 33 31 20 48 4d 41 43 20 54 43 33 2c 73 68 61 32  31 HMAC TC3,sha2
54c0: 32 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63  24,,,::tls::hmac
54d0: 20 2d 64 69 67 65 73 74 20 73 68 61 32 32 34 20   -digest sha224 
54e0: 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20  -key $key -data 
54f0: 24 64 61 74 61 2c 2c 2c 37 66 62 33 63 62 33 35  $data,,,7fb3cb35
5500: 38 38 63 36 63 31 66 36 66 66 61 39 36 39 34 64  88c6c1f6ffa9694d
5510: 37 64 36 61 64 32 36 34 39 33 36 35 62 30 63 31  7d6ad2649365b0c1
5520: 66 36 35 64 36 39 64 31 65 63 38 33 33 33 65 61  f65d69d1ec8333ea
5530: 2c 2c 2c 0a 52 46 43 34 32 33 31 20 48 4d 41 43  ,,,.RFC4231 HMAC
5540: 20 54 43 33 2c 73 68 61 32 35 36 2c 2c 2c 3a 3a   TC3,sha256,,,::
5550: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73  tls::hmac -diges
5560: 74 20 73 68 61 32 35 36 20 2d 6b 65 79 20 24 6b  t sha256 -key $k
5570: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c  ey -data $data,,
5580: 2c 37 37 33 65 61 39 31 65 33 36 38 30 30 65 34  ,773ea91e36800e4
5590: 36 38 35 34 64 62 38 65 62 64 30 39 31 38 31 61  6854db8ebd09181a
55a0: 37 32 39 35 39 30 39 38 62 33 65 66 38 63 31 32  72959098b3ef8c12
55b0: 32 64 39 36 33 35 35 31 34 63 65 64 35 36 35 66  2d9635514ced565f
55c0: 65 2c 2c 2c 0a 52 46 43 34 32 33 31 20 48 4d 41  e,,,.RFC4231 HMA
55d0: 43 20 54 43 33 2c 73 68 61 33 38 34 2c 2c 2c 3a  C TC3,sha384,,,:
55e0: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65  :tls::hmac -dige
55f0: 73 74 20 73 68 61 33 38 34 20 2d 6b 65 79 20 24  st sha384 -key $
5600: 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c  key -data $data,
5610: 2c 2c 38 38 30 36 32 36 30 38 64 33 65 36 61 64  ,,88062608d3e6ad
5620: 38 61 30 61 61 32 61 63 65 30 31 34 63 38 61 38  8a0aa2ace014c8a8
5630: 36 66 30 61 61 36 33 35 64 39 34 37 61 63 39 66  6f0aa635d947ac9f
5640: 65 62 65 38 33 65 66 34 65 35 35 39 36 36 31 34  ebe83ef4e5596614
5650: 34 62 32 61 35 61 62 33 39 64 63 31 33 38 31 34  4b2a5ab39dc13814
5660: 62 39 34 65 33 61 62 36 65 31 30 31 61 33 34 66  b94e3ab6e101a34f
5670: 32 37 2c 2c 2c 0a 52 46 43 34 32 33 31 20 48 4d  27,,,.RFC4231 HM
5680: 41 43 20 54 43 33 2c 73 68 61 35 31 32 2c 2c 2c  AC TC3,sha512,,,
5690: 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67  ::tls::hmac -dig
56a0: 65 73 74 20 73 68 61 35 31 32 20 2d 6b 65 79 20  est sha512 -key 
56b0: 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61  $key -data $data
56c0: 2c 2c 2c 66 61 37 33 62 30 30 38 39 64 35 36 61  ,,,fa73b0089d56a
56d0: 32 38 34 65 66 62 30 66 30 37 35 36 63 38 39 30  284efb0f0756c890
56e0: 62 65 39 62 31 62 35 64 62 64 64 38 65 65 38 31  be9b1b5dbdd8ee81
56f0: 61 33 36 35 35 66 38 33 65 33 33 62 32 32 37 39  a3655f83e33b2279
5700: 64 33 39 62 66 33 65 38 34 38 32 37 39 61 37 32  d39bf3e848279a72
5710: 32 63 38 30 36 62 34 38 35 61 34 37 65 36 37 63  2c806b485a47e67c
5720: 38 30 37 62 39 34 36 61 33 33 37 62 65 65 38 39  807b946a337bee89
5730: 34 32 36 37 34 32 37 38 38 35 39 65 31 33 32 39  42674278859e1329
5740: 32 66 62 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c  2fb,,,.,,,,,,,,,
5750: 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 52 46 43 20  ,.command,# RFC 
5760: 34 32 33 31 20 48 4d 41 43 20 45 78 61 6d 70 6c  4231 HMAC Exampl
5770: 65 73 20 54 65 73 74 20 43 61 73 65 20 23 34 20  es Test Case #4 
5780: 2d 20 54 65 73 74 20 77 69 74 68 20 61 20 63 6f  - Test with a co
5790: 6d 62 69 6e 65 64 20 6c 65 6e 67 74 68 20 6f 66  mbined length of
57a0: 20 6b 65 79 20 61 6e 64 20 64 61 74 61 20 74 68   key and data th
57b0: 61 74 20 69 73 20 6c 61 72 67 65 72 20 74 68 61  at is larger tha
57c0: 6e 20 36 34 20 62 79 74 65 73 20 28 3d 20 62 6c  n 64 bytes (= bl
57d0: 6f 63 6b 2d 73 69 7a 65 20 6f 66 20 53 48 41 2d  ock-size of SHA-
57e0: 32 32 34 20 61 6e 64 20 53 48 41 2d 32 35 36 29  224 and SHA-256)
57f0: 2e 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61  .,,,,,,,,,.comma
5800: 6e 64 2c 22 73 65 74 20 6b 65 79 20 5b 62 69 6e  nd,"set key [bin
5810: 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 22  ary decode hex "
5820: 22 30 31 30 32 30 33 30 34 30 35 30 36 30 37 30  "010203040506070
5830: 38 30 39 30 61 30 62 30 63 30 64 30 65 30 66 31  8090a0b0c0d0e0f1
5840: 30 31 31 31 32 31 33 31 34 31 35 31 36 31 37 31  0111213141516171
5850: 38 31 39 22 22 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c  819""]",,,,,,,,,
5860: 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 64 61  .command,"set da
5870: 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64  ta [binary decod
5880: 65 20 68 65 78 20 5b 73 74 72 69 6e 67 20 72 65  e hex [string re
5890: 70 65 61 74 20 22 22 63 64 22 22 20 35 30 5d 5d  peat ""cd"" 50]]
58a0: 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 52 46 43 34 32  ",,,,,,,,,.RFC42
58b0: 33 31 20 48 4d 41 43 20 54 43 34 2c 73 68 61 32  31 HMAC TC4,sha2
58c0: 32 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63  24,,,::tls::hmac
58d0: 20 2d 64 69 67 65 73 74 20 73 68 61 32 32 34 20   -digest sha224 
58e0: 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20  -key $key -data 
58f0: 24 64 61 74 61 2c 2c 2c 36 63 31 31 35 30 36 38  $data,,,6c115068
5900: 37 34 30 31 33 63 61 63 36 61 32 61 62 63 31 62  74013cac6a2abc1b
5910: 62 33 38 32 36 32 37 63 65 63 36 61 39 30 64 38  b382627cec6a90d8
5920: 36 65 66 63 30 31 32 64 65 37 61 66 65 63 35 61  6efc012de7afec5a
5930: 2c 2c 2c 0a 52 46 43 34 32 33 31 20 48 4d 41 43  ,,,.RFC4231 HMAC
5940: 20 54 43 34 2c 73 68 61 32 35 36 2c 2c 2c 3a 3a   TC4,sha256,,,::
5950: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73  tls::hmac -diges
5960: 74 20 73 68 61 32 35 36 20 2d 6b 65 79 20 24 6b  t sha256 -key $k
5970: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c  ey -data $data,,
5980: 2c 38 32 35 35 38 61 33 38 39 61 34 34 33 63 30  ,82558a389a443c0
5990: 65 61 34 63 63 38 31 39 38 39 39 66 32 30 38 33  ea4cc819899f2083
59a0: 61 38 35 66 30 66 61 61 33 65 35 37 38 66 38 30  a85f0faa3e578f80
59b0: 37 37 61 32 65 33 66 66 34 36 37 32 39 36 36 35  77a2e3ff46729665
59c0: 62 2c 2c 2c 0a 52 46 43 34 32 33 31 20 48 4d 41  b,,,.RFC4231 HMA
59d0: 43 20 54 43 34 2c 73 68 61 33 38 34 2c 2c 2c 3a  C TC4,sha384,,,:
59e0: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65  :tls::hmac -dige
59f0: 73 74 20 73 68 61 33 38 34 20 2d 6b 65 79 20 24  st sha384 -key $
5a00: 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c  key -data $data,
5a10: 2c 2c 33 65 38 61 36 39 62 37 37 38 33 63 32 35  ,,3e8a69b7783c25
5a20: 38 35 31 39 33 33 61 62 36 32 39 30 61 66 36 63  851933ab6290af6c
5a30: 61 37 37 61 39 39 38 31 34 38 30 38 35 30 30 30  a77a998148085000
5a40: 39 63 63 35 35 37 37 63 36 65 31 66 35 37 33 62  9cc5577c6e1f573b
5a50: 34 65 36 38 30 31 64 64 32 33 63 34 61 37 64 36  4e6801dd23c4a7d6
5a60: 37 39 63 63 66 38 61 33 38 36 63 36 37 34 63 66  79ccf8a386c674cf
5a70: 66 62 2c 2c 2c 0a 52 46 43 34 32 33 31 20 48 4d  fb,,,.RFC4231 HM
5a80: 41 43 20 54 43 34 2c 73 68 61 35 31 32 2c 2c 2c  AC TC4,sha512,,,
5a90: 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67  ::tls::hmac -dig
5aa0: 65 73 74 20 73 68 61 35 31 32 20 2d 6b 65 79 20  est sha512 -key 
5ab0: 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61  $key -data $data
5ac0: 2c 2c 2c 62 30 62 61 34 36 35 36 33 37 34 35 38  ,,,b0ba465637458
5ad0: 63 36 39 39 30 65 35 61 38 63 35 66 36 31 64 34  c6990e5a8c5f61d4
5ae0: 61 66 37 65 35 37 36 64 39 37 66 66 39 34 62 38  af7e576d97ff94b8
5af0: 37 32 64 65 37 36 66 38 30 35 30 33 36 31 65 65  72de76f8050361ee
5b00: 33 64 62 61 39 31 63 61 35 63 31 31 61 61 32 35  3dba91ca5c11aa25
5b10: 65 62 34 64 36 37 39 32 37 35 63 63 35 37 38 38  eb4d679275cc5788
5b20: 30 36 33 61 35 66 31 39 37 34 31 31 32 30 63 34  063a5f19741120c4
5b30: 66 32 64 65 32 61 64 65 62 65 62 31 30 61 32 39  f2de2adebeb10a29
5b40: 38 64 64 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c  8dd,,,.,,,,,,,,,
5b50: 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 52 46 43 20  ,.command,# RFC 
5b60: 34 32 33 31 20 48 4d 41 43 20 45 78 61 6d 70 6c  4231 HMAC Exampl
5b70: 65 73 20 54 65 73 74 20 43 61 73 65 20 23 35 20  es Test Case #5 
5b80: 2d 20 54 65 73 74 20 77 69 74 68 20 61 20 74 72  - Test with a tr
5b90: 75 6e 63 61 74 69 6f 6e 20 6f 66 20 6f 75 74 70  uncation of outp
5ba0: 75 74 20 74 6f 20 31 32 38 20 62 69 74 73 2e 2c  ut to 128 bits.,
5bb0: 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64  ,,,,,,,,.command
5bc0: 2c 22 73 65 74 20 6b 65 79 20 5b 62 69 6e 61 72  ,"set key [binar
5bd0: 79 20 64 65 63 6f 64 65 20 68 65 78 20 5b 73 74  y decode hex [st
5be0: 72 69 6e 67 20 72 65 70 65 61 74 20 22 22 30 63  ring repeat ""0c
5bf0: 22 22 20 32 30 5d 5d 22 2c 2c 2c 2c 2c 2c 2c 2c  "" 20]]",,,,,,,,
5c00: 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 64  ,.command,"set d
5c10: 61 74 61 20 22 22 54 65 73 74 20 57 69 74 68 20  ata ""Test With 
5c20: 54 72 75 6e 63 61 74 69 6f 6e 22 22 22 2c 2c 2c  Truncation""",,,
5c30: 2c 2c 2c 2c 2c 2c 0a 52 46 43 34 32 33 31 20 48  ,,,,,,.RFC4231 H
5c40: 4d 41 43 20 54 43 35 2c 73 68 61 32 32 34 2c 2c  MAC TC5,sha224,,
5c50: 2c 73 74 72 69 6e 67 20 72 61 6e 67 65 20 5b 3a  ,string range [:
5c60: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65  :tls::hmac -dige
5c70: 73 74 20 73 68 61 32 32 34 20 2d 6b 65 79 20 24  st sha224 -key $
5c80: 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 5d  key -data $data]
5c90: 20 30 20 33 31 2c 2c 2c 30 65 32 61 65 61 36 38   0 31,,,0e2aea68
5ca0: 61 39 30 63 38 64 33 37 63 39 38 38 62 63 64 62  a90c8d37c988bcdb
5cb0: 39 66 63 61 36 66 61 38 2c 2c 2c 0a 52 46 43 34  9fca6fa8,,,.RFC4
5cc0: 32 33 31 20 48 4d 41 43 20 54 43 35 2c 73 68 61  231 HMAC TC5,sha
5cd0: 32 35 36 2c 2c 2c 73 74 72 69 6e 67 20 72 61 6e  256,,,string ran
5ce0: 67 65 20 5b 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20  ge [::tls::hmac 
5cf0: 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d  -digest sha256 -
5d00: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24  key $key -data $
5d10: 64 61 74 61 5d 20 30 20 33 31 2c 2c 2c 61 33 62  data] 0 31,,,a3b
5d20: 36 31 36 37 34 37 33 31 30 30 65 65 30 36 65 30  6167473100ee06e0
5d30: 63 37 39 36 63 32 39 35 35 35 35 32 62 2c 2c 2c  c796c2955552b,,,
5d40: 0a 52 46 43 34 32 33 31 20 48 4d 41 43 20 54 43  .RFC4231 HMAC TC
5d50: 35 2c 73 68 61 33 38 34 2c 2c 2c 73 74 72 69 6e  5,sha384,,,strin
5d60: 67 20 72 61 6e 67 65 20 5b 3a 3a 74 6c 73 3a 3a  g range [::tls::
5d70: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61  hmac -digest sha
5d80: 33 38 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64  384 -key $key -d
5d90: 61 74 61 20 24 64 61 74 61 5d 20 30 20 33 31 2c  ata $data] 0 31,
5da0: 2c 2c 33 61 62 66 33 34 63 33 35 30 33 62 32 61  ,,3abf34c3503b2a
5db0: 32 33 61 34 36 65 66 63 36 31 39 62 61 65 66 38  23a46efc619baef8
5dc0: 39 37 2c 2c 2c 0a 52 46 43 34 32 33 31 20 48 4d  97,,,.RFC4231 HM
5dd0: 41 43 20 54 43 35 2c 73 68 61 35 31 32 2c 2c 2c  AC TC5,sha512,,,
5de0: 73 74 72 69 6e 67 20 72 61 6e 67 65 20 5b 3a 3a  string range [::
5df0: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73  tls::hmac -diges
5e00: 74 20 73 68 61 35 31 32 20 2d 6b 65 79 20 24 6b  t sha512 -key $k
5e10: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 5d 20  ey -data $data] 
5e20: 30 20 33 31 2c 2c 2c 34 31 35 66 61 64 36 32 37  0 31,,,415fad627
5e30: 31 35 38 30 61 35 33 31 64 34 31 37 39 62 63 38  1580a531d4179bc8
5e40: 39 31 64 38 37 61 36 2c 2c 2c 0a 2c 2c 2c 2c 2c  91d87a6,,,.,,,,,
5e50: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20  ,,,,,.command,# 
5e60: 52 46 43 20 34 32 33 31 20 48 4d 41 43 20 45 78  RFC 4231 HMAC Ex
5e70: 61 6d 70 6c 65 73 20 54 65 73 74 20 43 61 73 65  amples Test Case
5e80: 20 23 36 20 2d 20 54 65 73 74 20 77 69 74 68 20   #6 - Test with 
5e90: 61 20 6b 65 79 20 6c 61 72 67 65 72 20 74 68 61  a key larger tha
5ea0: 6e 20 31 32 38 20 62 79 74 65 73 20 28 3d 20 62  n 128 bytes (= b
5eb0: 6c 6f 63 6b 2d 73 69 7a 65 20 6f 66 20 53 48 41  lock-size of SHA
5ec0: 2d 33 38 34 20 61 6e 64 20 53 48 41 2d 35 31 32  -384 and SHA-512
5ed0: 29 2e 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  ).,,,,,,,,,.comm
5ee0: 61 6e 64 2c 22 73 65 74 20 6b 65 79 20 5b 62 69  and,"set key [bi
5ef0: 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20  nary decode hex 
5f00: 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 20 22  [string repeat "
5f10: 22 61 61 22 22 20 31 33 31 5d 5d 22 2c 2c 2c 2c  "aa"" 131]]",,,,
5f20: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73  ,,,,,.command,"s
5f30: 65 74 20 64 61 74 61 20 22 22 54 65 73 74 20 55  et data ""Test U
5f40: 73 69 6e 67 20 4c 61 72 67 65 72 20 54 68 61 6e  sing Larger Than
5f50: 20 42 6c 6f 63 6b 2d 53 69 7a 65 20 4b 65 79 20   Block-Size Key 
5f60: 2d 20 48 61 73 68 20 4b 65 79 20 46 69 72 73 74  - Hash Key First
5f70: 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 52 46 43  """,,,,,,,,,.RFC
5f80: 34 32 33 31 20 48 4d 41 43 20 54 43 36 2c 73 68  4231 HMAC TC6,sh
5f90: 61 32 32 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d  a224,,,::tls::hm
5fa0: 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 32 32  ac -digest sha22
5fb0: 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74  4 -key $key -dat
5fc0: 61 20 24 64 61 74 61 2c 2c 2c 39 35 65 39 61 30  a $data,,,95e9a0
5fd0: 64 62 39 36 32 30 39 35 61 64 61 65 62 65 39 62  db962095adaebe9b
5fe0: 32 64 36 66 30 64 62 63 65 32 64 34 39 39 66 31  2d6f0dbce2d499f1
5ff0: 31 32 66 32 64 32 62 37 32 37 33 66 61 36 38 37  12f2d2b7273fa687
6000: 30 65 2c 2c 2c 0a 52 46 43 34 32 33 31 20 48 4d  0e,,,.RFC4231 HM
6010: 41 43 20 54 43 36 2c 73 68 61 32 35 36 2c 2c 2c  AC TC6,sha256,,,
6020: 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67  ::tls::hmac -dig
6030: 65 73 74 20 73 68 61 32 35 36 20 2d 6b 65 79 20  est sha256 -key 
6040: 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61  $key -data $data
6050: 2c 2c 2c 36 30 65 34 33 31 35 39 31 65 65 30 62  ,,,60e431591ee0b
6060: 36 37 66 30 64 38 61 32 36 61 61 63 62 66 35 62  67f0d8a26aacbf5b
6070: 37 37 66 38 65 30 62 63 36 32 31 33 37 32 38 63  77f8e0bc6213728c
6080: 35 31 34 30 35 34 36 30 34 30 66 30 65 65 33 37  5140546040f0ee37
6090: 66 35 34 2c 2c 2c 0a 52 46 43 34 32 33 31 20 48  f54,,,.RFC4231 H
60a0: 4d 41 43 20 54 43 36 2c 73 68 61 33 38 34 2c 2c  MAC TC6,sha384,,
60b0: 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69  ,::tls::hmac -di
60c0: 67 65 73 74 20 73 68 61 33 38 34 20 2d 6b 65 79  gest sha384 -key
60d0: 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74   $key -data $dat
60e0: 61 2c 2c 2c 34 65 63 65 30 38 34 34 38 35 38 31  a,,,4ece08448581
60f0: 33 65 39 30 38 38 64 32 63 36 33 61 30 34 31 62  3e9088d2c63a041b
6100: 63 35 62 34 34 66 39 65 66 31 30 31 32 61 32 62  c5b44f9ef1012a2b
6110: 35 38 38 66 33 63 64 31 31 66 30 35 30 33 33 61  588f3cd11f05033a
6120: 63 34 63 36 30 63 32 65 66 36 61 62 34 30 33 30  c4c60c2ef6ab4030
6130: 66 65 38 32 39 36 32 34 38 64 66 31 36 33 66 34  fe8296248df163f4
6140: 34 39 35 32 2c 2c 2c 0a 52 46 43 34 32 33 31 20  4952,,,.RFC4231 
6150: 48 4d 41 43 20 54 43 36 2c 73 68 61 35 31 32 2c  HMAC TC6,sha512,
6160: 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64  ,,::tls::hmac -d
6170: 69 67 65 73 74 20 73 68 61 35 31 32 20 2d 6b 65  igest sha512 -ke
6180: 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61  y $key -data $da
6190: 74 61 2c 2c 2c 38 30 62 32 34 32 36 33 63 37 63  ta,,,80b24263c7c
61a0: 31 61 33 65 62 62 37 31 34 39 33 63 31 64 64 37  1a3ebb71493c1dd7
61b0: 62 65 38 62 34 39 62 34 36 64 31 66 34 31 62 34  be8b49b46d1f41b4
61c0: 61 65 65 63 31 31 32 31 62 30 31 33 37 38 33 66  aeec1121b013783f
61d0: 38 66 33 35 32 36 62 35 36 64 30 33 37 65 30 35  8f3526b56d037e05
61e0: 66 32 35 39 38 62 64 30 66 64 32 32 31 35 64 36  f2598bd0fd2215d6
61f0: 61 31 65 35 32 39 35 65 36 34 66 37 33 66 36 33  a1e5295e64f73f63
6200: 66 30 61 65 63 38 62 39 31 35 61 39 38 35 64 37  f0aec8b915a985d7
6210: 38 36 35 39 38 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c  86598,,,.,,,,,,,
6220: 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 52 46  ,,,.command,# RF
6230: 43 20 34 32 33 31 20 48 4d 41 43 20 45 78 61 6d  C 4231 HMAC Exam
6240: 70 6c 65 73 20 54 65 73 74 20 43 61 73 65 20 23  ples Test Case #
6250: 37 20 2d 20 54 65 73 74 20 77 69 74 68 20 61 20  7 - Test with a 
6260: 6b 65 79 20 61 6e 64 20 64 61 74 61 20 74 68 61  key and data tha
6270: 74 20 69 73 20 6c 61 72 67 65 72 20 74 68 61 6e  t is larger than
6280: 20 31 32 38 20 62 79 74 65 73 20 28 3d 20 62 6c   128 bytes (= bl
6290: 6f 63 6b 2d 73 69 7a 65 20 6f 66 20 53 48 41 2d  ock-size of SHA-
62a0: 33 38 34 20 61 6e 64 20 53 48 41 2d 35 31 32 29  384 and SHA-512)
62b0: 2e 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61  .,,,,,,,,,.comma
62c0: 6e 64 2c 22 73 65 74 20 6b 65 79 20 5b 62 69 6e  nd,"set key [bin
62d0: 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 5b  ary decode hex [
62e0: 73 74 72 69 6e 67 20 72 65 70 65 61 74 20 22 22  string repeat ""
62f0: 61 61 22 22 20 31 33 31 5d 5d 22 2c 2c 2c 2c 2c  aa"" 131]]",,,,,
6300: 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65  ,,,,.command,"se
6310: 74 20 64 61 74 61 20 22 22 54 68 69 73 20 69 73  t data ""This is
6320: 20 61 20 74 65 73 74 20 75 73 69 6e 67 20 61 20   a test using a 
6330: 6c 61 72 67 65 72 20 74 68 61 6e 20 62 6c 6f 63  larger than bloc
6340: 6b 2d 73 69 7a 65 20 6b 65 79 20 61 6e 64 20 61  k-size key and a
6350: 20 6c 61 72 67 65 72 20 74 68 61 6e 20 62 6c 6f   larger than blo
6360: 63 6b 2d 73 69 7a 65 20 64 61 74 61 2e 20 54 68  ck-size data. Th
6370: 65 20 6b 65 79 20 6e 65 65 64 73 20 74 6f 20 62  e key needs to b
6380: 65 20 68 61 73 68 65 64 20 62 65 66 6f 72 65 20  e hashed before 
6390: 62 65 69 6e 67 20 75 73 65 64 20 62 79 20 74 68  being used by th
63a0: 65 20 48 4d 41 43 20 61 6c 67 6f 72 69 74 68 6d  e HMAC algorithm
63b0: 2e 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 52 46  .""",,,,,,,,,.RF
63c0: 43 34 32 33 31 20 48 4d 41 43 20 54 43 37 2c 73  C4231 HMAC TC7,s
63d0: 68 61 32 32 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68  ha224,,,::tls::h
63e0: 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 32  mac -digest sha2
63f0: 32 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61  24 -key $key -da
6400: 74 61 20 24 64 61 74 61 2c 2c 2c 33 61 38 35 34  ta $data,,,3a854
6410: 31 36 36 61 63 35 64 39 66 30 32 33 66 35 34 64  166ac5d9f023f54d
6420: 35 31 37 64 30 62 33 39 64 62 64 39 34 36 37 37  517d0b39dbd94677
6430: 30 64 62 39 63 32 62 39 35 63 39 66 36 66 35 36  0db9c2b95c9f6f56
6440: 35 64 31 2c 2c 2c 0a 52 46 43 34 32 33 31 20 48  5d1,,,.RFC4231 H
6450: 4d 41 43 20 54 43 37 2c 73 68 61 32 35 36 2c 2c  MAC TC7,sha256,,
6460: 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69  ,::tls::hmac -di
6470: 67 65 73 74 20 73 68 61 32 35 36 20 2d 6b 65 79  gest sha256 -key
6480: 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74   $key -data $dat
6490: 61 2c 2c 2c 39 62 30 39 66 66 61 37 31 62 39 34  a,,,9b09ffa71b94
64a0: 32 66 63 62 32 37 36 33 35 66 62 63 64 35 62 30  2fcb27635fbcd5b0
64b0: 65 39 34 34 62 66 64 63 36 33 36 34 34 66 30 37  e944bfdc63644f07
64c0: 31 33 39 33 38 61 37 66 35 31 35 33 35 63 33 61  13938a7f51535c3a
64d0: 33 35 65 32 2c 2c 2c 0a 52 46 43 34 32 33 31 20  35e2,,,.RFC4231 
64e0: 48 4d 41 43 20 54 43 37 2c 73 68 61 33 38 34 2c  HMAC TC7,sha384,
64f0: 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64  ,,::tls::hmac -d
6500: 69 67 65 73 74 20 73 68 61 33 38 34 20 2d 6b 65  igest sha384 -ke
6510: 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61  y $key -data $da
6520: 74 61 2c 2c 2c 36 36 31 37 31 37 38 65 39 34 31  ta,,,6617178e941
6530: 66 30 32 30 64 33 35 31 65 32 66 32 35 34 65 38  f020d351e2f254e8
6540: 66 64 33 32 63 36 30 32 34 32 30 66 65 62 30 62  fd32c602420feb0b
6550: 38 66 62 39 61 64 63 63 65 62 62 38 32 34 36 31  8fb9adccebb82461
6560: 65 39 39 63 35 61 36 37 38 63 63 33 31 65 37 39  e99c5a678cc31e79
6570: 39 31 37 36 64 33 38 36 30 65 36 31 31 30 63 34  9176d3860e6110c4
6580: 36 35 32 33 65 2c 2c 2c 0a 52 46 43 34 32 33 31  6523e,,,.RFC4231
6590: 20 48 4d 41 43 20 54 43 37 2c 73 68 61 35 31 32   HMAC TC7,sha512
65a0: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d  ,,,::tls::hmac -
65b0: 64 69 67 65 73 74 20 73 68 61 35 31 32 20 2d 6b  digest sha512 -k
65c0: 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64  ey $key -data $d
65d0: 61 74 61 2c 2c 2c 65 33 37 62 36 61 37 37 35 64  ata,,,e37b6a775d
65e0: 63 38 37 64 62 61 61 34 64 66 61 39 66 39 36 65  c87dbaa4dfa9f96e
65f0: 35 65 33 66 66 64 64 65 62 64 37 31 66 38 38 36  5e3ffddebd71f886
6600: 37 32 38 39 38 36 35 64 66 35 61 33 32 64 32 30  7289865df5a32d20
6610: 63 64 63 39 34 34 62 36 30 32 32 63 61 63 33 63  cdc944b6022cac3c
6620: 34 39 38 32 62 31 30 64 35 65 65 62 35 35 63 33  4982b10d5eeb55c3
6630: 65 34 64 65 31 35 31 33 34 36 37 36 66 62 36 64  e4de15134676fb6d
6640: 65 30 34 34 36 30 36 35 63 39 37 34 34 30 66 61  e0446065c97440fa
6650: 38 63 36 61 35 38 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c  8c6a58,,,.,,,,,,
6660: 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 4e  ,,,,.command,# N
6670: 49 53 54 20 38 30 30 2d 33 38 62 20 52 65 63 6f  IST 800-38b Reco
6680: 6d 6d 65 6e 64 61 74 69 6f 6e 20 66 6f 72 20 42  mmendation for B
6690: 6c 6f 63 6b 20 43 69 70 68 65 72 20 4d 6f 64 65  lock Cipher Mode
66a0: 73 20 6f 66 20 4f 70 65 72 61 74 69 6f 6e 3a 20  s of Operation: 
66b0: 54 68 65 20 43 4d 41 43 20 4d 6f 64 65 20 66 6f  The CMAC Mode fo
66c0: 72 20 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e  r Authentication
66d0: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e  ,,,,,,,,,.comman
66e0: 64 2c 23 20 41 45 53 2d 31 32 38 2c 2c 2c 2c 2c  d,# AES-128,,,,,
66f0: 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65  ,,,,.command,"se
6700: 74 20 6b 65 79 20 5b 62 69 6e 61 72 79 20 64 65  t key [binary de
6710: 63 6f 64 65 20 68 65 78 20 22 22 32 62 37 65 31  code hex ""2b7e1
6720: 35 31 36 32 38 61 65 64 32 61 36 61 62 66 37 31  51628aed2a6abf71
6730: 35 38 38 30 39 63 66 34 66 33 63 22 22 5d 22 2c  58809cf4f3c""]",
6740: 2c 2c 2c 2c 2c 2c 2c 2c 0a 4e 49 53 54 38 30 30  ,,,,,,,,.NIST800
6750: 2d 33 38 62 2d 41 45 53 31 32 38 2c 6c 65 6e 3d  -38b-AES128,len=
6760: 30 2c 2c 2c 22 3a 3a 74 6c 73 3a 3a 63 6d 61 63  0,,,"::tls::cmac
6770: 20 2d 63 69 70 68 65 72 20 61 65 73 2d 31 32 38   -cipher aes-128
6780: 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d  -cbc -key $key -
6790: 64 61 74 61 20 22 22 22 22 22 2c 2c 2c 62 62 31  data """"",,,bb1
67a0: 64 36 39 32 39 65 39 35 39 33 37 32 38 37 66 61  d6929e95937287fa
67b0: 33 37 64 31 32 39 62 37 35 36 37 34 36 2c 2c 2c  37d129b756746,,,
67c0: 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 64 61  .command,"set da
67d0: 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64  ta [binary decod
67e0: 65 20 68 65 78 20 22 22 36 62 63 31 62 65 65 32  e hex ""6bc1bee2
67f0: 32 65 34 30 39 66 39 36 65 39 33 64 37 65 31 31  2e409f96e93d7e11
6800: 37 33 39 33 31 37 32 61 22 22 5d 22 2c 2c 2c 2c  7393172a""]",,,,
6810: 2c 2c 2c 2c 2c 0a 4e 49 53 54 38 30 30 2d 33 38  ,,,,,.NIST800-38
6820: 62 2d 41 45 53 31 32 38 2c 6c 65 6e 3d 31 32 38  b-AES128,len=128
6830: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d  ,,,::tls::cmac -
6840: 63 69 70 68 65 72 20 61 65 73 2d 31 32 38 2d 63  cipher aes-128-c
6850: 62 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61  bc -key $key -da
6860: 74 61 20 24 64 61 74 61 2c 2c 2c 30 37 30 61 31  ta $data,,,070a1
6870: 36 62 34 36 62 34 64 34 31 34 34 66 37 39 62 64  6b46b4d4144f79bd
6880: 64 39 64 64 30 34 61 32 38 37 63 2c 2c 2c 0a 63  d9dd04a287c,,,.c
6890: 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 64 61 74 61  ommand,"set data
68a0: 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20   [binary decode 
68b0: 68 65 78 20 22 22 36 62 63 31 62 65 65 32 32 65  hex ""6bc1bee22e
68c0: 34 30 39 66 39 36 65 39 33 64 37 65 31 31 37 33  409f96e93d7e1173
68d0: 39 33 31 37 32 61 61 65 32 64 38 61 35 37 31 65  93172aae2d8a571e
68e0: 30 33 61 63 39 63 39 65 62 37 36 66 61 63 34 35  03ac9c9eb76fac45
68f0: 61 66 38 65 35 31 33 30 63 38 31 63 34 36 61 33  af8e5130c81c46a3
6900: 35 63 65 34 31 31 22 22 5d 22 2c 2c 2c 2c 2c 2c  5ce411""]",,,,,,
6910: 2c 2c 2c 0a 4e 49 53 54 38 30 30 2d 33 38 62 2d  ,,,.NIST800-38b-
6920: 41 45 53 31 32 38 2c 6c 65 6e 3d 33 32 30 2c 2c  AES128,len=320,,
6930: 2c 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69  ,::tls::cmac -ci
6940: 70 68 65 72 20 61 65 73 2d 31 32 38 2d 63 62 63  pher aes-128-cbc
6950: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61   -key $key -data
6960: 20 24 64 61 74 61 2c 2c 2c 64 66 61 36 36 37 34   $data,,,dfa6674
6970: 37 64 65 39 61 65 36 33 30 33 30 63 61 33 32 36  7de9ae63030ca326
6980: 31 31 34 39 37 63 38 32 37 2c 2c 2c 0a 63 6f 6d  11497c827,,,.com
6990: 6d 61 6e 64 2c 22 73 65 74 20 64 61 74 61 20 5b  mand,"set data [
69a0: 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65  binary decode he
69b0: 78 20 22 22 36 62 63 31 62 65 65 32 32 65 34 30  x ""6bc1bee22e40
69c0: 39 66 39 36 65 39 33 64 37 65 31 31 37 33 39 33  9f96e93d7e117393
69d0: 31 37 32 61 61 65 32 64 38 61 35 37 31 65 30 33  172aae2d8a571e03
69e0: 61 63 39 63 39 65 62 37 36 66 61 63 34 35 61 66  ac9c9eb76fac45af
69f0: 38 65 35 31 33 30 63 38 31 63 34 36 61 33 35 63  8e5130c81c46a35c
6a00: 65 34 31 31 65 35 66 62 63 31 31 39 31 61 30 61  e411e5fbc1191a0a
6a10: 35 32 65 66 66 36 39 66 32 34 34 35 64 66 34 66  52eff69f2445df4f
6a20: 39 62 31 37 61 64 32 62 34 31 37 62 65 36 36 63  9b17ad2b417be66c
6a30: 33 37 31 30 22 22 5d 22 2c 2c 2c 2c 2c 2c 2c 2c  3710""]",,,,,,,,
6a40: 2c 0a 4e 49 53 54 38 30 30 2d 33 38 62 2d 41 45  ,.NIST800-38b-AE
6a50: 53 31 32 38 2c 6c 65 6e 3d 35 31 32 2c 2c 2c 3a  S128,len=512,,,:
6a60: 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68  :tls::cmac -ciph
6a70: 65 72 20 61 65 73 2d 31 32 38 2d 63 62 63 20 2d  er aes-128-cbc -
6a80: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24  key $key -data $
6a90: 64 61 74 61 2c 2c 2c 35 31 66 30 62 65 62 66 37  data,,,51f0bebf7
6aa0: 65 33 62 39 64 39 32 66 63 34 39 37 34 31 37 37  e3b9d92fc4974177
6ab0: 39 33 36 33 63 66 65 2c 2c 2c 0a 2c 2c 2c 2c 2c  9363cfe,,,.,,,,,
6ac0: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20  ,,,,,.command,# 
6ad0: 41 45 53 2d 31 39 32 2c 2c 2c 2c 2c 2c 2c 2c 2c  AES-192,,,,,,,,,
6ae0: 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 6b 65  .command,"set ke
6af0: 79 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65  y [binary decode
6b00: 20 68 65 78 20 22 22 38 65 37 33 62 30 66 37 64   hex ""8e73b0f7d
6b10: 61 30 65 36 34 35 32 63 38 31 30 66 33 32 62 38  a0e6452c810f32b8
6b20: 30 39 30 37 39 65 35 36 32 66 38 65 61 64 32 35  09079e562f8ead25
6b30: 32 32 63 36 62 37 62 22 22 5d 22 2c 2c 2c 2c 2c  22c6b7b""]",,,,,
6b40: 2c 2c 2c 2c 0a 4e 49 53 54 38 30 30 2d 33 38 62  ,,,,.NIST800-38b
6b50: 2d 41 45 53 2d 31 39 32 2c 6c 65 6e 3d 30 2c 2c  -AES-192,len=0,,
6b60: 2c 22 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63  ,"::tls::cmac -c
6b70: 69 70 68 65 72 20 61 65 73 2d 31 39 32 2d 63 62  ipher aes-192-cb
6b80: 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74  c -key $key -dat
6b90: 61 20 22 22 22 22 22 2c 2c 2c 64 31 37 64 64 66  a """"",,,d17ddf
6ba0: 34 36 61 64 61 61 63 64 65 35 33 31 63 61 63 34  46adaacde531cac4
6bb0: 38 33 64 65 37 61 39 33 36 37 2c 2c 2c 0a 63 6f  83de7a9367,,,.co
6bc0: 6d 6d 61 6e 64 2c 22 73 65 74 20 64 61 74 61 20  mmand,"set data 
6bd0: 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68  [binary decode h
6be0: 65 78 20 22 22 36 62 63 31 62 65 65 32 32 65 34  ex ""6bc1bee22e4
6bf0: 30 39 66 39 36 65 39 33 64 37 65 31 31 37 33 39  09f96e93d7e11739
6c00: 33 31 37 32 61 22 22 5d 22 2c 2c 2c 2c 2c 2c 2c  3172a""]",,,,,,,
6c10: 2c 2c 0a 4e 49 53 54 38 30 30 2d 33 38 62 2d 41  ,,.NIST800-38b-A
6c20: 45 53 2d 31 39 32 2c 6c 65 6e 3d 31 32 38 2c 2c  ES-192,len=128,,
6c30: 2c 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69  ,::tls::cmac -ci
6c40: 70 68 65 72 20 61 65 73 2d 31 39 32 2d 63 62 63  pher aes-192-cbc
6c50: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61   -key $key -data
6c60: 20 24 64 61 74 61 2c 2c 2c 39 65 39 39 61 37 62   $data,,,9e99a7b
6c70: 66 33 31 65 37 31 30 39 30 30 36 36 32 66 36 35  f31e710900662f65
6c80: 65 36 31 37 63 35 31 38 34 2c 2c 2c 0a 63 6f 6d  e617c5184,,,.com
6c90: 6d 61 6e 64 2c 22 73 65 74 20 64 61 74 61 20 5b  mand,"set data [
6ca0: 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65  binary decode he
6cb0: 78 20 22 22 36 62 63 31 62 65 65 32 32 65 34 30  x ""6bc1bee22e40
6cc0: 39 66 39 36 65 39 33 64 37 65 31 31 37 33 39 33  9f96e93d7e117393
6cd0: 31 37 32 61 61 65 32 64 38 61 35 37 31 65 30 33  172aae2d8a571e03
6ce0: 61 63 39 63 39 65 62 37 36 66 61 63 34 35 61 66  ac9c9eb76fac45af
6cf0: 38 65 35 31 33 30 63 38 31 63 34 36 61 33 35 63  8e5130c81c46a35c
6d00: 65 34 31 31 22 22 5d 22 2c 2c 2c 2c 2c 2c 2c 2c  e411""]",,,,,,,,
6d10: 2c 0a 4e 49 53 54 38 30 30 2d 33 38 62 2d 41 45  ,.NIST800-38b-AE
6d20: 53 2d 31 39 32 2c 6c 65 6e 3d 33 32 30 2c 2c 2c  S-192,len=320,,,
6d30: 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70  ::tls::cmac -cip
6d40: 68 65 72 20 61 65 73 2d 31 39 32 2d 63 62 63 20  her aes-192-cbc 
6d50: 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20  -key $key -data 
6d60: 24 64 61 74 61 2c 2c 2c 38 61 31 64 65 35 62 65  $data,,,8a1de5be
6d70: 32 65 62 33 31 61 61 64 30 38 39 61 38 32 65 36  2eb31aad089a82e6
6d80: 65 65 39 30 38 62 30 65 2c 2c 2c 0a 63 6f 6d 6d  ee908b0e,,,.comm
6d90: 61 6e 64 2c 22 73 65 74 20 64 61 74 61 20 5b 62  and,"set data [b
6da0: 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78  inary decode hex
6db0: 20 22 22 36 62 63 31 62 65 65 32 32 65 34 30 39   ""6bc1bee22e409
6dc0: 66 39 36 65 39 33 64 37 65 31 31 37 33 39 33 31  f96e93d7e1173931
6dd0: 37 32 61 61 65 32 64 38 61 35 37 31 65 30 33 61  72aae2d8a571e03a
6de0: 63 39 63 39 65 62 37 36 66 61 63 34 35 61 66 38  c9c9eb76fac45af8
6df0: 65 35 31 33 30 63 38 31 63 34 36 61 33 35 63 65  e5130c81c46a35ce
6e00: 34 31 31 65 35 66 62 63 31 31 39 31 61 30 61 35  411e5fbc1191a0a5
6e10: 32 65 66 66 36 39 66 32 34 34 35 64 66 34 66 39  2eff69f2445df4f9
6e20: 62 31 37 61 64 32 62 34 31 37 62 65 36 36 63 33  b17ad2b417be66c3
6e30: 37 31 30 22 22 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c  710""]",,,,,,,,,
6e40: 0a 4e 49 53 54 38 30 30 2d 33 38 62 2d 41 45 53  .NIST800-38b-AES
6e50: 2d 31 39 32 2c 6c 65 6e 3d 35 31 32 2c 2c 2c 3a  -192,len=512,,,:
6e60: 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68  :tls::cmac -ciph
6e70: 65 72 20 61 65 73 2d 31 39 32 2d 63 62 63 20 2d  er aes-192-cbc -
6e80: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24  key $key -data $
6e90: 64 61 74 61 2c 2c 2c 61 31 64 35 64 66 30 65 65  data,,,a1d5df0ee
6ea0: 64 37 39 30 66 37 39 34 64 37 37 35 38 39 36 35  d790f794d7758965
6eb0: 39 66 33 39 61 31 31 2c 2c 2c 0a 2c 2c 2c 2c 2c  9f39a11,,,.,,,,,
6ec0: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20  ,,,,,.command,# 
6ed0: 41 45 53 2d 32 35 36 2c 2c 2c 2c 2c 2c 2c 2c 2c  AES-256,,,,,,,,,
6ee0: 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 6b 65  .command,"set ke
6ef0: 79 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65  y [binary decode
6f00: 20 68 65 78 20 22 22 36 30 33 64 65 62 31 30 31   hex ""603deb101
6f10: 35 63 61 37 31 62 65 32 62 37 33 61 65 66 30 38  5ca71be2b73aef08
6f20: 35 37 64 37 37 38 31 31 66 33 35 32 63 30 37 33  57d77811f352c073
6f30: 62 36 31 30 38 64 37 32 64 39 38 31 30 61 33 30  b6108d72d9810a30
6f40: 39 31 34 64 66 66 34 22 22 5d 22 2c 2c 2c 2c 2c  914dff4""]",,,,,
6f50: 2c 2c 2c 2c 0a 4e 49 53 54 38 30 30 2d 33 38 62  ,,,,.NIST800-38b
6f60: 2d 41 45 53 2d 32 35 36 2c 6c 65 6e 3d 30 2c 2c  -AES-256,len=0,,
6f70: 2c 22 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63  ,"::tls::cmac -c
6f80: 69 70 68 65 72 20 61 65 73 2d 32 35 36 2d 63 62  ipher aes-256-cb
6f90: 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74  c -key $key -dat
6fa0: 61 20 22 22 22 22 22 2c 2c 2c 30 32 38 39 36 32  a """"",,,028962
6fb0: 66 36 31 62 37 62 66 38 39 65 66 63 36 62 35 35  f61b7bf89efc6b55
6fc0: 31 66 34 36 36 37 64 39 38 33 2c 2c 2c 0a 63 6f  1f4667d983,,,.co
6fd0: 6d 6d 61 6e 64 2c 22 73 65 74 20 64 61 74 61 20  mmand,"set data 
6fe0: 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68  [binary decode h
6ff0: 65 78 20 22 22 36 62 63 31 62 65 65 32 32 65 34  ex ""6bc1bee22e4
7000: 30 39 66 39 36 65 39 33 64 37 65 31 31 37 33 39  09f96e93d7e11739
7010: 33 31 37 32 61 22 22 5d 22 2c 2c 2c 2c 2c 2c 2c  3172a""]",,,,,,,
7020: 2c 2c 0a 4e 49 53 54 38 30 30 2d 33 38 62 2d 41  ,,.NIST800-38b-A
7030: 45 53 2d 32 35 36 2c 6c 65 6e 3d 31 32 38 2c 2c  ES-256,len=128,,
7040: 2c 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69  ,::tls::cmac -ci
7050: 70 68 65 72 20 61 65 73 2d 32 35 36 2d 63 62 63  pher aes-256-cbc
7060: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61   -key $key -data
7070: 20 24 64 61 74 61 2c 2c 2c 32 38 61 37 30 32 33   $data,,,28a7023
7080: 66 34 35 32 65 38 66 38 32 62 64 34 62 66 32 38  f452e8f82bd4bf28
7090: 64 38 63 33 37 63 33 35 63 2c 2c 2c 0a 63 6f 6d  d8c37c35c,,,.com
70a0: 6d 61 6e 64 2c 22 73 65 74 20 64 61 74 61 20 5b  mand,"set data [
70b0: 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65  binary decode he
70c0: 78 20 22 22 36 62 63 31 62 65 65 32 32 65 34 30  x ""6bc1bee22e40
70d0: 39 66 39 36 65 39 33 64 37 65 31 31 37 33 39 33  9f96e93d7e117393
70e0: 31 37 32 61 61 65 32 64 38 61 35 37 31 65 30 33  172aae2d8a571e03
70f0: 61 63 39 63 39 65 62 37 36 66 61 63 34 35 61 66  ac9c9eb76fac45af
7100: 38 65 35 31 33 30 63 38 31 63 34 36 61 33 35 63  8e5130c81c46a35c
7110: 65 34 31 31 22 22 5d 22 2c 2c 2c 2c 2c 2c 2c 2c  e411""]",,,,,,,,
7120: 2c 0a 4e 49 53 54 38 30 30 2d 33 38 62 2d 41 45  ,.NIST800-38b-AE
7130: 53 2d 32 35 36 2c 6c 65 6e 3d 33 32 30 2c 2c 2c  S-256,len=320,,,
7140: 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70  ::tls::cmac -cip
7150: 68 65 72 20 61 65 73 2d 32 35 36 2d 63 62 63 20  her aes-256-cbc 
7160: 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20  -key $key -data 
7170: 24 64 61 74 61 2c 2c 2c 61 61 66 33 64 38 66 31  $data,,,aaf3d8f1
7180: 64 65 35 36 34 30 63 32 33 32 66 35 62 31 36 39  de5640c232f5b169
7190: 62 39 63 39 31 31 65 36 2c 2c 2c 0a 63 6f 6d 6d  b9c911e6,,,.comm
71a0: 61 6e 64 2c 22 73 65 74 20 64 61 74 61 20 5b 62  and,"set data [b
71b0: 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78  inary decode hex
71c0: 20 22 22 36 62 63 31 62 65 65 32 32 65 34 30 39   ""6bc1bee22e409
71d0: 66 39 36 65 39 33 64 37 65 31 31 37 33 39 33 31  f96e93d7e1173931
71e0: 37 32 61 61 65 32 64 38 61 35 37 31 65 30 33 61  72aae2d8a571e03a
71f0: 63 39 63 39 65 62 37 36 66 61 63 34 35 61 66 38  c9c9eb76fac45af8
7200: 65 35 31 33 30 63 38 31 63 34 36 61 33 35 63 65  e5130c81c46a35ce
7210: 34 31 31 65 35 66 62 63 31 31 39 31 61 30 61 35  411e5fbc1191a0a5
7220: 32 65 66 66 36 39 66 32 34 34 35 64 66 34 66 39  2eff69f2445df4f9
7230: 62 31 37 61 64 32 62 34 31 37 62 65 36 36 63 33  b17ad2b417be66c3
7240: 37 31 30 22 22 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c  710""]",,,,,,,,,
7250: 0a 4e 49 53 54 38 30 30 2d 33 38 62 2d 41 45 53  .NIST800-38b-AES
7260: 2d 32 35 36 2c 6c 65 6e 3d 35 31 32 2c 2c 2c 3a  -256,len=512,,,:
7270: 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68  :tls::cmac -ciph
7280: 65 72 20 61 65 73 2d 32 35 36 2d 63 62 63 20 2d  er aes-256-cbc -
7290: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24  key $key -data $
72a0: 64 61 74 61 2c 2c 2c 65 31 39 39 32 31 39 30 35  data,,,e19921905
72b0: 34 39 66 36 65 64 35 36 39 36 61 32 63 30 35 36  49f6ed5696a2c056
72c0: 63 33 31 35 34 31 30 2c 2c 2c 0a 2c 2c 2c 2c 2c  c315410,,,.,,,,,
72d0: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20  ,,,,,.command,# 
72e0: 43 6c 65 61 6e 75 70 2c 2c 2c 2c 2c 2c 2c 2c 2c  Cleanup,,,,,,,,,
72f0: 0a 63 6f 6d 6d 61 6e 64 2c 3a 3a 74 63 6c 74 65  .command,::tclte
7300: 73 74 3a 3a 72 65 6d 6f 76 65 46 69 6c 65 20 24  st::removeFile $
7310: 74 65 73 74 5f 66 69 6c 65 2c 2c 2c 2c 2c 2c 2c  test_file,,,,,,,
7320: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 3a 3a 74 63 6c  ,,.command,::tcl
7330: 74 65 73 74 3a 3a 72 65 6d 6f 76 65 46 69 6c 65  test::removeFile
7340: 20 24 74 65 73 74 5f 61 6c 74 5f 66 69 6c 65 2c   $test_alt_file,
7350: 2c 2c 2c 2c 2c 2c 2c 2c 0a                       ,,,,,,,,.