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 22 3a 3a 74 63 6c 74 65 73 74 3a 3a 74 65 73  ,"::tcltest::tes
00c0: 74 43 6f 6e 73 74 72 61 69 6e 74 20 6d 64 34 20  tConstraint md4 
00d0: 5b 65 78 70 72 20 7b 22 22 6d 64 34 22 22 20 69  [expr {""md4"" i
00e0: 6e 20 5b 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74  n [::tls::digest
00f0: 73 5d 7d 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63  s]}]",,,,,,,,,.c
0100: 6f 6d 6d 61 6e 64 2c 63 61 74 63 68 20 7b 74 6c  ommand,catch {tl
0110: 73 3a 3a 70 72 6f 76 69 64 65 72 20 6c 65 67 61  s::provider lega
0120: 63 79 7d 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 2c 2c 2c  cy},,,,,,,,,.,,,
0130: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
0140: 23 20 48 65 6c 70 65 72 20 66 75 6e 63 74 69 6f  # Helper functio
0150: 6e 73 20 2d 20 53 65 65 20 63 6f 6d 6d 6f 6e 2e  ns - See common.
0160: 74 63 6c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  tcl,,,,,,,,,.com
0170: 6d 61 6e 64 2c 70 72 6f 63 20 64 69 67 65 73 74  mand,proc digest
0180: 5f 72 65 61 64 5f 63 68 61 6e 20 7b 63 6d 64 20  _read_chan {cmd 
0190: 66 69 6c 65 6e 61 6d 65 20 61 72 67 73 7d 20 7b  filename args} {
01a0: 3b 73 65 74 20 63 68 20 5b 6f 70 65 6e 20 24 66  ;set ch [open $f
01b0: 69 6c 65 6e 61 6d 65 20 72 62 5d 3b 73 65 74 20  ilename rb];set 
01c0: 62 73 69 7a 65 20 5b 66 63 6f 6e 66 69 67 75 72  bsize [fconfigur
01d0: 65 20 24 63 68 20 2d 62 75 66 66 65 72 73 69 7a  e $ch -buffersiz
01e0: 65 5d 3b 73 65 74 20 6e 65 77 20 5b 24 63 6d 64  e];set new [$cmd
01f0: 20 7b 2a 7d 24 61 72 67 73 20 2d 63 68 61 6e 20   {*}$args -chan 
0200: 24 63 68 5d 3b 77 68 69 6c 65 20 7b 21 5b 65 6f  $ch];while {![eo
0210: 66 20 24 6e 65 77 5d 7d 20 7b 73 65 74 20 6d 64  f $new]} {set md
0220: 20 5b 72 65 61 64 20 24 6e 65 77 20 24 62 73 69   [read $new $bsi
0230: 7a 65 5d 7d 3b 63 6c 6f 73 65 20 24 6e 65 77 3b  ze]};close $new;
0240: 72 65 74 75 72 6e 20 24 6d 64 7d 2c 2c 2c 2c 2c  return $md},,,,,
0250: 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 70 72 6f  ,,,,.command,pro
0260: 63 20 64 69 67 65 73 74 5f 77 72 69 74 65 5f 63  c digest_write_c
0270: 68 61 6e 20 7b 63 6d 64 20 66 69 6c 65 6e 61 6d  han {cmd filenam
0280: 65 20 64 61 74 61 20 61 72 67 73 7d 20 7b 3b 73  e data args} {;s
0290: 65 74 20 63 68 20 5b 6f 70 65 6e 20 24 66 69 6c  et ch [open $fil
02a0: 65 6e 61 6d 65 20 77 62 5d 3b 73 65 74 20 6e 65  ename wb];set ne
02b0: 77 20 5b 24 63 6d 64 20 7b 2a 7d 24 61 72 67 73  w [$cmd {*}$args
02c0: 20 2d 63 68 61 6e 20 24 63 68 5d 3b 70 75 74 73   -chan $ch];puts
02d0: 20 2d 6e 6f 6e 65 77 6c 69 6e 65 20 24 6e 65 77   -nonewline $new
02e0: 20 24 64 61 74 61 3b 66 6c 75 73 68 20 24 6e 65   $data;flush $ne
02f0: 77 3b 63 6c 6f 73 65 20 24 6e 65 77 3b 73 65 74  w;close $new;set
0300: 20 63 68 20 5b 6f 70 65 6e 20 24 66 69 6c 65 6e   ch [open $filen
0310: 61 6d 65 20 72 62 5d 3b 73 65 74 20 6d 64 20 5b  ame rb];set md [
0320: 72 65 61 64 20 24 63 68 5d 3b 63 6c 6f 73 65 20  read $ch];close 
0330: 24 63 68 3b 72 65 74 75 72 6e 20 24 6d 64 7d 2c  $ch;return $md},
0340: 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64  ,,,,,,,,.command
0350: 2c 70 72 6f 63 20 64 69 67 65 73 74 5f 61 63 63  ,proc digest_acc
0360: 75 6d 75 6c 61 74 65 20 7b 73 74 72 69 6e 67 20  umulate {string 
0370: 61 72 67 73 7d 20 7b 3b 73 65 74 20 63 6d 64 20  args} {;set cmd 
0380: 5b 7b 2a 7d 24 61 72 67 73 20 2d 63 6f 6d 6d 61  [{*}$args -comma
0390: 6e 64 20 64 63 6d 64 5d 3b 20 24 63 6d 64 20 75  nd dcmd]; $cmd u
03a0: 70 64 61 74 65 20 5b 73 74 72 69 6e 67 20 72 61  pdate [string ra
03b0: 6e 67 65 20 24 73 74 72 69 6e 67 20 30 20 32 30  nge $string 0 20
03c0: 5d 3b 24 63 6d 64 20 75 70 64 61 74 65 20 5b 73  ];$cmd update [s
03d0: 74 72 69 6e 67 20 72 61 6e 67 65 20 24 73 74 72  tring range $str
03e0: 69 6e 67 20 32 31 20 65 6e 64 5d 3b 72 65 74 75  ing 21 end];retu
03f0: 72 6e 20 5b 24 63 6d 64 20 66 69 6e 61 6c 69 7a  rn [$cmd finaliz
0400: 65 5d 7d 2c 24 63 6d 64 20 75 70 64 61 74 65 20  e]},$cmd update 
0410: 5b 73 74 72 69 6e 67 20 72 61 6e 67 65 20 24 73  [string range $s
0420: 74 72 69 6e 67 20 30 20 32 30 5d 3b 24 63 6d 64  tring 0 20];$cmd
0430: 20 75 70 64 61 74 65 20 5b 73 74 72 69 6e 67 20   update [string 
0440: 72 61 6e 67 65 20 24 73 74 72 69 6e 67 20 32 31  range $string 21
0450: 20 65 6e 64 5d 3b 72 65 74 75 72 6e 20 5b 24 63   end];return [$c
0460: 6d 64 20 66 69 6e 61 6c 69 7a 65 5d 7d 2c 2c 2c  md finalize]},,,
0470: 2c 2c 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c  ,,,,,.,,,,,,,,,,
0480: 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 74 65  .command,"set te
0490: 73 74 5f 64 61 74 61 20 22 22 45 78 61 6d 70 6c  st_data ""Exampl
04a0: 65 20 73 74 72 69 6e 67 20 66 6f 72 20 6d 65 73  e string for mes
04b0: 73 61 67 65 20 64 69 67 65 73 74 20 74 65 73 74  sage digest test
04c0: 73 2e 5c 6e 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c  s.\n""",,,,,,,,,
04d0: 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 74 65  .command,"set te
04e0: 73 74 5f 66 69 6c 65 20 22 22 6d 64 5f 64 61 74  st_file ""md_dat
04f0: 61 2e 64 61 74 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c  a.dat""",,,,,,,,
0500: 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 74  ,.command,"set t
0510: 65 73 74 5f 61 6c 74 5f 66 69 6c 65 20 22 22 6d  est_alt_file ""m
0520: 64 5f 61 6c 74 5f 64 61 74 61 2e 64 61 74 22 22  d_alt_data.dat""
0530: 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61  ",,,,,,,,,.comma
0540: 6e 64 2c 22 73 65 74 20 74 65 73 74 5f 6b 65 79  nd,"set test_key
0550: 20 22 22 45 78 61 6d 70 6c 65 20 6b 65 79 22 22   ""Example key""
0560: 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61  ",,,,,,,,,.comma
0570: 6e 64 2c 3a 3a 74 63 6c 74 65 73 74 3a 3a 6d 61  nd,::tcltest::ma
0580: 6b 65 46 69 6c 65 20 24 74 65 73 74 5f 64 61 74  keFile $test_dat
0590: 61 20 24 74 65 73 74 5f 66 69 6c 65 2c 2c 2c 2c  a $test_file,,,,
05a0: 2c 2c 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c  ,,,,,.,,,,,,,,,,
05b0: 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73 74 20  .command,# Test 
05c0: 73 68 6f 72 74 2d 63 75 74 20 63 6f 6d 6d 61 6e  short-cut comman
05d0: 64 73 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 53 68 6f 72  ds,,,,,,,,,.Shor
05e0: 74 63 75 74 20 43 6d 64 73 2c 6d 64 34 20 63 6d  tcut Cmds,md4 cm
05f0: 64 2c 6d 64 34 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64  d,md4,,::tls::md
0600: 34 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 37  4 $test_data,,,7
0610: 39 33 33 39 39 66 37 39 32 65 63 61 32 37 35 32  93399f792eca2752
0620: 63 36 61 66 33 32 33 34 62 61 37 30 38 35 38 2c  c6af3234ba70858,
0630: 2c 2c 0a 53 68 6f 72 74 63 75 74 20 43 6d 64 73  ,,.Shortcut Cmds
0640: 2c 6d 64 35 20 63 6d 64 2c 2c 2c 3a 3a 74 6c 73  ,md5 cmd,,,::tls
0650: 3a 3a 6d 64 35 20 24 74 65 73 74 5f 64 61 74 61  ::md5 $test_data
0660: 2c 2c 2c 39 36 32 62 66 30 38 30 33 62 34 32 33  ,,,962bf0803b423
0670: 32 65 63 32 33 62 64 38 34 32 37 62 62 39 34 65  2ec23bd8427bb94e
0680: 61 30 39 2c 2c 2c 0a 53 68 6f 72 74 63 75 74 20  a09,,,.Shortcut 
0690: 43 6d 64 73 2c 73 68 61 31 20 63 6d 64 2c 2c 2c  Cmds,sha1 cmd,,,
06a0: 3a 3a 74 6c 73 3a 3a 73 68 61 31 20 24 74 65 73  ::tls::sha1 $tes
06b0: 74 5f 64 61 74 61 2c 2c 2c 34 66 65 30 33 62 37  t_data,,,4fe03b7
06c0: 66 32 35 36 38 35 35 31 64 66 61 66 62 39 38 63  f2568551dfafb98c
06d0: 61 36 30 30 34 65 36 35 63 34 62 37 31 61 61 37  a6004e65c4b71aa7
06e0: 64 2c 2c 2c 0a 53 68 6f 72 74 63 75 74 20 43 6d  d,,,.Shortcut Cm
06f0: 64 73 2c 73 68 61 32 35 36 20 63 6d 64 2c 2c 2c  ds,sha256 cmd,,,
0700: 3a 3a 74 6c 73 3a 3a 73 68 61 32 35 36 20 24 74  ::tls::sha256 $t
0710: 65 73 74 5f 64 61 74 61 2c 2c 2c 39 64 33 35 37  est_data,,,9d357
0720: 38 66 63 31 33 38 32 30 35 63 66 30 65 65 34 62  8fc138205cf0ee4b
0730: 34 63 65 66 33 35 66 65 31 30 31 62 62 34 65 63  4cef35fe101bb4ec
0740: 61 63 37 62 31 36 31 34 63 31 38 65 36 66 61 34  ac7b1614c18e6fa4
0750: 38 62 35 63 37 66 39 35 65 31 39 2c 2c 2c 0a 53  8b5c7f95e19,,,.S
0760: 68 6f 72 74 63 75 74 20 43 6d 64 73 2c 73 68 61  hortcut Cmds,sha
0770: 35 31 32 20 63 6d 64 2c 2c 2c 3a 3a 74 6c 73 3a  512 cmd,,,::tls:
0780: 3a 73 68 61 35 31 32 20 24 74 65 73 74 5f 64 61  :sha512 $test_da
0790: 74 61 2c 2c 2c 64 31 37 38 65 37 35 39 64 63 35  ta,,,d178e759dc5
07a0: 39 31 32 37 30 37 31 35 38 38 64 32 66 61 64 31  9127071588d2fad1
07b0: 37 33 63 30 36 32 33 38 64 38 37 65 38 30 30 61  73c06238d87e800a
07c0: 36 34 30 33 63 30 61 33 30 64 61 61 34 66 61 61  6403c0a30daa4faa
07d0: 66 30 35 64 30 65 37 63 65 30 34 39 31 36 61 66  f05d0e7ce04916af
07e0: 61 61 36 61 35 38 61 33 30 63 62 65 62 35 39 37  aa6a58a30cbeb597
07f0: 64 61 63 62 30 31 63 36 32 66 39 66 62 39 64 38  dacb01c62f9fb9d8
0800: 39 62 61 62 39 64 61 36 33 30 63 36 39 39 65 34  9bab9da630c699e4
0810: 38 31 36 66 31 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c  816f1,,,.,,,,,,,
0820: 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63  ,,,.,,,,,,,,,,.c
0830: 6f 6d 6d 61 6e 64 2c 23 20 54 65 73 74 20 4d 44  ommand,# Test MD
0840: 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 72 65 61   command for rea
0850: 64 20 63 68 61 6e 6e 65 6c 2c 2c 2c 2c 2c 2c 2c  d channel,,,,,,,
0860: 2c 2c 0a 4d 44 20 43 68 61 6e 20 52 65 61 64 2c  ,,.MD Chan Read,
0870: 6d 64 34 2c 6d 64 34 2c 2c 64 69 67 65 73 74 5f  md4,md4,,digest_
0880: 72 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a  read_chan ::tls:
0890: 3a 6d 64 20 24 74 65 73 74 5f 66 69 6c 65 20 2d  :md $test_file -
08a0: 64 69 67 65 73 74 20 6d 64 34 2c 2c 2c 37 39 33  digest md4,,,793
08b0: 33 39 39 66 37 39 32 65 63 61 32 37 35 32 63 36  399f792eca2752c6
08c0: 61 66 33 32 33 34 62 61 37 30 38 35 38 2c 2c 2c  af3234ba70858,,,
08d0: 0a 4d 44 20 43 68 61 6e 20 52 65 61 64 2c 6d 64  .MD Chan Read,md
08e0: 35 2c 2c 2c 64 69 67 65 73 74 5f 72 65 61 64 5f  5,,,digest_read_
08f0: 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24  chan ::tls::md $
0900: 74 65 73 74 5f 66 69 6c 65 20 2d 64 69 67 65 73  test_file -diges
0910: 74 20 6d 64 35 2c 2c 2c 39 36 32 62 66 30 38 30  t md5,,,962bf080
0920: 33 62 34 32 33 32 65 63 32 33 62 64 38 34 32 37  3b4232ec23bd8427
0930: 62 62 39 34 65 61 30 39 2c 2c 2c 0a 4d 44 20 43  bb94ea09,,,.MD C
0940: 68 61 6e 20 52 65 61 64 2c 73 68 61 31 2c 2c 2c  han Read,sha1,,,
0950: 64 69 67 65 73 74 5f 72 65 61 64 5f 63 68 61 6e  digest_read_chan
0960: 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74   ::tls::md $test
0970: 5f 66 69 6c 65 20 2d 64 69 67 65 73 74 20 73 68  _file -digest sh
0980: 61 31 2c 2c 2c 34 66 65 30 33 62 37 66 32 35 36  a1,,,4fe03b7f256
0990: 38 35 35 31 64 66 61 66 62 39 38 63 61 36 30 30  8551dfafb98ca600
09a0: 34 65 36 35 63 34 62 37 31 61 61 37 64 2c 2c 2c  4e65c4b71aa7d,,,
09b0: 0a 4d 44 20 43 68 61 6e 20 52 65 61 64 2c 73 68  .MD Chan Read,sh
09c0: 61 32 35 36 2c 2c 2c 64 69 67 65 73 74 5f 72 65  a256,,,digest_re
09d0: 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d  ad_chan ::tls::m
09e0: 64 20 24 74 65 73 74 5f 66 69 6c 65 20 2d 64 69  d $test_file -di
09f0: 67 65 73 74 20 73 68 61 32 35 36 2c 2c 2c 39 64  gest sha256,,,9d
0a00: 33 35 37 38 66 63 31 33 38 32 30 35 63 66 30 65  3578fc138205cf0e
0a10: 65 34 62 34 63 65 66 33 35 66 65 31 30 31 62 62  e4b4cef35fe101bb
0a20: 34 65 63 61 63 37 62 31 36 31 34 63 31 38 65 36  4ecac7b1614c18e6
0a30: 66 61 34 38 62 35 63 37 66 39 35 65 31 39 2c 2c  fa48b5c7f95e19,,
0a40: 2c 0a 4d 44 20 43 68 61 6e 20 52 65 61 64 2c 73  ,.MD Chan Read,s
0a50: 68 61 35 31 32 2c 2c 2c 64 69 67 65 73 74 5f 72  ha512,,,digest_r
0a60: 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a  ead_chan ::tls::
0a70: 6d 64 20 24 74 65 73 74 5f 66 69 6c 65 20 2d 64  md $test_file -d
0a80: 69 67 65 73 74 20 73 68 61 35 31 32 2c 2c 2c 64  igest sha512,,,d
0a90: 31 37 38 65 37 35 39 64 63 35 39 31 32 37 30 37  178e759dc5912707
0aa0: 31 35 38 38 64 32 66 61 64 31 37 33 63 30 36 32  1588d2fad173c062
0ab0: 33 38 64 38 37 65 38 30 30 61 36 34 30 33 63 30  38d87e800a6403c0
0ac0: 61 33 30 64 61 61 34 66 61 61 66 30 35 64 30 65  a30daa4faaf05d0e
0ad0: 37 63 65 30 34 39 31 36 61 66 61 61 36 61 35 38  7ce04916afaa6a58
0ae0: 61 33 30 63 62 65 62 35 39 37 64 61 63 62 30 31  a30cbeb597dacb01
0af0: 63 36 32 66 39 66 62 39 64 38 39 62 61 62 39 64  c62f9fb9d89bab9d
0b00: 61 36 33 30 63 36 39 39 65 34 38 31 36 66 31 2c  a630c699e4816f1,
0b10: 2c 2c 0a 4d 44 20 43 68 61 6e 20 52 65 61 64 2c  ,,.MD Chan Read,
0b20: 6d 64 35 20 62 69 6e 2c 2c 2c 62 69 6e 61 72 79  md5 bin,,,binary
0b30: 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 64 69 67   encode hex [dig
0b40: 65 73 74 5f 72 65 61 64 5f 63 68 61 6e 20 3a 3a  est_read_chan ::
0b50: 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74 5f 66 69  tls::md $test_fi
0b60: 6c 65 20 2d 62 69 6e 20 2d 64 69 67 65 73 74 20  le -bin -digest 
0b70: 6d 64 35 5d 2c 2c 2c 39 36 32 62 66 30 38 30 33  md5],,,962bf0803
0b80: 62 34 32 33 32 65 63 32 33 62 64 38 34 32 37 62  b4232ec23bd8427b
0b90: 62 39 34 65 61 30 39 2c 2c 2c 0a 4d 44 20 43 68  b94ea09,,,.MD Ch
0ba0: 61 6e 20 52 65 61 64 2c 6d 64 35 20 68 65 78 2c  an Read,md5 hex,
0bb0: 2c 2c 64 69 67 65 73 74 5f 72 65 61 64 5f 63 68  ,,digest_read_ch
0bc0: 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 65  an ::tls::md $te
0bd0: 73 74 5f 66 69 6c 65 20 2d 68 65 78 20 2d 64 69  st_file -hex -di
0be0: 67 65 73 74 20 6d 64 35 2c 2c 2c 39 36 32 62 66  gest md5,,,962bf
0bf0: 30 38 30 33 62 34 32 33 32 65 63 32 33 62 64 38  0803b4232ec23bd8
0c00: 34 32 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a 2c  427bb94ea09,,,.,
0c10: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e  ,,,,,,,,,.comman
0c20: 64 2c 23 20 54 65 73 74 20 4d 44 20 63 6f 6d 6d  d,# Test MD comm
0c30: 61 6e 64 20 66 6f 72 20 77 72 69 74 65 20 63 68  and for write ch
0c40: 61 6e 6e 65 6c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4d  annel,,,,,,,,,.M
0c50: 44 20 43 68 61 6e 20 57 72 69 74 65 2c 6d 64 34  D Chan Write,md4
0c60: 2c 6d 64 34 2c 2c 64 69 67 65 73 74 5f 77 72 69  ,md4,,digest_wri
0c70: 74 65 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d  te_chan ::tls::m
0c80: 64 20 24 74 65 73 74 5f 61 6c 74 5f 66 69 6c 65  d $test_alt_file
0c90: 20 24 74 65 73 74 5f 64 61 74 61 20 2d 64 69 67   $test_data -dig
0ca0: 65 73 74 20 6d 64 34 2c 2c 2c 37 39 33 33 39 39  est md4,,,793399
0cb0: 66 37 39 32 65 63 61 32 37 35 32 63 36 61 66 33  f792eca2752c6af3
0cc0: 32 33 34 62 61 37 30 38 35 38 2c 2c 2c 0a 4d 44  234ba70858,,,.MD
0cd0: 20 43 68 61 6e 20 57 72 69 74 65 2c 6d 64 35 2c   Chan Write,md5,
0ce0: 2c 2c 64 69 67 65 73 74 5f 77 72 69 74 65 5f 63  ,,digest_write_c
0cf0: 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74  han ::tls::md $t
0d00: 65 73 74 5f 61 6c 74 5f 66 69 6c 65 20 24 74 65  est_alt_file $te
0d10: 73 74 5f 64 61 74 61 20 2d 64 69 67 65 73 74 20  st_data -digest 
0d20: 6d 64 35 2c 2c 2c 39 36 32 62 66 30 38 30 33 62  md5,,,962bf0803b
0d30: 34 32 33 32 65 63 32 33 62 64 38 34 32 37 62 62  4232ec23bd8427bb
0d40: 39 34 65 61 30 39 2c 2c 2c 0a 4d 44 20 43 68 61  94ea09,,,.MD Cha
0d50: 6e 20 57 72 69 74 65 2c 73 68 61 31 2c 2c 2c 64  n Write,sha1,,,d
0d60: 69 67 65 73 74 5f 77 72 69 74 65 5f 63 68 61 6e  igest_write_chan
0d70: 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74   ::tls::md $test
0d80: 5f 61 6c 74 5f 66 69 6c 65 20 24 74 65 73 74 5f  _alt_file $test_
0d90: 64 61 74 61 20 2d 64 69 67 65 73 74 20 73 68 61  data -digest sha
0da0: 31 2c 2c 2c 34 66 65 30 33 62 37 66 32 35 36 38  1,,,4fe03b7f2568
0db0: 35 35 31 64 66 61 66 62 39 38 63 61 36 30 30 34  551dfafb98ca6004
0dc0: 65 36 35 63 34 62 37 31 61 61 37 64 2c 2c 2c 0a  e65c4b71aa7d,,,.
0dd0: 4d 44 20 43 68 61 6e 20 57 72 69 74 65 2c 73 68  MD Chan Write,sh
0de0: 61 32 35 36 2c 2c 2c 64 69 67 65 73 74 5f 77 72  a256,,,digest_wr
0df0: 69 74 65 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a  ite_chan ::tls::
0e00: 6d 64 20 24 74 65 73 74 5f 61 6c 74 5f 66 69 6c  md $test_alt_fil
0e10: 65 20 24 74 65 73 74 5f 64 61 74 61 20 2d 64 69  e $test_data -di
0e20: 67 65 73 74 20 73 68 61 32 35 36 2c 2c 2c 39 64  gest sha256,,,9d
0e30: 33 35 37 38 66 63 31 33 38 32 30 35 63 66 30 65  3578fc138205cf0e
0e40: 65 34 62 34 63 65 66 33 35 66 65 31 30 31 62 62  e4b4cef35fe101bb
0e50: 34 65 63 61 63 37 62 31 36 31 34 63 31 38 65 36  4ecac7b1614c18e6
0e60: 66 61 34 38 62 35 63 37 66 39 35 65 31 39 2c 2c  fa48b5c7f95e19,,
0e70: 2c 0a 4d 44 20 43 68 61 6e 20 57 72 69 74 65 2c  ,.MD Chan Write,
0e80: 73 68 61 35 31 32 2c 2c 2c 64 69 67 65 73 74 5f  sha512,,,digest_
0e90: 77 72 69 74 65 5f 63 68 61 6e 20 3a 3a 74 6c 73  write_chan ::tls
0ea0: 3a 3a 6d 64 20 24 74 65 73 74 5f 61 6c 74 5f 66  ::md $test_alt_f
0eb0: 69 6c 65 20 24 74 65 73 74 5f 64 61 74 61 20 2d  ile $test_data -
0ec0: 64 69 67 65 73 74 20 73 68 61 35 31 32 2c 2c 2c  digest sha512,,,
0ed0: 64 31 37 38 65 37 35 39 64 63 35 39 31 32 37 30  d178e759dc591270
0ee0: 37 31 35 38 38 64 32 66 61 64 31 37 33 63 30 36  71588d2fad173c06
0ef0: 32 33 38 64 38 37 65 38 30 30 61 36 34 30 33 63  238d87e800a6403c
0f00: 30 61 33 30 64 61 61 34 66 61 61 66 30 35 64 30  0a30daa4faaf05d0
0f10: 65 37 63 65 30 34 39 31 36 61 66 61 61 36 61 35  e7ce04916afaa6a5
0f20: 38 61 33 30 63 62 65 62 35 39 37 64 61 63 62 30  8a30cbeb597dacb0
0f30: 31 63 36 32 66 39 66 62 39 64 38 39 62 61 62 39  1c62f9fb9d89bab9
0f40: 64 61 36 33 30 63 36 39 39 65 34 38 31 36 66 31  da630c699e4816f1
0f50: 2c 2c 2c 0a 4d 44 20 43 68 61 6e 20 57 72 69 74  ,,,.MD Chan Writ
0f60: 65 2c 6d 64 35 20 62 69 6e 2c 2c 2c 62 69 6e 61  e,md5 bin,,,bina
0f70: 72 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 64  ry encode hex [d
0f80: 69 67 65 73 74 5f 77 72 69 74 65 5f 63 68 61 6e  igest_write_chan
0f90: 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74   ::tls::md $test
0fa0: 5f 61 6c 74 5f 66 69 6c 65 20 24 74 65 73 74 5f  _alt_file $test_
0fb0: 64 61 74 61 20 2d 62 69 6e 20 2d 64 69 67 65 73  data -bin -diges
0fc0: 74 20 6d 64 35 5d 2c 2c 2c 39 36 32 62 66 30 38  t md5],,,962bf08
0fd0: 30 33 62 34 32 33 32 65 63 32 33 62 64 38 34 32  03b4232ec23bd842
0fe0: 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a 4d 44 20  7bb94ea09,,,.MD 
0ff0: 43 68 61 6e 20 57 72 69 74 65 2c 6d 64 35 20 68  Chan Write,md5 h
1000: 65 78 2c 2c 2c 64 69 67 65 73 74 5f 77 72 69 74  ex,,,digest_writ
1010: 65 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64  e_chan ::tls::md
1020: 20 24 74 65 73 74 5f 61 6c 74 5f 66 69 6c 65 20   $test_alt_file 
1030: 24 74 65 73 74 5f 64 61 74 61 20 2d 68 65 78 20  $test_data -hex 
1040: 2d 64 69 67 65 73 74 20 6d 64 35 2c 2c 2c 39 36  -digest md5,,,96
1050: 32 62 66 30 38 30 33 62 34 32 33 32 65 63 32 33  2bf0803b4232ec23
1060: 62 64 38 34 32 37 62 62 39 34 65 61 30 39 2c 2c  bd8427bb94ea09,,
1070: 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  ,.,,,,,,,,,,.com
1080: 6d 61 6e 64 2c 23 20 54 65 73 74 20 4d 44 20 63  mand,# Test MD c
1090: 6f 6d 6d 61 6e 64 20 66 6f 72 20 6f 62 6a 65 63  ommand for objec
10a0: 74 20 63 6f 6d 6d 61 6e 64 2c 2c 2c 2c 2c 2c 2c  t command,,,,,,,
10b0: 2c 2c 0a 4d 44 20 43 6f 6d 6d 61 6e 64 2c 6d 64  ,,.MD Command,md
10c0: 34 2c 6d 64 34 2c 2c 64 69 67 65 73 74 5f 61 63  4,md4,,digest_ac
10d0: 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64  cumulate $test_d
10e0: 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64  ata ::tls::md -d
10f0: 69 67 65 73 74 20 6d 64 34 2c 2c 2c 37 39 33 33  igest md4,,,7933
1100: 39 39 66 37 39 32 65 63 61 32 37 35 32 63 36 61  99f792eca2752c6a
1110: 66 33 32 33 34 62 61 37 30 38 35 38 2c 2c 2c 0a  f3234ba70858,,,.
1120: 4d 44 20 43 6f 6d 6d 61 6e 64 2c 6d 64 35 2c 2c  MD Command,md5,,
1130: 2c 64 69 67 65 73 74 5f 61 63 63 75 6d 75 6c 61  ,digest_accumula
1140: 74 65 20 24 74 65 73 74 5f 64 61 74 61 20 3a 3a  te $test_data ::
1150: 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20  tls::md -digest 
1160: 6d 64 35 2c 2c 2c 39 36 32 62 66 30 38 30 33 62  md5,,,962bf0803b
1170: 34 32 33 32 65 63 32 33 62 64 38 34 32 37 62 62  4232ec23bd8427bb
1180: 39 34 65 61 30 39 2c 2c 2c 0a 4d 44 20 43 6f 6d  94ea09,,,.MD Com
1190: 6d 61 6e 64 2c 73 68 61 31 2c 2c 2c 64 69 67 65  mand,sha1,,,dige
11a0: 73 74 5f 61 63 63 75 6d 75 6c 61 74 65 20 24 74  st_accumulate $t
11b0: 65 73 74 5f 64 61 74 61 20 3a 3a 74 6c 73 3a 3a  est_data ::tls::
11c0: 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 31 2c  md -digest sha1,
11d0: 2c 2c 34 66 65 30 33 62 37 66 32 35 36 38 35 35  ,,4fe03b7f256855
11e0: 31 64 66 61 66 62 39 38 63 61 36 30 30 34 65 36  1dfafb98ca6004e6
11f0: 35 63 34 62 37 31 61 61 37 64 2c 2c 2c 0a 4d 44  5c4b71aa7d,,,.MD
1200: 20 43 6f 6d 6d 61 6e 64 2c 73 68 61 32 35 36 2c   Command,sha256,
1210: 2c 2c 64 69 67 65 73 74 5f 61 63 63 75 6d 75 6c  ,,digest_accumul
1220: 61 74 65 20 24 74 65 73 74 5f 64 61 74 61 20 3a  ate $test_data :
1230: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74  :tls::md -digest
1240: 20 73 68 61 32 35 36 2c 2c 2c 39 64 33 35 37 38   sha256,,,9d3578
1250: 66 63 31 33 38 32 30 35 63 66 30 65 65 34 62 34  fc138205cf0ee4b4
1260: 63 65 66 33 35 66 65 31 30 31 62 62 34 65 63 61  cef35fe101bb4eca
1270: 63 37 62 31 36 31 34 63 31 38 65 36 66 61 34 38  c7b1614c18e6fa48
1280: 62 35 63 37 66 39 35 65 31 39 2c 2c 2c 0a 4d 44  b5c7f95e19,,,.MD
1290: 20 43 6f 6d 6d 61 6e 64 2c 73 68 61 35 31 32 2c   Command,sha512,
12a0: 2c 2c 64 69 67 65 73 74 5f 61 63 63 75 6d 75 6c  ,,digest_accumul
12b0: 61 74 65 20 24 74 65 73 74 5f 64 61 74 61 20 3a  ate $test_data :
12c0: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74  :tls::md -digest
12d0: 20 73 68 61 35 31 32 2c 2c 2c 64 31 37 38 65 37   sha512,,,d178e7
12e0: 35 39 64 63 35 39 31 32 37 30 37 31 35 38 38 64  59dc59127071588d
12f0: 32 66 61 64 31 37 33 63 30 36 32 33 38 64 38 37  2fad173c06238d87
1300: 65 38 30 30 61 36 34 30 33 63 30 61 33 30 64 61  e800a6403c0a30da
1310: 61 34 66 61 61 66 30 35 64 30 65 37 63 65 30 34  a4faaf05d0e7ce04
1320: 39 31 36 61 66 61 61 36 61 35 38 61 33 30 63 62  916afaa6a58a30cb
1330: 65 62 35 39 37 64 61 63 62 30 31 63 36 32 66 39  eb597dacb01c62f9
1340: 66 62 39 64 38 39 62 61 62 39 64 61 36 33 30 63  fb9d89bab9da630c
1350: 36 39 39 65 34 38 31 36 66 31 2c 2c 2c 0a 4d 44  699e4816f1,,,.MD
1360: 20 43 6f 6d 6d 61 6e 64 2c 6d 64 35 20 62 69 6e   Command,md5 bin
1370: 2c 2c 2c 62 69 6e 61 72 79 20 65 6e 63 6f 64 65  ,,,binary encode
1380: 20 68 65 78 20 5b 64 69 67 65 73 74 5f 61 63 63   hex [digest_acc
1390: 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64 61  umulate $test_da
13a0: 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69  ta ::tls::md -di
13b0: 67 65 73 74 20 6d 64 35 20 2d 62 69 6e 5d 2c 2c  gest md5 -bin],,
13c0: 2c 39 36 32 62 66 30 38 30 33 62 34 32 33 32 65  ,962bf0803b4232e
13d0: 63 32 33 62 64 38 34 32 37 62 62 39 34 65 61 30  c23bd8427bb94ea0
13e0: 39 2c 2c 2c 0a 4d 44 20 43 6f 6d 6d 61 6e 64 2c  9,,,.MD Command,
13f0: 6d 64 35 20 68 65 78 2c 2c 2c 64 69 67 65 73 74  md5 hex,,,digest
1400: 5f 61 63 63 75 6d 75 6c 61 74 65 20 24 74 65 73  _accumulate $tes
1410: 74 5f 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64  t_data ::tls::md
1420: 20 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 68 65   -digest md5 -he
1430: 78 2c 2c 2c 39 36 32 62 66 30 38 30 33 62 34 32  x,,,962bf0803b42
1440: 33 32 65 63 32 33 62 64 38 34 32 37 62 62 39 34  32ec23bd8427bb94
1450: 65 61 30 39 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c  ea09,,,.,,,,,,,,
1460: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73  ,,.command,# Tes
1470: 74 20 4d 44 20 63 6f 6d 6d 61 6e 64 20 66 6f 72  t MD command for
1480: 20 64 61 74 61 20 73 68 6f 72 74 63 75 74 2c 2c   data shortcut,,
1490: 2c 2c 2c 2c 2c 2c 2c 0a 4d 44 20 53 68 6f 72 74  ,,,,,,,.MD Short
14a0: 63 75 74 2c 6d 64 34 2c 6d 64 34 2c 2c 3a 3a 74  cut,md4,md4,,::t
14b0: 6c 73 3a 3a 6d 64 20 6d 64 34 20 24 74 65 73 74  ls::md md4 $test
14c0: 5f 64 61 74 61 2c 2c 2c 37 39 33 33 39 39 66 37  _data,,,793399f7
14d0: 39 32 65 63 61 32 37 35 32 63 36 61 66 33 32 33  92eca2752c6af323
14e0: 34 62 61 37 30 38 35 38 2c 2c 2c 0a 4d 44 20 53  4ba70858,,,.MD S
14f0: 68 6f 72 74 63 75 74 2c 6d 64 35 2c 2c 2c 3a 3a  hortcut,md5,,,::
1500: 74 6c 73 3a 3a 6d 64 20 6d 64 35 20 24 74 65 73  tls::md md5 $tes
1510: 74 5f 64 61 74 61 2c 2c 2c 39 36 32 62 66 30 38  t_data,,,962bf08
1520: 30 33 62 34 32 33 32 65 63 32 33 62 64 38 34 32  03b4232ec23bd842
1530: 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a 4d 44 20  7bb94ea09,,,.MD 
1540: 53 68 6f 72 74 63 75 74 2c 73 68 61 31 2c 2c 2c  Shortcut,sha1,,,
1550: 3a 3a 74 6c 73 3a 3a 6d 64 20 73 68 61 31 20 24  ::tls::md sha1 $
1560: 74 65 73 74 5f 64 61 74 61 2c 2c 2c 34 66 65 30  test_data,,,4fe0
1570: 33 62 37 66 32 35 36 38 35 35 31 64 66 61 66 62  3b7f2568551dfafb
1580: 39 38 63 61 36 30 30 34 65 36 35 63 34 62 37 31  98ca6004e65c4b71
1590: 61 61 37 64 2c 2c 2c 0a 4d 44 20 53 68 6f 72 74  aa7d,,,.MD Short
15a0: 63 75 74 2c 73 68 61 32 35 36 2c 2c 2c 3a 3a 74  cut,sha256,,,::t
15b0: 6c 73 3a 3a 6d 64 20 73 68 61 32 35 36 20 24 74  ls::md sha256 $t
15c0: 65 73 74 5f 64 61 74 61 2c 2c 2c 39 64 33 35 37  est_data,,,9d357
15d0: 38 66 63 31 33 38 32 30 35 63 66 30 65 65 34 62  8fc138205cf0ee4b
15e0: 34 63 65 66 33 35 66 65 31 30 31 62 62 34 65 63  4cef35fe101bb4ec
15f0: 61 63 37 62 31 36 31 34 63 31 38 65 36 66 61 34  ac7b1614c18e6fa4
1600: 38 62 35 63 37 66 39 35 65 31 39 2c 2c 2c 0a 4d  8b5c7f95e19,,,.M
1610: 44 20 53 68 6f 72 74 63 75 74 2c 73 68 61 35 31  D Shortcut,sha51
1620: 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 73 68  2,,,::tls::md sh
1630: 61 35 31 32 20 24 74 65 73 74 5f 64 61 74 61 2c  a512 $test_data,
1640: 2c 2c 64 31 37 38 65 37 35 39 64 63 35 39 31 32  ,,d178e759dc5912
1650: 37 30 37 31 35 38 38 64 32 66 61 64 31 37 33 63  7071588d2fad173c
1660: 30 36 32 33 38 64 38 37 65 38 30 30 61 36 34 30  06238d87e800a640
1670: 33 63 30 61 33 30 64 61 61 34 66 61 61 66 30 35  3c0a30daa4faaf05
1680: 64 30 65 37 63 65 30 34 39 31 36 61 66 61 61 36  d0e7ce04916afaa6
1690: 61 35 38 61 33 30 63 62 65 62 35 39 37 64 61 63  a58a30cbeb597dac
16a0: 62 30 31 63 36 32 66 39 66 62 39 64 38 39 62 61  b01c62f9fb9d89ba
16b0: 62 39 64 61 36 33 30 63 36 39 39 65 34 38 31 36  b9da630c699e4816
16c0: 66 31 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c  f1,,,.,,,,,,,,,,
16d0: 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73 74 20  .command,# Test 
16e0: 4d 44 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 64  MD command for d
16f0: 61 74 61 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4d 44 20  ata,,,,,,,,,.MD 
1700: 44 61 74 61 2c 6d 64 34 2c 6d 64 34 2c 2c 3a 3a  Data,md4,md4,,::
1710: 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20  tls::md -digest 
1720: 6d 64 34 20 2d 64 61 74 61 20 24 74 65 73 74 5f  md4 -data $test_
1730: 64 61 74 61 2c 2c 2c 37 39 33 33 39 39 66 37 39  data,,,793399f79
1740: 32 65 63 61 32 37 35 32 63 36 61 66 33 32 33 34  2eca2752c6af3234
1750: 62 61 37 30 38 35 38 2c 2c 2c 0a 4d 44 20 44 61  ba70858,,,.MD Da
1760: 74 61 2c 6d 64 35 2c 2c 2c 3a 3a 74 6c 73 3a 3a  ta,md5,,,::tls::
1770: 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35 20 2d  md -digest md5 -
1780: 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 61 2c  data $test_data,
1790: 2c 2c 39 36 32 62 66 30 38 30 33 62 34 32 33 32  ,,962bf0803b4232
17a0: 65 63 32 33 62 64 38 34 32 37 62 62 39 34 65 61  ec23bd8427bb94ea
17b0: 30 39 2c 2c 2c 0a 4d 44 20 44 61 74 61 2c 73 68  09,,,.MD Data,sh
17c0: 61 31 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d  a1,,,::tls::md -
17d0: 64 69 67 65 73 74 20 73 68 61 31 20 2d 64 61 74  digest sha1 -dat
17e0: 61 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 34  a $test_data,,,4
17f0: 66 65 30 33 62 37 66 32 35 36 38 35 35 31 64 66  fe03b7f2568551df
1800: 61 66 62 39 38 63 61 36 30 30 34 65 36 35 63 34  afb98ca6004e65c4
1810: 62 37 31 61 61 37 64 2c 2c 2c 0a 4d 44 20 44 61  b71aa7d,,,.MD Da
1820: 74 61 2c 73 68 61 32 35 36 2c 2c 2c 3a 3a 74 6c  ta,sha256,,,::tl
1830: 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68  s::md -digest sh
1840: 61 32 35 36 20 2d 64 61 74 61 20 24 74 65 73 74  a256 -data $test
1850: 5f 64 61 74 61 2c 2c 2c 39 64 33 35 37 38 66 63  _data,,,9d3578fc
1860: 31 33 38 32 30 35 63 66 30 65 65 34 62 34 63 65  138205cf0ee4b4ce
1870: 66 33 35 66 65 31 30 31 62 62 34 65 63 61 63 37  f35fe101bb4ecac7
1880: 62 31 36 31 34 63 31 38 65 36 66 61 34 38 62 35  b1614c18e6fa48b5
1890: 63 37 66 39 35 65 31 39 2c 2c 2c 0a 4d 44 20 44  c7f95e19,,,.MD D
18a0: 61 74 61 2c 73 68 61 35 31 32 2c 2c 2c 3a 3a 74  ata,sha512,,,::t
18b0: 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73  ls::md -digest s
18c0: 68 61 35 31 32 20 2d 64 61 74 61 20 24 74 65 73  ha512 -data $tes
18d0: 74 5f 64 61 74 61 2c 2c 2c 64 31 37 38 65 37 35  t_data,,,d178e75
18e0: 39 64 63 35 39 31 32 37 30 37 31 35 38 38 64 32  9dc59127071588d2
18f0: 66 61 64 31 37 33 63 30 36 32 33 38 64 38 37 65  fad173c06238d87e
1900: 38 30 30 61 36 34 30 33 63 30 61 33 30 64 61 61  800a6403c0a30daa
1910: 34 66 61 61 66 30 35 64 30 65 37 63 65 30 34 39  4faaf05d0e7ce049
1920: 31 36 61 66 61 61 36 61 35 38 61 33 30 63 62 65  16afaa6a58a30cbe
1930: 62 35 39 37 64 61 63 62 30 31 63 36 32 66 39 66  b597dacb01c62f9f
1940: 62 39 64 38 39 62 61 62 39 64 61 36 33 30 63 36  b9d89bab9da630c6
1950: 39 39 65 34 38 31 36 66 31 2c 2c 2c 0a 4d 44 20  99e4816f1,,,.MD 
1960: 44 61 74 61 2c 6d 64 35 20 62 69 6e 2c 2c 2c 62  Data,md5 bin,,,b
1970: 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 68 65 78  inary encode hex
1980: 20 5b 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67   [::tls::md -dig
1990: 65 73 74 20 6d 64 35 20 2d 64 61 74 61 20 24 74  est md5 -data $t
19a0: 65 73 74 5f 64 61 74 61 20 2d 62 69 6e 5d 2c 2c  est_data -bin],,
19b0: 2c 39 36 32 62 66 30 38 30 33 62 34 32 33 32 65  ,962bf0803b4232e
19c0: 63 32 33 62 64 38 34 32 37 62 62 39 34 65 61 30  c23bd8427bb94ea0
19d0: 39 2c 2c 2c 0a 4d 44 20 44 61 74 61 2c 6d 64 35  9,,,.MD Data,md5
19e0: 20 68 65 78 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64   hex,,,::tls::md
19f0: 20 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 64 61   -digest md5 -da
1a00: 74 61 20 24 74 65 73 74 5f 64 61 74 61 20 2d 68  ta $test_data -h
1a10: 65 78 2c 2c 2c 39 36 32 62 66 30 38 30 33 62 34  ex,,,962bf0803b4
1a20: 32 33 32 65 63 32 33 62 64 38 34 32 37 62 62 39  232ec23bd8427bb9
1a30: 34 65 61 30 39 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c  4ea09,,,.,,,,,,,
1a40: 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65  ,,,.command,# Te
1a50: 73 74 20 4d 44 20 63 6f 6d 6d 61 6e 64 20 66 6f  st MD command fo
1a60: 72 20 66 69 6c 65 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  r file,,,,,,,,,.
1a70: 4d 44 20 46 69 6c 65 2c 6d 64 34 2c 6d 64 34 2c  MD File,md4,md4,
1a80: 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65  ,::tls::md -dige
1a90: 73 74 20 6d 64 34 20 2d 66 69 6c 65 20 24 74 65  st md4 -file $te
1aa0: 73 74 5f 66 69 6c 65 2c 2c 2c 37 39 33 33 39 39  st_file,,,793399
1ab0: 66 37 39 32 65 63 61 32 37 35 32 63 36 61 66 33  f792eca2752c6af3
1ac0: 32 33 34 62 61 37 30 38 35 38 2c 2c 2c 0a 4d 44  234ba70858,,,.MD
1ad0: 20 46 69 6c 65 2c 6d 64 35 2c 2c 2c 3a 3a 74 6c   File,md5,,,::tl
1ae0: 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64  s::md -digest md
1af0: 35 20 2d 66 69 6c 65 20 24 74 65 73 74 5f 66 69  5 -file $test_fi
1b00: 6c 65 2c 2c 2c 39 36 32 62 66 30 38 30 33 62 34  le,,,962bf0803b4
1b10: 32 33 32 65 63 32 33 62 64 38 34 32 37 62 62 39  232ec23bd8427bb9
1b20: 34 65 61 30 39 2c 2c 2c 0a 4d 44 20 46 69 6c 65  4ea09,,,.MD File
1b30: 2c 73 68 61 31 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d  ,sha1,,,::tls::m
1b40: 64 20 2d 64 69 67 65 73 74 20 73 68 61 31 20 2d  d -digest sha1 -
1b50: 66 69 6c 65 20 24 74 65 73 74 5f 66 69 6c 65 2c  file $test_file,
1b60: 2c 2c 34 66 65 30 33 62 37 66 32 35 36 38 35 35  ,,4fe03b7f256855
1b70: 31 64 66 61 66 62 39 38 63 61 36 30 30 34 65 36  1dfafb98ca6004e6
1b80: 35 63 34 62 37 31 61 61 37 64 2c 2c 2c 0a 4d 44  5c4b71aa7d,,,.MD
1b90: 20 46 69 6c 65 2c 73 68 61 32 35 36 2c 2c 2c 3a   File,sha256,,,:
1ba0: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74  :tls::md -digest
1bb0: 20 73 68 61 32 35 36 20 2d 66 69 6c 65 20 24 74   sha256 -file $t
1bc0: 65 73 74 5f 66 69 6c 65 2c 2c 2c 39 64 33 35 37  est_file,,,9d357
1bd0: 38 66 63 31 33 38 32 30 35 63 66 30 65 65 34 62  8fc138205cf0ee4b
1be0: 34 63 65 66 33 35 66 65 31 30 31 62 62 34 65 63  4cef35fe101bb4ec
1bf0: 61 63 37 62 31 36 31 34 63 31 38 65 36 66 61 34  ac7b1614c18e6fa4
1c00: 38 62 35 63 37 66 39 35 65 31 39 2c 2c 2c 0a 4d  8b5c7f95e19,,,.M
1c10: 44 20 46 69 6c 65 2c 73 68 61 35 31 32 2c 2c 2c  D File,sha512,,,
1c20: 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73  ::tls::md -diges
1c30: 74 20 73 68 61 35 31 32 20 2d 66 69 6c 65 20 24  t sha512 -file $
1c40: 74 65 73 74 5f 66 69 6c 65 2c 2c 2c 64 31 37 38  test_file,,,d178
1c50: 65 37 35 39 64 63 35 39 31 32 37 30 37 31 35 38  e759dc5912707158
1c60: 38 64 32 66 61 64 31 37 33 63 30 36 32 33 38 64  8d2fad173c06238d
1c70: 38 37 65 38 30 30 61 36 34 30 33 63 30 61 33 30  87e800a6403c0a30
1c80: 64 61 61 34 66 61 61 66 30 35 64 30 65 37 63 65  daa4faaf05d0e7ce
1c90: 30 34 39 31 36 61 66 61 61 36 61 35 38 61 33 30  04916afaa6a58a30
1ca0: 63 62 65 62 35 39 37 64 61 63 62 30 31 63 36 32  cbeb597dacb01c62
1cb0: 66 39 66 62 39 64 38 39 62 61 62 39 64 61 36 33  f9fb9d89bab9da63
1cc0: 30 63 36 39 39 65 34 38 31 36 66 31 2c 2c 2c 0a  0c699e4816f1,,,.
1cd0: 4d 44 20 46 69 6c 65 2c 6d 64 35 20 62 69 6e 2c  MD File,md5 bin,
1ce0: 2c 2c 62 69 6e 61 72 79 20 65 6e 63 6f 64 65 20  ,,binary encode 
1cf0: 68 65 78 20 5b 3a 3a 74 6c 73 3a 3a 6d 64 20 2d  hex [::tls::md -
1d00: 64 69 67 65 73 74 20 6d 64 35 20 2d 66 69 6c 65  digest md5 -file
1d10: 20 24 74 65 73 74 5f 66 69 6c 65 20 2d 62 69 6e   $test_file -bin
1d20: 5d 2c 2c 2c 39 36 32 62 66 30 38 30 33 62 34 32  ],,,962bf0803b42
1d30: 33 32 65 63 32 33 62 64 38 34 32 37 62 62 39 34  32ec23bd8427bb94
1d40: 65 61 30 39 2c 2c 2c 0a 4d 44 20 46 69 6c 65 2c  ea09,,,.MD File,
1d50: 6d 64 35 20 68 65 78 2c 2c 2c 3a 3a 74 6c 73 3a  md5 hex,,,::tls:
1d60: 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35 20  :md -digest md5 
1d70: 2d 66 69 6c 65 20 24 74 65 73 74 5f 66 69 6c 65  -file $test_file
1d80: 20 2d 68 65 78 2c 2c 2c 39 36 32 62 66 30 38 30   -hex,,,962bf080
1d90: 33 62 34 32 33 32 65 63 32 33 62 64 38 34 32 37  3b4232ec23bd8427
1da0: 62 62 39 34 65 61 30 39 2c 2c 2c 0a 2c 2c 2c 2c  bb94ea09,,,.,,,,
1db0: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23  ,,,,,,.command,#
1dc0: 20 4d 44 20 45 72 72 6f 72 20 43 61 73 65 73 2c   MD Error Cases,
1dd0: 2c 2c 2c 2c 2c 2c 2c 2c 0a 4d 44 20 45 72 72 6f  ,,,,,,,,.MD Erro
1de0: 72 73 2c 54 6f 6f 20 66 65 77 20 61 72 67 73 2c  rs,Too few args,
1df0: 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 2c 2c 2c 22 77  ,,::tls::md,,,"w
1e00: 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f  rong # args: sho
1e10: 75 6c 64 20 62 65 20 22 22 3a 3a 74 6c 73 3a 3a  uld be ""::tls::
1e20: 6d 64 20 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20 3f  md ?-bin|-hex? ?
1e30: 2d 63 69 70 68 65 72 20 6e 61 6d 65 3f 20 3f 2d  -cipher name? ?-
1e40: 64 69 67 65 73 74 20 6e 61 6d 65 3f 20 3f 2d 6b  digest name? ?-k
1e50: 65 79 20 6b 65 79 3f 20 3f 2d 6d 61 63 20 6e 61  ey key? ?-mac na
1e60: 6d 65 3f 20 5b 2d 63 68 61 6e 6e 65 6c 20 63 68  me? [-channel ch
1e70: 61 6e 20 7c 20 2d 63 6f 6d 6d 61 6e 64 20 63 6d  an | -command cm
1e80: 64 4e 61 6d 65 20 7c 20 2d 66 69 6c 65 20 66 69  dName | -file fi
1e90: 6c 65 6e 61 6d 65 20 7c 20 3f 2d 64 61 74 61 3f  lename | ?-data?
1ea0: 20 64 61 74 61 5d 22 22 22 2c 2c 2c 31 0a 4d 44   data]""",,,1.MD
1eb0: 20 45 72 72 6f 72 73 2c 54 6f 6f 20 6d 61 6e 79   Errors,Too many
1ec0: 20 61 72 67 73 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d   args,,,::tls::m
1ed0: 64 20 74 6f 6f 20 6d 61 6e 79 20 63 6f 6d 6d 61  d too many comma
1ee0: 6e 64 20 6c 69 6e 65 20 61 72 67 73 20 74 6f 20  nd line args to 
1ef0: 70 61 73 73 20 74 68 65 20 74 65 73 74 20 77 69  pass the test wi
1f00: 74 68 6f 75 74 20 61 6e 20 65 72 72 6f 72 20 6f  thout an error o
1f10: 72 20 66 61 69 6c 69 6e 67 2c 2c 2c 22 77 72 6f  r failing,,,"wro
1f20: 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75 6c  ng # args: shoul
1f30: 64 20 62 65 20 22 22 3a 3a 74 6c 73 3a 3a 6d 64  d be ""::tls::md
1f40: 20 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20 3f 2d 63   ?-bin|-hex? ?-c
1f50: 69 70 68 65 72 20 6e 61 6d 65 3f 20 3f 2d 64 69  ipher name? ?-di
1f60: 67 65 73 74 20 6e 61 6d 65 3f 20 3f 2d 6b 65 79  gest name? ?-key
1f70: 20 6b 65 79 3f 20 3f 2d 6d 61 63 20 6e 61 6d 65   key? ?-mac name
1f80: 3f 20 5b 2d 63 68 61 6e 6e 65 6c 20 63 68 61 6e  ? [-channel chan
1f90: 20 7c 20 2d 63 6f 6d 6d 61 6e 64 20 63 6d 64 4e   | -command cmdN
1fa0: 61 6d 65 20 7c 20 2d 66 69 6c 65 20 66 69 6c 65  ame | -file file
1fb0: 6e 61 6d 65 20 7c 20 3f 2d 64 61 74 61 3f 20 64  name | ?-data? d
1fc0: 61 74 61 5d 22 22 22 2c 2c 2c 31 0a 4d 44 20 45  ata]""",,,1.MD E
1fd0: 72 72 6f 72 73 2c 49 6e 76 61 6c 69 64 20 64 69  rrors,Invalid di
1fe0: 67 65 73 74 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64  gest,,,::tls::md
1ff0: 20 62 6f 67 75 73 20 64 61 74 61 2c 2c 2c 22 69   bogus data,,,"i
2000: 6e 76 61 6c 69 64 20 64 69 67 65 73 74 20 22 22  nvalid digest ""
2010: 62 6f 67 75 73 22 22 22 2c 2c 2c 31 0a 4d 44 20  bogus""",,,1.MD 
2020: 45 72 72 6f 72 73 2c 49 6e 76 61 6c 69 64 20 64  Errors,Invalid d
2030: 69 67 65 73 74 20 41 72 67 2c 2c 2c 3a 3a 74 6c  igest Arg,,,::tl
2040: 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 62 6f  s::md -digest bo
2050: 67 75 73 20 2d 64 61 74 61 20 64 61 74 61 2c 2c  gus -data data,,
2060: 2c 22 69 6e 76 61 6c 69 64 20 64 69 67 65 73 74  ,"invalid digest
2070: 20 22 22 62 6f 67 75 73 22 22 22 2c 2c 2c 31 0a   ""bogus""",,,1.
2080: 4d 44 20 45 72 72 6f 72 73 2c 4e 6f 20 64 69 67  MD Errors,No dig
2090: 65 73 74 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20  est,,,::tls::md 
20a0: 2d 68 65 78 20 2d 64 61 74 61 20 76 61 6c 75 65  -hex -data value
20b0: 2c 2c 2c 6e 6f 20 64 69 67 65 73 74 2c 2c 2c 31  ,,,no digest,,,1
20c0: 0a 4d 44 20 45 72 72 6f 72 73 2c 49 6e 76 61 6c  .MD Errors,Inval
20d0: 69 64 20 6f 70 74 69 6f 6e 2c 2c 2c 3a 3a 74 6c  id option,,,::tl
20e0: 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68  s::md -digest sh
20f0: 61 32 35 36 20 2d 62 6f 67 75 73 20 76 61 6c 75  a256 -bogus valu
2100: 65 2c 2c 2c 22 62 61 64 20 6f 70 74 69 6f 6e 20  e,,,"bad option 
2110: 22 22 2d 62 6f 67 75 73 22 22 3a 20 6d 75 73 74  ""-bogus"": must
2120: 20 62 65 20 2d 62 69 6e 2c 20 2d 62 69 6e 61 72   be -bin, -binar
2130: 79 2c 20 2d 68 65 78 2c 20 2d 68 65 78 61 64 65  y, -hex, -hexade
2140: 63 69 6d 61 6c 2c 20 2d 63 68 61 6e 2c 20 2d 63  cimal, -chan, -c
2150: 68 61 6e 6e 65 6c 2c 20 2d 63 69 70 68 65 72 2c  hannel, -cipher,
2160: 20 2d 63 6f 6d 6d 61 6e 64 2c 20 2d 64 61 74 61   -command, -data
2170: 2c 20 2d 64 69 67 65 73 74 2c 20 2d 66 69 6c 65  , -digest, -file
2180: 2c 20 2d 66 69 6c 65 6e 61 6d 65 2c 20 2d 68 61  , -filename, -ha
2190: 73 68 2c 20 2d 6b 65 79 2c 20 6f 72 20 2d 6d 61  sh, -key, or -ma
21a0: 63 22 2c 2c 2c 31 0a 4d 44 20 45 72 72 6f 72 73  c",,,1.MD Errors
21b0: 2c 49 6e 76 61 6c 69 64 20 66 69 6c 65 2c 2c 2c  ,Invalid file,,,
21c0: 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73  ::tls::md -diges
21d0: 74 20 73 68 61 32 35 36 20 2d 66 69 6c 65 20 62  t sha256 -file b
21e0: 6f 67 75 73 2c 2c 2c 22 63 6f 75 6c 64 6e 27 74  ogus,,,"couldn't
21f0: 20 6f 70 65 6e 20 22 22 62 6f 67 75 73 22 22 3a   open ""bogus"":
2200: 20 6e 6f 20 73 75 63 68 20 66 69 6c 65 20 6f 72   no such file or
2210: 20 64 69 72 65 63 74 6f 72 79 22 2c 2c 2c 31 0a   directory",,,1.
2220: 4d 44 20 45 72 72 6f 72 73 2c 49 6e 76 61 6c 69  MD Errors,Invali
2230: 64 20 63 68 61 6e 6e 65 6c 2c 2c 2c 3a 3a 74 6c  d channel,,,::tl
2240: 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68  s::md -digest sh
2250: 61 32 35 36 20 2d 63 68 61 6e 6e 65 6c 20 62 6f  a256 -channel bo
2260: 67 75 73 2c 2c 2c 22 63 61 6e 20 6e 6f 74 20 66  gus,,,"can not f
2270: 69 6e 64 20 63 68 61 6e 6e 65 6c 20 6e 61 6d 65  ind channel name
2280: 64 20 22 22 62 6f 67 75 73 22 22 22 2c 2c 2c 31  d ""bogus""",,,1
2290: 0a 4d 44 20 45 72 72 6f 72 73 2c 4e 6f 20 6f 70  .MD Errors,No op
22a0: 65 72 61 74 69 6f 6e 2c 2c 2c 3a 3a 74 6c 73 3a  eration,,,::tls:
22b0: 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 32  :md -digest sha2
22c0: 35 36 20 2d 62 69 6e 2c 2c 2c 22 4e 6f 20 6f 70  56 -bin,,,"No op
22d0: 65 72 61 74 69 6f 6e 3a 20 55 73 65 20 2d 63 68  eration: Use -ch
22e0: 61 6e 6e 65 6c 2c 20 2d 63 6f 6d 6d 61 6e 64 2c  annel, -command,
22f0: 20 2d 64 61 74 61 2c 20 6f 72 20 2d 66 69 6c 65   -data, or -file
2300: 20 6f 70 74 69 6f 6e 22 2c 2c 2c 31 0a 2c 2c 2c   option",,,1.,,,
2310: 2c 2c 2c 2c 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c  ,,,,,,,.,,,,,,,,
2320: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73  ,,.command,# Tes
2330: 74 20 43 4d 41 43 20 63 6f 6d 6d 61 6e 64 2c 2c  t CMAC command,,
2340: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
2350: 22 73 65 74 20 74 65 73 74 5f 63 69 70 68 65 72  "set test_cipher
2360: 20 22 22 61 65 73 2d 31 32 38 2d 63 62 63 22 22   ""aes-128-cbc""
2370: 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61  ",,,,,,,,,.comma
2380: 6e 64 2c 22 73 65 74 20 74 65 73 74 5f 6b 65 79  nd,"set test_key
2390: 20 22 22 45 78 61 6d 70 6c 65 20 6b 65 79 20 31   ""Example key 1
23a0: 32 33 34 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  234""",,,,,,,,,.
23b0: 43 4d 41 43 2c 64 61 74 61 2c 2c 2c 3a 3a 74 6c  CMAC,data,,,::tl
23c0: 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 20  s::cmac -cipher 
23d0: 24 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65  $test_cipher -ke
23e0: 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74  y $test_key -dat
23f0: 61 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 62  a $test_data,,,b
2400: 61 66 35 63 32 30 66 39 39 37 33 65 32 64 36 30  af5c20f9973e2d60
2410: 36 62 31 34 63 37 65 66 64 66 65 35 32 66 61 2c  6b14c7efdfe52fa,
2420: 2c 2c 0a 43 4d 41 43 2c 66 69 6c 65 2c 2c 2c 3a  ,,.CMAC,file,,,:
2430: 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68  :tls::cmac -ciph
2440: 65 72 20 24 74 65 73 74 5f 63 69 70 68 65 72 20  er $test_cipher 
2450: 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20 2d  -key $test_key -
2460: 66 69 6c 65 20 24 74 65 73 74 5f 66 69 6c 65 2c  file $test_file,
2470: 2c 2c 62 61 66 35 63 32 30 66 39 39 37 33 65 32  ,,baf5c20f9973e2
2480: 64 36 30 36 62 31 34 63 37 65 66 64 66 65 35 32  d606b14c7efdfe52
2490: 66 61 2c 2c 2c 0a 43 4d 41 43 2c 63 68 61 6e 6e  fa,,,.CMAC,chann
24a0: 65 6c 2c 2c 2c 64 69 67 65 73 74 5f 72 65 61 64  el,,,digest_read
24b0: 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 63 6d 61  _chan ::tls::cma
24c0: 63 20 24 74 65 73 74 5f 66 69 6c 65 20 2d 63 69  c $test_file -ci
24d0: 70 68 65 72 20 24 74 65 73 74 5f 63 69 70 68 65  pher $test_ciphe
24e0: 72 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79  r -key $test_key
24f0: 2c 2c 2c 62 61 66 35 63 32 30 66 39 39 37 33 65  ,,,baf5c20f9973e
2500: 32 64 36 30 36 62 31 34 63 37 65 66 64 66 65 35  2d606b14c7efdfe5
2510: 32 66 61 2c 2c 2c 0a 43 4d 41 43 2c 63 6f 6d 6d  2fa,,,.CMAC,comm
2520: 61 6e 64 2c 2c 2c 64 69 67 65 73 74 5f 61 63 63  and,,,digest_acc
2530: 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64 61  umulate $test_da
2540: 74 61 20 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d  ta ::tls::cmac -
2550: 63 69 70 68 65 72 20 24 74 65 73 74 5f 63 69 70  cipher $test_cip
2560: 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b  her -key $test_k
2570: 65 79 2c 2c 2c 62 61 66 35 63 32 30 66 39 39 37  ey,,,baf5c20f997
2580: 33 65 32 64 36 30 36 62 31 34 63 37 65 66 64 66  3e2d606b14c7efdf
2590: 65 35 32 66 61 2c 2c 2c 0a 43 4d 41 43 2c 64 61  e52fa,,,.CMAC,da
25a0: 74 61 20 62 69 6e 2c 2c 2c 62 69 6e 61 72 79 20  ta bin,,,binary 
25b0: 65 6e 63 6f 64 65 20 68 65 78 20 5b 3a 3a 74 6c  encode hex [::tl
25c0: 73 3a 3a 63 6d 61 63 20 2d 62 69 6e 20 2d 63 69  s::cmac -bin -ci
25d0: 70 68 65 72 20 24 74 65 73 74 5f 63 69 70 68 65  pher $test_ciphe
25e0: 72 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79  r -key $test_key
25f0: 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74   -data $test_dat
2600: 61 5d 2c 2c 2c 62 61 66 35 63 32 30 66 39 39 37  a],,,baf5c20f997
2610: 33 65 32 64 36 30 36 62 31 34 63 37 65 66 64 66  3e2d606b14c7efdf
2620: 65 35 32 66 61 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c  e52fa,,,.,,,,,,,
2630: 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65  ,,,.command,# Te
2640: 73 74 20 4d 44 20 43 4d 41 43 2c 2c 2c 2c 2c 2c  st MD CMAC,,,,,,
2650: 2c 2c 2c 0a 4d 44 20 43 4d 41 43 2c 64 61 74 61  ,,,.MD CMAC,data
2660: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 63 69  ,,,::tls::md -ci
2670: 70 68 65 72 20 24 74 65 73 74 5f 63 69 70 68 65  pher $test_ciphe
2680: 72 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79  r -key $test_key
2690: 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74   -data $test_dat
26a0: 61 2c 2c 2c 62 61 66 35 63 32 30 66 39 39 37 33  a,,,baf5c20f9973
26b0: 65 32 64 36 30 36 62 31 34 63 37 65 66 64 66 65  e2d606b14c7efdfe
26c0: 35 32 66 61 2c 2c 2c 0a 4d 44 20 43 4d 41 43 2c  52fa,,,.MD CMAC,
26d0: 66 69 6c 65 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64  file,,,::tls::md
26e0: 20 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f 63   -cipher $test_c
26f0: 69 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74  ipher -key $test
2700: 5f 6b 65 79 20 2d 66 69 6c 65 20 24 74 65 73 74  _key -file $test
2710: 5f 66 69 6c 65 2c 2c 2c 62 61 66 35 63 32 30 66  _file,,,baf5c20f
2720: 39 39 37 33 65 32 64 36 30 36 62 31 34 63 37 65  9973e2d606b14c7e
2730: 66 64 66 65 35 32 66 61 2c 2c 2c 0a 4d 44 20 43  fdfe52fa,,,.MD C
2740: 4d 41 43 2c 63 68 61 6e 6e 65 6c 2c 2c 2c 64 69  MAC,channel,,,di
2750: 67 65 73 74 5f 72 65 61 64 5f 63 68 61 6e 20 3a  gest_read_chan :
2760: 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74 5f 66  :tls::md $test_f
2770: 69 6c 65 20 2d 63 69 70 68 65 72 20 24 74 65 73  ile -cipher $tes
2780: 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 20 24 74  t_cipher -key $t
2790: 65 73 74 5f 6b 65 79 2c 2c 2c 62 61 66 35 63 32  est_key,,,baf5c2
27a0: 30 66 39 39 37 33 65 32 64 36 30 36 62 31 34 63  0f9973e2d606b14c
27b0: 37 65 66 64 66 65 35 32 66 61 2c 2c 2c 0a 4d 44  7efdfe52fa,,,.MD
27c0: 20 43 4d 41 43 2c 63 6f 6d 6d 61 6e 64 2c 2c 2c   CMAC,command,,,
27d0: 64 69 67 65 73 74 5f 61 63 63 75 6d 75 6c 61 74  digest_accumulat
27e0: 65 20 24 74 65 73 74 5f 64 61 74 61 20 3a 3a 74  e $test_data ::t
27f0: 6c 73 3a 3a 6d 64 20 2d 63 69 70 68 65 72 20 24  ls::md -cipher $
2800: 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79  test_cipher -key
2810: 20 24 74 65 73 74 5f 6b 65 79 2c 2c 2c 62 61 66   $test_key,,,baf
2820: 35 63 32 30 66 39 39 37 33 65 32 64 36 30 36 62  5c20f9973e2d606b
2830: 31 34 63 37 65 66 64 66 65 35 32 66 61 2c 2c 2c  14c7efdfe52fa,,,
2840: 0a 4d 44 20 43 4d 41 43 2c 64 61 74 61 20 62 69  .MD CMAC,data bi
2850: 6e 2c 2c 2c 62 69 6e 61 72 79 20 65 6e 63 6f 64  n,,,binary encod
2860: 65 20 68 65 78 20 5b 3a 3a 74 6c 73 3a 3a 6d 64  e hex [::tls::md
2870: 20 2d 62 69 6e 20 2d 63 69 70 68 65 72 20 24 74   -bin -cipher $t
2880: 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 20  est_cipher -key 
2890: 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 20  $test_key -data 
28a0: 24 74 65 73 74 5f 64 61 74 61 5d 2c 2c 2c 62 61  $test_data],,,ba
28b0: 66 35 63 32 30 66 39 39 37 33 65 32 64 36 30 36  f5c20f9973e2d606
28c0: 62 31 34 63 37 65 66 64 66 65 35 32 66 61 2c 2c  b14c7efdfe52fa,,
28d0: 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  ,.,,,,,,,,,,.com
28e0: 6d 61 6e 64 2c 23 20 54 65 73 74 20 43 4d 41 43  mand,# Test CMAC
28f0: 20 53 68 6f 72 74 63 75 74 2c 2c 2c 2c 2c 2c 2c   Shortcut,,,,,,,
2900: 2c 2c 0a 43 4d 41 43 20 53 68 6f 72 74 63 75 74  ,,.CMAC Shortcut
2910: 2c 64 61 74 61 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63  ,data,,,::tls::c
2920: 6d 61 63 20 24 74 65 73 74 5f 63 69 70 68 65 72  mac $test_cipher
2930: 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20   -key $test_key 
2940: 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 62 61 66  $test_data,,,baf
2950: 35 63 32 30 66 39 39 37 33 65 32 64 36 30 36 62  5c20f9973e2d606b
2960: 31 34 63 37 65 66 64 66 65 35 32 66 61 2c 2c 2c  14c7efdfe52fa,,,
2970: 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  .,,,,,,,,,,.comm
2980: 61 6e 64 2c 23 20 43 4d 41 43 20 45 72 72 6f 72  and,# CMAC Error
2990: 20 43 61 73 65 73 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a   Cases,,,,,,,,,.
29a0: 43 4d 41 43 20 45 72 72 6f 72 73 2c 54 6f 6f 20  CMAC Errors,Too 
29b0: 66 65 77 20 61 72 67 73 2c 2c 2c 3a 3a 74 6c 73  few args,,,::tls
29c0: 3a 3a 63 6d 61 63 2c 2c 2c 22 77 72 6f 6e 67 20  ::cmac,,,"wrong 
29d0: 23 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62  # args: should b
29e0: 65 20 22 22 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20  e ""::tls::cmac 
29f0: 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20 3f 2d 63 69  ?-bin|-hex? ?-ci
2a00: 70 68 65 72 20 6e 61 6d 65 3f 20 3f 2d 64 69 67  pher name? ?-dig
2a10: 65 73 74 20 6e 61 6d 65 3f 20 3f 2d 6b 65 79 20  est name? ?-key 
2a20: 6b 65 79 3f 20 3f 2d 6d 61 63 20 6e 61 6d 65 3f  key? ?-mac name?
2a30: 20 5b 2d 63 68 61 6e 6e 65 6c 20 63 68 61 6e 20   [-channel chan 
2a40: 7c 20 2d 63 6f 6d 6d 61 6e 64 20 63 6d 64 4e 61  | -command cmdNa
2a50: 6d 65 20 7c 20 2d 66 69 6c 65 20 66 69 6c 65 6e  me | -file filen
2a60: 61 6d 65 20 7c 20 3f 2d 64 61 74 61 3f 20 64 61  ame | ?-data? da
2a70: 74 61 5d 22 22 22 2c 2c 2c 31 0a 43 4d 41 43 20  ta]""",,,1.CMAC 
2a80: 45 72 72 6f 72 73 2c 54 6f 6f 20 6d 61 6e 79 20  Errors,Too many 
2a90: 61 72 67 73 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d  args,,,::tls::cm
2aa0: 61 63 20 74 6f 6f 20 6d 61 6e 79 20 63 6f 6d 6d  ac too many comm
2ab0: 61 6e 64 20 6c 69 6e 65 20 61 72 67 73 20 74 6f  and line args to
2ac0: 20 70 61 73 73 20 74 68 65 20 74 65 73 74 20 77   pass the test w
2ad0: 69 74 68 6f 75 74 20 61 6e 20 65 72 72 6f 72 20  ithout an error 
2ae0: 6f 72 20 66 61 69 6c 69 6e 67 2c 2c 2c 22 77 72  or failing,,,"wr
2af0: 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75  ong # args: shou
2b00: 6c 64 20 62 65 20 22 22 3a 3a 74 6c 73 3a 3a 63  ld be ""::tls::c
2b10: 6d 61 63 20 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20  mac ?-bin|-hex? 
2b20: 3f 2d 63 69 70 68 65 72 20 6e 61 6d 65 3f 20 3f  ?-cipher name? ?
2b30: 2d 64 69 67 65 73 74 20 6e 61 6d 65 3f 20 3f 2d  -digest name? ?-
2b40: 6b 65 79 20 6b 65 79 3f 20 3f 2d 6d 61 63 20 6e  key key? ?-mac n
2b50: 61 6d 65 3f 20 5b 2d 63 68 61 6e 6e 65 6c 20 63  ame? [-channel c
2b60: 68 61 6e 20 7c 20 2d 63 6f 6d 6d 61 6e 64 20 63  han | -command c
2b70: 6d 64 4e 61 6d 65 20 7c 20 2d 66 69 6c 65 20 66  mdName | -file f
2b80: 69 6c 65 6e 61 6d 65 20 7c 20 3f 2d 64 61 74 61  ilename | ?-data
2b90: 3f 20 64 61 74 61 5d 22 22 22 2c 2c 2c 31 0a 43  ? data]""",,,1.C
2ba0: 4d 41 43 20 45 72 72 6f 72 73 2c 4e 6f 20 63 69  MAC Errors,No ci
2bb0: 70 68 65 72 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d  pher,,,::tls::cm
2bc0: 61 63 20 2d 68 65 78 20 2d 64 61 74 61 20 24 74  ac -hex -data $t
2bd0: 65 73 74 5f 64 61 74 61 2c 2c 2c 6e 6f 20 63 69  est_data,,,no ci
2be0: 70 68 65 72 2c 2c 2c 31 0a 43 4d 41 43 20 45 72  pher,,,1.CMAC Er
2bf0: 72 6f 72 73 2c 4e 6f 20 6b 65 79 2c 2c 2c 3a 3a  rors,No key,,,::
2c00: 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65  tls::cmac -ciphe
2c10: 72 20 24 74 65 73 74 5f 63 69 70 68 65 72 20 2d  r $test_cipher -
2c20: 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 61 2c  data $test_data,
2c30: 2c 2c 6e 6f 20 6b 65 79 2c 2c 2c 31 0a 43 4d 41  ,,no key,,,1.CMA
2c40: 43 20 45 72 72 6f 72 73 2c 49 6e 76 61 6c 69 64  C Errors,Invalid
2c50: 20 63 69 70 68 65 72 2c 2c 2c 3a 3a 74 6c 73 3a   cipher,,,::tls:
2c60: 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 20 62 6f  :cmac -cipher bo
2c70: 67 75 73 20 2d 64 61 74 61 20 24 74 65 73 74 5f  gus -data $test_
2c80: 64 61 74 61 2c 2c 2c 22 69 6e 76 61 6c 69 64 20  data,,,"invalid 
2c90: 63 69 70 68 65 72 20 22 22 62 6f 67 75 73 22 22  cipher ""bogus""
2ca0: 22 2c 2c 2c 31 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c  ",,,1.,,,,,,,,,,
2cb0: 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  .,,,,,,,,,,.comm
2cc0: 61 6e 64 2c 23 20 54 65 73 74 20 48 4d 41 43 20  and,# Test HMAC 
2cd0: 63 6f 6d 6d 61 6e 64 2c 2c 2c 2c 2c 2c 2c 2c 2c  command,,,,,,,,,
2ce0: 0a 63 6f 6d 6d 61 6e 64 2c 73 65 74 20 74 65 73  .command,set tes
2cf0: 74 5f 64 69 67 65 73 74 20 6d 64 35 2c 2c 2c 2c  t_digest md5,,,,
2d00: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73  ,,,,,.command,"s
2d10: 65 74 20 74 65 73 74 5f 6b 65 79 20 22 22 45 78  et test_key ""Ex
2d20: 61 6d 70 6c 65 20 6b 65 79 22 22 22 2c 2c 2c 2c  ample key""",,,,
2d30: 2c 2c 2c 2c 2c 0a 48 4d 41 43 2c 64 61 74 61 2c  ,,,,,.HMAC,data,
2d40: 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64  ,,::tls::hmac -d
2d50: 69 67 65 73 74 20 24 74 65 73 74 5f 64 69 67 65  igest $test_dige
2d60: 73 74 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65  st -key $test_ke
2d70: 79 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61  y -data $test_da
2d80: 74 61 2c 2c 2c 66 39 38 33 32 37 65 66 33 65 32  ta,,,f98327ef3e2
2d90: 30 61 62 36 64 33 38 38 66 36 37 36 63 36 61 37  0ab6d388f676c6a7
2da0: 39 64 39 33 64 2c 2c 2c 0a 48 4d 41 43 2c 66 69  9d93d,,,.HMAC,fi
2db0: 6c 65 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63  le,,,::tls::hmac
2dc0: 20 2d 64 69 67 65 73 74 20 24 74 65 73 74 5f 64   -digest $test_d
2dd0: 69 67 65 73 74 20 2d 6b 65 79 20 24 74 65 73 74  igest -key $test
2de0: 5f 6b 65 79 20 2d 66 69 6c 65 20 24 74 65 73 74  _key -file $test
2df0: 5f 66 69 6c 65 2c 2c 2c 66 39 38 33 32 37 65 66  _file,,,f98327ef
2e00: 33 65 32 30 61 62 36 64 33 38 38 66 36 37 36 63  3e20ab6d388f676c
2e10: 36 61 37 39 64 39 33 64 2c 2c 2c 0a 48 4d 41 43  6a79d93d,,,.HMAC
2e20: 2c 63 68 61 6e 6e 65 6c 2c 2c 2c 64 69 67 65 73  ,channel,,,diges
2e30: 74 5f 72 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c  t_read_chan ::tl
2e40: 73 3a 3a 68 6d 61 63 20 24 74 65 73 74 5f 66 69  s::hmac $test_fi
2e50: 6c 65 20 2d 64 69 67 65 73 74 20 24 74 65 73 74  le -digest $test
2e60: 5f 64 69 67 65 73 74 20 2d 6b 65 79 20 24 74 65  _digest -key $te
2e70: 73 74 5f 6b 65 79 2c 2c 2c 66 39 38 33 32 37 65  st_key,,,f98327e
2e80: 66 33 65 32 30 61 62 36 64 33 38 38 66 36 37 36  f3e20ab6d388f676
2e90: 63 36 61 37 39 64 39 33 64 2c 2c 2c 0a 48 4d 41  c6a79d93d,,,.HMA
2ea0: 43 2c 63 6f 6d 6d 61 6e 64 2c 2c 2c 64 69 67 65  C,command,,,dige
2eb0: 73 74 5f 61 63 63 75 6d 75 6c 61 74 65 20 24 74  st_accumulate $t
2ec0: 65 73 74 5f 64 61 74 61 20 3a 3a 74 6c 73 3a 3a  est_data ::tls::
2ed0: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 24 74 65  hmac -digest $te
2ee0: 73 74 5f 64 69 67 65 73 74 20 2d 6b 65 79 20 24  st_digest -key $
2ef0: 74 65 73 74 5f 6b 65 79 2c 2c 2c 66 39 38 33 32  test_key,,,f9832
2f00: 37 65 66 33 65 32 30 61 62 36 64 33 38 38 66 36  7ef3e20ab6d388f6
2f10: 37 36 63 36 61 37 39 64 39 33 64 2c 2c 2c 0a 48  76c6a79d93d,,,.H
2f20: 4d 41 43 2c 64 61 74 61 20 62 69 6e 2c 2c 2c 62  MAC,data bin,,,b
2f30: 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 68 65 78  inary encode hex
2f40: 20 5b 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64   [::tls::hmac -d
2f50: 69 67 65 73 74 20 24 74 65 73 74 5f 64 69 67 65  igest $test_dige
2f60: 73 74 20 2d 62 69 6e 20 2d 6b 65 79 20 24 74 65  st -bin -key $te
2f70: 73 74 5f 6b 65 79 20 2d 64 61 74 61 20 24 74 65  st_key -data $te
2f80: 73 74 5f 64 61 74 61 5d 2c 2c 2c 66 39 38 33 32  st_data],,,f9832
2f90: 37 65 66 33 65 32 30 61 62 36 64 33 38 38 66 36  7ef3e20ab6d388f6
2fa0: 37 36 63 36 61 37 39 64 39 33 64 2c 2c 2c 0a 2c  76c6a79d93d,,,.,
2fb0: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e  ,,,,,,,,,.comman
2fc0: 64 2c 23 20 54 65 73 74 20 4d 44 20 48 4d 41 43  d,# Test MD HMAC
2fd0: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4d 44 20 48 4d 41  ,,,,,,,,,.MD HMA
2fe0: 43 2c 64 61 74 61 2c 2c 2c 3a 3a 74 6c 73 3a 3a  C,data,,,::tls::
2ff0: 6d 64 20 2d 64 69 67 65 73 74 20 24 74 65 73 74  md -digest $test
3000: 5f 64 69 67 65 73 74 20 2d 6b 65 79 20 24 74 65  _digest -key $te
3010: 73 74 5f 6b 65 79 20 2d 64 61 74 61 20 24 74 65  st_key -data $te
3020: 73 74 5f 64 61 74 61 2c 2c 2c 66 39 38 33 32 37  st_data,,,f98327
3030: 65 66 33 65 32 30 61 62 36 64 33 38 38 66 36 37  ef3e20ab6d388f67
3040: 36 63 36 61 37 39 64 39 33 64 2c 2c 2c 0a 4d 44  6c6a79d93d,,,.MD
3050: 20 48 4d 41 43 2c 66 69 6c 65 2c 2c 2c 3a 3a 74   HMAC,file,,,::t
3060: 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 24  ls::md -digest $
3070: 74 65 73 74 5f 64 69 67 65 73 74 20 2d 6b 65 79  test_digest -key
3080: 20 24 74 65 73 74 5f 6b 65 79 20 2d 66 69 6c 65   $test_key -file
3090: 20 24 74 65 73 74 5f 66 69 6c 65 2c 2c 2c 66 39   $test_file,,,f9
30a0: 38 33 32 37 65 66 33 65 32 30 61 62 36 64 33 38  8327ef3e20ab6d38
30b0: 38 66 36 37 36 63 36 61 37 39 64 39 33 64 2c 2c  8f676c6a79d93d,,
30c0: 2c 0a 4d 44 20 48 4d 41 43 2c 63 68 61 6e 6e 65  ,.MD HMAC,channe
30d0: 6c 2c 2c 2c 64 69 67 65 73 74 5f 72 65 61 64 5f  l,,,digest_read_
30e0: 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24  chan ::tls::md $
30f0: 74 65 73 74 5f 66 69 6c 65 20 2d 64 69 67 65 73  test_file -diges
3100: 74 20 24 74 65 73 74 5f 64 69 67 65 73 74 20 2d  t $test_digest -
3110: 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 2c 2c 2c  key $test_key,,,
3120: 66 39 38 33 32 37 65 66 33 65 32 30 61 62 36 64  f98327ef3e20ab6d
3130: 33 38 38 66 36 37 36 63 36 61 37 39 64 39 33 64  388f676c6a79d93d
3140: 2c 2c 2c 0a 4d 44 20 48 4d 41 43 2c 63 6f 6d 6d  ,,,.MD HMAC,comm
3150: 61 6e 64 2c 2c 2c 64 69 67 65 73 74 5f 61 63 63  and,,,digest_acc
3160: 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64 61  umulate $test_da
3170: 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69  ta ::tls::md -di
3180: 67 65 73 74 20 24 74 65 73 74 5f 64 69 67 65 73  gest $test_diges
3190: 74 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79  t -key $test_key
31a0: 2c 2c 2c 66 39 38 33 32 37 65 66 33 65 32 30 61  ,,,f98327ef3e20a
31b0: 62 36 64 33 38 38 66 36 37 36 63 36 61 37 39 64  b6d388f676c6a79d
31c0: 39 33 64 2c 2c 2c 0a 4d 44 20 48 4d 41 43 2c 64  93d,,,.MD HMAC,d
31d0: 61 74 61 20 62 69 6e 2c 2c 2c 62 69 6e 61 72 79  ata bin,,,binary
31e0: 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 3a 3a 74   encode hex [::t
31f0: 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 24  ls::md -digest $
3200: 74 65 73 74 5f 64 69 67 65 73 74 20 2d 62 69 6e  test_digest -bin
3210: 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20   -key $test_key 
3220: 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 61  -data $test_data
3230: 5d 2c 2c 2c 66 39 38 33 32 37 65 66 33 65 32 30  ],,,f98327ef3e20
3240: 61 62 36 64 33 38 38 66 36 37 36 63 36 61 37 39  ab6d388f676c6a79
3250: 64 39 33 64 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c  d93d,,,.,,,,,,,,
3260: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73  ,,.command,# Tes
3270: 74 20 48 4d 41 43 20 53 68 6f 72 74 63 75 74 2c  t HMAC Shortcut,
3280: 2c 2c 2c 2c 2c 2c 2c 2c 0a 48 4d 41 43 20 53 68  ,,,,,,,,.HMAC Sh
3290: 6f 72 74 63 75 74 2c 64 61 74 61 2c 2c 2c 3a 3a  ortcut,data,,,::
32a0: 74 6c 73 3a 3a 68 6d 61 63 20 24 74 65 73 74 5f  tls::hmac $test_
32b0: 64 69 67 65 73 74 20 2d 6b 65 79 20 24 74 65 73  digest -key $tes
32c0: 74 5f 6b 65 79 20 24 74 65 73 74 5f 64 61 74 61  t_key $test_data
32d0: 2c 2c 2c 66 39 38 33 32 37 65 66 33 65 32 30 61  ,,,f98327ef3e20a
32e0: 62 36 64 33 38 38 66 36 37 36 63 36 61 37 39 64  b6d388f676c6a79d
32f0: 39 33 64 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c  93d,,,.,,,,,,,,,
3300: 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 48 4d 41 43  ,.command,# HMAC
3310: 20 45 72 72 6f 72 20 43 61 73 65 73 2c 2c 2c 2c   Error Cases,,,,
3320: 2c 2c 2c 2c 2c 0a 48 4d 41 43 20 45 72 72 6f 72  ,,,,,.HMAC Error
3330: 73 2c 54 6f 6f 20 66 65 77 20 61 72 67 73 2c 2c  s,Too few args,,
3340: 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 2c 2c 2c 22  ,::tls::hmac,,,"
3350: 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68  wrong # args: sh
3360: 6f 75 6c 64 20 62 65 20 22 22 3a 3a 74 6c 73 3a  ould be ""::tls:
3370: 3a 68 6d 61 63 20 3f 2d 62 69 6e 7c 2d 68 65 78  :hmac ?-bin|-hex
3380: 3f 20 3f 2d 63 69 70 68 65 72 20 6e 61 6d 65 3f  ? ?-cipher name?
3390: 20 3f 2d 64 69 67 65 73 74 20 6e 61 6d 65 3f 20   ?-digest name? 
33a0: 3f 2d 6b 65 79 20 6b 65 79 3f 20 3f 2d 6d 61 63  ?-key key? ?-mac
33b0: 20 6e 61 6d 65 3f 20 5b 2d 63 68 61 6e 6e 65 6c   name? [-channel
33c0: 20 63 68 61 6e 20 7c 20 2d 63 6f 6d 6d 61 6e 64   chan | -command
33d0: 20 63 6d 64 4e 61 6d 65 20 7c 20 2d 66 69 6c 65   cmdName | -file
33e0: 20 66 69 6c 65 6e 61 6d 65 20 7c 20 3f 2d 64 61   filename | ?-da
33f0: 74 61 3f 20 64 61 74 61 5d 22 22 22 2c 2c 2c 31  ta? data]""",,,1
3400: 0a 48 4d 41 43 20 45 72 72 6f 72 73 2c 54 6f 6f  .HMAC Errors,Too
3410: 20 6d 61 6e 79 20 61 72 67 73 2c 2c 2c 3a 3a 74   many args,,,::t
3420: 6c 73 3a 3a 68 6d 61 63 20 74 6f 6f 20 6d 61 6e  ls::hmac too man
3430: 79 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61  y command line a
3440: 72 67 73 20 74 6f 20 70 61 73 73 20 74 68 65 20  rgs to pass the 
3450: 74 65 73 74 20 77 69 74 68 6f 75 74 20 61 6e 20  test without an 
3460: 65 72 72 6f 72 20 6f 72 20 66 61 69 6c 69 6e 67  error or failing
3470: 2c 2c 2c 22 77 72 6f 6e 67 20 23 20 61 72 67 73  ,,,"wrong # args
3480: 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 22 3a 3a  : should be ""::
3490: 74 6c 73 3a 3a 68 6d 61 63 20 3f 2d 62 69 6e 7c  tls::hmac ?-bin|
34a0: 2d 68 65 78 3f 20 3f 2d 63 69 70 68 65 72 20 6e  -hex? ?-cipher n
34b0: 61 6d 65 3f 20 3f 2d 64 69 67 65 73 74 20 6e 61  ame? ?-digest na
34c0: 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65 79 3f 20 3f  me? ?-key key? ?
34d0: 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b 2d 63 68 61  -mac name? [-cha
34e0: 6e 6e 65 6c 20 63 68 61 6e 20 7c 20 2d 63 6f 6d  nnel chan | -com
34f0: 6d 61 6e 64 20 63 6d 64 4e 61 6d 65 20 7c 20 2d  mand cmdName | -
3500: 66 69 6c 65 20 66 69 6c 65 6e 61 6d 65 20 7c 20  file filename | 
3510: 3f 2d 64 61 74 61 3f 20 64 61 74 61 5d 22 22 22  ?-data? data]"""
3520: 2c 2c 2c 31 0a 48 4d 41 43 20 45 72 72 6f 72 73  ,,,1.HMAC Errors
3530: 2c 4e 6f 20 64 69 67 65 73 74 2c 2c 2c 3a 3a 74  ,No digest,,,::t
3540: 6c 73 3a 3a 68 6d 61 63 20 2d 68 65 78 20 2d 64  ls::hmac -hex -d
3550: 61 74 61 20 24 74 65 73 74 5f 64 61 74 61 2c 2c  ata $test_data,,
3560: 2c 6e 6f 20 64 69 67 65 73 74 2c 2c 2c 31 0a 48  ,no digest,,,1.H
3570: 4d 41 43 20 45 72 72 6f 72 73 2c 4e 6f 20 6b 65  MAC Errors,No ke
3580: 79 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20  y,,,::tls::hmac 
3590: 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d  -digest sha256 -
35a0: 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 61 2c  data $test_data,
35b0: 2c 2c 6e 6f 20 6b 65 79 2c 2c 2c 31 0a 48 4d 41  ,,no key,,,1.HMA
35c0: 43 20 45 72 72 6f 72 73 2c 49 6e 76 61 6c 69 64  C Errors,Invalid
35d0: 20 64 69 67 65 73 74 2c 2c 2c 3a 3a 74 6c 73 3a   digest,,,::tls:
35e0: 3a 6d 64 20 2d 64 69 67 65 73 74 20 62 6f 67 75  :md -digest bogu
35f0: 73 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79  s -key $test_key
3600: 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74   -data $test_dat
3610: 61 2c 2c 2c 22 69 6e 76 61 6c 69 64 20 64 69 67  a,,,"invalid dig
3620: 65 73 74 20 22 22 62 6f 67 75 73 22 22 22 2c 2c  est ""bogus""",,
3630: 2c 31 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 2c 2c  ,1.,,,,,,,,,,.,,
3640: 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64  ,,,,,,,,.command
3650: 2c 23 20 54 65 73 74 20 4d 41 43 20 63 6f 6d 6d  ,# Test MAC comm
3660: 61 6e 64 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  and,,,,,,,,,.com
3670: 6d 61 6e 64 2c 22 73 65 74 20 74 65 73 74 5f 63  mand,"set test_c
3680: 69 70 68 65 72 20 22 22 61 65 73 2d 31 32 38 2d  ipher ""aes-128-
3690: 63 62 63 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  cbc""",,,,,,,,,.
36a0: 63 6f 6d 6d 61 6e 64 2c 73 65 74 20 74 65 73 74  command,set test
36b0: 5f 64 69 67 65 73 74 20 73 68 61 32 35 36 2c 2c  _digest sha256,,
36c0: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
36d0: 22 73 65 74 20 74 65 73 74 5f 6b 65 79 20 22 22  "set test_key ""
36e0: 45 78 61 6d 70 6c 65 20 6b 65 79 20 31 32 33 34  Example key 1234
36f0: 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4d 41 43  """,,,,,,,,,.MAC
3700: 2c 43 4d 41 43 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d  ,CMAC,,,::tls::m
3710: 61 63 20 2d 63 69 70 68 65 72 20 24 74 65 73 74  ac -cipher $test
3720: 5f 63 69 70 68 65 72 20 2d 6b 65 79 20 24 74 65  _cipher -key $te
3730: 73 74 5f 6b 65 79 20 2d 6d 61 63 20 63 6d 61 63  st_key -mac cmac
3740: 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74   -data $test_dat
3750: 61 2c 2c 2c 62 61 66 35 63 32 30 66 39 39 37 33  a,,,baf5c20f9973
3760: 65 32 64 36 30 36 62 31 34 63 37 65 66 64 66 65  e2d606b14c7efdfe
3770: 35 32 66 61 2c 2c 2c 0a 4d 41 43 2c 48 4d 41 43  52fa,,,.MAC,HMAC
3780: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 61 63 20 2d 64  ,,,::tls::mac -d
3790: 69 67 65 73 74 20 24 74 65 73 74 5f 64 69 67 65  igest $test_dige
37a0: 73 74 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65  st -key $test_ke
37b0: 79 20 2d 6d 61 63 20 68 6d 61 63 20 2d 64 61 74  y -mac hmac -dat
37c0: 61 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 36  a $test_data,,,6
37d0: 37 36 64 61 66 39 36 33 37 30 64 30 65 33 63 35  76daf96370d0e3c5
37e0: 35 39 38 35 35 37 64 61 33 38 61 39 61 38 31 30  598557da38a9a810
37f0: 61 34 66 62 61 63 62 62 32 64 31 30 63 36 37 66  a4fbacbb2d10c67f
3800: 36 64 66 61 38 33 66 31 30 66 34 38 65 39 36 2c  6dfa83f10f48e96,
3810: 2c 2c 0a 4d 41 43 2c 4d 44 2d 43 4d 41 43 2c 2c  ,,.MAC,MD-CMAC,,
3820: 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 63 69 70 68  ,::tls::md -ciph
3830: 65 72 20 24 74 65 73 74 5f 63 69 70 68 65 72 20  er $test_cipher 
3840: 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20 2d  -key $test_key -
3850: 6d 61 63 20 63 6d 61 63 20 2d 64 61 74 61 20 24  mac cmac -data $
3860: 74 65 73 74 5f 64 61 74 61 2c 2c 2c 62 61 66 35  test_data,,,baf5
3870: 63 32 30 66 39 39 37 33 65 32 64 36 30 36 62 31  c20f9973e2d606b1
3880: 34 63 37 65 66 64 66 65 35 32 66 61 2c 2c 2c 0a  4c7efdfe52fa,,,.
3890: 4d 41 43 2c 4d 44 2d 48 4d 41 43 2c 2c 2c 3a 3a  MAC,MD-HMAC,,,::
38a0: 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20  tls::md -digest 
38b0: 24 74 65 73 74 5f 64 69 67 65 73 74 20 2d 6b 65  $test_digest -ke
38c0: 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 6d 61 63  y $test_key -mac
38d0: 20 68 6d 61 63 20 2d 64 61 74 61 20 24 74 65 73   hmac -data $tes
38e0: 74 5f 64 61 74 61 2c 2c 2c 36 37 36 64 61 66 39  t_data,,,676daf9
38f0: 36 33 37 30 64 30 65 33 63 35 35 39 38 35 35 37  6370d0e3c5598557
3900: 64 61 33 38 61 39 61 38 31 30 61 34 66 62 61 63  da38a9a810a4fbac
3910: 62 62 32 64 31 30 63 36 37 66 36 64 66 61 38 33  bb2d10c67f6dfa83
3920: 66 31 30 66 34 38 65 39 36 2c 2c 2c 0a 2c 2c 2c  f10f48e96,,,.,,,
3930: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
3940: 23 20 4d 41 43 20 45 72 72 6f 72 20 43 61 73 65  # MAC Error Case
3950: 73 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4d 41 43 20 45  s,,,,,,,,,.MAC E
3960: 72 72 6f 72 73 2c 54 6f 6f 20 66 65 77 20 61 72  rrors,Too few ar
3970: 67 73 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 61 63 2c  gs,,,::tls::mac,
3980: 2c 2c 22 77 72 6f 6e 67 20 23 20 61 72 67 73 3a  ,,"wrong # args:
3990: 20 73 68 6f 75 6c 64 20 62 65 20 22 22 3a 3a 74   should be ""::t
39a0: 6c 73 3a 3a 6d 61 63 20 3f 2d 62 69 6e 7c 2d 68  ls::mac ?-bin|-h
39b0: 65 78 3f 20 3f 2d 63 69 70 68 65 72 20 6e 61 6d  ex? ?-cipher nam
39c0: 65 3f 20 3f 2d 64 69 67 65 73 74 20 6e 61 6d 65  e? ?-digest name
39d0: 3f 20 3f 2d 6b 65 79 20 6b 65 79 3f 20 3f 2d 6d  ? ?-key key? ?-m
39e0: 61 63 20 6e 61 6d 65 3f 20 5b 2d 63 68 61 6e 6e  ac name? [-chann
39f0: 65 6c 20 63 68 61 6e 20 7c 20 2d 63 6f 6d 6d 61  el chan | -comma
3a00: 6e 64 20 63 6d 64 4e 61 6d 65 20 7c 20 2d 66 69  nd cmdName | -fi
3a10: 6c 65 20 66 69 6c 65 6e 61 6d 65 20 7c 20 3f 2d  le filename | ?-
3a20: 64 61 74 61 3f 20 64 61 74 61 5d 22 22 22 2c 2c  data? data]""",,
3a30: 2c 31 0a 4d 41 43 20 45 72 72 6f 72 73 2c 4e 6f  ,1.MAC Errors,No
3a40: 20 6d 61 63 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 61   mac,,,::tls::ma
3a50: 63 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79  c -key $test_key
3a60: 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74   -data $test_dat
3a70: 61 2c 2c 2c 6e 6f 20 4d 41 43 2c 2c 2c 31 0a 4d  a,,,no MAC,,,1.M
3a80: 41 43 20 45 72 72 6f 72 73 2c 4e 6f 20 6b 65 79  AC Errors,No key
3a90: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 61 63 20 2d 6d  ,,,::tls::mac -m
3aa0: 61 63 20 68 6d 61 63 20 2d 64 69 67 65 73 74 20  ac hmac -digest 
3ab0: 24 74 65 73 74 5f 64 69 67 65 73 74 20 2d 64 61  $test_digest -da
3ac0: 74 61 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c  ta $test_data,,,
3ad0: 6e 6f 20 6b 65 79 2c 2c 2c 31 0a 4d 41 43 20 45  no key,,,1.MAC E
3ae0: 72 72 6f 72 73 2c 49 6e 76 61 6c 69 64 20 4d 41  rrors,Invalid MA
3af0: 43 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 61 63 20 2d  C,,,::tls::mac -
3b00: 6d 61 63 20 62 6f 67 75 73 20 2d 6b 65 79 20 24  mac bogus -key $
3b10: 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 20 24  test_key -data $
3b20: 74 65 73 74 5f 64 61 74 61 2c 2c 2c 22 69 6e 76  test_data,,,"inv
3b30: 61 6c 69 64 20 4d 41 43 20 22 22 62 6f 67 75 73  alid MAC ""bogus
3b40: 22 22 22 2c 2c 2c 31 0a 4d 41 43 20 45 72 72 6f  """,,,1.MAC Erro
3b50: 72 73 2c 54 6f 6f 20 6d 61 6e 79 20 61 72 67 73  rs,Too many args
3b60: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 61 63 20 74 6f  ,,,::tls::mac to
3b70: 6f 20 6d 61 6e 79 20 63 6f 6d 6d 61 6e 64 20 6c  o many command l
3b80: 69 6e 65 20 61 72 67 73 20 74 6f 20 70 61 73 73  ine args to pass
3b90: 20 74 68 65 20 74 65 73 74 20 77 69 74 68 6f 75   the test withou
3ba0: 74 20 61 6e 20 65 72 72 6f 72 20 6f 72 20 66 61  t an error or fa
3bb0: 69 6c 69 6e 67 2c 2c 2c 22 77 72 6f 6e 67 20 23  iling,,,"wrong #
3bc0: 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 65   args: should be
3bd0: 20 22 22 3a 3a 74 6c 73 3a 3a 6d 61 63 20 3f 2d   ""::tls::mac ?-
3be0: 62 69 6e 7c 2d 68 65 78 3f 20 3f 2d 63 69 70 68  bin|-hex? ?-ciph
3bf0: 65 72 20 6e 61 6d 65 3f 20 3f 2d 64 69 67 65 73  er name? ?-diges
3c00: 74 20 6e 61 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65  t name? ?-key ke
3c10: 79 3f 20 3f 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b  y? ?-mac name? [
3c20: 2d 63 68 61 6e 6e 65 6c 20 63 68 61 6e 20 7c 20  -channel chan | 
3c30: 2d 63 6f 6d 6d 61 6e 64 20 63 6d 64 4e 61 6d 65  -command cmdName
3c40: 20 7c 20 2d 66 69 6c 65 20 66 69 6c 65 6e 61 6d   | -file filenam
3c50: 65 20 7c 20 3f 2d 64 61 74 61 3f 20 64 61 74 61  e | ?-data? data
3c60: 5d 22 22 22 2c 2c 2c 31 0a 2c 2c 2c 2c 2c 2c 2c  ]""",,,1.,,,,,,,
3c70: 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63  ,,,.,,,,,,,,,,.c
3c80: 6f 6d 6d 61 6e 64 2c 23 20 52 46 43 20 31 33 32  ommand,# RFC 132
3c90: 31 20 4d 65 73 73 61 67 65 20 44 69 67 65 73 74  1 Message Digest
3ca0: 20 35 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 52 46 43 31   5,,,,,,,,,.RFC1
3cb0: 33 32 31 2d 4d 44 35 2c 54 43 31 2c 2c 2c 22 3a  321-MD5,TC1,,,":
3cc0: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74  :tls::md -digest
3cd0: 20 6d 64 35 20 2d 64 61 74 61 20 22 22 22 22 22   md5 -data """""
3ce0: 2c 2c 2c 64 34 31 64 38 63 64 39 38 66 30 30 62  ,,,d41d8cd98f00b
3cf0: 32 30 34 65 39 38 30 30 39 39 38 65 63 66 38 34  204e9800998ecf84
3d00: 32 37 65 2c 2c 2c 0a 52 46 43 31 33 32 31 2d 4d  27e,,,.RFC1321-M
3d10: 44 35 2c 54 43 32 2c 2c 2c 22 3a 3a 74 6c 73 3a  D5,TC2,,,"::tls:
3d20: 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35 20  :md -digest md5 
3d30: 2d 64 61 74 61 20 22 22 61 22 22 22 2c 2c 2c 30  -data ""a""",,,0
3d40: 63 63 31 37 35 62 39 63 30 66 31 62 36 61 38 33  cc175b9c0f1b6a83
3d50: 31 63 33 39 39 65 32 36 39 37 37 32 36 36 31 2c  1c399e269772661,
3d60: 2c 2c 0a 52 46 43 31 33 32 31 2d 4d 44 35 2c 54  ,,.RFC1321-MD5,T
3d70: 43 33 2c 2c 2c 22 3a 3a 74 6c 73 3a 3a 6d 64 20  C3,,,"::tls::md 
3d80: 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 64 61 74  -digest md5 -dat
3d90: 61 20 22 22 61 62 63 22 22 22 2c 2c 2c 39 30 30  a ""abc""",,,900
3da0: 31 35 30 39 38 33 63 64 32 34 66 62 30 64 36 39  150983cd24fb0d69
3db0: 36 33 66 37 64 32 38 65 31 37 66 37 32 2c 2c 2c  63f7d28e17f72,,,
3dc0: 0a 52 46 43 31 33 32 31 2d 4d 44 35 2c 54 43 34  .RFC1321-MD5,TC4
3dd0: 2c 2c 2c 22 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64  ,,,"::tls::md -d
3de0: 69 67 65 73 74 20 6d 64 35 20 2d 64 61 74 61 20  igest md5 -data 
3df0: 22 22 6d 65 73 73 61 67 65 20 64 69 67 65 73 74  ""message digest
3e00: 22 22 22 2c 2c 2c 66 39 36 62 36 39 37 64 37 63  """,,,f96b697d7c
3e10: 62 37 39 33 38 64 35 32 35 61 32 66 33 31 61 61  b7938d525a2f31aa
3e20: 66 31 36 31 64 30 2c 2c 2c 0a 52 46 43 31 33 32  f161d0,,,.RFC132
3e30: 31 2d 4d 44 35 2c 54 43 35 2c 2c 2c 22 3a 3a 74  1-MD5,TC5,,,"::t
3e40: 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d  ls::md -digest m
3e50: 64 35 20 2d 64 61 74 61 20 22 22 61 62 63 64 65  d5 -data ""abcde
3e60: 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75  fghijklmnopqrstu
3e70: 76 77 78 79 7a 22 22 22 2c 2c 2c 63 33 66 63 64  vwxyz""",,,c3fcd
3e80: 33 64 37 36 31 39 32 65 34 30 30 37 64 66 62 34  3d76192e4007dfb4
3e90: 39 36 63 63 61 36 37 65 31 33 62 2c 2c 2c 0a 52  96cca67e13b,,,.R
3ea0: 46 43 31 33 32 31 2d 4d 44 35 2c 54 43 36 2c 2c  FC1321-MD5,TC6,,
3eb0: 2c 22 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67  ,"::tls::md -dig
3ec0: 65 73 74 20 6d 64 35 20 2d 64 61 74 61 20 22 22  est md5 -data ""
3ed0: 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50  ABCDEFGHIJKLMNOP
3ee0: 51 52 53 54 55 56 57 58 59 5a 61 62 63 64 65 66  QRSTUVWXYZabcdef
3ef0: 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76  ghijklmnopqrstuv
3f00: 77 78 79 7a 30 31 32 33 34 35 36 37 38 39 22 22  wxyz0123456789""
3f10: 22 2c 2c 2c 64 31 37 34 61 62 39 38 64 32 37 37  ",,,d174ab98d277
3f20: 64 39 66 35 61 35 36 31 31 63 32 63 39 66 34 31  d9f5a5611c2c9f41
3f30: 39 64 39 66 2c 2c 2c 0a 52 46 43 31 33 32 31 2d  9d9f,,,.RFC1321-
3f40: 4d 44 35 2c 54 43 37 2c 2c 2c 22 3a 3a 74 6c 73  MD5,TC7,,,"::tls
3f50: 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35  ::md -digest md5
3f60: 20 2d 64 61 74 61 20 5b 73 74 72 69 6e 67 20 72   -data [string r
3f70: 65 70 65 61 74 20 22 22 31 32 33 34 35 36 37 38  epeat ""12345678
3f80: 39 30 22 22 20 38 5d 22 2c 2c 2c 35 37 65 64 66  90"" 8]",,,57edf
3f90: 34 61 32 32 62 65 33 63 39 35 35 61 63 34 39 64  4a22be3c955ac49d
3fa0: 61 32 65 32 31 30 37 62 36 37 61 2c 2c 2c 0a 2c  a2e2107b67a,,,.,
3fb0: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e  ,,,,,,,,,.comman
3fc0: 64 2c 23 20 52 46 43 20 36 32 33 34 20 53 48 41  d,# RFC 6234 SHA
3fd0: 31 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 52 46 43 36 32  1,,,,,,,,,.RFC62
3fe0: 33 34 2d 4d 44 2d 53 48 41 31 2c 54 43 31 2c 2c  34-MD-SHA1,TC1,,
3ff0: 2c 22 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67  ,"::tls::md -dig
4000: 65 73 74 20 73 68 61 31 20 2d 64 61 74 61 20 22  est sha1 -data "
4010: 22 61 62 63 22 22 22 2c 2c 2c 61 39 39 39 33 65  "abc""",,,a9993e
4020: 33 36 34 37 30 36 38 31 36 61 62 61 33 65 32 35  364706816aba3e25
4030: 37 31 37 38 35 30 63 32 36 63 39 63 64 30 64 38  717850c26c9cd0d8
4040: 39 64 2c 2c 2c 0a 52 46 43 36 32 33 34 2d 4d 44  9d,,,.RFC6234-MD
4050: 2d 53 48 41 31 2c 54 43 32 5f 31 2c 2c 2c 22 3a  -SHA1,TC2_1,,,":
4060: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74  :tls::md -digest
4070: 20 73 68 61 31 20 2d 64 61 74 61 20 22 22 61 62   sha1 -data ""ab
4080: 63 64 62 63 64 65 63 64 65 66 64 65 66 67 65 66  cdbcdecdefdefgef
4090: 67 68 66 67 68 69 67 68 69 6a 68 69 6a 6b 69 6a  ghfghighijhijkij
40a0: 6b 6c 6a 6b 6c 6d 6b 6c 6d 6e 6c 6d 6e 6f 6d 6e  kljklmklmnlmnomn
40b0: 6f 70 6e 6f 70 71 22 22 22 2c 2c 2c 38 34 39 38  opnopq""",,,8498
40c0: 33 65 34 34 31 63 33 62 64 32 36 65 62 61 61 65  3e441c3bd26ebaae
40d0: 34 61 61 31 66 39 35 31 32 39 65 35 65 35 34 36  4aa1f95129e5e546
40e0: 37 30 66 31 2c 2c 2c 0a 52 46 43 36 32 33 34 2d  70f1,,,.RFC6234-
40f0: 4d 44 2d 53 48 41 31 2c 54 43 33 2c 2c 2c 22 3a  MD-SHA1,TC3,,,":
4100: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74  :tls::md -digest
4110: 20 73 68 61 31 20 2d 64 61 74 61 20 5b 73 74 72   sha1 -data [str
4120: 69 6e 67 20 72 65 70 65 61 74 20 22 22 61 22 22  ing repeat ""a""
4130: 20 31 30 30 30 30 30 30 5d 22 2c 2c 2c 33 34 61   1000000]",,,34a
4140: 61 39 37 33 63 64 34 63 34 64 61 61 34 66 36 31  a973cd4c4daa4f61
4150: 65 65 62 32 62 64 62 61 64 32 37 33 31 36 35 33  eeb2bdbad2731653
4160: 34 30 31 36 66 2c 2c 2c 0a 52 46 43 36 32 33 34  4016f,,,.RFC6234
4170: 2d 4d 44 2d 53 48 41 31 2c 54 43 34 2c 2c 2c 22  -MD-SHA1,TC4,,,"
4180: 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73  ::tls::md -diges
4190: 74 20 73 68 61 31 20 2d 64 61 74 61 20 5b 73 74  t sha1 -data [st
41a0: 72 69 6e 67 20 72 65 70 65 61 74 20 22 22 30 31  ring repeat ""01
41b0: 32 33 34 35 36 37 22 22 20 38 30 5d 22 2c 2c 2c  234567"" 80]",,,
41c0: 64 65 61 33 35 36 61 32 63 64 64 64 39 30 63 37  dea356a2cddd90c7
41d0: 61 37 65 63 65 64 63 35 65 62 62 35 36 33 39 33  a7ecedc5ebb56393
41e0: 34 66 34 36 30 34 35 32 2c 2c 2c 0a 52 46 43 36  4f460452,,,.RFC6
41f0: 32 33 34 2d 4d 44 2d 53 48 41 31 2c 54 43 36 2c  234-MD-SHA1,TC6,
4200: 2c 2c 22 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69  ,,"::tls::md -di
4210: 67 65 73 74 20 73 68 61 31 20 2d 64 61 74 61 20  gest sha1 -data 
4220: 22 22 5c 78 35 65 22 22 22 2c 2c 2c 35 65 36 66  ""\x5e""",,,5e6f
4230: 38 30 61 33 34 61 39 37 39 38 63 61 66 63 36 61  80a34a9798cafc6a
4240: 35 64 62 39 36 63 63 35 37 62 61 34 63 34 64 62  5db96cc57ba4c4db
4250: 35 39 63 32 2c 2c 2c 0a 52 46 43 36 32 33 34 2d  59c2,,,.RFC6234-
4260: 4d 44 2d 53 48 41 31 2c 54 43 38 5f 31 2c 2c 2c  MD-SHA1,TC8_1,,,
4270: 22 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65  "::tls::md -dige
4280: 73 74 20 73 68 61 31 20 2d 64 61 74 61 20 22 22  st sha1 -data ""
4290: 5c 78 39 61 5c 78 37 64 5c 78 66 64 5c 78 66 31  \x9a\x7d\xfd\xf1
42a0: 5c 78 65 63 5c 78 65 61 5c 78 64 30 5c 78 36 65  \xec\xea\xd0\x6e
42b0: 5c 78 64 36 5c 78 34 36 5c 78 61 61 5c 78 35 35  \xd6\x46\xaa\x55
42c0: 5c 78 66 65 5c 78 37 35 5c 78 37 31 5c 78 34 36  \xfe\x75\x71\x46
42d0: 22 22 22 2c 2c 2c 38 32 61 62 66 66 36 36 30 35  """,,,82abff6605
42e0: 64 62 65 31 63 31 37 64 65 66 31 32 61 33 39 34  dbe1c17def12a394
42f0: 66 61 32 32 61 38 32 62 35 34 34 61 33 35 2c 2c  fa22a82b544a35,,
4300: 2c 0a 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 41  ,.RFC6234-MD-SHA
4310: 31 2c 54 43 31 30 5f 31 2c 2c 2c 22 3a 3a 74 6c  1,TC10_1,,,"::tl
4320: 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68  s::md -digest sh
4330: 61 31 20 2d 64 61 74 61 20 22 22 5c 78 66 37 5c  a1 -data ""\xf7\
4340: 78 38 66 5c 78 39 32 5c 78 31 34 5c 78 31 62 5c  x8f\x92\x14\x1b\
4350: 78 63 64 5c 78 31 37 5c 78 30 61 5c 78 65 38 5c  xcd\x17\x0a\xe8\
4360: 78 39 62 5c 78 34 66 5c 78 62 61 5c 78 31 35 5c  x9b\x4f\xba\x15\
4370: 78 61 31 5c 78 64 35 5c 78 39 66 5c 78 33 66 5c  xa1\xd5\x9f\x3f\
4380: 78 64 38 5c 78 34 64 5c 78 32 32 5c 78 33 63 5c  xd8\x4d\x22\x3c\
4390: 78 39 32 5c 78 35 31 5c 78 62 64 5c 78 61 63 5c  x92\x51\xbd\xac\
43a0: 78 62 62 5c 78 61 65 5c 78 36 31 5c 78 64 30 5c  xbb\xae\x61\xd0\
43b0: 78 35 65 5c 78 64 31 5c 78 31 35 5c 78 61 30 5c  x5e\xd1\x15\xa0\
43c0: 78 36 61 5c 78 37 63 5c 78 65 31 5c 78 31 37 5c  x6a\x7c\xe1\x17\
43d0: 78 62 37 5c 78 62 65 5c 78 65 61 5c 78 64 32 5c  xb7\xbe\xea\xd2\
43e0: 78 34 34 5c 78 32 31 5c 78 64 65 5c 78 64 39 5c  x44\x21\xde\xd9\
43f0: 78 63 33 5c 78 32 35 5c 78 39 32 5c 78 62 64 5c  xc3\x25\x92\xbd\
4400: 78 35 37 5c 78 65 64 5c 78 65 61 5c 78 65 33 5c  x57\xed\xea\xe3\
4410: 78 39 63 5c 78 33 39 5c 78 66 61 5c 78 31 66 5c  x9c\x39\xfa\x1f\
4420: 78 65 38 5c 78 39 34 5c 78 36 61 5c 78 38 34 5c  xe8\x94\x6a\x84\
4430: 78 64 30 5c 78 63 66 5c 78 31 66 5c 78 37 62 5c  xd0\xcf\x1f\x7b\
4440: 78 65 65 5c 78 61 64 5c 78 31 37 5c 78 31 33 5c  xee\xad\x17\x13\
4450: 78 65 32 5c 78 65 30 5c 78 39 35 5c 78 39 38 5c  xe2\xe0\x95\x98\
4460: 78 39 37 5c 78 33 34 5c 78 37 66 5c 78 36 37 5c  x97\x34\x7f\x67\
4470: 78 63 38 5c 78 30 62 5c 78 30 34 5c 78 30 30 5c  xc8\x0b\x04\x00\
4480: 78 63 32 5c 78 30 39 5c 78 38 31 5c 78 35 64 5c  xc2\x09\x81\x5d\
4490: 78 36 62 5c 78 31 30 5c 78 61 36 5c 78 38 33 5c  x6b\x10\xa6\x83\
44a0: 78 38 33 5c 78 36 66 5c 78 64 35 5c 78 35 36 5c  x83\x6f\xd5\x56\
44b0: 78 32 61 5c 78 35 36 5c 78 63 61 5c 78 62 31 5c  x2a\x56\xca\xb1\
44c0: 78 61 32 5c 78 38 65 5c 78 38 31 5c 78 62 36 5c  xa2\x8e\x81\xb6\
44d0: 78 35 37 5c 78 36 36 5c 78 35 34 5c 78 36 33 5c  x57\x66\x54\x63\
44e0: 78 31 63 5c 78 66 31 5c 78 36 35 5c 78 36 36 5c  x1c\xf1\x65\x66\
44f0: 78 62 38 5c 78 36 65 5c 78 33 62 5c 78 33 33 5c  xb8\x6e\x3b\x33\
4500: 78 61 31 5c 78 30 38 5c 78 62 30 5c 78 35 33 5c  xa1\x08\xb0\x53\
4510: 78 30 37 5c 78 63 30 5c 78 30 61 5c 78 66 66 5c  x07\xc0\x0a\xff\
4520: 78 31 34 5c 78 61 37 5c 78 36 38 5c 78 65 64 5c  x14\xa7\x68\xed\
4530: 78 37 33 5c 78 35 30 5c 78 36 30 5c 78 36 61 5c  x73\x50\x60\x6a\
4540: 78 30 66 5c 78 38 35 5c 78 65 36 5c 78 61 39 5c  x0f\x85\xe6\xa9\
4550: 78 31 64 5c 78 33 39 5c 78 36 66 5c 78 35 62 5c  x1d\x39\x6f\x5b\
4560: 78 35 63 5c 78 62 65 5c 78 35 37 5c 78 37 66 5c  x5c\xbe\x57\x7f\
4570: 78 39 62 5c 78 33 38 5c 78 38 30 5c 78 37 63 5c  x9b\x38\x80\x7c\
4580: 78 37 64 5c 78 35 32 5c 78 33 64 5c 78 36 64 5c  x7d\x52\x3d\x6d\
4590: 78 37 39 5c 78 32 66 5c 78 36 65 5c 78 62 63 5c  x79\x2f\x6e\xbc\
45a0: 78 32 34 5c 78 61 34 5c 78 65 63 5c 78 66 32 5c  x24\xa4\xec\xf2\
45b0: 78 62 33 5c 78 61 34 5c 78 32 37 5c 78 63 64 5c  xb3\xa4\x27\xcd\
45c0: 78 62 62 5c 78 66 62 22 22 22 2c 2c 2c 63 62 30  xbb\xfb""",,,cb0
45d0: 30 38 32 63 38 66 31 39 37 64 32 36 30 39 39 31  082c8f197d260991
45e0: 62 61 36 61 34 36 30 65 37 36 65 32 30 32 62 61  ba6a460e76e202ba
45f0: 64 32 37 62 33 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c  d27b3,,,.,,,,,,,
4600: 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 52 46  ,,,.command,# RF
4610: 43 20 36 32 33 34 20 53 48 41 32 35 36 2c 2c 2c  C 6234 SHA256,,,
4620: 2c 2c 2c 2c 2c 2c 0a 52 46 43 36 32 33 34 2d 4d  ,,,,,,.RFC6234-M
4630: 44 2d 53 48 41 32 35 36 2c 54 43 31 2c 2c 2c 22  D-SHA256,TC1,,,"
4640: 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73  ::tls::md -diges
4650: 74 20 73 68 61 32 35 36 20 2d 64 61 74 61 20 22  t sha256 -data "
4660: 22 61 62 63 22 22 22 2c 2c 2c 62 61 37 38 31 36  "abc""",,,ba7816
4670: 62 66 38 66 30 31 63 66 65 61 34 31 34 31 34 30  bf8f01cfea414140
4680: 64 65 35 64 61 65 32 32 32 33 62 30 30 33 36 31  de5dae2223b00361
4690: 61 33 39 36 31 37 37 61 39 63 62 34 31 30 66 66  a396177a9cb410ff
46a0: 36 31 66 32 30 30 31 35 61 64 2c 2c 2c 0a 52 46  61f20015ad,,,.RF
46b0: 43 36 32 33 34 2d 4d 44 2d 53 48 41 32 35 36 2c  C6234-MD-SHA256,
46c0: 54 43 32 5f 31 2c 2c 2c 22 3a 3a 74 6c 73 3a 3a  TC2_1,,,"::tls::
46d0: 6d 64 20 2d 64 69 67 65 73 74 20 73 68 61 32 35  md -digest sha25
46e0: 36 20 2d 64 61 74 61 20 22 22 61 62 63 64 62 63  6 -data ""abcdbc
46f0: 64 65 63 64 65 66 64 65 66 67 65 66 67 68 66 67  decdefdefgefghfg
4700: 68 69 67 68 69 6a 68 69 6a 6b 69 6a 6b 6c 6a 6b  highijhijkijkljk
4710: 6c 6d 6b 6c 6d 6e 6c 6d 6e 6f 6d 6e 6f 70 6e 6f  lmklmnlmnomnopno
4720: 70 71 22 22 22 2c 2c 2c 32 34 38 64 36 61 36 31  pq""",,,248d6a61
4730: 64 32 30 36 33 38 62 38 65 35 63 30 32 36 39 33  d20638b8e5c02693
4740: 30 63 33 65 36 30 33 39 61 33 33 63 65 34 35 39  0c3e6039a33ce459
4750: 36 34 66 66 32 31 36 37 66 36 65 63 65 64 64 34  64ff2167f6ecedd4
4760: 31 39 64 62 30 36 63 31 2c 2c 2c 0a 52 46 43 36  19db06c1,,,.RFC6
4770: 32 33 34 2d 4d 44 2d 53 48 41 32 35 36 2c 54 43  234-MD-SHA256,TC
4780: 33 2c 2c 2c 22 3a 3a 74 6c 73 3a 3a 6d 64 20 2d  3,,,"::tls::md -
4790: 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d 64  digest sha256 -d
47a0: 61 74 61 20 5b 73 74 72 69 6e 67 20 72 65 70 65  ata [string repe
47b0: 61 74 20 22 22 61 22 22 20 31 30 30 30 30 30 30  at ""a"" 1000000
47c0: 5d 22 2c 2c 2c 63 64 63 37 36 65 35 63 39 39 31  ]",,,cdc76e5c991
47d0: 34 66 62 39 32 38 31 61 31 63 37 65 32 38 34 64  4fb9281a1c7e284d
47e0: 37 33 65 36 37 66 31 38 30 39 61 34 38 61 34 39  73e67f1809a48a49
47f0: 37 32 30 30 65 30 34 36 64 33 39 63 63 63 37 31  7200e046d39ccc71
4800: 31 32 63 64 30 2c 2c 2c 0a 52 46 43 36 32 33 34  12cd0,,,.RFC6234
4810: 2d 4d 44 2d 53 48 41 32 35 36 2c 54 43 34 2c 2c  -MD-SHA256,TC4,,
4820: 2c 22 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67  ,"::tls::md -dig
4830: 65 73 74 20 73 68 61 32 35 36 20 2d 64 61 74 61  est sha256 -data
4840: 20 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 20   [string repeat 
4850: 22 22 30 31 32 33 34 35 36 37 22 22 20 38 30 5d  ""01234567"" 80]
4860: 22 2c 2c 2c 35 39 34 38 34 37 33 32 38 34 35 31  ",,,594847328451
4870: 62 64 66 61 38 35 30 35 36 32 32 35 34 36 32 63  bdfa85056225462c
4880: 63 31 64 38 36 37 64 38 37 37 66 62 33 38 38 64  c1d867d877fb388d
4890: 66 30 63 65 33 35 66 32 35 61 62 35 35 36 32 62  f0ce35f25ab5562b
48a0: 66 62 62 35 2c 2c 2c 0a 52 46 43 36 32 33 34 2d  fbb5,,,.RFC6234-
48b0: 4d 44 2d 53 48 41 32 35 36 2c 54 43 36 2c 2c 2c  MD-SHA256,TC6,,,
48c0: 22 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65  "::tls::md -dige
48d0: 73 74 20 73 68 61 32 35 36 20 2d 64 61 74 61 20  st sha256 -data 
48e0: 22 22 5c 78 31 39 22 22 22 2c 2c 2c 36 38 61 61  ""\x19""",,,68aa
48f0: 32 65 32 65 65 35 64 66 66 39 36 65 33 33 35 35  2e2ee5dff96e3355
4900: 65 36 63 37 65 65 33 37 33 65 33 64 36 61 34 65  e6c7ee373e3d6a4e
4910: 31 37 66 37 35 66 39 35 31 38 64 38 34 33 37 30  17f75f9518d84370
4920: 39 63 30 63 39 62 63 33 65 33 64 34 2c 2c 2c 0a  9c0c9bc3e3d4,,,.
4930: 52 46 43 36 32 33 34 2d 4d 44 2d 53 48 41 32 35  RFC6234-MD-SHA25
4940: 36 2c 54 43 38 5f 32 35 36 2c 2c 2c 22 3a 3a 74  6,TC8_256,,,"::t
4950: 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73  ls::md -digest s
4960: 68 61 32 35 36 20 2d 64 61 74 61 20 22 22 5c 78  ha256 -data ""\x
4970: 65 33 5c 78 64 37 5c 78 32 35 5c 78 37 30 5c 78  e3\xd7\x25\x70\x
4980: 64 63 5c 78 64 64 5c 78 37 38 5c 78 37 63 5c 78  dc\xdd\x78\x7c\x
4990: 65 33 5c 78 38 38 5c 78 37 61 5c 78 62 32 5c 78  e3\x88\x7a\xb2\x
49a0: 63 64 5c 78 36 38 5c 78 34 36 5c 78 35 32 22 22  cd\x68\x46\x52""
49b0: 22 2c 2c 2c 31 37 35 65 65 36 39 62 30 32 62 61  ",,,175ee69b02ba
49c0: 39 62 35 38 65 32 62 30 61 35 66 64 31 33 38 31  9b58e2b0a5fd1381
49d0: 39 63 65 61 35 37 33 66 33 39 34 30 61 39 34 66  9cea573f3940a94f
49e0: 38 32 35 31 32 38 63 66 34 32 30 39 62 65 61 62  825128cf4209beab
49f0: 62 34 65 38 2c 2c 2c 0a 52 46 43 36 32 33 34 2d  b4e8,,,.RFC6234-
4a00: 4d 44 2d 53 48 41 32 35 36 2c 54 43 31 30 5f 32  MD-SHA256,TC10_2
4a10: 35 36 2c 2c 2c 22 3a 3a 74 6c 73 3a 3a 6d 64 20  56,,,"::tls::md 
4a20: 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d  -digest sha256 -
4a30: 64 61 74 61 20 22 22 5c 78 38 33 5c 78 32 36 5c  data ""\x83\x26\
4a40: 78 37 35 5c 78 34 65 5c 78 32 32 5c 78 37 37 5c  x75\x4e\x22\x77\
4a50: 78 33 37 5c 78 32 66 5c 78 34 66 5c 78 63 31 5c  x37\x2f\x4f\xc1\
4a60: 78 32 62 5c 78 32 30 5c 78 35 32 5c 78 37 61 5c  x2b\x20\x52\x7a\
4a70: 78 66 65 5c 78 66 30 5c 78 34 64 5c 78 38 61 5c  xfe\xf0\x4d\x8a\
4a80: 78 30 35 5c 78 36 39 5c 78 37 31 5c 78 62 31 5c  x05\x69\x71\xb1\
4a90: 78 31 61 5c 78 64 35 5c 78 37 31 5c 78 32 33 5c  x1a\xd5\x71\x23\
4aa0: 78 61 37 5c 78 63 31 5c 78 33 37 5c 78 37 36 5c  xa7\xc1\x37\x76\
4ab0: 78 30 30 5c 78 30 30 5c 78 64 37 5c 78 62 65 5c  x00\x00\xd7\xbe\
4ac0: 78 66 36 5c 78 66 33 5c 78 63 31 5c 78 66 37 5c  xf6\xf3\xc1\xf7\
4ad0: 78 61 39 5c 78 30 38 5c 78 33 61 5c 78 61 33 5c  xa9\x08\x3a\xa3\
4ae0: 78 39 64 5c 78 38 31 5c 78 30 64 5c 78 62 33 5c  x9d\x81\x0d\xb3\
4af0: 78 31 30 5c 78 37 37 5c 78 37 64 5c 78 61 62 5c  x10\x77\x7d\xab\
4b00: 78 38 62 5c 78 31 65 5c 78 37 66 5c 78 30 32 5c  x8b\x1e\x7f\x02\
4b10: 78 62 38 5c 78 34 61 5c 78 32 36 5c 78 63 37 5c  xb8\x4a\x26\xc7\
4b20: 78 37 33 5c 78 33 32 5c 78 35 66 5c 78 38 62 5c  x73\x32\x5f\x8b\
4b30: 78 32 33 5c 78 37 34 5c 78 64 65 5c 78 37 61 5c  x23\x74\xde\x7a\
4b40: 78 34 62 5c 78 35 61 5c 78 35 38 5c 78 63 62 5c  x4b\x5a\x58\xcb\
4b50: 78 35 63 5c 78 35 63 5c 78 66 33 5c 78 35 62 5c  x5c\x5c\xf3\x5b\
4b60: 78 63 65 5c 78 65 36 5c 78 66 62 5c 78 39 34 5c  xce\xe6\xfb\x94\
4b70: 78 36 65 5c 78 35 62 5c 78 64 36 5c 78 39 34 5c  x6e\x5b\xd6\x94\
4b80: 78 66 61 5c 78 35 39 5c 78 33 61 5c 78 38 62 5c  xfa\x59\x3a\x8b\
4b90: 78 65 62 5c 78 33 66 5c 78 39 64 5c 78 36 35 5c  xeb\x3f\x9d\x65\
4ba0: 78 39 32 5c 78 65 63 5c 78 65 64 5c 78 61 61 5c  x92\xec\xed\xaa\
4bb0: 78 36 36 5c 78 63 61 5c 78 38 32 5c 78 61 32 5c  x66\xca\x82\xa2\
4bc0: 78 39 64 5c 78 30 63 5c 78 35 31 5c 78 62 63 5c  x9d\x0c\x51\xbc\
4bd0: 78 66 39 5c 78 33 33 5c 78 36 32 5c 78 33 30 5c  xf9\x33\x62\x30\
4be0: 78 65 35 5c 78 64 37 5c 78 38 34 5c 78 65 34 5c  xe5\xd7\x84\xe4\
4bf0: 78 63 30 5c 78 61 34 5c 78 33 66 5c 78 38 64 5c  xc0\xa4\x3f\x8d\
4c00: 78 37 39 5c 78 61 33 5c 78 30 61 5c 78 31 36 5c  x79\xa3\x0a\x16\
4c10: 78 35 63 5c 78 62 61 5c 78 62 65 5c 78 34 35 5c  x5c\xba\xbe\x45\
4c20: 78 32 62 5c 78 37 37 5c 78 34 62 5c 78 39 63 5c  x2b\x77\x4b\x9c\
4c30: 78 37 31 5c 78 30 39 5c 78 61 39 5c 78 37 64 5c  x71\x09\xa9\x7d\
4c40: 78 31 33 5c 78 38 66 5c 78 31 32 5c 78 39 32 5c  x13\x8f\x12\x92\
4c50: 78 32 38 5c 78 39 36 5c 78 36 66 5c 78 36 63 5c  x28\x96\x6f\x6c\
4c60: 78 30 61 5c 78 64 63 5c 78 31 30 5c 78 36 61 5c  x0a\xdc\x10\x6a\
4c70: 78 61 64 5c 78 35 61 5c 78 39 66 5c 78 64 64 5c  xad\x5a\x9f\xdd\
4c80: 78 33 30 5c 78 38 32 5c 78 35 37 5c 78 36 39 5c  x30\x82\x57\x69\
4c90: 78 62 32 5c 78 63 36 5c 78 37 31 5c 78 61 66 5c  xb2\xc6\x71\xaf\
4ca0: 78 36 37 5c 78 35 39 5c 78 64 66 5c 78 32 38 5c  x67\x59\xdf\x28\
4cb0: 78 65 62 5c 78 33 39 5c 78 33 64 5c 78 35 34 5c  xeb\x39\x3d\x54\
4cc0: 78 64 36 22 22 22 2c 2c 2c 39 37 64 62 63 61 37  xd6""",,,97dbca7
4cd0: 64 66 34 36 64 36 32 63 38 61 34 32 32 63 39 34  df46d62c8a422c94
4ce0: 31 64 64 37 65 38 33 35 62 38 61 64 33 33 36 31  1dd7e835b8ad3361
4cf0: 37 36 33 66 37 65 39 62 32 64 39 35 66 34 66 30  763f7e9b2d95f4f0
4d00: 64 61 36 65 31 63 63 62 63 2c 2c 2c 0a 2c 2c 2c  da6e1ccbc,,,.,,,
4d10: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
4d20: 23 20 52 46 43 20 34 32 33 31 20 48 4d 41 43 20  # RFC 4231 HMAC 
4d30: 45 78 61 6d 70 6c 65 73 20 54 65 73 74 20 43 61  Examples Test Ca
4d40: 73 65 20 23 31 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63  se #1,,,,,,,,,.c
4d50: 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 6b 65 79 20  ommand,"set key 
4d60: 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68  [binary decode h
4d70: 65 78 20 5b 73 74 72 69 6e 67 20 72 65 70 65 61  ex [string repea
4d80: 74 20 22 22 30 62 22 22 20 32 30 5d 5d 22 2c 2c  t ""0b"" 20]]",,
4d90: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
4da0: 22 73 65 74 20 64 61 74 61 20 22 22 48 69 20 54  "set data ""Hi T
4db0: 68 65 72 65 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c  here""",,,,,,,,,
4dc0: 0a 52 46 43 34 32 33 31 20 48 4d 41 43 20 54 43  .RFC4231 HMAC TC
4dd0: 31 2c 73 68 61 32 32 34 2c 2c 2c 3a 3a 74 6c 73  1,sha224,,,::tls
4de0: 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73  ::hmac -digest s
4df0: 68 61 32 32 34 20 2d 6b 65 79 20 24 6b 65 79 20  ha224 -key $key 
4e00: 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 38 39  -data $data,,,89
4e10: 36 66 62 31 31 32 38 61 62 62 64 66 31 39 36 38  6fb1128abbdf1968
4e20: 33 32 31 30 37 63 64 34 39 64 66 33 33 66 34 37  32107cd49df33f47
4e30: 62 34 62 31 31 36 39 39 31 32 62 61 34 66 35 33  b4b1169912ba4f53
4e40: 36 38 34 62 32 32 2c 2c 2c 0a 52 46 43 34 32 33  684b22,,,.RFC423
4e50: 31 20 48 4d 41 43 20 54 43 31 2c 73 68 61 32 35  1 HMAC TC1,sha25
4e60: 36 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20  6,,,::tls::hmac 
4e70: 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d  -digest sha256 -
4e80: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24  key $key -data $
4e90: 64 61 74 61 2c 2c 2c 62 30 33 34 34 63 36 31 64  data,,,b0344c61d
4ea0: 38 64 62 33 38 35 33 35 63 61 38 61 66 63 65 61  8db38535ca8afcea
4eb0: 66 30 62 66 31 32 62 38 38 31 64 63 32 30 30 63  f0bf12b881dc200c
4ec0: 39 38 33 33 64 61 37 32 36 65 39 33 37 36 63 32  9833da726e9376c2
4ed0: 65 33 32 63 66 66 37 2c 2c 2c 0a 52 46 43 34 32  e32cff7,,,.RFC42
4ee0: 33 31 20 48 4d 41 43 20 54 43 31 2c 73 68 61 33  31 HMAC TC1,sha3
4ef0: 38 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63  84,,,::tls::hmac
4f00: 20 2d 64 69 67 65 73 74 20 73 68 61 33 38 34 20   -digest sha384 
4f10: 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20  -key $key -data 
4f20: 24 64 61 74 61 2c 2c 2c 61 66 64 30 33 39 34 34  $data,,,afd03944
4f30: 64 38 34 38 39 35 36 32 36 62 30 38 32 35 66 34  d84895626b0825f4
4f40: 61 62 34 36 39 30 37 66 31 35 66 39 64 61 64 62  ab46907f15f9dadb
4f50: 65 34 31 30 31 65 63 36 38 32 61 61 30 33 34 63  e4101ec682aa034c
4f60: 37 63 65 62 63 35 39 63 66 61 65 61 39 65 61 39  7cebc59cfaea9ea9
4f70: 30 37 36 65 64 65 37 66 34 61 66 31 35 32 65 38  076ede7f4af152e8
4f80: 62 32 66 61 39 63 62 36 2c 2c 2c 0a 52 46 43 34  b2fa9cb6,,,.RFC4
4f90: 32 33 31 20 48 4d 41 43 20 54 43 31 2c 73 68 61  231 HMAC TC1,sha
4fa0: 35 31 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61  512,,,::tls::hma
4fb0: 63 20 2d 64 69 67 65 73 74 20 73 68 61 35 31 32  c -digest sha512
4fc0: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61   -key $key -data
4fd0: 20 24 64 61 74 61 2c 2c 2c 38 37 61 61 37 63 64   $data,,,87aa7cd
4fe0: 65 61 35 65 66 36 31 39 64 34 66 66 30 62 34 32  ea5ef619d4ff0b42
4ff0: 34 31 61 31 64 36 63 62 30 32 33 37 39 66 34 65  41a1d6cb02379f4e
5000: 32 63 65 34 65 63 32 37 38 37 61 64 30 62 33 30  2ce4ec2787ad0b30
5010: 35 34 35 65 31 37 63 64 65 64 61 61 38 33 33 62  545e17cdedaa833b
5020: 37 64 36 62 38 61 37 30 32 30 33 38 62 32 37 34  7d6b8a702038b274
5030: 65 61 65 61 33 66 34 65 34 62 65 39 64 39 31 34  eaea3f4e4be9d914
5040: 65 65 62 36 31 66 31 37 30 32 65 36 39 36 63 32  eeb61f1702e696c2
5050: 30 33 61 31 32 36 38 35 34 2c 2c 2c 0a 2c 2c 2c  03a126854,,,.,,,
5060: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
5070: 23 20 52 46 43 20 34 32 33 31 20 48 4d 41 43 20  # RFC 4231 HMAC 
5080: 45 78 61 6d 70 6c 65 73 20 54 65 73 74 20 43 61  Examples Test Ca
5090: 73 65 20 23 32 20 2d 20 54 65 73 74 20 77 69 74  se #2 - Test wit
50a0: 68 20 61 20 6b 65 79 20 73 68 6f 72 74 65 72 20  h a key shorter 
50b0: 74 68 61 6e 20 74 68 65 20 6c 65 6e 67 74 68 20  than the length 
50c0: 6f 66 20 74 68 65 20 48 4d 41 43 20 6f 75 74 70  of the HMAC outp
50d0: 75 74 2e 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  ut.,,,,,,,,,.com
50e0: 6d 61 6e 64 2c 22 73 65 74 20 6b 65 79 20 22 22  mand,"set key ""
50f0: 4a 65 66 65 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c  Jefe""",,,,,,,,,
5100: 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 64 61  .command,"set da
5110: 74 61 20 22 22 77 68 61 74 20 64 6f 20 79 61 20  ta ""what do ya 
5120: 77 61 6e 74 20 66 6f 72 20 6e 6f 74 68 69 6e 67  want for nothing
5130: 3f 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 52 46  ?""",,,,,,,,,.RF
5140: 43 34 32 33 31 20 48 4d 41 43 20 54 43 32 2c 73  C4231 HMAC TC2,s
5150: 68 61 32 32 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68  ha224,,,::tls::h
5160: 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 32  mac -digest sha2
5170: 32 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61  24 -key $key -da
5180: 74 61 20 24 64 61 74 61 2c 2c 2c 61 33 30 65 30  ta $data,,,a30e0
5190: 31 30 39 38 62 63 36 64 62 62 66 34 35 36 39 30  1098bc6dbbf45690
51a0: 66 33 61 37 65 39 65 36 64 30 66 38 62 62 65 61  f3a7e9e6d0f8bbea
51b0: 32 61 33 39 65 36 31 34 38 30 30 38 66 64 30 35  2a39e6148008fd05
51c0: 65 34 34 2c 2c 2c 0a 52 46 43 34 32 33 31 20 48  e44,,,.RFC4231 H
51d0: 4d 41 43 20 54 43 32 2c 73 68 61 32 35 36 2c 2c  MAC TC2,sha256,,
51e0: 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69  ,::tls::hmac -di
51f0: 67 65 73 74 20 73 68 61 32 35 36 20 2d 6b 65 79  gest sha256 -key
5200: 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74   $key -data $dat
5210: 61 2c 2c 2c 35 62 64 63 63 31 34 36 62 66 36 30  a,,,5bdcc146bf60
5220: 37 35 34 65 36 61 30 34 32 34 32 36 30 38 39 35  754e6a0424260895
5230: 37 35 63 37 35 61 30 30 33 66 30 38 39 64 32 37  75c75a003f089d27
5240: 33 39 38 33 39 64 65 63 35 38 62 39 36 34 65 63  39839dec58b964ec
5250: 33 38 34 33 2c 2c 2c 0a 52 46 43 34 32 33 31 20  3843,,,.RFC4231 
5260: 48 4d 41 43 20 54 43 32 2c 73 68 61 33 38 34 2c  HMAC TC2,sha384,
5270: 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64  ,,::tls::hmac -d
5280: 69 67 65 73 74 20 73 68 61 33 38 34 20 2d 6b 65  igest sha384 -ke
5290: 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61  y $key -data $da
52a0: 74 61 2c 2c 2c 61 66 34 35 64 32 65 33 37 36 34  ta,,,af45d2e3764
52b0: 38 34 30 33 31 36 31 37 66 37 38 64 32 62 35 38  84031617f78d2b58
52c0: 61 36 62 31 62 39 63 37 65 66 34 36 34 66 35 61  a6b1b9c7ef464f5a
52d0: 30 31 62 34 37 65 34 32 65 63 33 37 33 36 33 32  01b47e42ec373632
52e0: 32 34 34 35 65 38 65 32 32 34 30 63 61 35 65 36  2445e8e2240ca5e6
52f0: 39 65 32 63 37 38 62 33 32 33 39 65 63 66 61 62  9e2c78b3239ecfab
5300: 32 31 36 34 39 2c 2c 2c 0a 52 46 43 34 32 33 31  21649,,,.RFC4231
5310: 20 48 4d 41 43 20 54 43 32 2c 73 68 61 35 31 32   HMAC TC2,sha512
5320: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d  ,,,::tls::hmac -
5330: 64 69 67 65 73 74 20 73 68 61 35 31 32 20 2d 6b  digest sha512 -k
5340: 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64  ey $key -data $d
5350: 61 74 61 2c 2c 2c 31 36 34 62 37 61 37 62 66 63  ata,,,164b7a7bfc
5360: 66 38 31 39 65 32 65 33 39 35 66 62 65 37 33 62  f819e2e395fbe73b
5370: 35 36 65 30 61 33 38 37 62 64 36 34 32 32 32 65  56e0a387bd64222e
5380: 38 33 31 66 64 36 31 30 32 37 30 63 64 37 65 61  831fd610270cd7ea
5390: 32 35 30 35 35 34 39 37 35 38 62 66 37 35 63 30  2505549758bf75c0
53a0: 35 61 39 39 34 61 36 64 30 33 34 66 36 35 66 38  5a994a6d034f65f8
53b0: 66 30 65 36 66 64 63 61 65 61 62 31 61 33 34 64  f0e6fdcaeab1a34d
53c0: 34 61 36 62 34 62 36 33 36 65 30 37 30 61 33 38  4a6b4b636e070a38
53d0: 62 63 65 37 33 37 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c  bce737,,,.,,,,,,
53e0: 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 52  ,,,,.command,# R
53f0: 46 43 20 34 32 33 31 20 48 4d 41 43 20 45 78 61  FC 4231 HMAC Exa
5400: 6d 70 6c 65 73 20 54 65 73 74 20 43 61 73 65 20  mples Test Case 
5410: 23 33 20 2d 20 54 65 73 74 20 77 69 74 68 20 61  #3 - Test with a
5420: 20 63 6f 6d 62 69 6e 65 64 20 6c 65 6e 67 74 68   combined length
5430: 20 6f 66 20 6b 65 79 20 61 6e 64 20 64 61 74 61   of key and data
5440: 20 74 68 61 74 20 69 73 20 6c 61 72 67 65 72 20   that is larger 
5450: 74 68 61 6e 20 36 34 20 62 79 74 65 73 20 28 3d  than 64 bytes (=
5460: 20 62 6c 6f 63 6b 2d 73 69 7a 65 20 6f 66 20 53   block-size of S
5470: 48 41 2d 32 32 34 20 61 6e 64 20 53 48 41 2d 32  HA-224 and SHA-2
5480: 35 36 29 2e 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f  56).,,,,,,,,,.co
5490: 6d 6d 61 6e 64 2c 22 73 65 74 20 6b 65 79 20 5b  mmand,"set key [
54a0: 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65  binary decode he
54b0: 78 20 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74  x [string repeat
54c0: 20 22 22 61 61 22 22 20 32 30 5d 5d 22 2c 2c 2c   ""aa"" 20]]",,,
54d0: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22  ,,,,,,.command,"
54e0: 73 65 74 20 64 61 74 61 20 5b 62 69 6e 61 72 79  set data [binary
54f0: 20 64 65 63 6f 64 65 20 68 65 78 20 5b 73 74 72   decode hex [str
5500: 69 6e 67 20 72 65 70 65 61 74 20 22 22 64 64 22  ing repeat ""dd"
5510: 22 20 35 30 5d 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c  " 50]]",,,,,,,,,
5520: 0a 52 46 43 34 32 33 31 20 48 4d 41 43 20 54 43  .RFC4231 HMAC TC
5530: 33 2c 73 68 61 32 32 34 2c 2c 2c 3a 3a 74 6c 73  3,sha224,,,::tls
5540: 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73  ::hmac -digest s
5550: 68 61 32 32 34 20 2d 6b 65 79 20 24 6b 65 79 20  ha224 -key $key 
5560: 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 37 66  -data $data,,,7f
5570: 62 33 63 62 33 35 38 38 63 36 63 31 66 36 66 66  b3cb3588c6c1f6ff
5580: 61 39 36 39 34 64 37 64 36 61 64 32 36 34 39 33  a9694d7d6ad26493
5590: 36 35 62 30 63 31 66 36 35 64 36 39 64 31 65 63  65b0c1f65d69d1ec
55a0: 38 33 33 33 65 61 2c 2c 2c 0a 52 46 43 34 32 33  8333ea,,,.RFC423
55b0: 31 20 48 4d 41 43 20 54 43 33 2c 73 68 61 32 35  1 HMAC TC3,sha25
55c0: 36 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20  6,,,::tls::hmac 
55d0: 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d  -digest sha256 -
55e0: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24  key $key -data $
55f0: 64 61 74 61 2c 2c 2c 37 37 33 65 61 39 31 65 33  data,,,773ea91e3
5600: 36 38 30 30 65 34 36 38 35 34 64 62 38 65 62 64  6800e46854db8ebd
5610: 30 39 31 38 31 61 37 32 39 35 39 30 39 38 62 33  09181a72959098b3
5620: 65 66 38 63 31 32 32 64 39 36 33 35 35 31 34 63  ef8c122d9635514c
5630: 65 64 35 36 35 66 65 2c 2c 2c 0a 52 46 43 34 32  ed565fe,,,.RFC42
5640: 33 31 20 48 4d 41 43 20 54 43 33 2c 73 68 61 33  31 HMAC TC3,sha3
5650: 38 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63  84,,,::tls::hmac
5660: 20 2d 64 69 67 65 73 74 20 73 68 61 33 38 34 20   -digest sha384 
5670: 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20  -key $key -data 
5680: 24 64 61 74 61 2c 2c 2c 38 38 30 36 32 36 30 38  $data,,,88062608
5690: 64 33 65 36 61 64 38 61 30 61 61 32 61 63 65 30  d3e6ad8a0aa2ace0
56a0: 31 34 63 38 61 38 36 66 30 61 61 36 33 35 64 39  14c8a86f0aa635d9
56b0: 34 37 61 63 39 66 65 62 65 38 33 65 66 34 65 35  47ac9febe83ef4e5
56c0: 35 39 36 36 31 34 34 62 32 61 35 61 62 33 39 64  5966144b2a5ab39d
56d0: 63 31 33 38 31 34 62 39 34 65 33 61 62 36 65 31  c13814b94e3ab6e1
56e0: 30 31 61 33 34 66 32 37 2c 2c 2c 0a 52 46 43 34  01a34f27,,,.RFC4
56f0: 32 33 31 20 48 4d 41 43 20 54 43 33 2c 73 68 61  231 HMAC TC3,sha
5700: 35 31 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61  512,,,::tls::hma
5710: 63 20 2d 64 69 67 65 73 74 20 73 68 61 35 31 32  c -digest sha512
5720: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61   -key $key -data
5730: 20 24 64 61 74 61 2c 2c 2c 66 61 37 33 62 30 30   $data,,,fa73b00
5740: 38 39 64 35 36 61 32 38 34 65 66 62 30 66 30 37  89d56a284efb0f07
5750: 35 36 63 38 39 30 62 65 39 62 31 62 35 64 62 64  56c890be9b1b5dbd
5760: 64 38 65 65 38 31 61 33 36 35 35 66 38 33 65 33  d8ee81a3655f83e3
5770: 33 62 32 32 37 39 64 33 39 62 66 33 65 38 34 38  3b2279d39bf3e848
5780: 32 37 39 61 37 32 32 63 38 30 36 62 34 38 35 61  279a722c806b485a
5790: 34 37 65 36 37 63 38 30 37 62 39 34 36 61 33 33  47e67c807b946a33
57a0: 37 62 65 65 38 39 34 32 36 37 34 32 37 38 38 35  7bee894267427885
57b0: 39 65 31 33 32 39 32 66 62 2c 2c 2c 0a 2c 2c 2c  9e13292fb,,,.,,,
57c0: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
57d0: 23 20 52 46 43 20 34 32 33 31 20 48 4d 41 43 20  # RFC 4231 HMAC 
57e0: 45 78 61 6d 70 6c 65 73 20 54 65 73 74 20 43 61  Examples Test Ca
57f0: 73 65 20 23 34 20 2d 20 54 65 73 74 20 77 69 74  se #4 - Test wit
5800: 68 20 61 20 63 6f 6d 62 69 6e 65 64 20 6c 65 6e  h a combined len
5810: 67 74 68 20 6f 66 20 6b 65 79 20 61 6e 64 20 64  gth of key and d
5820: 61 74 61 20 74 68 61 74 20 69 73 20 6c 61 72 67  ata that is larg
5830: 65 72 20 74 68 61 6e 20 36 34 20 62 79 74 65 73  er than 64 bytes
5840: 20 28 3d 20 62 6c 6f 63 6b 2d 73 69 7a 65 20 6f   (= block-size o
5850: 66 20 53 48 41 2d 32 32 34 20 61 6e 64 20 53 48  f SHA-224 and SH
5860: 41 2d 32 35 36 29 2e 2c 2c 2c 2c 2c 2c 2c 2c 2c  A-256).,,,,,,,,,
5870: 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 6b 65  .command,"set ke
5880: 79 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65  y [binary decode
5890: 20 68 65 78 20 22 22 30 31 30 32 30 33 30 34 30   hex ""010203040
58a0: 35 30 36 30 37 30 38 30 39 30 61 30 62 30 63 30  5060708090a0b0c0
58b0: 64 30 65 30 66 31 30 31 31 31 32 31 33 31 34 31  d0e0f10111213141
58c0: 35 31 36 31 37 31 38 31 39 22 22 5d 22 2c 2c 2c  516171819""]",,,
58d0: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22  ,,,,,,.command,"
58e0: 73 65 74 20 64 61 74 61 20 5b 62 69 6e 61 72 79  set data [binary
58f0: 20 64 65 63 6f 64 65 20 68 65 78 20 5b 73 74 72   decode hex [str
5900: 69 6e 67 20 72 65 70 65 61 74 20 22 22 63 64 22  ing repeat ""cd"
5910: 22 20 35 30 5d 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c  " 50]]",,,,,,,,,
5920: 0a 52 46 43 34 32 33 31 20 48 4d 41 43 20 54 43  .RFC4231 HMAC TC
5930: 34 2c 73 68 61 32 32 34 2c 2c 2c 3a 3a 74 6c 73  4,sha224,,,::tls
5940: 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73  ::hmac -digest s
5950: 68 61 32 32 34 20 2d 6b 65 79 20 24 6b 65 79 20  ha224 -key $key 
5960: 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 36 63  -data $data,,,6c
5970: 31 31 35 30 36 38 37 34 30 31 33 63 61 63 36 61  11506874013cac6a
5980: 32 61 62 63 31 62 62 33 38 32 36 32 37 63 65 63  2abc1bb382627cec
5990: 36 61 39 30 64 38 36 65 66 63 30 31 32 64 65 37  6a90d86efc012de7
59a0: 61 66 65 63 35 61 2c 2c 2c 0a 52 46 43 34 32 33  afec5a,,,.RFC423
59b0: 31 20 48 4d 41 43 20 54 43 34 2c 73 68 61 32 35  1 HMAC TC4,sha25
59c0: 36 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20  6,,,::tls::hmac 
59d0: 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d  -digest sha256 -
59e0: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24  key $key -data $
59f0: 64 61 74 61 2c 2c 2c 38 32 35 35 38 61 33 38 39  data,,,82558a389
5a00: 61 34 34 33 63 30 65 61 34 63 63 38 31 39 38 39  a443c0ea4cc81989
5a10: 39 66 32 30 38 33 61 38 35 66 30 66 61 61 33 65  9f2083a85f0faa3e
5a20: 35 37 38 66 38 30 37 37 61 32 65 33 66 66 34 36  578f8077a2e3ff46
5a30: 37 32 39 36 36 35 62 2c 2c 2c 0a 52 46 43 34 32  729665b,,,.RFC42
5a40: 33 31 20 48 4d 41 43 20 54 43 34 2c 73 68 61 33  31 HMAC TC4,sha3
5a50: 38 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63  84,,,::tls::hmac
5a60: 20 2d 64 69 67 65 73 74 20 73 68 61 33 38 34 20   -digest sha384 
5a70: 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20  -key $key -data 
5a80: 24 64 61 74 61 2c 2c 2c 33 65 38 61 36 39 62 37  $data,,,3e8a69b7
5a90: 37 38 33 63 32 35 38 35 31 39 33 33 61 62 36 32  783c25851933ab62
5aa0: 39 30 61 66 36 63 61 37 37 61 39 39 38 31 34 38  90af6ca77a998148
5ab0: 30 38 35 30 30 30 39 63 63 35 35 37 37 63 36 65  0850009cc5577c6e
5ac0: 31 66 35 37 33 62 34 65 36 38 30 31 64 64 32 33  1f573b4e6801dd23
5ad0: 63 34 61 37 64 36 37 39 63 63 66 38 61 33 38 36  c4a7d679ccf8a386
5ae0: 63 36 37 34 63 66 66 62 2c 2c 2c 0a 52 46 43 34  c674cffb,,,.RFC4
5af0: 32 33 31 20 48 4d 41 43 20 54 43 34 2c 73 68 61  231 HMAC TC4,sha
5b00: 35 31 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61  512,,,::tls::hma
5b10: 63 20 2d 64 69 67 65 73 74 20 73 68 61 35 31 32  c -digest sha512
5b20: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61   -key $key -data
5b30: 20 24 64 61 74 61 2c 2c 2c 62 30 62 61 34 36 35   $data,,,b0ba465
5b40: 36 33 37 34 35 38 63 36 39 39 30 65 35 61 38 63  637458c6990e5a8c
5b50: 35 66 36 31 64 34 61 66 37 65 35 37 36 64 39 37  5f61d4af7e576d97
5b60: 66 66 39 34 62 38 37 32 64 65 37 36 66 38 30 35  ff94b872de76f805
5b70: 30 33 36 31 65 65 33 64 62 61 39 31 63 61 35 63  0361ee3dba91ca5c
5b80: 31 31 61 61 32 35 65 62 34 64 36 37 39 32 37 35  11aa25eb4d679275
5b90: 63 63 35 37 38 38 30 36 33 61 35 66 31 39 37 34  cc5788063a5f1974
5ba0: 31 31 32 30 63 34 66 32 64 65 32 61 64 65 62 65  1120c4f2de2adebe
5bb0: 62 31 30 61 32 39 38 64 64 2c 2c 2c 0a 2c 2c 2c  b10a298dd,,,.,,,
5bc0: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
5bd0: 23 20 52 46 43 20 34 32 33 31 20 48 4d 41 43 20  # RFC 4231 HMAC 
5be0: 45 78 61 6d 70 6c 65 73 20 54 65 73 74 20 43 61  Examples Test Ca
5bf0: 73 65 20 23 35 20 2d 20 54 65 73 74 20 77 69 74  se #5 - Test wit
5c00: 68 20 61 20 74 72 75 6e 63 61 74 69 6f 6e 20 6f  h a truncation o
5c10: 66 20 6f 75 74 70 75 74 20 74 6f 20 31 32 38 20  f output to 128 
5c20: 62 69 74 73 2e 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63  bits.,,,,,,,,,.c
5c30: 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 6b 65 79 20  ommand,"set key 
5c40: 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68  [binary decode h
5c50: 65 78 20 5b 73 74 72 69 6e 67 20 72 65 70 65 61  ex [string repea
5c60: 74 20 22 22 30 63 22 22 20 32 30 5d 5d 22 2c 2c  t ""0c"" 20]]",,
5c70: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
5c80: 22 73 65 74 20 64 61 74 61 20 22 22 54 65 73 74  "set data ""Test
5c90: 20 57 69 74 68 20 54 72 75 6e 63 61 74 69 6f 6e   With Truncation
5ca0: 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 52 46 43  """,,,,,,,,,.RFC
5cb0: 34 32 33 31 20 48 4d 41 43 20 54 43 35 2c 73 68  4231 HMAC TC5,sh
5cc0: 61 32 32 34 2c 2c 2c 73 74 72 69 6e 67 20 72 61  a224,,,string ra
5cd0: 6e 67 65 20 5b 3a 3a 74 6c 73 3a 3a 68 6d 61 63  nge [::tls::hmac
5ce0: 20 2d 64 69 67 65 73 74 20 73 68 61 32 32 34 20   -digest sha224 
5cf0: 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20  -key $key -data 
5d00: 24 64 61 74 61 5d 20 30 20 33 31 2c 2c 2c 30 65  $data] 0 31,,,0e
5d10: 32 61 65 61 36 38 61 39 30 63 38 64 33 37 63 39  2aea68a90c8d37c9
5d20: 38 38 62 63 64 62 39 66 63 61 36 66 61 38 2c 2c  88bcdb9fca6fa8,,
5d30: 2c 0a 52 46 43 34 32 33 31 20 48 4d 41 43 20 54  ,.RFC4231 HMAC T
5d40: 43 35 2c 73 68 61 32 35 36 2c 2c 2c 73 74 72 69  C5,sha256,,,stri
5d50: 6e 67 20 72 61 6e 67 65 20 5b 3a 3a 74 6c 73 3a  ng range [::tls:
5d60: 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68  :hmac -digest sh
5d70: 61 32 35 36 20 2d 6b 65 79 20 24 6b 65 79 20 2d  a256 -key $key -
5d80: 64 61 74 61 20 24 64 61 74 61 5d 20 30 20 33 31  data $data] 0 31
5d90: 2c 2c 2c 61 33 62 36 31 36 37 34 37 33 31 30 30  ,,,a3b6167473100
5da0: 65 65 30 36 65 30 63 37 39 36 63 32 39 35 35 35  ee06e0c796c29555
5db0: 35 32 62 2c 2c 2c 0a 52 46 43 34 32 33 31 20 48  52b,,,.RFC4231 H
5dc0: 4d 41 43 20 54 43 35 2c 73 68 61 33 38 34 2c 2c  MAC TC5,sha384,,
5dd0: 2c 73 74 72 69 6e 67 20 72 61 6e 67 65 20 5b 3a  ,string range [:
5de0: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65  :tls::hmac -dige
5df0: 73 74 20 73 68 61 33 38 34 20 2d 6b 65 79 20 24  st sha384 -key $
5e00: 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 5d  key -data $data]
5e10: 20 30 20 33 31 2c 2c 2c 33 61 62 66 33 34 63 33   0 31,,,3abf34c3
5e20: 35 30 33 62 32 61 32 33 61 34 36 65 66 63 36 31  503b2a23a46efc61
5e30: 39 62 61 65 66 38 39 37 2c 2c 2c 0a 52 46 43 34  9baef897,,,.RFC4
5e40: 32 33 31 20 48 4d 41 43 20 54 43 35 2c 73 68 61  231 HMAC TC5,sha
5e50: 35 31 32 2c 2c 2c 73 74 72 69 6e 67 20 72 61 6e  512,,,string ran
5e60: 67 65 20 5b 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20  ge [::tls::hmac 
5e70: 2d 64 69 67 65 73 74 20 73 68 61 35 31 32 20 2d  -digest sha512 -
5e80: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24  key $key -data $
5e90: 64 61 74 61 5d 20 30 20 33 31 2c 2c 2c 34 31 35  data] 0 31,,,415
5ea0: 66 61 64 36 32 37 31 35 38 30 61 35 33 31 64 34  fad6271580a531d4
5eb0: 31 37 39 62 63 38 39 31 64 38 37 61 36 2c 2c 2c  179bc891d87a6,,,
5ec0: 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  .,,,,,,,,,,.comm
5ed0: 61 6e 64 2c 23 20 52 46 43 20 34 32 33 31 20 48  and,# RFC 4231 H
5ee0: 4d 41 43 20 45 78 61 6d 70 6c 65 73 20 54 65 73  MAC Examples Tes
5ef0: 74 20 43 61 73 65 20 23 36 20 2d 20 54 65 73 74  t Case #6 - Test
5f00: 20 77 69 74 68 20 61 20 6b 65 79 20 6c 61 72 67   with a key larg
5f10: 65 72 20 74 68 61 6e 20 31 32 38 20 62 79 74 65  er than 128 byte
5f20: 73 20 28 3d 20 62 6c 6f 63 6b 2d 73 69 7a 65 20  s (= block-size 
5f30: 6f 66 20 53 48 41 2d 33 38 34 20 61 6e 64 20 53  of SHA-384 and S
5f40: 48 41 2d 35 31 32 29 2e 2c 2c 2c 2c 2c 2c 2c 2c  HA-512).,,,,,,,,
5f50: 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 6b  ,.command,"set k
5f60: 65 79 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64  ey [binary decod
5f70: 65 20 68 65 78 20 5b 73 74 72 69 6e 67 20 72 65  e hex [string re
5f80: 70 65 61 74 20 22 22 61 61 22 22 20 31 33 31 5d  peat ""aa"" 131]
5f90: 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  ]",,,,,,,,,.comm
5fa0: 61 6e 64 2c 22 73 65 74 20 64 61 74 61 20 22 22  and,"set data ""
5fb0: 54 65 73 74 20 55 73 69 6e 67 20 4c 61 72 67 65  Test Using Large
5fc0: 72 20 54 68 61 6e 20 42 6c 6f 63 6b 2d 53 69 7a  r Than Block-Siz
5fd0: 65 20 4b 65 79 20 2d 20 48 61 73 68 20 4b 65 79  e Key - Hash Key
5fe0: 20 46 69 72 73 74 22 22 22 2c 2c 2c 2c 2c 2c 2c   First""",,,,,,,
5ff0: 2c 2c 0a 52 46 43 34 32 33 31 20 48 4d 41 43 20  ,,.RFC4231 HMAC 
6000: 54 43 36 2c 73 68 61 32 32 34 2c 2c 2c 3a 3a 74  TC6,sha224,,,::t
6010: 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74  ls::hmac -digest
6020: 20 73 68 61 32 32 34 20 2d 6b 65 79 20 24 6b 65   sha224 -key $ke
6030: 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c  y -data $data,,,
6040: 39 35 65 39 61 30 64 62 39 36 32 30 39 35 61 64  95e9a0db962095ad
6050: 61 65 62 65 39 62 32 64 36 66 30 64 62 63 65 32  aebe9b2d6f0dbce2
6060: 64 34 39 39 66 31 31 32 66 32 64 32 62 37 32 37  d499f112f2d2b727
6070: 33 66 61 36 38 37 30 65 2c 2c 2c 0a 52 46 43 34  3fa6870e,,,.RFC4
6080: 32 33 31 20 48 4d 41 43 20 54 43 36 2c 73 68 61  231 HMAC TC6,sha
6090: 32 35 36 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61  256,,,::tls::hma
60a0: 63 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 36  c -digest sha256
60b0: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61   -key $key -data
60c0: 20 24 64 61 74 61 2c 2c 2c 36 30 65 34 33 31 35   $data,,,60e4315
60d0: 39 31 65 65 30 62 36 37 66 30 64 38 61 32 36 61  91ee0b67f0d8a26a
60e0: 61 63 62 66 35 62 37 37 66 38 65 30 62 63 36 32  acbf5b77f8e0bc62
60f0: 31 33 37 32 38 63 35 31 34 30 35 34 36 30 34 30  13728c5140546040
6100: 66 30 65 65 33 37 66 35 34 2c 2c 2c 0a 52 46 43  f0ee37f54,,,.RFC
6110: 34 32 33 31 20 48 4d 41 43 20 54 43 36 2c 73 68  4231 HMAC TC6,sh
6120: 61 33 38 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d  a384,,,::tls::hm
6130: 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 33 38  ac -digest sha38
6140: 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74  4 -key $key -dat
6150: 61 20 24 64 61 74 61 2c 2c 2c 34 65 63 65 30 38  a $data,,,4ece08
6160: 34 34 38 35 38 31 33 65 39 30 38 38 64 32 63 36  4485813e9088d2c6
6170: 33 61 30 34 31 62 63 35 62 34 34 66 39 65 66 31  3a041bc5b44f9ef1
6180: 30 31 32 61 32 62 35 38 38 66 33 63 64 31 31 66  012a2b588f3cd11f
6190: 30 35 30 33 33 61 63 34 63 36 30 63 32 65 66 36  05033ac4c60c2ef6
61a0: 61 62 34 30 33 30 66 65 38 32 39 36 32 34 38 64  ab4030fe8296248d
61b0: 66 31 36 33 66 34 34 39 35 32 2c 2c 2c 0a 52 46  f163f44952,,,.RF
61c0: 43 34 32 33 31 20 48 4d 41 43 20 54 43 36 2c 73  C4231 HMAC TC6,s
61d0: 68 61 35 31 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68  ha512,,,::tls::h
61e0: 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 35  mac -digest sha5
61f0: 31 32 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61  12 -key $key -da
6200: 74 61 20 24 64 61 74 61 2c 2c 2c 38 30 62 32 34  ta $data,,,80b24
6210: 32 36 33 63 37 63 31 61 33 65 62 62 37 31 34 39  263c7c1a3ebb7149
6220: 33 63 31 64 64 37 62 65 38 62 34 39 62 34 36 64  3c1dd7be8b49b46d
6230: 31 66 34 31 62 34 61 65 65 63 31 31 32 31 62 30  1f41b4aeec1121b0
6240: 31 33 37 38 33 66 38 66 33 35 32 36 62 35 36 64  13783f8f3526b56d
6250: 30 33 37 65 30 35 66 32 35 39 38 62 64 30 66 64  037e05f2598bd0fd
6260: 32 32 31 35 64 36 61 31 65 35 32 39 35 65 36 34  2215d6a1e5295e64
6270: 66 37 33 66 36 33 66 30 61 65 63 38 62 39 31 35  f73f63f0aec8b915
6280: 61 39 38 35 64 37 38 36 35 39 38 2c 2c 2c 0a 2c  a985d786598,,,.,
6290: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e  ,,,,,,,,,.comman
62a0: 64 2c 23 20 52 46 43 20 34 32 33 31 20 48 4d 41  d,# RFC 4231 HMA
62b0: 43 20 45 78 61 6d 70 6c 65 73 20 54 65 73 74 20  C Examples Test 
62c0: 43 61 73 65 20 23 37 20 2d 20 54 65 73 74 20 77  Case #7 - Test w
62d0: 69 74 68 20 61 20 6b 65 79 20 61 6e 64 20 64 61  ith a key and da
62e0: 74 61 20 74 68 61 74 20 69 73 20 6c 61 72 67 65  ta that is large
62f0: 72 20 74 68 61 6e 20 31 32 38 20 62 79 74 65 73  r than 128 bytes
6300: 20 28 3d 20 62 6c 6f 63 6b 2d 73 69 7a 65 20 6f   (= block-size o
6310: 66 20 53 48 41 2d 33 38 34 20 61 6e 64 20 53 48  f SHA-384 and SH
6320: 41 2d 35 31 32 29 2e 2c 2c 2c 2c 2c 2c 2c 2c 2c  A-512).,,,,,,,,,
6330: 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 6b 65  .command,"set ke
6340: 79 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65  y [binary decode
6350: 20 68 65 78 20 5b 73 74 72 69 6e 67 20 72 65 70   hex [string rep
6360: 65 61 74 20 22 22 61 61 22 22 20 31 33 31 5d 5d  eat ""aa"" 131]]
6370: 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61  ",,,,,,,,,.comma
6380: 6e 64 2c 22 73 65 74 20 64 61 74 61 20 22 22 54  nd,"set data ""T
6390: 68 69 73 20 69 73 20 61 20 74 65 73 74 20 75 73  his is a test us
63a0: 69 6e 67 20 61 20 6c 61 72 67 65 72 20 74 68 61  ing a larger tha
63b0: 6e 20 62 6c 6f 63 6b 2d 73 69 7a 65 20 6b 65 79  n block-size key
63c0: 20 61 6e 64 20 61 20 6c 61 72 67 65 72 20 74 68   and a larger th
63d0: 61 6e 20 62 6c 6f 63 6b 2d 73 69 7a 65 20 64 61  an block-size da
63e0: 74 61 2e 20 54 68 65 20 6b 65 79 20 6e 65 65 64  ta. The key need
63f0: 73 20 74 6f 20 62 65 20 68 61 73 68 65 64 20 62  s to be hashed b
6400: 65 66 6f 72 65 20 62 65 69 6e 67 20 75 73 65 64  efore being used
6410: 20 62 79 20 74 68 65 20 48 4d 41 43 20 61 6c 67   by the HMAC alg
6420: 6f 72 69 74 68 6d 2e 22 22 22 2c 2c 2c 2c 2c 2c  orithm.""",,,,,,
6430: 2c 2c 2c 0a 52 46 43 34 32 33 31 20 48 4d 41 43  ,,,.RFC4231 HMAC
6440: 20 54 43 37 2c 73 68 61 32 32 34 2c 2c 2c 3a 3a   TC7,sha224,,,::
6450: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73  tls::hmac -diges
6460: 74 20 73 68 61 32 32 34 20 2d 6b 65 79 20 24 6b  t sha224 -key $k
6470: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c  ey -data $data,,
6480: 2c 33 61 38 35 34 31 36 36 61 63 35 64 39 66 30  ,3a854166ac5d9f0
6490: 32 33 66 35 34 64 35 31 37 64 30 62 33 39 64 62  23f54d517d0b39db
64a0: 64 39 34 36 37 37 30 64 62 39 63 32 62 39 35 63  d946770db9c2b95c
64b0: 39 66 36 66 35 36 35 64 31 2c 2c 2c 0a 52 46 43  9f6f565d1,,,.RFC
64c0: 34 32 33 31 20 48 4d 41 43 20 54 43 37 2c 73 68  4231 HMAC TC7,sh
64d0: 61 32 35 36 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d  a256,,,::tls::hm
64e0: 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 32 35  ac -digest sha25
64f0: 36 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74  6 -key $key -dat
6500: 61 20 24 64 61 74 61 2c 2c 2c 39 62 30 39 66 66  a $data,,,9b09ff
6510: 61 37 31 62 39 34 32 66 63 62 32 37 36 33 35 66  a71b942fcb27635f
6520: 62 63 64 35 62 30 65 39 34 34 62 66 64 63 36 33  bcd5b0e944bfdc63
6530: 36 34 34 66 30 37 31 33 39 33 38 61 37 66 35 31  644f0713938a7f51
6540: 35 33 35 63 33 61 33 35 65 32 2c 2c 2c 0a 52 46  535c3a35e2,,,.RF
6550: 43 34 32 33 31 20 48 4d 41 43 20 54 43 37 2c 73  C4231 HMAC TC7,s
6560: 68 61 33 38 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68  ha384,,,::tls::h
6570: 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 33  mac -digest sha3
6580: 38 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61  84 -key $key -da
6590: 74 61 20 24 64 61 74 61 2c 2c 2c 36 36 31 37 31  ta $data,,,66171
65a0: 37 38 65 39 34 31 66 30 32 30 64 33 35 31 65 32  78e941f020d351e2
65b0: 66 32 35 34 65 38 66 64 33 32 63 36 30 32 34 32  f254e8fd32c60242
65c0: 30 66 65 62 30 62 38 66 62 39 61 64 63 63 65 62  0feb0b8fb9adcceb
65d0: 62 38 32 34 36 31 65 39 39 63 35 61 36 37 38 63  b82461e99c5a678c
65e0: 63 33 31 65 37 39 39 31 37 36 64 33 38 36 30 65  c31e799176d3860e
65f0: 36 31 31 30 63 34 36 35 32 33 65 2c 2c 2c 0a 52  6110c46523e,,,.R
6600: 46 43 34 32 33 31 20 48 4d 41 43 20 54 43 37 2c  FC4231 HMAC TC7,
6610: 73 68 61 35 31 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a  sha512,,,::tls::
6620: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61  hmac -digest sha
6630: 35 31 32 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64  512 -key $key -d
6640: 61 74 61 20 24 64 61 74 61 2c 2c 2c 65 33 37 62  ata $data,,,e37b
6650: 36 61 37 37 35 64 63 38 37 64 62 61 61 34 64 66  6a775dc87dbaa4df
6660: 61 39 66 39 36 65 35 65 33 66 66 64 64 65 62 64  a9f96e5e3ffddebd
6670: 37 31 66 38 38 36 37 32 38 39 38 36 35 64 66 35  71f8867289865df5
6680: 61 33 32 64 32 30 63 64 63 39 34 34 62 36 30 32  a32d20cdc944b602
6690: 32 63 61 63 33 63 34 39 38 32 62 31 30 64 35 65  2cac3c4982b10d5e
66a0: 65 62 35 35 63 33 65 34 64 65 31 35 31 33 34 36  eb55c3e4de151346
66b0: 37 36 66 62 36 64 65 30 34 34 36 30 36 35 63 39  76fb6de0446065c9
66c0: 37 34 34 30 66 61 38 63 36 61 35 38 2c 2c 2c 0a  7440fa8c6a58,,,.
66d0: 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61  ,,,,,,,,,,.comma
66e0: 6e 64 2c 23 20 4e 49 53 54 20 38 30 30 2d 33 38  nd,# NIST 800-38
66f0: 62 20 52 65 63 6f 6d 6d 65 6e 64 61 74 69 6f 6e  b Recommendation
6700: 20 66 6f 72 20 42 6c 6f 63 6b 20 43 69 70 68 65   for Block Ciphe
6710: 72 20 4d 6f 64 65 73 20 6f 66 20 4f 70 65 72 61  r Modes of Opera
6720: 74 69 6f 6e 3a 20 54 68 65 20 43 4d 41 43 20 4d  tion: The CMAC M
6730: 6f 64 65 20 66 6f 72 20 41 75 74 68 65 6e 74 69  ode for Authenti
6740: 63 61 74 69 6f 6e 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  cation,,,,,,,,,.
6750: 63 6f 6d 6d 61 6e 64 2c 23 20 41 45 53 2d 31 32  command,# AES-12
6760: 38 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61  8,,,,,,,,,.comma
6770: 6e 64 2c 22 73 65 74 20 6b 65 79 20 5b 62 69 6e  nd,"set key [bin
6780: 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 22  ary decode hex "
6790: 22 32 62 37 65 31 35 31 36 32 38 61 65 64 32 61  "2b7e151628aed2a
67a0: 36 61 62 66 37 31 35 38 38 30 39 63 66 34 66 33  6abf7158809cf4f3
67b0: 63 22 22 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4e  c""]",,,,,,,,,.N
67c0: 49 53 54 38 30 30 2d 33 38 62 2d 41 45 53 31 32  IST800-38b-AES12
67d0: 38 2c 6c 65 6e 3d 30 2c 2c 2c 22 3a 3a 74 6c 73  8,len=0,,,"::tls
67e0: 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 20 61  ::cmac -cipher a
67f0: 65 73 2d 31 32 38 2d 63 62 63 20 2d 6b 65 79 20  es-128-cbc -key 
6800: 24 6b 65 79 20 2d 64 61 74 61 20 22 22 22 22 22  $key -data """""
6810: 2c 2c 2c 62 62 31 64 36 39 32 39 65 39 35 39 33  ,,,bb1d6929e9593
6820: 37 32 38 37 66 61 33 37 64 31 32 39 62 37 35 36  7287fa37d129b756
6830: 37 34 36 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22  746,,,.command,"
6840: 73 65 74 20 64 61 74 61 20 5b 62 69 6e 61 72 79  set data [binary
6850: 20 64 65 63 6f 64 65 20 68 65 78 20 22 22 36 62   decode hex ""6b
6860: 63 31 62 65 65 32 32 65 34 30 39 66 39 36 65 39  c1bee22e409f96e9
6870: 33 64 37 65 31 31 37 33 39 33 31 37 32 61 22 22  3d7e117393172a""
6880: 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4e 49 53 54  ]",,,,,,,,,.NIST
6890: 38 30 30 2d 33 38 62 2d 41 45 53 31 32 38 2c 6c  800-38b-AES128,l
68a0: 65 6e 3d 31 32 38 2c 2c 2c 3a 3a 74 6c 73 3a 3a  en=128,,,::tls::
68b0: 63 6d 61 63 20 2d 63 69 70 68 65 72 20 61 65 73  cmac -cipher aes
68c0: 2d 31 32 38 2d 63 62 63 20 2d 6b 65 79 20 24 6b  -128-cbc -key $k
68d0: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c  ey -data $data,,
68e0: 2c 30 37 30 61 31 36 62 34 36 62 34 64 34 31 34  ,070a16b46b4d414
68f0: 34 66 37 39 62 64 64 39 64 64 30 34 61 32 38 37  4f79bdd9dd04a287
6900: 63 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65  c,,,.command,"se
6910: 74 20 64 61 74 61 20 5b 62 69 6e 61 72 79 20 64  t data [binary d
6920: 65 63 6f 64 65 20 68 65 78 20 22 22 36 62 63 31  ecode hex ""6bc1
6930: 62 65 65 32 32 65 34 30 39 66 39 36 65 39 33 64  bee22e409f96e93d
6940: 37 65 31 31 37 33 39 33 31 37 32 61 61 65 32 64  7e117393172aae2d
6950: 38 61 35 37 31 65 30 33 61 63 39 63 39 65 62 37  8a571e03ac9c9eb7
6960: 36 66 61 63 34 35 61 66 38 65 35 31 33 30 63 38  6fac45af8e5130c8
6970: 31 63 34 36 61 33 35 63 65 34 31 31 22 22 5d 22  1c46a35ce411""]"
6980: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4e 49 53 54 38 30  ,,,,,,,,,.NIST80
6990: 30 2d 33 38 62 2d 41 45 53 31 32 38 2c 6c 65 6e  0-38b-AES128,len
69a0: 3d 33 32 30 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d  =320,,,::tls::cm
69b0: 61 63 20 2d 63 69 70 68 65 72 20 61 65 73 2d 31  ac -cipher aes-1
69c0: 32 38 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 79  28-cbc -key $key
69d0: 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 64   -data $data,,,d
69e0: 66 61 36 36 37 34 37 64 65 39 61 65 36 33 30 33  fa66747de9ae6303
69f0: 30 63 61 33 32 36 31 31 34 39 37 63 38 32 37 2c  0ca32611497c827,
6a00: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20  ,,.command,"set 
6a10: 64 61 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63  data [binary dec
6a20: 6f 64 65 20 68 65 78 20 22 22 36 62 63 31 62 65  ode hex ""6bc1be
6a30: 65 32 32 65 34 30 39 66 39 36 65 39 33 64 37 65  e22e409f96e93d7e
6a40: 31 31 37 33 39 33 31 37 32 61 61 65 32 64 38 61  117393172aae2d8a
6a50: 35 37 31 65 30 33 61 63 39 63 39 65 62 37 36 66  571e03ac9c9eb76f
6a60: 61 63 34 35 61 66 38 65 35 31 33 30 63 38 31 63  ac45af8e5130c81c
6a70: 34 36 61 33 35 63 65 34 31 31 65 35 66 62 63 31  46a35ce411e5fbc1
6a80: 31 39 31 61 30 61 35 32 65 66 66 36 39 66 32 34  191a0a52eff69f24
6a90: 34 35 64 66 34 66 39 62 31 37 61 64 32 62 34 31  45df4f9b17ad2b41
6aa0: 37 62 65 36 36 63 33 37 31 30 22 22 5d 22 2c 2c  7be66c3710""]",,
6ab0: 2c 2c 2c 2c 2c 2c 2c 0a 4e 49 53 54 38 30 30 2d  ,,,,,,,.NIST800-
6ac0: 33 38 62 2d 41 45 53 31 32 38 2c 6c 65 6e 3d 35  38b-AES128,len=5
6ad0: 31 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d 61 63  12,,,::tls::cmac
6ae0: 20 2d 63 69 70 68 65 72 20 61 65 73 2d 31 32 38   -cipher aes-128
6af0: 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d  -cbc -key $key -
6b00: 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 35 31 66  data $data,,,51f
6b10: 30 62 65 62 66 37 65 33 62 39 64 39 32 66 63 34  0bebf7e3b9d92fc4
6b20: 39 37 34 31 37 37 39 33 36 33 63 66 65 2c 2c 2c  9741779363cfe,,,
6b30: 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  .,,,,,,,,,,.comm
6b40: 61 6e 64 2c 23 20 41 45 53 2d 31 39 32 2c 2c 2c  and,# AES-192,,,
6b50: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22  ,,,,,,.command,"
6b60: 73 65 74 20 6b 65 79 20 5b 62 69 6e 61 72 79 20  set key [binary 
6b70: 64 65 63 6f 64 65 20 68 65 78 20 22 22 38 65 37  decode hex ""8e7
6b80: 33 62 30 66 37 64 61 30 65 36 34 35 32 63 38 31  3b0f7da0e6452c81
6b90: 30 66 33 32 62 38 30 39 30 37 39 65 35 36 32 66  0f32b809079e562f
6ba0: 38 65 61 64 32 35 32 32 63 36 62 37 62 22 22 5d  8ead2522c6b7b""]
6bb0: 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4e 49 53 54 38  ",,,,,,,,,.NIST8
6bc0: 30 30 2d 33 38 62 2d 41 45 53 2d 31 39 32 2c 6c  00-38b-AES-192,l
6bd0: 65 6e 3d 30 2c 2c 2c 22 3a 3a 74 6c 73 3a 3a 63  en=0,,,"::tls::c
6be0: 6d 61 63 20 2d 63 69 70 68 65 72 20 61 65 73 2d  mac -cipher aes-
6bf0: 31 39 32 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65  192-cbc -key $ke
6c00: 79 20 2d 64 61 74 61 20 22 22 22 22 22 2c 2c 2c  y -data """"",,,
6c10: 64 31 37 64 64 66 34 36 61 64 61 61 63 64 65 35  d17ddf46adaacde5
6c20: 33 31 63 61 63 34 38 33 64 65 37 61 39 33 36 37  31cac483de7a9367
6c30: 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74  ,,,.command,"set
6c40: 20 64 61 74 61 20 5b 62 69 6e 61 72 79 20 64 65   data [binary de
6c50: 63 6f 64 65 20 68 65 78 20 22 22 36 62 63 31 62  code hex ""6bc1b
6c60: 65 65 32 32 65 34 30 39 66 39 36 65 39 33 64 37  ee22e409f96e93d7
6c70: 65 31 31 37 33 39 33 31 37 32 61 22 22 5d 22 2c  e117393172a""]",
6c80: 2c 2c 2c 2c 2c 2c 2c 2c 0a 4e 49 53 54 38 30 30  ,,,,,,,,.NIST800
6c90: 2d 33 38 62 2d 41 45 53 2d 31 39 32 2c 6c 65 6e  -38b-AES-192,len
6ca0: 3d 31 32 38 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d  =128,,,::tls::cm
6cb0: 61 63 20 2d 63 69 70 68 65 72 20 61 65 73 2d 31  ac -cipher aes-1
6cc0: 39 32 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 79  92-cbc -key $key
6cd0: 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 39   -data $data,,,9
6ce0: 65 39 39 61 37 62 66 33 31 65 37 31 30 39 30 30  e99a7bf31e710900
6cf0: 36 36 32 66 36 35 65 36 31 37 63 35 31 38 34 2c  662f65e617c5184,
6d00: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20  ,,.command,"set 
6d10: 64 61 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63  data [binary dec
6d20: 6f 64 65 20 68 65 78 20 22 22 36 62 63 31 62 65  ode hex ""6bc1be
6d30: 65 32 32 65 34 30 39 66 39 36 65 39 33 64 37 65  e22e409f96e93d7e
6d40: 31 31 37 33 39 33 31 37 32 61 61 65 32 64 38 61  117393172aae2d8a
6d50: 35 37 31 65 30 33 61 63 39 63 39 65 62 37 36 66  571e03ac9c9eb76f
6d60: 61 63 34 35 61 66 38 65 35 31 33 30 63 38 31 63  ac45af8e5130c81c
6d70: 34 36 61 33 35 63 65 34 31 31 22 22 5d 22 2c 2c  46a35ce411""]",,
6d80: 2c 2c 2c 2c 2c 2c 2c 0a 4e 49 53 54 38 30 30 2d  ,,,,,,,.NIST800-
6d90: 33 38 62 2d 41 45 53 2d 31 39 32 2c 6c 65 6e 3d  38b-AES-192,len=
6da0: 33 32 30 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d 61  320,,,::tls::cma
6db0: 63 20 2d 63 69 70 68 65 72 20 61 65 73 2d 31 39  c -cipher aes-19
6dc0: 32 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 79 20  2-cbc -key $key 
6dd0: 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 38 61  -data $data,,,8a
6de0: 31 64 65 35 62 65 32 65 62 33 31 61 61 64 30 38  1de5be2eb31aad08
6df0: 39 61 38 32 65 36 65 65 39 30 38 62 30 65 2c 2c  9a82e6ee908b0e,,
6e00: 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 64  ,.command,"set d
6e10: 61 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63 6f  ata [binary deco
6e20: 64 65 20 68 65 78 20 22 22 36 62 63 31 62 65 65  de hex ""6bc1bee
6e30: 32 32 65 34 30 39 66 39 36 65 39 33 64 37 65 31  22e409f96e93d7e1
6e40: 31 37 33 39 33 31 37 32 61 61 65 32 64 38 61 35  17393172aae2d8a5
6e50: 37 31 65 30 33 61 63 39 63 39 65 62 37 36 66 61  71e03ac9c9eb76fa
6e60: 63 34 35 61 66 38 65 35 31 33 30 63 38 31 63 34  c45af8e5130c81c4
6e70: 36 61 33 35 63 65 34 31 31 65 35 66 62 63 31 31  6a35ce411e5fbc11
6e80: 39 31 61 30 61 35 32 65 66 66 36 39 66 32 34 34  91a0a52eff69f244
6e90: 35 64 66 34 66 39 62 31 37 61 64 32 62 34 31 37  5df4f9b17ad2b417
6ea0: 62 65 36 36 63 33 37 31 30 22 22 5d 22 2c 2c 2c  be66c3710""]",,,
6eb0: 2c 2c 2c 2c 2c 2c 0a 4e 49 53 54 38 30 30 2d 33  ,,,,,,.NIST800-3
6ec0: 38 62 2d 41 45 53 2d 31 39 32 2c 6c 65 6e 3d 35  8b-AES-192,len=5
6ed0: 31 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d 61 63  12,,,::tls::cmac
6ee0: 20 2d 63 69 70 68 65 72 20 61 65 73 2d 31 39 32   -cipher aes-192
6ef0: 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d  -cbc -key $key -
6f00: 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 61 31 64  data $data,,,a1d
6f10: 35 64 66 30 65 65 64 37 39 30 66 37 39 34 64 37  5df0eed790f794d7
6f20: 37 35 38 39 36 35 39 66 33 39 61 31 31 2c 2c 2c  7589659f39a11,,,
6f30: 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  .,,,,,,,,,,.comm
6f40: 61 6e 64 2c 23 20 41 45 53 2d 32 35 36 2c 2c 2c  and,# AES-256,,,
6f50: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22  ,,,,,,.command,"
6f60: 73 65 74 20 6b 65 79 20 5b 62 69 6e 61 72 79 20  set key [binary 
6f70: 64 65 63 6f 64 65 20 68 65 78 20 22 22 36 30 33  decode hex ""603
6f80: 64 65 62 31 30 31 35 63 61 37 31 62 65 32 62 37  deb1015ca71be2b7
6f90: 33 61 65 66 30 38 35 37 64 37 37 38 31 31 66 33  3aef0857d77811f3
6fa0: 35 32 63 30 37 33 62 36 31 30 38 64 37 32 64 39  52c073b6108d72d9
6fb0: 38 31 30 61 33 30 39 31 34 64 66 66 34 22 22 5d  810a30914dff4""]
6fc0: 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4e 49 53 54 38  ",,,,,,,,,.NIST8
6fd0: 30 30 2d 33 38 62 2d 41 45 53 2d 32 35 36 2c 6c  00-38b-AES-256,l
6fe0: 65 6e 3d 30 2c 2c 2c 22 3a 3a 74 6c 73 3a 3a 63  en=0,,,"::tls::c
6ff0: 6d 61 63 20 2d 63 69 70 68 65 72 20 61 65 73 2d  mac -cipher aes-
7000: 32 35 36 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65  256-cbc -key $ke
7010: 79 20 2d 64 61 74 61 20 22 22 22 22 22 2c 2c 2c  y -data """"",,,
7020: 30 32 38 39 36 32 66 36 31 62 37 62 66 38 39 65  028962f61b7bf89e
7030: 66 63 36 62 35 35 31 66 34 36 36 37 64 39 38 33  fc6b551f4667d983
7040: 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74  ,,,.command,"set
7050: 20 64 61 74 61 20 5b 62 69 6e 61 72 79 20 64 65   data [binary de
7060: 63 6f 64 65 20 68 65 78 20 22 22 36 62 63 31 62  code hex ""6bc1b
7070: 65 65 32 32 65 34 30 39 66 39 36 65 39 33 64 37  ee22e409f96e93d7
7080: 65 31 31 37 33 39 33 31 37 32 61 22 22 5d 22 2c  e117393172a""]",
7090: 2c 2c 2c 2c 2c 2c 2c 2c 0a 4e 49 53 54 38 30 30  ,,,,,,,,.NIST800
70a0: 2d 33 38 62 2d 41 45 53 2d 32 35 36 2c 6c 65 6e  -38b-AES-256,len
70b0: 3d 31 32 38 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d  =128,,,::tls::cm
70c0: 61 63 20 2d 63 69 70 68 65 72 20 61 65 73 2d 32  ac -cipher aes-2
70d0: 35 36 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 79  56-cbc -key $key
70e0: 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 32   -data $data,,,2
70f0: 38 61 37 30 32 33 66 34 35 32 65 38 66 38 32 62  8a7023f452e8f82b
7100: 64 34 62 66 32 38 64 38 63 33 37 63 33 35 63 2c  d4bf28d8c37c35c,
7110: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20  ,,.command,"set 
7120: 64 61 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63  data [binary dec
7130: 6f 64 65 20 68 65 78 20 22 22 36 62 63 31 62 65  ode hex ""6bc1be
7140: 65 32 32 65 34 30 39 66 39 36 65 39 33 64 37 65  e22e409f96e93d7e
7150: 31 31 37 33 39 33 31 37 32 61 61 65 32 64 38 61  117393172aae2d8a
7160: 35 37 31 65 30 33 61 63 39 63 39 65 62 37 36 66  571e03ac9c9eb76f
7170: 61 63 34 35 61 66 38 65 35 31 33 30 63 38 31 63  ac45af8e5130c81c
7180: 34 36 61 33 35 63 65 34 31 31 22 22 5d 22 2c 2c  46a35ce411""]",,
7190: 2c 2c 2c 2c 2c 2c 2c 0a 4e 49 53 54 38 30 30 2d  ,,,,,,,.NIST800-
71a0: 33 38 62 2d 41 45 53 2d 32 35 36 2c 6c 65 6e 3d  38b-AES-256,len=
71b0: 33 32 30 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d 61  320,,,::tls::cma
71c0: 63 20 2d 63 69 70 68 65 72 20 61 65 73 2d 32 35  c -cipher aes-25
71d0: 36 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 79 20  6-cbc -key $key 
71e0: 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 61 61  -data $data,,,aa
71f0: 66 33 64 38 66 31 64 65 35 36 34 30 63 32 33 32  f3d8f1de5640c232
7200: 66 35 62 31 36 39 62 39 63 39 31 31 65 36 2c 2c  f5b169b9c911e6,,
7210: 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 64  ,.command,"set d
7220: 61 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63 6f  ata [binary deco
7230: 64 65 20 68 65 78 20 22 22 36 62 63 31 62 65 65  de hex ""6bc1bee
7240: 32 32 65 34 30 39 66 39 36 65 39 33 64 37 65 31  22e409f96e93d7e1
7250: 31 37 33 39 33 31 37 32 61 61 65 32 64 38 61 35  17393172aae2d8a5
7260: 37 31 65 30 33 61 63 39 63 39 65 62 37 36 66 61  71e03ac9c9eb76fa
7270: 63 34 35 61 66 38 65 35 31 33 30 63 38 31 63 34  c45af8e5130c81c4
7280: 36 61 33 35 63 65 34 31 31 65 35 66 62 63 31 31  6a35ce411e5fbc11
7290: 39 31 61 30 61 35 32 65 66 66 36 39 66 32 34 34  91a0a52eff69f244
72a0: 35 64 66 34 66 39 62 31 37 61 64 32 62 34 31 37  5df4f9b17ad2b417
72b0: 62 65 36 36 63 33 37 31 30 22 22 5d 22 2c 2c 2c  be66c3710""]",,,
72c0: 2c 2c 2c 2c 2c 2c 0a 4e 49 53 54 38 30 30 2d 33  ,,,,,,.NIST800-3
72d0: 38 62 2d 41 45 53 2d 32 35 36 2c 6c 65 6e 3d 35  8b-AES-256,len=5
72e0: 31 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d 61 63  12,,,::tls::cmac
72f0: 20 2d 63 69 70 68 65 72 20 61 65 73 2d 32 35 36   -cipher aes-256
7300: 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d  -cbc -key $key -
7310: 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 65 31 39  data $data,,,e19
7320: 39 32 31 39 30 35 34 39 66 36 65 64 35 36 39 36  92190549f6ed5696
7330: 61 32 63 30 35 36 63 33 31 35 34 31 30 2c 2c 2c  a2c056c315410,,,
7340: 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  .,,,,,,,,,,.comm
7350: 61 6e 64 2c 23 20 43 6c 65 61 6e 75 70 2c 2c 2c  and,# Cleanup,,,
7360: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 3a  ,,,,,,.command,:
7370: 3a 74 63 6c 74 65 73 74 3a 3a 72 65 6d 6f 76 65  :tcltest::remove
7380: 46 69 6c 65 20 24 74 65 73 74 5f 66 69 6c 65 2c  File $test_file,
7390: 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64  ,,,,,,,,.command
73a0: 2c 3a 3a 74 63 6c 74 65 73 74 3a 3a 72 65 6d 6f  ,::tcltest::remo
73b0: 76 65 46 69 6c 65 20 24 74 65 73 74 5f 61 6c 74  veFile $test_alt
73c0: 5f 66 69 6c 65 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a     _file,,,,,,,,,.