Hex Artifact Content

Artifact f5f95e18da13485ef6f298be23364e76b1aec6171e545ae245b53cdaea3315c0:


0000: 23 20 47 72 6f 75 70 2c 4e 61 6d 65 2c 43 6f 6e  # Group,Name,Con
0010: 73 74 72 61 69 6e 74 73 2c 53 65 74 75 70 2c 42  straints,Setup,B
0020: 6f 64 79 2c 43 6c 65 61 6e 75 70 2c 4d 61 74 63  ody,Cleanup,Matc
0030: 68 2c 52 65 73 75 6c 74 2c 4f 75 74 70 75 74 2c  h,Result,Output,
0040: 45 72 72 6f 72 20 4f 75 74 70 75 74 2c 52 65 74  Error Output,Ret
0050: 75 72 6e 20 43 6f 64 65 73 0a 63 6f 6d 6d 61 6e  urn Codes.comman
0060: 64 2c 70 61 63 6b 61 67 65 20 72 65 71 75 69 72  d,package requir
0070: 65 20 74 6c 73 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 2c  e tls,,,,,,,,,.,
0080: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e  ,,,,,,,,,.comman
0090: 64 2c 23 20 43 6f 6e 73 74 72 61 69 6e 74 73 2c  d,# Constraints,
00a0: 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64  ,,,,,,,,.command
00b0: 2c 73 6f 75 72 63 65 20 63 6f 6d 6d 6f 6e 2e 74  ,source common.t
00c0: 63 6c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 2c 2c 2c 2c  cl,,,,,,,,,.,,,,
00d0: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23  ,,,,,,.command,#
00e0: 20 48 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e   Helper function
00f0: 73 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61  s,,,,,,,,,.comma
0100: 6e 64 2c 70 72 6f 63 20 72 65 61 64 5f 63 68 61  nd,proc read_cha
0110: 6e 20 7b 63 6d 64 20 66 69 6c 65 6e 61 6d 65 20  n {cmd filename 
0120: 61 72 67 73 7d 20 7b 73 65 74 20 63 68 20 5b 6f  args} {set ch [o
0130: 70 65 6e 20 24 66 69 6c 65 6e 61 6d 65 20 72 62  pen $filename rb
0140: 5d 3b 66 63 6f 6e 66 69 67 75 72 65 20 24 63 68  ];fconfigure $ch
0150: 20 2d 74 72 61 6e 73 6c 61 74 69 6f 6e 20 62 69   -translation bi
0160: 6e 61 72 79 3b 73 65 74 20 62 73 69 7a 65 20 5b  nary;set bsize [
0170: 66 63 6f 6e 66 69 67 75 72 65 20 24 63 68 20 2d  fconfigure $ch -
0180: 62 75 66 66 65 72 73 69 7a 65 5d 3b 73 65 74 20  buffersize];set 
0190: 6e 65 77 20 5b 24 63 6d 64 20 7b 2a 7d 24 61 72  new [$cmd {*}$ar
01a0: 67 73 20 2d 63 68 61 6e 20 24 63 68 5d 3b 77 68  gs -chan $ch];wh
01b0: 69 6c 65 20 7b 21 5b 65 6f 66 20 24 6e 65 77 5d  ile {![eof $new]
01c0: 7d 20 7b 73 65 74 20 72 65 73 75 6c 74 20 5b 72  } {set result [r
01d0: 65 61 64 20 24 6e 65 77 20 24 62 73 69 7a 65 5d  ead $new $bsize]
01e0: 7d 3b 63 6c 6f 73 65 20 24 6e 65 77 3b 72 65 74  };close $new;ret
01f0: 75 72 6e 20 24 72 65 73 75 6c 74 7d 2c 2c 2c 2c  urn $result},,,,
0200: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 70 72  ,,,,,.command,pr
0210: 6f 63 20 61 63 63 75 6d 75 6c 61 74 65 20 7b 73  oc accumulate {s
0220: 74 72 69 6e 67 20 61 72 67 73 7d 20 7b 73 65 74  tring args} {set
0230: 20 63 6d 64 20 5b 7b 2a 7d 24 61 72 67 73 20 2d   cmd [{*}$args -
0240: 63 6f 6d 6d 61 6e 64 20 64 63 6d 64 5d 3b 24 63  command dcmd];$c
0250: 6d 64 20 75 70 64 61 74 65 20 5b 73 74 72 69 6e  md update [strin
0260: 67 20 72 61 6e 67 65 20 24 73 74 72 69 6e 67 20  g range $string 
0270: 30 20 32 30 5d 3b 24 63 6d 64 20 75 70 64 61 74  0 20];$cmd updat
0280: 65 20 5b 73 74 72 69 6e 67 20 72 61 6e 67 65 20  e [string range 
0290: 24 73 74 72 69 6e 67 20 32 31 20 65 6e 64 5d 3b  $string 21 end];
02a0: 72 65 74 75 72 6e 20 5b 24 63 6d 64 20 66 69 6e  return [$cmd fin
02b0: 61 6c 69 7a 65 5d 7d 2c 2c 2c 2c 2c 2c 2c 2c 2c  alize]},,,,,,,,,
02c0: 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  .,,,,,,,,,,.comm
02d0: 61 6e 64 2c 22 73 65 74 20 74 65 73 74 5f 64 61  and,"set test_da
02e0: 74 61 20 22 22 45 78 61 6d 70 6c 65 20 73 74 72  ta ""Example str
02f0: 69 6e 67 20 66 6f 72 20 6d 65 73 73 61 67 65 20  ing for message 
0300: 64 69 67 65 73 74 20 74 65 73 74 73 2e 5c 6e 22  digest tests.\n"
0310: 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  "",,,,,,,,,.comm
0320: 61 6e 64 2c 22 73 65 74 20 74 65 73 74 5f 66 69  and,"set test_fi
0330: 6c 65 20 22 22 6d 64 5f 64 61 74 61 2e 64 61 74  le ""md_data.dat
0340: 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  """,,,,,,,,,.com
0350: 6d 61 6e 64 2c 22 73 65 74 20 74 65 73 74 5f 6b  mand,"set test_k
0360: 65 79 20 22 22 45 78 61 6d 70 6c 65 20 6b 65 79  ey ""Example key
0370: 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  """,,,,,,,,,.com
0380: 6d 61 6e 64 2c 3a 3a 74 63 6c 74 65 73 74 3a 3a  mand,::tcltest::
0390: 6d 61 6b 65 46 69 6c 65 20 24 74 65 73 74 5f 64  makeFile $test_d
03a0: 61 74 61 20 24 74 65 73 74 5f 66 69 6c 65 2c 2c  ata $test_file,,
03b0: 2c 2c 2c 2c 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c  ,,,,,,,.,,,,,,,,
03c0: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73  ,,.command,# Tes
03d0: 74 20 64 69 67 65 73 74 20 73 68 6f 72 74 2d 63  t digest short-c
03e0: 75 74 20 63 6f 6d 6d 61 6e 64 73 2c 2c 2c 2c 2c  ut commands,,,,,
03f0: 2c 2c 2c 2c 0a 44 69 67 65 73 74 20 43 6d 64 73  ,,,,.Digest Cmds
0400: 2c 6d 64 34 20 63 6d 64 2c 2c 2c 3a 3a 74 6c 73  ,md4 cmd,,,::tls
0410: 3a 3a 6d 64 34 20 24 74 65 73 74 5f 64 61 74 61  ::md4 $test_data
0420: 2c 2c 2c 37 39 33 33 39 39 66 37 39 32 65 63 61  ,,,793399f792eca
0430: 32 37 35 32 63 36 61 66 33 32 33 34 62 61 37 30  2752c6af3234ba70
0440: 38 35 38 2c 2c 2c 0a 44 69 67 65 73 74 20 43 6d  858,,,.Digest Cm
0450: 64 73 2c 6d 64 35 20 63 6d 64 2c 2c 2c 3a 3a 74  ds,md5 cmd,,,::t
0460: 6c 73 3a 3a 6d 64 35 20 24 74 65 73 74 5f 64 61  ls::md5 $test_da
0470: 74 61 2c 2c 2c 39 36 32 62 66 30 38 30 33 62 34  ta,,,962bf0803b4
0480: 32 33 32 65 63 32 33 62 64 38 34 32 37 62 62 39  232ec23bd8427bb9
0490: 34 65 61 30 39 2c 2c 2c 0a 44 69 67 65 73 74 20  4ea09,,,.Digest 
04a0: 43 6d 64 73 2c 73 68 61 31 20 63 6d 64 2c 2c 2c  Cmds,sha1 cmd,,,
04b0: 3a 3a 74 6c 73 3a 3a 73 68 61 31 20 24 74 65 73  ::tls::sha1 $tes
04c0: 74 5f 64 61 74 61 2c 2c 2c 34 66 65 30 33 62 37  t_data,,,4fe03b7
04d0: 66 32 35 36 38 35 35 31 64 66 61 66 62 39 38 63  f2568551dfafb98c
04e0: 61 36 30 30 34 65 36 35 63 34 62 37 31 61 61 37  a6004e65c4b71aa7
04f0: 64 2c 2c 2c 0a 44 69 67 65 73 74 20 43 6d 64 73  d,,,.Digest Cmds
0500: 2c 73 68 61 32 35 36 20 63 6d 64 2c 2c 2c 3a 3a  ,sha256 cmd,,,::
0510: 74 6c 73 3a 3a 73 68 61 32 35 36 20 24 74 65 73  tls::sha256 $tes
0520: 74 5f 64 61 74 61 2c 2c 2c 39 64 33 35 37 38 66  t_data,,,9d3578f
0530: 63 31 33 38 32 30 35 63 66 30 65 65 34 62 34 63  c138205cf0ee4b4c
0540: 65 66 33 35 66 65 31 30 31 62 62 34 65 63 61 63  ef35fe101bb4ecac
0550: 37 62 31 36 31 34 63 31 38 65 36 66 61 34 38 62  7b1614c18e6fa48b
0560: 35 63 37 66 39 35 65 31 39 2c 2c 2c 0a 44 69 67  5c7f95e19,,,.Dig
0570: 65 73 74 20 43 6d 64 73 2c 73 68 61 35 31 32 20  est Cmds,sha512 
0580: 63 6d 64 2c 2c 2c 3a 3a 74 6c 73 3a 3a 73 68 61  cmd,,,::tls::sha
0590: 35 31 32 20 24 74 65 73 74 5f 64 61 74 61 2c 2c  512 $test_data,,
05a0: 2c 64 31 37 38 65 37 35 39 64 63 35 39 31 32 37  ,d178e759dc59127
05b0: 30 37 31 35 38 38 64 32 66 61 64 31 37 33 63 30  071588d2fad173c0
05c0: 36 32 33 38 64 38 37 65 38 30 30 61 36 34 30 33  6238d87e800a6403
05d0: 63 30 61 33 30 64 61 61 34 66 61 61 66 30 35 64  c0a30daa4faaf05d
05e0: 30 65 37 63 65 30 34 39 31 36 61 66 61 61 36 61  0e7ce04916afaa6a
05f0: 35 38 61 33 30 63 62 65 62 35 39 37 64 61 63 62  58a30cbeb597dacb
0600: 30 31 63 36 32 66 39 66 62 39 64 38 39 62 61 62  01c62f9fb9d89bab
0610: 39 64 61 36 33 30 63 36 39 39 65 34 38 31 36 66  9da630c699e4816f
0620: 31 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  1,,,.,,,,,,,,,,.
0630: 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73 74 20 64  command,# Test d
0640: 69 67 65 73 74 20 63 6f 6d 6d 61 6e 64 20 66 6f  igest command fo
0650: 72 20 63 68 61 6e 6e 65 6c 2c 2c 2c 2c 2c 2c 2c  r channel,,,,,,,
0660: 2c 2c 0a 44 69 67 65 73 74 20 43 68 61 6e 2c 6d  ,,.Digest Chan,m
0670: 64 34 2c 2c 2c 72 65 61 64 5f 63 68 61 6e 20 3a  d4,,,read_chan :
0680: 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74 5f 66  :tls::md $test_f
0690: 69 6c 65 20 2d 64 69 67 65 73 74 20 6d 64 34 2c  ile -digest md4,
06a0: 2c 2c 37 39 33 33 39 39 66 37 39 32 65 63 61 32  ,,793399f792eca2
06b0: 37 35 32 63 36 61 66 33 32 33 34 62 61 37 30 38  752c6af3234ba708
06c0: 35 38 2c 2c 2c 0a 44 69 67 65 73 74 20 43 68 61  58,,,.Digest Cha
06d0: 6e 2c 6d 64 35 2c 2c 2c 72 65 61 64 5f 63 68 61  n,md5,,,read_cha
06e0: 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73  n ::tls::md $tes
06f0: 74 5f 66 69 6c 65 20 2d 64 69 67 65 73 74 20 6d  t_file -digest m
0700: 64 35 2c 2c 2c 39 36 32 62 66 30 38 30 33 62 34  d5,,,962bf0803b4
0710: 32 33 32 65 63 32 33 62 64 38 34 32 37 62 62 39  232ec23bd8427bb9
0720: 34 65 61 30 39 2c 2c 2c 0a 44 69 67 65 73 74 20  4ea09,,,.Digest 
0730: 43 68 61 6e 2c 73 68 61 31 2c 2c 2c 72 65 61 64  Chan,sha1,,,read
0740: 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20  _chan ::tls::md 
0750: 24 74 65 73 74 5f 66 69 6c 65 20 2d 64 69 67 65  $test_file -dige
0760: 73 74 20 73 68 61 31 2c 2c 2c 34 66 65 30 33 62  st sha1,,,4fe03b
0770: 37 66 32 35 36 38 35 35 31 64 66 61 66 62 39 38  7f2568551dfafb98
0780: 63 61 36 30 30 34 65 36 35 63 34 62 37 31 61 61  ca6004e65c4b71aa
0790: 37 64 2c 2c 2c 0a 44 69 67 65 73 74 20 43 68 61  7d,,,.Digest Cha
07a0: 6e 2c 73 68 61 32 35 36 2c 2c 2c 72 65 61 64 5f  n,sha256,,,read_
07b0: 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d 64 20 24  chan ::tls::md $
07c0: 74 65 73 74 5f 66 69 6c 65 20 2d 64 69 67 65 73  test_file -diges
07d0: 74 20 73 68 61 32 35 36 2c 2c 2c 39 64 33 35 37  t sha256,,,9d357
07e0: 38 66 63 31 33 38 32 30 35 63 66 30 65 65 34 62  8fc138205cf0ee4b
07f0: 34 63 65 66 33 35 66 65 31 30 31 62 62 34 65 63  4cef35fe101bb4ec
0800: 61 63 37 62 31 36 31 34 63 31 38 65 36 66 61 34  ac7b1614c18e6fa4
0810: 38 62 35 63 37 66 39 35 65 31 39 2c 2c 2c 0a 44  8b5c7f95e19,,,.D
0820: 69 67 65 73 74 20 43 68 61 6e 2c 73 68 61 35 31  igest Chan,sha51
0830: 32 2c 2c 2c 72 65 61 64 5f 63 68 61 6e 20 3a 3a  2,,,read_chan ::
0840: 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74 5f 66 69  tls::md $test_fi
0850: 6c 65 20 2d 64 69 67 65 73 74 20 73 68 61 35 31  le -digest sha51
0860: 32 2c 2c 2c 64 31 37 38 65 37 35 39 64 63 35 39  2,,,d178e759dc59
0870: 31 32 37 30 37 31 35 38 38 64 32 66 61 64 31 37  127071588d2fad17
0880: 33 63 30 36 32 33 38 64 38 37 65 38 30 30 61 36  3c06238d87e800a6
0890: 34 30 33 63 30 61 33 30 64 61 61 34 66 61 61 66  403c0a30daa4faaf
08a0: 30 35 64 30 65 37 63 65 30 34 39 31 36 61 66 61  05d0e7ce04916afa
08b0: 61 36 61 35 38 61 33 30 63 62 65 62 35 39 37 64  a6a58a30cbeb597d
08c0: 61 63 62 30 31 63 36 32 66 39 66 62 39 64 38 39  acb01c62f9fb9d89
08d0: 62 61 62 39 64 61 36 33 30 63 36 39 39 65 34 38  bab9da630c699e48
08e0: 31 36 66 31 2c 2c 2c 0a 44 69 67 65 73 74 20 43  16f1,,,.Digest C
08f0: 68 61 6e 2c 6d 64 35 20 62 69 6e 2c 2c 2c 62 69  han,md5 bin,,,bi
0900: 6e 61 72 79 20 65 6e 63 6f 64 65 20 68 65 78 20  nary encode hex 
0910: 5b 72 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73  [read_chan ::tls
0920: 3a 3a 6d 64 20 24 74 65 73 74 5f 66 69 6c 65 20  ::md $test_file 
0930: 2d 62 69 6e 20 2d 64 69 67 65 73 74 20 6d 64 35  -bin -digest md5
0940: 5d 2c 2c 2c 39 36 32 62 66 30 38 30 33 62 34 32  ],,,962bf0803b42
0950: 33 32 65 63 32 33 62 64 38 34 32 37 62 62 39 34  32ec23bd8427bb94
0960: 65 61 30 39 2c 2c 2c 0a 44 69 67 65 73 74 20 43  ea09,,,.Digest C
0970: 68 61 6e 2c 6d 64 35 20 68 65 78 2c 2c 2c 72 65  han,md5 hex,,,re
0980: 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 6d  ad_chan ::tls::m
0990: 64 20 24 74 65 73 74 5f 66 69 6c 65 20 2d 68 65  d $test_file -he
09a0: 78 20 2d 64 69 67 65 73 74 20 6d 64 35 2c 2c 2c  x -digest md5,,,
09b0: 39 36 32 62 66 30 38 30 33 62 34 32 33 32 65 63  962bf0803b4232ec
09c0: 32 33 62 64 38 34 32 37 62 62 39 34 65 61 30 39  23bd8427bb94ea09
09d0: 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63  ,,,.,,,,,,,,,,.c
09e0: 6f 6d 6d 61 6e 64 2c 23 20 54 65 73 74 20 64 69  ommand,# Test di
09f0: 67 65 73 74 20 63 6f 6d 6d 61 6e 64 20 66 6f 72  gest command for
0a00: 20 6f 62 6a 65 63 74 20 63 6f 6d 6d 61 6e 64 2c   object command,
0a10: 2c 2c 2c 2c 2c 2c 2c 2c 0a 44 69 67 65 73 74 20  ,,,,,,,,.Digest 
0a20: 43 6f 6d 6d 61 6e 64 2c 6d 64 34 2c 2c 2c 61 63  Command,md4,,,ac
0a30: 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64  cumulate $test_d
0a40: 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64  ata ::tls::md -d
0a50: 69 67 65 73 74 20 6d 64 34 2c 2c 2c 37 39 33 33  igest md4,,,7933
0a60: 39 39 66 37 39 32 65 63 61 32 37 35 32 63 36 61  99f792eca2752c6a
0a70: 66 33 32 33 34 62 61 37 30 38 35 38 2c 2c 2c 0a  f3234ba70858,,,.
0a80: 44 69 67 65 73 74 20 43 6f 6d 6d 61 6e 64 2c 6d  Digest Command,m
0a90: 64 35 2c 2c 2c 61 63 63 75 6d 75 6c 61 74 65 20  d5,,,accumulate 
0aa0: 24 74 65 73 74 5f 64 61 74 61 20 3a 3a 74 6c 73  $test_data ::tls
0ab0: 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35  ::md -digest md5
0ac0: 2c 2c 2c 39 36 32 62 66 30 38 30 33 62 34 32 33  ,,,962bf0803b423
0ad0: 32 65 63 32 33 62 64 38 34 32 37 62 62 39 34 65  2ec23bd8427bb94e
0ae0: 61 30 39 2c 2c 2c 0a 44 69 67 65 73 74 20 43 6f  a09,,,.Digest Co
0af0: 6d 6d 61 6e 64 2c 73 68 61 31 2c 2c 2c 61 63 63  mmand,sha1,,,acc
0b00: 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64 61  umulate $test_da
0b10: 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69  ta ::tls::md -di
0b20: 67 65 73 74 20 73 68 61 31 2c 2c 2c 34 66 65 30  gest sha1,,,4fe0
0b30: 33 62 37 66 32 35 36 38 35 35 31 64 66 61 66 62  3b7f2568551dfafb
0b40: 39 38 63 61 36 30 30 34 65 36 35 63 34 62 37 31  98ca6004e65c4b71
0b50: 61 61 37 64 2c 2c 2c 0a 44 69 67 65 73 74 20 43  aa7d,,,.Digest C
0b60: 6f 6d 6d 61 6e 64 2c 73 68 61 32 35 36 2c 2c 2c  ommand,sha256,,,
0b70: 61 63 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74  accumulate $test
0b80: 5f 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20  _data ::tls::md 
0b90: 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 2c 2c  -digest sha256,,
0ba0: 2c 39 64 33 35 37 38 66 63 31 33 38 32 30 35 63  ,9d3578fc138205c
0bb0: 66 30 65 65 34 62 34 63 65 66 33 35 66 65 31 30  f0ee4b4cef35fe10
0bc0: 31 62 62 34 65 63 61 63 37 62 31 36 31 34 63 31  1bb4ecac7b1614c1
0bd0: 38 65 36 66 61 34 38 62 35 63 37 66 39 35 65 31  8e6fa48b5c7f95e1
0be0: 39 2c 2c 2c 0a 44 69 67 65 73 74 20 43 6f 6d 6d  9,,,.Digest Comm
0bf0: 61 6e 64 2c 73 68 61 35 31 32 2c 2c 2c 61 63 63  and,sha512,,,acc
0c00: 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64 61  umulate $test_da
0c10: 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69  ta ::tls::md -di
0c20: 67 65 73 74 20 73 68 61 35 31 32 2c 2c 2c 64 31  gest sha512,,,d1
0c30: 37 38 65 37 35 39 64 63 35 39 31 32 37 30 37 31  78e759dc59127071
0c40: 35 38 38 64 32 66 61 64 31 37 33 63 30 36 32 33  588d2fad173c0623
0c50: 38 64 38 37 65 38 30 30 61 36 34 30 33 63 30 61  8d87e800a6403c0a
0c60: 33 30 64 61 61 34 66 61 61 66 30 35 64 30 65 37  30daa4faaf05d0e7
0c70: 63 65 30 34 39 31 36 61 66 61 61 36 61 35 38 61  ce04916afaa6a58a
0c80: 33 30 63 62 65 62 35 39 37 64 61 63 62 30 31 63  30cbeb597dacb01c
0c90: 36 32 66 39 66 62 39 64 38 39 62 61 62 39 64 61  62f9fb9d89bab9da
0ca0: 36 33 30 63 36 39 39 65 34 38 31 36 66 31 2c 2c  630c699e4816f1,,
0cb0: 2c 0a 44 69 67 65 73 74 20 43 6f 6d 6d 61 6e 64  ,.Digest Command
0cc0: 2c 6d 64 35 20 62 69 6e 2c 2c 2c 62 69 6e 61 72  ,md5 bin,,,binar
0cd0: 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 61 63  y encode hex [ac
0ce0: 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64  cumulate $test_d
0cf0: 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64  ata ::tls::md -d
0d00: 69 67 65 73 74 20 6d 64 35 20 2d 62 69 6e 5d 2c  igest md5 -bin],
0d10: 2c 2c 39 36 32 62 66 30 38 30 33 62 34 32 33 32  ,,962bf0803b4232
0d20: 65 63 32 33 62 64 38 34 32 37 62 62 39 34 65 61  ec23bd8427bb94ea
0d30: 30 39 2c 2c 2c 0a 44 69 67 65 73 74 20 43 6f 6d  09,,,.Digest Com
0d40: 6d 61 6e 64 2c 6d 64 35 20 68 65 78 2c 2c 2c 61  mand,md5 hex,,,a
0d50: 63 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f  ccumulate $test_
0d60: 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d  data ::tls::md -
0d70: 64 69 67 65 73 74 20 6d 64 35 20 2d 68 65 78 2c  digest md5 -hex,
0d80: 2c 2c 39 36 32 62 66 30 38 30 33 62 34 32 33 32  ,,962bf0803b4232
0d90: 65 63 32 33 62 64 38 34 32 37 62 62 39 34 65 61  ec23bd8427bb94ea
0da0: 30 39 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c  09,,,.,,,,,,,,,,
0db0: 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73 74 20  .command,# Test 
0dc0: 64 69 67 65 73 74 20 63 6f 6d 6d 61 6e 64 20 66  digest command f
0dd0: 6f 72 20 64 61 74 61 20 73 68 6f 72 74 63 75 74  or data shortcut
0de0: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 44 69 67 65 73 74  ,,,,,,,,,.Digest
0df0: 20 44 61 74 61 2c 6d 64 34 2c 2c 2c 3a 3a 74 6c   Data,md4,,,::tl
0e00: 73 3a 3a 6d 64 20 6d 64 34 20 24 74 65 73 74 5f  s::md md4 $test_
0e10: 64 61 74 61 2c 2c 2c 37 39 33 33 39 39 66 37 39  data,,,793399f79
0e20: 32 65 63 61 32 37 35 32 63 36 61 66 33 32 33 34  2eca2752c6af3234
0e30: 62 61 37 30 38 35 38 2c 2c 2c 0a 44 69 67 65 73  ba70858,,,.Diges
0e40: 74 20 44 61 74 61 2c 6d 64 35 2c 2c 2c 3a 3a 74  t Data,md5,,,::t
0e50: 6c 73 3a 3a 6d 64 20 6d 64 35 20 24 74 65 73 74  ls::md md5 $test
0e60: 5f 64 61 74 61 2c 2c 2c 39 36 32 62 66 30 38 30  _data,,,962bf080
0e70: 33 62 34 32 33 32 65 63 32 33 62 64 38 34 32 37  3b4232ec23bd8427
0e80: 62 62 39 34 65 61 30 39 2c 2c 2c 0a 44 69 67 65  bb94ea09,,,.Dige
0e90: 73 74 20 44 61 74 61 2c 73 68 61 31 2c 2c 2c 3a  st Data,sha1,,,:
0ea0: 3a 74 6c 73 3a 3a 6d 64 20 73 68 61 31 20 24 74  :tls::md sha1 $t
0eb0: 65 73 74 5f 64 61 74 61 2c 2c 2c 34 66 65 30 33  est_data,,,4fe03
0ec0: 62 37 66 32 35 36 38 35 35 31 64 66 61 66 62 39  b7f2568551dfafb9
0ed0: 38 63 61 36 30 30 34 65 36 35 63 34 62 37 31 61  8ca6004e65c4b71a
0ee0: 61 37 64 2c 2c 2c 0a 44 69 67 65 73 74 20 44 61  a7d,,,.Digest Da
0ef0: 74 61 2c 73 68 61 32 35 36 2c 2c 2c 3a 3a 74 6c  ta,sha256,,,::tl
0f00: 73 3a 3a 6d 64 20 73 68 61 32 35 36 20 24 74 65  s::md sha256 $te
0f10: 73 74 5f 64 61 74 61 2c 2c 2c 39 64 33 35 37 38  st_data,,,9d3578
0f20: 66 63 31 33 38 32 30 35 63 66 30 65 65 34 62 34  fc138205cf0ee4b4
0f30: 63 65 66 33 35 66 65 31 30 31 62 62 34 65 63 61  cef35fe101bb4eca
0f40: 63 37 62 31 36 31 34 63 31 38 65 36 66 61 34 38  c7b1614c18e6fa48
0f50: 62 35 63 37 66 39 35 65 31 39 2c 2c 2c 0a 44 69  b5c7f95e19,,,.Di
0f60: 67 65 73 74 20 44 61 74 61 2c 73 68 61 35 31 32  gest Data,sha512
0f70: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 73 68 61  ,,,::tls::md sha
0f80: 35 31 32 20 24 74 65 73 74 5f 64 61 74 61 2c 2c  512 $test_data,,
0f90: 2c 64 31 37 38 65 37 35 39 64 63 35 39 31 32 37  ,d178e759dc59127
0fa0: 30 37 31 35 38 38 64 32 66 61 64 31 37 33 63 30  071588d2fad173c0
0fb0: 36 32 33 38 64 38 37 65 38 30 30 61 36 34 30 33  6238d87e800a6403
0fc0: 63 30 61 33 30 64 61 61 34 66 61 61 66 30 35 64  c0a30daa4faaf05d
0fd0: 30 65 37 63 65 30 34 39 31 36 61 66 61 61 36 61  0e7ce04916afaa6a
0fe0: 35 38 61 33 30 63 62 65 62 35 39 37 64 61 63 62  58a30cbeb597dacb
0ff0: 30 31 63 36 32 66 39 66 62 39 64 38 39 62 61 62  01c62f9fb9d89bab
1000: 39 64 61 36 33 30 63 36 39 39 65 34 38 31 36 66  9da630c699e4816f
1010: 31 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  1,,,.,,,,,,,,,,.
1020: 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73 74 20 64  command,# Test d
1030: 69 67 65 73 74 20 63 6f 6d 6d 61 6e 64 20 66 6f  igest command fo
1040: 72 20 64 61 74 61 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  r data,,,,,,,,,.
1050: 44 69 67 65 73 74 20 44 61 74 61 2c 6d 64 34 2c  Digest Data,md4,
1060: 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67  ,,::tls::md -dig
1070: 65 73 74 20 6d 64 34 20 2d 64 61 74 61 20 24 74  est md4 -data $t
1080: 65 73 74 5f 64 61 74 61 2c 2c 2c 37 39 33 33 39  est_data,,,79339
1090: 39 66 37 39 32 65 63 61 32 37 35 32 63 36 61 66  9f792eca2752c6af
10a0: 33 32 33 34 62 61 37 30 38 35 38 2c 2c 2c 0a 44  3234ba70858,,,.D
10b0: 69 67 65 73 74 20 44 61 74 61 2c 6d 64 35 2c 2c  igest Data,md5,,
10c0: 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65  ,::tls::md -dige
10d0: 73 74 20 6d 64 35 20 2d 64 61 74 61 20 24 74 65  st md5 -data $te
10e0: 73 74 5f 64 61 74 61 2c 2c 2c 39 36 32 62 66 30  st_data,,,962bf0
10f0: 38 30 33 62 34 32 33 32 65 63 32 33 62 64 38 34  803b4232ec23bd84
1100: 32 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a 44 69  27bb94ea09,,,.Di
1110: 67 65 73 74 20 44 61 74 61 2c 73 68 61 31 2c 2c  gest Data,sha1,,
1120: 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65  ,::tls::md -dige
1130: 73 74 20 73 68 61 31 20 2d 64 61 74 61 20 24 74  st sha1 -data $t
1140: 65 73 74 5f 64 61 74 61 2c 2c 2c 34 66 65 30 33  est_data,,,4fe03
1150: 62 37 66 32 35 36 38 35 35 31 64 66 61 66 62 39  b7f2568551dfafb9
1160: 38 63 61 36 30 30 34 65 36 35 63 34 62 37 31 61  8ca6004e65c4b71a
1170: 61 37 64 2c 2c 2c 0a 44 69 67 65 73 74 20 44 61  a7d,,,.Digest Da
1180: 74 61 2c 73 68 61 32 35 36 2c 2c 2c 3a 3a 74 6c  ta,sha256,,,::tl
1190: 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68  s::md -digest sh
11a0: 61 32 35 36 20 2d 64 61 74 61 20 24 74 65 73 74  a256 -data $test
11b0: 5f 64 61 74 61 2c 2c 2c 39 64 33 35 37 38 66 63  _data,,,9d3578fc
11c0: 31 33 38 32 30 35 63 66 30 65 65 34 62 34 63 65  138205cf0ee4b4ce
11d0: 66 33 35 66 65 31 30 31 62 62 34 65 63 61 63 37  f35fe101bb4ecac7
11e0: 62 31 36 31 34 63 31 38 65 36 66 61 34 38 62 35  b1614c18e6fa48b5
11f0: 63 37 66 39 35 65 31 39 2c 2c 2c 0a 44 69 67 65  c7f95e19,,,.Dige
1200: 73 74 20 44 61 74 61 2c 73 68 61 35 31 32 2c 2c  st Data,sha512,,
1210: 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65  ,::tls::md -dige
1220: 73 74 20 73 68 61 35 31 32 20 2d 64 61 74 61 20  st sha512 -data 
1230: 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 64 31 37  $test_data,,,d17
1240: 38 65 37 35 39 64 63 35 39 31 32 37 30 37 31 35  8e759dc591270715
1250: 38 38 64 32 66 61 64 31 37 33 63 30 36 32 33 38  88d2fad173c06238
1260: 64 38 37 65 38 30 30 61 36 34 30 33 63 30 61 33  d87e800a6403c0a3
1270: 30 64 61 61 34 66 61 61 66 30 35 64 30 65 37 63  0daa4faaf05d0e7c
1280: 65 30 34 39 31 36 61 66 61 61 36 61 35 38 61 33  e04916afaa6a58a3
1290: 30 63 62 65 62 35 39 37 64 61 63 62 30 31 63 36  0cbeb597dacb01c6
12a0: 32 66 39 66 62 39 64 38 39 62 61 62 39 64 61 36  2f9fb9d89bab9da6
12b0: 33 30 63 36 39 39 65 34 38 31 36 66 31 2c 2c 2c  30c699e4816f1,,,
12c0: 0a 44 69 67 65 73 74 20 44 61 74 61 2c 6d 64 35  .Digest Data,md5
12d0: 20 62 69 6e 2c 2c 2c 62 69 6e 61 72 79 20 65 6e   bin,,,binary en
12e0: 63 6f 64 65 20 68 65 78 20 5b 3a 3a 74 6c 73 3a  code hex [::tls:
12f0: 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35 20  :md -digest md5 
1300: 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 61  -data $test_data
1310: 20 2d 62 69 6e 5d 2c 2c 2c 39 36 32 62 66 30 38   -bin],,,962bf08
1320: 30 33 62 34 32 33 32 65 63 32 33 62 64 38 34 32  03b4232ec23bd842
1330: 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a 44 69 67  7bb94ea09,,,.Dig
1340: 65 73 74 20 44 61 74 61 2c 6d 64 35 20 68 65 78  est Data,md5 hex
1350: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69  ,,,::tls::md -di
1360: 67 65 73 74 20 6d 64 35 20 2d 64 61 74 61 20 24  gest md5 -data $
1370: 74 65 73 74 5f 64 61 74 61 20 2d 68 65 78 2c 2c  test_data -hex,,
1380: 2c 39 36 32 62 66 30 38 30 33 62 34 32 33 32 65  ,962bf0803b4232e
1390: 63 32 33 62 64 38 34 32 37 62 62 39 34 65 61 30  c23bd8427bb94ea0
13a0: 39 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  9,,,.,,,,,,,,,,.
13b0: 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73 74 20 64  command,# Test d
13c0: 69 67 65 73 74 20 63 6f 6d 6d 61 6e 64 20 66 6f  igest command fo
13d0: 72 20 66 69 6c 65 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  r file,,,,,,,,,.
13e0: 44 69 67 65 73 74 20 46 69 6c 65 2c 6d 64 34 2c  Digest File,md4,
13f0: 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67  ,,::tls::md -dig
1400: 65 73 74 20 6d 64 34 20 2d 66 69 6c 65 20 24 74  est md4 -file $t
1410: 65 73 74 5f 66 69 6c 65 2c 2c 2c 37 39 33 33 39  est_file,,,79339
1420: 39 66 37 39 32 65 63 61 32 37 35 32 63 36 61 66  9f792eca2752c6af
1430: 33 32 33 34 62 61 37 30 38 35 38 2c 2c 2c 0a 44  3234ba70858,,,.D
1440: 69 67 65 73 74 20 46 69 6c 65 2c 6d 64 35 2c 2c  igest File,md5,,
1450: 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65  ,::tls::md -dige
1460: 73 74 20 6d 64 35 20 2d 66 69 6c 65 20 24 74 65  st md5 -file $te
1470: 73 74 5f 66 69 6c 65 2c 2c 2c 39 36 32 62 66 30  st_file,,,962bf0
1480: 38 30 33 62 34 32 33 32 65 63 32 33 62 64 38 34  803b4232ec23bd84
1490: 32 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a 44 69  27bb94ea09,,,.Di
14a0: 67 65 73 74 20 46 69 6c 65 2c 73 68 61 31 2c 2c  gest File,sha1,,
14b0: 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65  ,::tls::md -dige
14c0: 73 74 20 73 68 61 31 20 2d 66 69 6c 65 20 24 74  st sha1 -file $t
14d0: 65 73 74 5f 66 69 6c 65 2c 2c 2c 34 66 65 30 33  est_file,,,4fe03
14e0: 62 37 66 32 35 36 38 35 35 31 64 66 61 66 62 39  b7f2568551dfafb9
14f0: 38 63 61 36 30 30 34 65 36 35 63 34 62 37 31 61  8ca6004e65c4b71a
1500: 61 37 64 2c 2c 2c 0a 44 69 67 65 73 74 20 46 69  a7d,,,.Digest Fi
1510: 6c 65 2c 73 68 61 32 35 36 2c 2c 2c 3a 3a 74 6c  le,sha256,,,::tl
1520: 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74 20 73 68  s::md -digest sh
1530: 61 32 35 36 20 2d 66 69 6c 65 20 24 74 65 73 74  a256 -file $test
1540: 5f 66 69 6c 65 2c 2c 2c 39 64 33 35 37 38 66 63  _file,,,9d3578fc
1550: 31 33 38 32 30 35 63 66 30 65 65 34 62 34 63 65  138205cf0ee4b4ce
1560: 66 33 35 66 65 31 30 31 62 62 34 65 63 61 63 37  f35fe101bb4ecac7
1570: 62 31 36 31 34 63 31 38 65 36 66 61 34 38 62 35  b1614c18e6fa48b5
1580: 63 37 66 39 35 65 31 39 2c 2c 2c 0a 44 69 67 65  c7f95e19,,,.Dige
1590: 73 74 20 46 69 6c 65 2c 73 68 61 35 31 32 2c 2c  st File,sha512,,
15a0: 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65  ,::tls::md -dige
15b0: 73 74 20 73 68 61 35 31 32 20 2d 66 69 6c 65 20  st sha512 -file 
15c0: 24 74 65 73 74 5f 66 69 6c 65 2c 2c 2c 64 31 37  $test_file,,,d17
15d0: 38 65 37 35 39 64 63 35 39 31 32 37 30 37 31 35  8e759dc591270715
15e0: 38 38 64 32 66 61 64 31 37 33 63 30 36 32 33 38  88d2fad173c06238
15f0: 64 38 37 65 38 30 30 61 36 34 30 33 63 30 61 33  d87e800a6403c0a3
1600: 30 64 61 61 34 66 61 61 66 30 35 64 30 65 37 63  0daa4faaf05d0e7c
1610: 65 30 34 39 31 36 61 66 61 61 36 61 35 38 61 33  e04916afaa6a58a3
1620: 30 63 62 65 62 35 39 37 64 61 63 62 30 31 63 36  0cbeb597dacb01c6
1630: 32 66 39 66 62 39 64 38 39 62 61 62 39 64 61 36  2f9fb9d89bab9da6
1640: 33 30 63 36 39 39 65 34 38 31 36 66 31 2c 2c 2c  30c699e4816f1,,,
1650: 0a 44 69 67 65 73 74 20 46 69 6c 65 2c 6d 64 35  .Digest File,md5
1660: 20 62 69 6e 2c 2c 2c 62 69 6e 61 72 79 20 65 6e   bin,,,binary en
1670: 63 6f 64 65 20 68 65 78 20 5b 3a 3a 74 6c 73 3a  code hex [::tls:
1680: 3a 6d 64 20 2d 64 69 67 65 73 74 20 6d 64 35 20  :md -digest md5 
1690: 2d 66 69 6c 65 20 24 74 65 73 74 5f 66 69 6c 65  -file $test_file
16a0: 20 2d 62 69 6e 5d 2c 2c 2c 39 36 32 62 66 30 38   -bin],,,962bf08
16b0: 30 33 62 34 32 33 32 65 63 32 33 62 64 38 34 32  03b4232ec23bd842
16c0: 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a 44 69 67  7bb94ea09,,,.Dig
16d0: 65 73 74 20 46 69 6c 65 2c 6d 64 35 20 68 65 78  est File,md5 hex
16e0: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69  ,,,::tls::md -di
16f0: 67 65 73 74 20 6d 64 35 20 2d 66 69 6c 65 20 24  gest md5 -file $
1700: 74 65 73 74 5f 66 69 6c 65 20 2d 68 65 78 2c 2c  test_file -hex,,
1710: 2c 39 36 32 62 66 30 38 30 33 62 34 32 33 32 65  ,962bf0803b4232e
1720: 63 32 33 62 64 38 34 32 37 62 62 39 34 65 61 30  c23bd8427bb94ea0
1730: 39 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  9,,,.,,,,,,,,,,.
1740: 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73 74 20 48  command,# Test H
1750: 4d 41 43 20 63 6f 6d 6d 61 6e 64 2c 2c 2c 2c 2c  MAC command,,,,,
1760: 2c 2c 2c 2c 0a 48 4d 41 43 2c 64 61 74 61 2c 2c  ,,,,.HMAC,data,,
1770: 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69  ,::tls::hmac -di
1780: 67 65 73 74 20 6d 64 35 20 2d 6b 65 79 20 24 74  gest md5 -key $t
1790: 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 20 24 74  est_key -data $t
17a0: 65 73 74 5f 64 61 74 61 2c 2c 2c 66 39 38 33 32  est_data,,,f9832
17b0: 37 65 66 33 65 32 30 61 62 36 64 33 38 38 66 36  7ef3e20ab6d388f6
17c0: 37 36 63 36 61 37 39 64 39 33 64 2c 2c 2c 0a 48  76c6a79d93d,,,.H
17d0: 4d 41 43 2c 66 69 6c 65 2c 2c 2c 3a 3a 74 6c 73  MAC,file,,,::tls
17e0: 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 6d  ::hmac -digest m
17f0: 64 35 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65  d5 -key $test_ke
1800: 79 20 2d 66 69 6c 65 20 24 74 65 73 74 5f 66 69  y -file $test_fi
1810: 6c 65 2c 2c 2c 66 39 38 33 32 37 65 66 33 65 32  le,,,f98327ef3e2
1820: 30 61 62 36 64 33 38 38 66 36 37 36 63 36 61 37  0ab6d388f676c6a7
1830: 39 64 39 33 64 2c 2c 2c 0a 48 4d 41 43 2c 63 68  9d93d,,,.HMAC,ch
1840: 61 6e 6e 65 6c 2c 2c 2c 72 65 61 64 5f 63 68 61  annel,,,read_cha
1850: 6e 20 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 24 74  n ::tls::hmac $t
1860: 65 73 74 5f 66 69 6c 65 20 2d 64 69 67 65 73 74  est_file -digest
1870: 20 6d 64 35 20 2d 6b 65 79 20 24 74 65 73 74 5f   md5 -key $test_
1880: 6b 65 79 2c 2c 2c 66 39 38 33 32 37 65 66 33 65  key,,,f98327ef3e
1890: 32 30 61 62 36 64 33 38 38 66 36 37 36 63 36 61  20ab6d388f676c6a
18a0: 37 39 64 39 33 64 2c 2c 2c 0a 48 4d 41 43 2c 63  79d93d,,,.HMAC,c
18b0: 6f 6d 6d 61 6e 64 2c 2c 2c 61 63 63 75 6d 75 6c  ommand,,,accumul
18c0: 61 74 65 20 24 74 65 73 74 5f 64 61 74 61 20 3a  ate $test_data :
18d0: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65  :tls::hmac -dige
18e0: 73 74 20 6d 64 35 20 2d 6b 65 79 20 24 74 65 73  st md5 -key $tes
18f0: 74 5f 6b 65 79 2c 2c 2c 66 39 38 33 32 37 65 66  t_key,,,f98327ef
1900: 33 65 32 30 61 62 36 64 33 38 38 66 36 37 36 63  3e20ab6d388f676c
1910: 36 61 37 39 64 39 33 64 2c 2c 2c 0a 48 4d 41 43  6a79d93d,,,.HMAC
1920: 2c 64 61 74 61 20 62 69 6e 2c 2c 2c 62 69 6e 61  ,data bin,,,bina
1930: 72 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 3a  ry encode hex [:
1940: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65  :tls::hmac -dige
1950: 73 74 20 6d 64 35 20 2d 62 69 6e 20 2d 6b 65 79  st md5 -bin -key
1960: 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61   $test_key -data
1970: 20 24 74 65 73 74 5f 64 61 74 61 5d 2c 2c 2c 66   $test_data],,,f
1980: 39 38 33 32 37 65 66 33 65 32 30 61 62 36 64 33  98327ef3e20ab6d3
1990: 38 38 66 36 37 36 63 36 61 37 39 64 39 33 64 2c  88f676c6a79d93d,
19a0: 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f  ,,.,,,,,,,,,,.co
19b0: 6d 6d 61 6e 64 2c 23 20 54 65 73 74 20 44 69 67  mmand,# Test Dig
19c0: 65 73 74 20 48 4d 41 43 2c 2c 2c 2c 2c 2c 2c 2c  est HMAC,,,,,,,,
19d0: 2c 0a 44 69 67 65 73 74 20 48 4d 41 43 2c 64 61  ,.Digest HMAC,da
19e0: 74 61 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d  ta,,,::tls::md -
19f0: 64 69 67 65 73 74 20 6d 64 35 20 2d 6b 65 79 20  digest md5 -key 
1a00: 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 20  $test_key -data 
1a10: 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 66 39 38  $test_data,,,f98
1a20: 33 32 37 65 66 33 65 32 30 61 62 36 64 33 38 38  327ef3e20ab6d388
1a30: 66 36 37 36 63 36 61 37 39 64 39 33 64 2c 2c 2c  f676c6a79d93d,,,
1a40: 0a 44 69 67 65 73 74 20 48 4d 41 43 2c 66 69 6c  .Digest HMAC,fil
1a50: 65 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64  e,,,::tls::md -d
1a60: 69 67 65 73 74 20 6d 64 35 20 2d 6b 65 79 20 24  igest md5 -key $
1a70: 74 65 73 74 5f 6b 65 79 20 2d 66 69 6c 65 20 24  test_key -file $
1a80: 74 65 73 74 5f 66 69 6c 65 2c 2c 2c 66 39 38 33  test_file,,,f983
1a90: 32 37 65 66 33 65 32 30 61 62 36 64 33 38 38 66  27ef3e20ab6d388f
1aa0: 36 37 36 63 36 61 37 39 64 39 33 64 2c 2c 2c 0a  676c6a79d93d,,,.
1ab0: 44 69 67 65 73 74 20 48 4d 41 43 2c 63 68 61 6e  Digest HMAC,chan
1ac0: 6e 65 6c 2c 2c 2c 72 65 61 64 5f 63 68 61 6e 20  nel,,,read_chan 
1ad0: 3a 3a 74 6c 73 3a 3a 6d 64 20 24 74 65 73 74 5f  ::tls::md $test_
1ae0: 66 69 6c 65 20 2d 64 69 67 65 73 74 20 6d 64 35  file -digest md5
1af0: 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 2c   -key $test_key,
1b00: 2c 2c 66 39 38 33 32 37 65 66 33 65 32 30 61 62  ,,f98327ef3e20ab
1b10: 36 64 33 38 38 66 36 37 36 63 36 61 37 39 64 39  6d388f676c6a79d9
1b20: 33 64 2c 2c 2c 0a 44 69 67 65 73 74 20 48 4d 41  3d,,,.Digest HMA
1b30: 43 2c 63 6f 6d 6d 61 6e 64 2c 2c 2c 61 63 63 75  C,command,,,accu
1b40: 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64 61 74  mulate $test_dat
1b50: 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67  a ::tls::md -dig
1b60: 65 73 74 20 6d 64 35 20 2d 6b 65 79 20 24 74 65  est md5 -key $te
1b70: 73 74 5f 6b 65 79 2c 2c 2c 66 39 38 33 32 37 65  st_key,,,f98327e
1b80: 66 33 65 32 30 61 62 36 64 33 38 38 66 36 37 36  f3e20ab6d388f676
1b90: 63 36 61 37 39 64 39 33 64 2c 2c 2c 0a 44 69 67  c6a79d93d,,,.Dig
1ba0: 65 73 74 20 48 4d 41 43 2c 64 61 74 61 20 62 69  est HMAC,data bi
1bb0: 6e 2c 2c 2c 62 69 6e 61 72 79 20 65 6e 63 6f 64  n,,,binary encod
1bc0: 65 20 68 65 78 20 5b 3a 3a 74 6c 73 3a 3a 6d 64  e hex [::tls::md
1bd0: 20 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 62 69   -digest md5 -bi
1be0: 6e 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79  n -key $test_key
1bf0: 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74   -data $test_dat
1c00: 61 5d 2c 2c 2c 66 39 38 33 32 37 65 66 33 65 32  a],,,f98327ef3e2
1c10: 30 61 62 36 64 33 38 38 66 36 37 36 63 36 61 37  0ab6d388f676c6a7
1c20: 39 64 39 33 64 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c  9d93d,,,.,,,,,,,
1c30: 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65  ,,,.command,# Te
1c40: 73 74 20 43 4d 41 43 20 63 6f 6d 6d 61 6e 64 2c  st CMAC command,
1c50: 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64  ,,,,,,,,.command
1c60: 2c 22 73 65 74 20 74 65 73 74 5f 63 69 70 68 65  ,"set test_ciphe
1c70: 72 20 22 22 61 65 73 2d 31 32 38 2d 63 62 63 22  r ""aes-128-cbc"
1c80: 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  "",,,,,,,,,.comm
1c90: 61 6e 64 2c 22 73 65 74 20 74 65 73 74 5f 6b 65  and,"set test_ke
1ca0: 79 20 22 22 45 78 61 6d 70 6c 65 20 6b 65 79 20  y ""Example key 
1cb0: 31 32 33 34 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c  1234""",,,,,,,,,
1cc0: 0a 43 4d 41 43 2c 64 61 74 61 2c 2c 2c 3a 3a 74  .CMAC,data,,,::t
1cd0: 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72  ls::cmac -cipher
1ce0: 20 24 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b   $test_cipher -k
1cf0: 65 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61  ey $test_key -da
1d00: 74 61 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c  ta $test_data,,,
1d10: 62 61 66 35 63 32 30 66 39 39 37 33 65 32 64 36  baf5c20f9973e2d6
1d20: 30 36 62 31 34 63 37 65 66 64 66 65 35 32 66 61  06b14c7efdfe52fa
1d30: 2c 2c 2c 0a 43 4d 41 43 2c 66 69 6c 65 2c 2c 2c  ,,,.CMAC,file,,,
1d40: 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70  ::tls::cmac -cip
1d50: 68 65 72 20 24 74 65 73 74 5f 63 69 70 68 65 72  her $test_cipher
1d60: 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20   -key $test_key 
1d70: 2d 66 69 6c 65 20 24 74 65 73 74 5f 66 69 6c 65  -file $test_file
1d80: 2c 2c 2c 62 61 66 35 63 32 30 66 39 39 37 33 65  ,,,baf5c20f9973e
1d90: 32 64 36 30 36 62 31 34 63 37 65 66 64 66 65 35  2d606b14c7efdfe5
1da0: 32 66 61 2c 2c 2c 0a 43 4d 41 43 2c 63 68 61 6e  2fa,,,.CMAC,chan
1db0: 6e 65 6c 2c 2c 2c 72 65 61 64 5f 63 68 61 6e 20  nel,,,read_chan 
1dc0: 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 24 74 65 73  ::tls::cmac $tes
1dd0: 74 5f 66 69 6c 65 20 2d 63 69 70 68 65 72 20 24  t_file -cipher $
1de0: 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79  test_cipher -key
1df0: 20 24 74 65 73 74 5f 6b 65 79 2c 2c 2c 62 61 66   $test_key,,,baf
1e00: 35 63 32 30 66 39 39 37 33 65 32 64 36 30 36 62  5c20f9973e2d606b
1e10: 31 34 63 37 65 66 64 66 65 35 32 66 61 2c 2c 2c  14c7efdfe52fa,,,
1e20: 0a 43 4d 41 43 2c 63 6f 6d 6d 61 6e 64 2c 2c 2c  .CMAC,command,,,
1e30: 61 63 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74  accumulate $test
1e40: 5f 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 63 6d 61  _data ::tls::cma
1e50: 63 20 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f  c -cipher $test_
1e60: 63 69 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73  cipher -key $tes
1e70: 74 5f 6b 65 79 2c 2c 2c 62 61 66 35 63 32 30 66  t_key,,,baf5c20f
1e80: 39 39 37 33 65 32 64 36 30 36 62 31 34 63 37 65  9973e2d606b14c7e
1e90: 66 64 66 65 35 32 66 61 2c 2c 2c 0a 43 4d 41 43  fdfe52fa,,,.CMAC
1ea0: 2c 64 61 74 61 20 62 69 6e 2c 2c 2c 62 69 6e 61  ,data bin,,,bina
1eb0: 72 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 3a  ry encode hex [:
1ec0: 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 62 69 6e 20  :tls::cmac -bin 
1ed0: 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f 63 69  -cipher $test_ci
1ee0: 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74 5f  pher -key $test_
1ef0: 6b 65 79 20 2d 64 61 74 61 20 24 74 65 73 74 5f  key -data $test_
1f00: 64 61 74 61 5d 2c 2c 2c 62 61 66 35 63 32 30 66  data],,,baf5c20f
1f10: 39 39 37 33 65 32 64 36 30 36 62 31 34 63 37 65  9973e2d606b14c7e
1f20: 66 64 66 65 35 32 66 61 2c 2c 2c 0a 2c 2c 2c 2c  fdfe52fa,,,.,,,,
1f30: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23  ,,,,,,.command,#
1f40: 20 54 65 73 74 20 44 69 67 65 73 74 20 43 4d 41   Test Digest CMA
1f50: 43 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 44 69 67 65 73  C,,,,,,,,,.Diges
1f60: 74 20 43 4d 41 43 2c 64 61 74 61 2c 2c 2c 3a 3a  t CMAC,data,,,::
1f70: 74 6c 73 3a 3a 6d 64 20 2d 63 69 70 68 65 72 20  tls::md -cipher 
1f80: 24 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65  $test_cipher -ke
1f90: 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74  y $test_key -dat
1fa0: 61 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 62  a $test_data,,,b
1fb0: 61 66 35 63 32 30 66 39 39 37 33 65 32 64 36 30  af5c20f9973e2d60
1fc0: 36 62 31 34 63 37 65 66 64 66 65 35 32 66 61 2c  6b14c7efdfe52fa,
1fd0: 2c 2c 0a 44 69 67 65 73 74 20 43 4d 41 43 2c 66  ,,.Digest CMAC,f
1fe0: 69 6c 65 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20  ile,,,::tls::md 
1ff0: 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f 63 69  -cipher $test_ci
2000: 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74 5f  pher -key $test_
2010: 6b 65 79 20 2d 66 69 6c 65 20 24 74 65 73 74 5f  key -file $test_
2020: 66 69 6c 65 2c 2c 2c 62 61 66 35 63 32 30 66 39  file,,,baf5c20f9
2030: 39 37 33 65 32 64 36 30 36 62 31 34 63 37 65 66  973e2d606b14c7ef
2040: 64 66 65 35 32 66 61 2c 2c 2c 0a 44 69 67 65 73  dfe52fa,,,.Diges
2050: 74 20 43 4d 41 43 2c 63 68 61 6e 6e 65 6c 2c 2c  t CMAC,channel,,
2060: 2c 72 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73  ,read_chan ::tls
2070: 3a 3a 6d 64 20 24 74 65 73 74 5f 66 69 6c 65 20  ::md $test_file 
2080: 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f 63 69  -cipher $test_ci
2090: 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74 5f  pher -key $test_
20a0: 6b 65 79 2c 2c 2c 62 61 66 35 63 32 30 66 39 39  key,,,baf5c20f99
20b0: 37 33 65 32 64 36 30 36 62 31 34 63 37 65 66 64  73e2d606b14c7efd
20c0: 66 65 35 32 66 61 2c 2c 2c 0a 44 69 67 65 73 74  fe52fa,,,.Digest
20d0: 20 43 4d 41 43 2c 63 6f 6d 6d 61 6e 64 2c 2c 2c   CMAC,command,,,
20e0: 61 63 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74  accumulate $test
20f0: 5f 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 6d 64 20  _data ::tls::md 
2100: 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f 63 69  -cipher $test_ci
2110: 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74 5f  pher -key $test_
2120: 6b 65 79 2c 2c 2c 62 61 66 35 63 32 30 66 39 39  key,,,baf5c20f99
2130: 37 33 65 32 64 36 30 36 62 31 34 63 37 65 66 64  73e2d606b14c7efd
2140: 66 65 35 32 66 61 2c 2c 2c 0a 44 69 67 65 73 74  fe52fa,,,.Digest
2150: 20 43 4d 41 43 2c 64 61 74 61 20 62 69 6e 2c 2c   CMAC,data bin,,
2160: 2c 62 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 68  ,binary encode h
2170: 65 78 20 5b 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 62  ex [::tls::md -b
2180: 69 6e 20 2d 63 69 70 68 65 72 20 24 74 65 73 74  in -cipher $test
2190: 5f 63 69 70 68 65 72 20 2d 6b 65 79 20 24 74 65  _cipher -key $te
21a0: 73 74 5f 6b 65 79 20 2d 64 61 74 61 20 24 74 65  st_key -data $te
21b0: 73 74 5f 64 61 74 61 5d 2c 2c 2c 62 61 66 35 63  st_data],,,baf5c
21c0: 32 30 66 39 39 37 33 65 32 64 36 30 36 62 31 34  20f9973e2d606b14
21d0: 63 37 65 66 64 66 65 35 32 66 61 2c 2c 2c 0a 2c  c7efdfe52fa,,,.,
21e0: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e  ,,,,,,,,,.comman
21f0: 64 2c 23 20 54 65 73 74 20 4d 41 43 20 63 6f 6d  d,# Test MAC com
2200: 6d 61 6e 64 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4d 41  mand,,,,,,,,,.MA
2210: 43 2c 48 4d 41 43 2c 6e 65 77 5f 61 70 69 2c 2c  C,HMAC,new_api,,
2220: 3a 3a 74 6c 73 3a 3a 6d 61 63 20 2d 64 69 67 65  ::tls::mac -dige
2230: 73 74 20 73 68 61 32 35 36 20 2d 6d 61 63 20 68  st sha256 -mac h
2240: 6d 61 63 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b  mac -key $test_k
2250: 65 79 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64  ey -data $test_d
2260: 61 74 61 2c 2c 2c 34 39 38 65 66 35 65 66 37 31  ata,,,498ef5ef71
2270: 34 32 34 66 38 31 64 61 37 34 39 39 62 32 65 65  424f81da7499b2ee
2280: 61 65 31 64 30 61 33 34 38 64 64 34 30 62 38 34  ae1d0a348dd40b84
2290: 31 65 61 32 37 62 64 64 65 34 39 34 66 36 62 63  1ea27bdde494f6bc
22a0: 39 30 34 36 66 66 2c 2c 2c 0a 4d 41 43 2c 43 4d  9046ff,,,.MAC,CM
22b0: 41 43 2c 6e 65 77 5f 61 70 69 2c 2c 3a 3a 74 6c  AC,new_api,,::tl
22c0: 73 3a 3a 6d 61 63 20 2d 63 69 70 68 65 72 20 24  s::mac -cipher $
22d0: 74 65 73 74 5f 63 69 70 68 65 72 20 2d 64 69 67  test_cipher -dig
22e0: 65 73 74 20 73 68 61 32 35 36 20 2d 6d 61 63 20  est sha256 -mac 
22f0: 63 6d 61 63 20 2d 6b 65 79 20 24 74 65 73 74 5f  cmac -key $test_
2300: 6b 65 79 20 2d 64 61 74 61 20 24 74 65 73 74 5f  key -data $test_
2310: 64 61 74 61 2c 2c 2c 34 39 38 65 66 35 65 66 37  data,,,498ef5ef7
2320: 31 34 32 34 66 38 31 64 61 37 34 39 39 62 32 65  1424f81da7499b2e
2330: 65 61 65 31 64 30 61 33 34 38 64 64 34 30 62 38  eae1d0a348dd40b8
2340: 34 31 65 61 32 37 62 64 64 65 34 39 34 66 36 62  41ea27bdde494f6b
2350: 63 39 30 34 36 66 66 2c 2c 2c 0a 2c 2c 2c 2c 2c  c9046ff,,,.,,,,,
2360: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20  ,,,,,.command,# 
2370: 44 69 67 65 73 74 20 45 72 72 6f 72 20 43 61 73  Digest Error Cas
2380: 65 73 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 44 69 67 65  es,,,,,,,,,.Dige
2390: 73 74 20 45 72 72 6f 72 73 2c 54 6f 6f 20 66 65  st Errors,Too fe
23a0: 77 20 61 72 67 73 2c 2c 2c 3a 3a 74 6c 73 3a 3a  w args,,,::tls::
23b0: 6d 64 2c 2c 2c 22 77 72 6f 6e 67 20 23 20 61 72  md,,,"wrong # ar
23c0: 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 22  gs: should be ""
23d0: 3a 3a 74 6c 73 3a 3a 6d 64 20 3f 2d 62 69 6e 7c  ::tls::md ?-bin|
23e0: 2d 68 65 78 3f 20 3f 2d 63 69 70 68 65 72 20 6e  -hex? ?-cipher n
23f0: 61 6d 65 3f 20 3f 2d 64 69 67 65 73 74 20 6e 61  ame? ?-digest na
2400: 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65 79 3f 20 3f  me? ?-key key? ?
2410: 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b 2d 63 68 61  -mac name? [-cha
2420: 6e 6e 65 6c 20 63 68 61 6e 20 7c 20 2d 63 6f 6d  nnel chan | -com
2430: 6d 61 6e 64 20 63 6d 64 4e 61 6d 65 20 7c 20 2d  mand cmdName | -
2440: 66 69 6c 65 20 66 69 6c 65 6e 61 6d 65 20 7c 20  file filename | 
2450: 3f 2d 64 61 74 61 3f 20 64 61 74 61 5d 22 22 22  ?-data? data]"""
2460: 2c 2c 2c 31 0a 44 69 67 65 73 74 20 45 72 72 6f  ,,,1.Digest Erro
2470: 72 73 2c 54 6f 6f 20 6d 61 6e 79 20 61 72 67 73  rs,Too many args
2480: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 74 6f 6f  ,,,::tls::md too
2490: 20 6d 61 6e 79 20 63 6f 6d 6d 61 6e 64 20 6c 69   many command li
24a0: 6e 65 20 61 72 67 73 20 74 6f 20 70 61 73 73 20  ne args to pass 
24b0: 74 68 65 20 74 65 73 74 20 77 69 74 68 6f 75 74  the test without
24c0: 20 61 6e 20 65 72 72 6f 72 20 6f 72 20 66 61 69   an error or fai
24d0: 6c 69 6e 67 2c 2c 2c 22 77 72 6f 6e 67 20 23 20  ling,,,"wrong # 
24e0: 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20  args: should be 
24f0: 22 22 3a 3a 74 6c 73 3a 3a 6d 64 20 3f 2d 62 69  ""::tls::md ?-bi
2500: 6e 7c 2d 68 65 78 3f 20 3f 2d 63 69 70 68 65 72  n|-hex? ?-cipher
2510: 20 6e 61 6d 65 3f 20 3f 2d 64 69 67 65 73 74 20   name? ?-digest 
2520: 6e 61 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65 79 3f  name? ?-key key?
2530: 20 3f 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b 2d 63   ?-mac name? [-c
2540: 68 61 6e 6e 65 6c 20 63 68 61 6e 20 7c 20 2d 63  hannel chan | -c
2550: 6f 6d 6d 61 6e 64 20 63 6d 64 4e 61 6d 65 20 7c  ommand cmdName |
2560: 20 2d 66 69 6c 65 20 66 69 6c 65 6e 61 6d 65 20   -file filename 
2570: 7c 20 3f 2d 64 61 74 61 3f 20 64 61 74 61 5d 22  | ?-data? data]"
2580: 22 22 2c 2c 2c 31 0a 44 69 67 65 73 74 20 45 72  "",,,1.Digest Er
2590: 72 6f 72 73 2c 49 6e 76 61 6c 69 64 20 64 69 67  rors,Invalid dig
25a0: 65 73 74 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20  est,,,::tls::md 
25b0: 62 6f 67 75 73 20 64 61 74 61 2c 2c 2c 22 49 6e  bogus data,,,"In
25c0: 76 61 6c 69 64 20 64 69 67 65 73 74 20 22 22 62  valid digest ""b
25d0: 6f 67 75 73 22 22 22 2c 2c 2c 31 0a 44 69 67 65  ogus""",,,1.Dige
25e0: 73 74 20 45 72 72 6f 72 73 2c 49 6e 76 61 6c 69  st Errors,Invali
25f0: 64 20 64 69 67 65 73 74 20 41 72 67 2c 2c 2c 3a  d digest Arg,,,:
2600: 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65 73 74  :tls::md -digest
2610: 20 62 6f 67 75 73 20 2d 64 61 74 61 20 64 61 74   bogus -data dat
2620: 61 2c 2c 2c 22 49 6e 76 61 6c 69 64 20 64 69 67  a,,,"Invalid dig
2630: 65 73 74 20 22 22 62 6f 67 75 73 22 22 22 2c 2c  est ""bogus""",,
2640: 2c 31 0a 44 69 67 65 73 74 20 45 72 72 6f 72 73  ,1.Digest Errors
2650: 2c 4e 6f 20 64 69 67 65 73 74 2c 2c 2c 3a 3a 74  ,No digest,,,::t
2660: 6c 73 3a 3a 6d 64 20 2d 68 65 78 20 2d 64 61 74  ls::md -hex -dat
2670: 61 20 76 61 6c 75 65 2c 2c 2c 4e 6f 20 64 69 67  a value,,,No dig
2680: 65 73 74 20 73 70 65 63 69 66 69 65 64 2c 2c 2c  est specified,,,
2690: 31 0a 44 69 67 65 73 74 20 45 72 72 6f 72 73 2c  1.Digest Errors,
26a0: 49 6e 76 61 6c 69 64 20 6f 70 74 69 6f 6e 2c 2c  Invalid option,,
26b0: 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64 69 67 65  ,::tls::md -dige
26c0: 73 74 20 73 68 61 32 35 36 20 2d 62 6f 67 75 73  st sha256 -bogus
26d0: 20 76 61 6c 75 65 2c 2c 2c 22 62 61 64 20 6f 70   value,,,"bad op
26e0: 74 69 6f 6e 20 22 22 2d 62 6f 67 75 73 22 22 3a  tion ""-bogus"":
26f0: 20 6d 75 73 74 20 62 65 20 2d 62 69 6e 2c 20 2d   must be -bin, -
2700: 63 68 61 6e 6e 65 6c 2c 20 2d 63 69 70 68 65 72  channel, -cipher
2710: 2c 20 2d 63 6f 6d 6d 61 6e 64 2c 20 2d 64 61 74  , -command, -dat
2720: 61 2c 20 2d 64 69 67 65 73 74 2c 20 2d 66 69 6c  a, -digest, -fil
2730: 65 2c 20 2d 66 69 6c 65 6e 61 6d 65 2c 20 2d 68  e, -filename, -h
2740: 65 78 2c 20 2d 6b 65 79 2c 20 6f 72 20 2d 6d 61  ex, -key, or -ma
2750: 63 22 2c 2c 2c 31 0a 44 69 67 65 73 74 20 45 72  c",,,1.Digest Er
2760: 72 6f 72 73 2c 49 6e 76 61 6c 69 64 20 66 69 6c  rors,Invalid fil
2770: 65 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64  e,,,::tls::md -d
2780: 69 67 65 73 74 20 73 68 61 32 35 36 20 2d 66 69  igest sha256 -fi
2790: 6c 65 20 62 6f 67 75 73 2c 2c 2c 22 63 6f 75 6c  le bogus,,,"coul
27a0: 64 6e 27 74 20 6f 70 65 6e 20 22 22 62 6f 67 75  dn't open ""bogu
27b0: 73 22 22 3a 20 6e 6f 20 73 75 63 68 20 66 69 6c  s"": no such fil
27c0: 65 20 6f 72 20 64 69 72 65 63 74 6f 72 79 22 2c  e or directory",
27d0: 2c 2c 31 0a 44 69 67 65 73 74 20 45 72 72 6f 72  ,,1.Digest Error
27e0: 73 2c 49 6e 76 61 6c 69 64 20 63 68 61 6e 6e 65  s,Invalid channe
27f0: 6c 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d 64 20 2d 64  l,,,::tls::md -d
2800: 69 67 65 73 74 20 73 68 61 32 35 36 20 2d 63 68  igest sha256 -ch
2810: 61 6e 6e 65 6c 20 62 6f 67 75 73 2c 2c 2c 22 63  annel bogus,,,"c
2820: 61 6e 20 6e 6f 74 20 66 69 6e 64 20 63 68 61 6e  an not find chan
2830: 6e 65 6c 20 6e 61 6d 65 64 20 22 22 62 6f 67 75  nel named ""bogu
2840: 73 22 22 22 2c 2c 2c 31 0a 2c 2c 2c 2c 2c 2c 2c  s""",,,1.,,,,,,,
2850: 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 43 4d  ,,,.command,# CM
2860: 41 43 20 45 72 72 6f 72 20 43 61 73 65 73 2c 2c  AC Error Cases,,
2870: 2c 2c 2c 2c 2c 2c 2c 0a 43 4d 41 43 20 45 72 72  ,,,,,,,.CMAC Err
2880: 6f 72 73 2c 54 6f 6f 20 66 65 77 20 61 72 67 73  ors,Too few args
2890: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d 61 63 2c 2c  ,,,::tls::cmac,,
28a0: 2c 22 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20  ,"wrong # args: 
28b0: 73 68 6f 75 6c 64 20 62 65 20 22 22 3a 3a 74 6c  should be ""::tl
28c0: 73 3a 3a 63 6d 61 63 20 3f 2d 62 69 6e 7c 2d 68  s::cmac ?-bin|-h
28d0: 65 78 3f 20 3f 2d 63 69 70 68 65 72 20 6e 61 6d  ex? ?-cipher nam
28e0: 65 3f 20 3f 2d 64 69 67 65 73 74 20 6e 61 6d 65  e? ?-digest name
28f0: 3f 20 3f 2d 6b 65 79 20 6b 65 79 3f 20 3f 2d 6d  ? ?-key key? ?-m
2900: 61 63 20 6e 61 6d 65 3f 20 5b 2d 63 68 61 6e 6e  ac name? [-chann
2910: 65 6c 20 63 68 61 6e 20 7c 20 2d 63 6f 6d 6d 61  el chan | -comma
2920: 6e 64 20 63 6d 64 4e 61 6d 65 20 7c 20 2d 66 69  nd cmdName | -fi
2930: 6c 65 20 66 69 6c 65 6e 61 6d 65 20 7c 20 3f 2d  le filename | ?-
2940: 64 61 74 61 3f 20 64 61 74 61 5d 22 22 22 2c 2c  data? data]""",,
2950: 2c 31 0a 43 4d 41 43 20 45 72 72 6f 72 73 2c 4e  ,1.CMAC Errors,N
2960: 6f 20 63 69 70 68 65 72 2c 2c 2c 3a 3a 74 6c 73  o cipher,,,::tls
2970: 3a 3a 63 6d 61 63 20 2d 68 65 78 20 2d 64 61 74  ::cmac -hex -dat
2980: 61 20 76 61 6c 75 65 2c 2c 2c 4e 6f 20 63 69 70  a value,,,No cip
2990: 68 65 72 20 73 70 65 63 69 66 69 65 64 2c 2c 2c  her specified,,,
29a0: 31 0a 43 4d 41 43 20 45 72 72 6f 72 73 2c 4e 6f  1.CMAC Errors,No
29b0: 20 6b 65 79 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d   key,,,::tls::cm
29c0: 61 63 20 2d 63 69 70 68 65 72 20 24 74 65 73 74  ac -cipher $test
29d0: 5f 63 69 70 68 65 72 20 2d 64 61 74 61 20 76 61  _cipher -data va
29e0: 6c 75 65 2c 2c 2c 4e 6f 20 6b 65 79 20 73 70 65  lue,,,No key spe
29f0: 63 69 66 69 65 64 2c 2c 2c 31 0a 43 4d 41 43 20  cified,,,1.CMAC 
2a00: 45 72 72 6f 72 73 2c 49 6e 76 61 6c 69 64 20 63  Errors,Invalid c
2a10: 69 70 68 65 72 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63  ipher,,,::tls::c
2a20: 6d 61 63 20 2d 63 69 70 68 65 72 20 62 6f 67 75  mac -cipher bogu
2a30: 73 20 2d 64 61 74 61 20 76 61 6c 75 65 2c 2c 2c  s -data value,,,
2a40: 22 49 6e 76 61 6c 69 64 20 63 69 70 68 65 72 20  "Invalid cipher 
2a50: 22 22 62 6f 67 75 73 22 22 22 2c 2c 2c 31 0a 2c  ""bogus""",,,1.,
2a60: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e  ,,,,,,,,,.comman
2a70: 64 2c 23 20 48 4d 41 43 20 45 72 72 6f 72 20 43  d,# HMAC Error C
2a80: 61 73 65 73 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 48 4d  ases,,,,,,,,,.HM
2a90: 41 43 20 45 72 72 6f 72 73 2c 54 6f 6f 20 66 65  AC Errors,Too fe
2aa0: 77 20 61 72 67 73 2c 2c 2c 3a 3a 74 6c 73 3a 3a  w args,,,::tls::
2ab0: 68 6d 61 63 2c 2c 2c 22 77 72 6f 6e 67 20 23 20  hmac,,,"wrong # 
2ac0: 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20  args: should be 
2ad0: 22 22 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 3f 2d  ""::tls::hmac ?-
2ae0: 62 69 6e 7c 2d 68 65 78 3f 20 3f 2d 63 69 70 68  bin|-hex? ?-ciph
2af0: 65 72 20 6e 61 6d 65 3f 20 3f 2d 64 69 67 65 73  er name? ?-diges
2b00: 74 20 6e 61 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65  t name? ?-key ke
2b10: 79 3f 20 3f 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b  y? ?-mac name? [
2b20: 2d 63 68 61 6e 6e 65 6c 20 63 68 61 6e 20 7c 20  -channel chan | 
2b30: 2d 63 6f 6d 6d 61 6e 64 20 63 6d 64 4e 61 6d 65  -command cmdName
2b40: 20 7c 20 2d 66 69 6c 65 20 66 69 6c 65 6e 61 6d   | -file filenam
2b50: 65 20 7c 20 3f 2d 64 61 74 61 3f 20 64 61 74 61  e | ?-data? data
2b60: 5d 22 22 22 2c 2c 2c 31 0a 48 4d 41 43 20 45 72  ]""",,,1.HMAC Er
2b70: 72 6f 72 73 2c 4e 6f 20 64 69 67 65 73 74 2c 2c  rors,No digest,,
2b80: 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 68 65  ,::tls::hmac -he
2b90: 78 20 2d 64 61 74 61 20 76 61 6c 75 65 2c 2c 2c  x -data value,,,
2ba0: 4e 6f 20 64 69 67 65 73 74 20 73 70 65 63 69 66  No digest specif
2bb0: 69 65 64 2c 2c 2c 31 0a 48 4d 41 43 20 45 72 72  ied,,,1.HMAC Err
2bc0: 6f 72 73 2c 4e 6f 20 6b 65 79 2c 2c 2c 3a 3a 74  ors,No key,,,::t
2bd0: 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74  ls::hmac -digest
2be0: 20 73 68 61 32 35 36 20 2d 64 61 74 61 20 76 61   sha256 -data va
2bf0: 6c 75 65 2c 2c 2c 4e 6f 20 6b 65 79 20 73 70 65  lue,,,No key spe
2c00: 63 69 66 69 65 64 2c 2c 2c 31 0a 2c 2c 2c 2c 2c  cified,,,1.,,,,,
2c10: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20  ,,,,,.command,# 
2c20: 4d 41 43 20 45 72 72 6f 72 20 43 61 73 65 73 2c  MAC Error Cases,
2c30: 2c 2c 2c 2c 2c 2c 2c 2c 0a 4d 41 43 20 45 72 72  ,,,,,,,,.MAC Err
2c40: 6f 72 73 2c 54 6f 6f 20 66 65 77 20 61 72 67 73  ors,Too few args
2c50: 2c 6e 65 77 5f 61 70 69 2c 2c 3a 3a 74 6c 73 3a  ,new_api,,::tls:
2c60: 3a 6d 6d 61 63 2c 2c 2c 22 77 72 6f 6e 67 20 23  :mmac,,,"wrong #
2c70: 20 61 72 67 73 3a 20 73 68 6f 75 6c 64 20 62 65   args: should be
2c80: 20 22 22 3a 3a 74 6c 73 3a 3a 6d 61 63 20 3f 2d   ""::tls::mac ?-
2c90: 62 69 6e 7c 2d 68 65 78 3f 20 3f 2d 63 69 70 68  bin|-hex? ?-ciph
2ca0: 65 72 20 6e 61 6d 65 3f 20 3f 2d 64 69 67 65 73  er name? ?-diges
2cb0: 74 20 6e 61 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65  t name? ?-key ke
2cc0: 79 3f 20 3f 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b  y? ?-mac name? [
2cd0: 2d 63 68 61 6e 6e 65 6c 20 63 68 61 6e 20 7c 20  -channel chan | 
2ce0: 2d 63 6f 6d 6d 61 6e 64 20 63 6d 64 4e 61 6d 65  -command cmdName
2cf0: 20 7c 20 2d 66 69 6c 65 20 66 69 6c 65 6e 61 6d   | -file filenam
2d00: 65 20 7c 20 3f 2d 64 61 74 61 3f 20 64 61 74 61  e | ?-data? data
2d10: 5d 22 22 22 2c 2c 2c 31 0a 4d 41 43 20 45 72 72  ]""",,,1.MAC Err
2d20: 6f 72 73 2c 4e 6f 20 6b 65 79 2c 6e 65 77 5f 61  ors,No key,new_a
2d30: 70 69 2c 2c 3a 3a 74 6c 73 3a 3a 6d 61 63 20 2d  pi,,::tls::mac -
2d40: 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d 64  digest sha256 -d
2d50: 61 74 61 20 76 61 6c 75 65 2c 2c 2c 4e 6f 20 6b  ata value,,,No k
2d60: 65 79 20 73 70 65 63 69 66 69 65 64 2c 2c 2c 31  ey specified,,,1
2d70: 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  .,,,,,,,,,,.comm
2d80: 61 6e 64 2c 23 20 52 46 43 20 34 32 33 31 20 48  and,# RFC 4231 H
2d90: 4d 41 43 20 45 78 61 6d 70 6c 65 73 20 54 65 73  MAC Examples Tes
2da0: 74 20 43 61 73 65 20 23 31 2c 2c 2c 2c 2c 2c 2c  t Case #1,,,,,,,
2db0: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20  ,,.command,"set 
2dc0: 6b 65 79 20 5b 62 69 6e 61 72 79 20 64 65 63 6f  key [binary deco
2dd0: 64 65 20 68 65 78 20 5b 73 74 72 69 6e 67 20 72  de hex [string r
2de0: 65 70 65 61 74 20 22 22 30 62 22 22 20 32 30 5d  epeat ""0b"" 20]
2df0: 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  ]",,,,,,,,,.comm
2e00: 61 6e 64 2c 22 73 65 74 20 64 61 74 61 20 22 22  and,"set data ""
2e10: 48 69 20 54 68 65 72 65 22 22 22 2c 2c 2c 2c 2c  Hi There""",,,,,
2e20: 2c 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 31  ,,,,.RFC4231 TC1
2e30: 2c 73 68 61 32 32 34 2c 2c 2c 3a 3a 74 6c 73 3a  ,sha224,,,::tls:
2e40: 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68  :hmac -digest sh
2e50: 61 32 32 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d  a224 -key $key -
2e60: 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 38 39 36  data $data,,,896
2e70: 66 62 31 31 32 38 61 62 62 64 66 31 39 36 38 33  fb1128abbdf19683
2e80: 32 31 30 37 63 64 34 39 64 66 33 33 66 34 37 62  2107cd49df33f47b
2e90: 34 62 31 31 36 39 39 31 32 62 61 34 66 35 33 36  4b1169912ba4f536
2ea0: 38 34 62 32 32 2c 2c 2c 0a 52 46 43 34 32 33 31  84b22,,,.RFC4231
2eb0: 20 54 43 31 2c 73 68 61 32 35 36 2c 2c 2c 3a 3a   TC1,sha256,,,::
2ec0: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73  tls::hmac -diges
2ed0: 74 20 73 68 61 32 35 36 20 2d 6b 65 79 20 24 6b  t sha256 -key $k
2ee0: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c  ey -data $data,,
2ef0: 2c 62 30 33 34 34 63 36 31 64 38 64 62 33 38 35  ,b0344c61d8db385
2f00: 33 35 63 61 38 61 66 63 65 61 66 30 62 66 31 32  35ca8afceaf0bf12
2f10: 62 38 38 31 64 63 32 30 30 63 39 38 33 33 64 61  b881dc200c9833da
2f20: 37 32 36 65 39 33 37 36 63 32 65 33 32 63 66 66  726e9376c2e32cff
2f30: 37 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 31  7,,,.RFC4231 TC1
2f40: 2c 73 68 61 33 38 34 2c 2c 2c 3a 3a 74 6c 73 3a  ,sha384,,,::tls:
2f50: 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68  :hmac -digest sh
2f60: 61 33 38 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d  a384 -key $key -
2f70: 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 61 66 64  data $data,,,afd
2f80: 30 33 39 34 34 64 38 34 38 39 35 36 32 36 62 30  03944d84895626b0
2f90: 38 32 35 66 34 61 62 34 36 39 30 37 66 31 35 66  825f4ab46907f15f
2fa0: 39 64 61 64 62 65 34 31 30 31 65 63 36 38 32 61  9dadbe4101ec682a
2fb0: 61 30 33 34 63 37 63 65 62 63 35 39 63 66 61 65  a034c7cebc59cfae
2fc0: 61 39 65 61 39 30 37 36 65 64 65 37 66 34 61 66  a9ea9076ede7f4af
2fd0: 31 35 32 65 38 62 32 66 61 39 63 62 36 2c 2c 2c  152e8b2fa9cb6,,,
2fe0: 0a 52 46 43 34 32 33 31 20 54 43 31 2c 73 68 61  .RFC4231 TC1,sha
2ff0: 35 31 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61  512,,,::tls::hma
3000: 63 20 2d 64 69 67 65 73 74 20 73 68 61 35 31 32  c -digest sha512
3010: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61   -key $key -data
3020: 20 24 64 61 74 61 2c 2c 2c 38 37 61 61 37 63 64   $data,,,87aa7cd
3030: 65 61 35 65 66 36 31 39 64 34 66 66 30 62 34 32  ea5ef619d4ff0b42
3040: 34 31 61 31 64 36 63 62 30 32 33 37 39 66 34 65  41a1d6cb02379f4e
3050: 32 63 65 34 65 63 32 37 38 37 61 64 30 62 33 30  2ce4ec2787ad0b30
3060: 35 34 35 65 31 37 63 64 65 64 61 61 38 33 33 62  545e17cdedaa833b
3070: 37 64 36 62 38 61 37 30 32 30 33 38 62 32 37 34  7d6b8a702038b274
3080: 65 61 65 61 33 66 34 65 34 62 65 39 64 39 31 34  eaea3f4e4be9d914
3090: 65 65 62 36 31 66 31 37 30 32 65 36 39 36 63 32  eeb61f1702e696c2
30a0: 30 33 61 31 32 36 38 35 34 2c 2c 2c 0a 2c 2c 2c  03a126854,,,.,,,
30b0: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
30c0: 23 20 52 46 43 20 34 32 33 31 20 48 4d 41 43 20  # RFC 4231 HMAC 
30d0: 45 78 61 6d 70 6c 65 73 20 54 65 73 74 20 43 61  Examples Test Ca
30e0: 73 65 20 23 32 20 2d 20 54 65 73 74 20 77 69 74  se #2 - Test wit
30f0: 68 20 61 20 6b 65 79 20 73 68 6f 72 74 65 72 20  h a key shorter 
3100: 74 68 61 6e 20 74 68 65 20 6c 65 6e 67 74 68 20  than the length 
3110: 6f 66 20 74 68 65 20 48 4d 41 43 20 6f 75 74 70  of the HMAC outp
3120: 75 74 2e 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  ut.,,,,,,,,,.com
3130: 6d 61 6e 64 2c 22 73 65 74 20 6b 65 79 20 22 22  mand,"set key ""
3140: 4a 65 66 65 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c  Jefe""",,,,,,,,,
3150: 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 64 61  .command,"set da
3160: 74 61 20 22 22 77 68 61 74 20 64 6f 20 79 61 20  ta ""what do ya 
3170: 77 61 6e 74 20 66 6f 72 20 6e 6f 74 68 69 6e 67  want for nothing
3180: 3f 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 52 46  ?""",,,,,,,,,.RF
3190: 43 34 32 33 31 20 54 43 32 2c 73 68 61 32 32 34  C4231 TC2,sha224
31a0: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d  ,,,::tls::hmac -
31b0: 64 69 67 65 73 74 20 73 68 61 32 32 34 20 2d 6b  digest sha224 -k
31c0: 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64  ey $key -data $d
31d0: 61 74 61 2c 2c 2c 61 33 30 65 30 31 30 39 38 62  ata,,,a30e01098b
31e0: 63 36 64 62 62 66 34 35 36 39 30 66 33 61 37 65  c6dbbf45690f3a7e
31f0: 39 65 36 64 30 66 38 62 62 65 61 32 61 33 39 65  9e6d0f8bbea2a39e
3200: 36 31 34 38 30 30 38 66 64 30 35 65 34 34 2c 2c  6148008fd05e44,,
3210: 2c 0a 52 46 43 34 32 33 31 20 54 43 32 2c 73 68  ,.RFC4231 TC2,sh
3220: 61 32 35 36 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d  a256,,,::tls::hm
3230: 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 32 35  ac -digest sha25
3240: 36 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74  6 -key $key -dat
3250: 61 20 24 64 61 74 61 2c 2c 2c 35 62 64 63 63 31  a $data,,,5bdcc1
3260: 34 36 62 66 36 30 37 35 34 65 36 61 30 34 32 34  46bf60754e6a0424
3270: 32 36 30 38 39 35 37 35 63 37 35 61 30 30 33 66  26089575c75a003f
3280: 30 38 39 64 32 37 33 39 38 33 39 64 65 63 35 38  089d2739839dec58
3290: 62 39 36 34 65 63 33 38 34 33 2c 2c 2c 0a 52 46  b964ec3843,,,.RF
32a0: 43 34 32 33 31 20 54 43 32 2c 73 68 61 33 38 34  C4231 TC2,sha384
32b0: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d  ,,,::tls::hmac -
32c0: 64 69 67 65 73 74 20 73 68 61 33 38 34 20 2d 6b  digest sha384 -k
32d0: 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64  ey $key -data $d
32e0: 61 74 61 2c 2c 2c 61 66 34 35 64 32 65 33 37 36  ata,,,af45d2e376
32f0: 34 38 34 30 33 31 36 31 37 66 37 38 64 32 62 35  484031617f78d2b5
3300: 38 61 36 62 31 62 39 63 37 65 66 34 36 34 66 35  8a6b1b9c7ef464f5
3310: 61 30 31 62 34 37 65 34 32 65 63 33 37 33 36 33  a01b47e42ec37363
3320: 32 32 34 34 35 65 38 65 32 32 34 30 63 61 35 65  22445e8e2240ca5e
3330: 36 39 65 32 63 37 38 62 33 32 33 39 65 63 66 61  69e2c78b3239ecfa
3340: 62 32 31 36 34 39 2c 2c 2c 0a 52 46 43 34 32 33  b21649,,,.RFC423
3350: 31 20 54 43 32 2c 73 68 61 35 31 32 2c 2c 2c 3a  1 TC2,sha512,,,:
3360: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65  :tls::hmac -dige
3370: 73 74 20 73 68 61 35 31 32 20 2d 6b 65 79 20 24  st sha512 -key $
3380: 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c  key -data $data,
3390: 2c 2c 31 36 34 62 37 61 37 62 66 63 66 38 31 39  ,,164b7a7bfcf819
33a0: 65 32 65 33 39 35 66 62 65 37 33 62 35 36 65 30  e2e395fbe73b56e0
33b0: 61 33 38 37 62 64 36 34 32 32 32 65 38 33 31 66  a387bd64222e831f
33c0: 64 36 31 30 32 37 30 63 64 37 65 61 32 35 30 35  d610270cd7ea2505
33d0: 35 34 39 37 35 38 62 66 37 35 63 30 35 61 39 39  549758bf75c05a99
33e0: 34 61 36 64 30 33 34 66 36 35 66 38 66 30 65 36  4a6d034f65f8f0e6
33f0: 66 64 63 61 65 61 62 31 61 33 34 64 34 61 36 62  fdcaeab1a34d4a6b
3400: 34 62 36 33 36 65 30 37 30 61 33 38 62 63 65 37  4b636e070a38bce7
3410: 33 37 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c  37,,,.,,,,,,,,,,
3420: 0a 63 6f 6d 6d 61 6e 64 2c 23 20 52 46 43 20 34  .command,# RFC 4
3430: 32 33 31 20 48 4d 41 43 20 45 78 61 6d 70 6c 65  231 HMAC Example
3440: 73 20 54 65 73 74 20 43 61 73 65 20 23 33 20 2d  s Test Case #3 -
3450: 20 54 65 73 74 20 77 69 74 68 20 61 20 63 6f 6d   Test with a com
3460: 62 69 6e 65 64 20 6c 65 6e 67 74 68 20 6f 66 20  bined length of 
3470: 6b 65 79 20 61 6e 64 20 64 61 74 61 20 74 68 61  key and data tha
3480: 74 20 69 73 20 6c 61 72 67 65 72 20 74 68 61 6e  t is larger than
3490: 20 36 34 20 62 79 74 65 73 20 28 3d 20 62 6c 6f   64 bytes (= blo
34a0: 63 6b 2d 73 69 7a 65 20 6f 66 20 53 48 41 2d 32  ck-size of SHA-2
34b0: 32 34 20 61 6e 64 20 53 48 41 2d 32 35 36 29 2e  24 and SHA-256).
34c0: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e  ,,,,,,,,,.comman
34d0: 64 2c 22 73 65 74 20 6b 65 79 20 5b 62 69 6e 61  d,"set key [bina
34e0: 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 5b 73  ry decode hex [s
34f0: 74 72 69 6e 67 20 72 65 70 65 61 74 20 22 22 61  tring repeat ""a
3500: 61 22 22 20 32 30 5d 5d 22 2c 2c 2c 2c 2c 2c 2c  a"" 20]]",,,,,,,
3510: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20  ,,.command,"set 
3520: 64 61 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63  data [binary dec
3530: 6f 64 65 20 68 65 78 20 5b 73 74 72 69 6e 67 20  ode hex [string 
3540: 72 65 70 65 61 74 20 22 22 64 64 22 22 20 35 30  repeat ""dd"" 50
3550: 5d 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 52 46 43  ]]",,,,,,,,,.RFC
3560: 34 32 33 31 20 54 43 33 2c 73 68 61 32 32 34 2c  4231 TC3,sha224,
3570: 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64  ,,::tls::hmac -d
3580: 69 67 65 73 74 20 73 68 61 32 32 34 20 2d 6b 65  igest sha224 -ke
3590: 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61  y $key -data $da
35a0: 74 61 2c 2c 2c 37 66 62 33 63 62 33 35 38 38 63  ta,,,7fb3cb3588c
35b0: 36 63 31 66 36 66 66 61 39 36 39 34 64 37 64 36  6c1f6ffa9694d7d6
35c0: 61 64 32 36 34 39 33 36 35 62 30 63 31 66 36 35  ad2649365b0c1f65
35d0: 64 36 39 64 31 65 63 38 33 33 33 65 61 2c 2c 2c  d69d1ec8333ea,,,
35e0: 0a 52 46 43 34 32 33 31 20 54 43 33 2c 73 68 61  .RFC4231 TC3,sha
35f0: 32 35 36 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61  256,,,::tls::hma
3600: 63 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 36  c -digest sha256
3610: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61   -key $key -data
3620: 20 24 64 61 74 61 2c 2c 2c 37 37 33 65 61 39 31   $data,,,773ea91
3630: 65 33 36 38 30 30 65 34 36 38 35 34 64 62 38 65  e36800e46854db8e
3640: 62 64 30 39 31 38 31 61 37 32 39 35 39 30 39 38  bd09181a72959098
3650: 62 33 65 66 38 63 31 32 32 64 39 36 33 35 35 31  b3ef8c122d963551
3660: 34 63 65 64 35 36 35 66 65 2c 2c 2c 0a 52 46 43  4ced565fe,,,.RFC
3670: 34 32 33 31 20 54 43 33 2c 73 68 61 33 38 34 2c  4231 TC3,sha384,
3680: 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64  ,,::tls::hmac -d
3690: 69 67 65 73 74 20 73 68 61 33 38 34 20 2d 6b 65  igest sha384 -ke
36a0: 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61  y $key -data $da
36b0: 74 61 2c 2c 2c 38 38 30 36 32 36 30 38 64 33 65  ta,,,88062608d3e
36c0: 36 61 64 38 61 30 61 61 32 61 63 65 30 31 34 63  6ad8a0aa2ace014c
36d0: 38 61 38 36 66 30 61 61 36 33 35 64 39 34 37 61  8a86f0aa635d947a
36e0: 63 39 66 65 62 65 38 33 65 66 34 65 35 35 39 36  c9febe83ef4e5596
36f0: 36 31 34 34 62 32 61 35 61 62 33 39 64 63 31 33  6144b2a5ab39dc13
3700: 38 31 34 62 39 34 65 33 61 62 36 65 31 30 31 61  814b94e3ab6e101a
3710: 33 34 66 32 37 2c 2c 2c 0a 52 46 43 34 32 33 31  34f27,,,.RFC4231
3720: 20 54 43 33 2c 73 68 61 35 31 32 2c 2c 2c 3a 3a   TC3,sha512,,,::
3730: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73  tls::hmac -diges
3740: 74 20 73 68 61 35 31 32 20 2d 6b 65 79 20 24 6b  t sha512 -key $k
3750: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c  ey -data $data,,
3760: 2c 66 61 37 33 62 30 30 38 39 64 35 36 61 32 38  ,fa73b0089d56a28
3770: 34 65 66 62 30 66 30 37 35 36 63 38 39 30 62 65  4efb0f0756c890be
3780: 39 62 31 62 35 64 62 64 64 38 65 65 38 31 61 33  9b1b5dbdd8ee81a3
3790: 36 35 35 66 38 33 65 33 33 62 32 32 37 39 64 33  655f83e33b2279d3
37a0: 39 62 66 33 65 38 34 38 32 37 39 61 37 32 32 63  9bf3e848279a722c
37b0: 38 30 36 62 34 38 35 61 34 37 65 36 37 63 38 30  806b485a47e67c80
37c0: 37 62 39 34 36 61 33 33 37 62 65 65 38 39 34 32  7b946a337bee8942
37d0: 36 37 34 32 37 38 38 35 39 65 31 33 32 39 32 66  674278859e13292f
37e0: 62 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  b,,,.,,,,,,,,,,.
37f0: 63 6f 6d 6d 61 6e 64 2c 23 20 52 46 43 20 34 32  command,# RFC 42
3800: 33 31 20 48 4d 41 43 20 45 78 61 6d 70 6c 65 73  31 HMAC Examples
3810: 20 54 65 73 74 20 43 61 73 65 20 23 34 20 2d 20   Test Case #4 - 
3820: 54 65 73 74 20 77 69 74 68 20 61 20 63 6f 6d 62  Test with a comb
3830: 69 6e 65 64 20 6c 65 6e 67 74 68 20 6f 66 20 6b  ined length of k
3840: 65 79 20 61 6e 64 20 64 61 74 61 20 74 68 61 74  ey and data that
3850: 20 69 73 20 6c 61 72 67 65 72 20 74 68 61 6e 20   is larger than 
3860: 36 34 20 62 79 74 65 73 20 28 3d 20 62 6c 6f 63  64 bytes (= bloc
3870: 6b 2d 73 69 7a 65 20 6f 66 20 53 48 41 2d 32 32  k-size of SHA-22
3880: 34 20 61 6e 64 20 53 48 41 2d 32 35 36 29 2e 2c  4 and SHA-256).,
3890: 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64  ,,,,,,,,.command
38a0: 2c 22 73 65 74 20 6b 65 79 20 5b 62 69 6e 61 72  ,"set key [binar
38b0: 79 20 64 65 63 6f 64 65 20 68 65 78 20 22 22 30  y decode hex ""0
38c0: 31 30 32 30 33 30 34 30 35 30 36 30 37 30 38 30  1020304050607080
38d0: 39 30 61 30 62 30 63 30 64 30 65 30 66 31 30 31  90a0b0c0d0e0f101
38e0: 31 31 32 31 33 31 34 31 35 31 36 31 37 31 38 31  1121314151617181
38f0: 39 22 22 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63  9""]",,,,,,,,,.c
3900: 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 64 61 74 61  ommand,"set data
3910: 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20   [binary decode 
3920: 68 65 78 20 5b 73 74 72 69 6e 67 20 72 65 70 65  hex [string repe
3930: 61 74 20 22 22 63 64 22 22 20 35 30 5d 5d 22 2c  at ""cd"" 50]]",
3940: 2c 2c 2c 2c 2c 2c 2c 2c 0a 52 46 43 34 32 33 31  ,,,,,,,,.RFC4231
3950: 20 54 43 34 2c 73 68 61 32 32 34 2c 2c 2c 3a 3a   TC4,sha224,,,::
3960: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73  tls::hmac -diges
3970: 74 20 73 68 61 32 32 34 20 2d 6b 65 79 20 24 6b  t sha224 -key $k
3980: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c  ey -data $data,,
3990: 2c 36 63 31 31 35 30 36 38 37 34 30 31 33 63 61  ,6c11506874013ca
39a0: 63 36 61 32 61 62 63 31 62 62 33 38 32 36 32 37  c6a2abc1bb382627
39b0: 63 65 63 36 61 39 30 64 38 36 65 66 63 30 31 32  cec6a90d86efc012
39c0: 64 65 37 61 66 65 63 35 61 2c 2c 2c 0a 52 46 43  de7afec5a,,,.RFC
39d0: 34 32 33 31 20 54 43 34 2c 73 68 61 32 35 36 2c  4231 TC4,sha256,
39e0: 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64  ,,::tls::hmac -d
39f0: 69 67 65 73 74 20 73 68 61 32 35 36 20 2d 6b 65  igest sha256 -ke
3a00: 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61  y $key -data $da
3a10: 74 61 2c 2c 2c 38 32 35 35 38 61 33 38 39 61 34  ta,,,82558a389a4
3a20: 34 33 63 30 65 61 34 63 63 38 31 39 38 39 39 66  43c0ea4cc819899f
3a30: 32 30 38 33 61 38 35 66 30 66 61 61 33 65 35 37  2083a85f0faa3e57
3a40: 38 66 38 30 37 37 61 32 65 33 66 66 34 36 37 32  8f8077a2e3ff4672
3a50: 39 36 36 35 62 2c 2c 2c 0a 52 46 43 34 32 33 31  9665b,,,.RFC4231
3a60: 20 54 43 34 2c 73 68 61 33 38 34 2c 2c 2c 3a 3a   TC4,sha384,,,::
3a70: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73  tls::hmac -diges
3a80: 74 20 73 68 61 33 38 34 20 2d 6b 65 79 20 24 6b  t sha384 -key $k
3a90: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c  ey -data $data,,
3aa0: 2c 33 65 38 61 36 39 62 37 37 38 33 63 32 35 38  ,3e8a69b7783c258
3ab0: 35 31 39 33 33 61 62 36 32 39 30 61 66 36 63 61  51933ab6290af6ca
3ac0: 37 37 61 39 39 38 31 34 38 30 38 35 30 30 30 39  77a9981480850009
3ad0: 63 63 35 35 37 37 63 36 65 31 66 35 37 33 62 34  cc5577c6e1f573b4
3ae0: 65 36 38 30 31 64 64 32 33 63 34 61 37 64 36 37  e6801dd23c4a7d67
3af0: 39 63 63 66 38 61 33 38 36 63 36 37 34 63 66 66  9ccf8a386c674cff
3b00: 62 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 34  b,,,.RFC4231 TC4
3b10: 2c 73 68 61 35 31 32 2c 2c 2c 3a 3a 74 6c 73 3a  ,sha512,,,::tls:
3b20: 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68  :hmac -digest sh
3b30: 61 35 31 32 20 2d 6b 65 79 20 24 6b 65 79 20 2d  a512 -key $key -
3b40: 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 62 30 62  data $data,,,b0b
3b50: 61 34 36 35 36 33 37 34 35 38 63 36 39 39 30 65  a465637458c6990e
3b60: 35 61 38 63 35 66 36 31 64 34 61 66 37 65 35 37  5a8c5f61d4af7e57
3b70: 36 64 39 37 66 66 39 34 62 38 37 32 64 65 37 36  6d97ff94b872de76
3b80: 66 38 30 35 30 33 36 31 65 65 33 64 62 61 39 31  f8050361ee3dba91
3b90: 63 61 35 63 31 31 61 61 32 35 65 62 34 64 36 37  ca5c11aa25eb4d67
3ba0: 39 32 37 35 63 63 35 37 38 38 30 36 33 61 35 66  9275cc5788063a5f
3bb0: 31 39 37 34 31 31 32 30 63 34 66 32 64 65 32 61  19741120c4f2de2a
3bc0: 64 65 62 65 62 31 30 61 32 39 38 64 64 2c 2c 2c  debeb10a298dd,,,
3bd0: 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  .,,,,,,,,,,.comm
3be0: 61 6e 64 2c 23 20 52 46 43 20 34 32 33 31 20 48  and,# RFC 4231 H
3bf0: 4d 41 43 20 45 78 61 6d 70 6c 65 73 20 54 65 73  MAC Examples Tes
3c00: 74 20 43 61 73 65 20 23 35 20 2d 20 54 65 73 74  t Case #5 - Test
3c10: 20 77 69 74 68 20 61 20 74 72 75 6e 63 61 74 69   with a truncati
3c20: 6f 6e 20 6f 66 20 6f 75 74 70 75 74 20 74 6f 20  on of output to 
3c30: 31 32 38 20 62 69 74 73 2e 2c 2c 2c 2c 2c 2c 2c  128 bits.,,,,,,,
3c40: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20  ,,.command,"set 
3c50: 6b 65 79 20 5b 62 69 6e 61 72 79 20 64 65 63 6f  key [binary deco
3c60: 64 65 20 68 65 78 20 5b 73 74 72 69 6e 67 20 72  de hex [string r
3c70: 65 70 65 61 74 20 22 22 30 63 22 22 20 32 30 5d  epeat ""0c"" 20]
3c80: 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  ]",,,,,,,,,.comm
3c90: 61 6e 64 2c 22 73 65 74 20 64 61 74 61 20 22 22  and,"set data ""
3ca0: 54 65 73 74 20 57 69 74 68 20 54 72 75 6e 63 61  Test With Trunca
3cb0: 74 69 6f 6e 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c  tion""",,,,,,,,,
3cc0: 0a 52 46 43 34 32 33 31 20 54 43 35 2c 73 68 61  .RFC4231 TC5,sha
3cd0: 32 32 34 2c 2c 2c 73 74 72 69 6e 67 20 72 61 6e  224,,,string ran
3ce0: 67 65 20 5b 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20  ge [::tls::hmac 
3cf0: 2d 64 69 67 65 73 74 20 73 68 61 32 32 34 20 2d  -digest sha224 -
3d00: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24  key $key -data $
3d10: 64 61 74 61 5d 20 30 20 33 31 2c 2c 2c 30 65 32  data] 0 31,,,0e2
3d20: 61 65 61 36 38 61 39 30 63 38 64 33 37 63 39 38  aea68a90c8d37c98
3d30: 38 62 63 64 62 39 66 63 61 36 66 61 38 2c 2c 2c  8bcdb9fca6fa8,,,
3d40: 0a 52 46 43 34 32 33 31 20 54 43 35 2c 73 68 61  .RFC4231 TC5,sha
3d50: 32 35 36 2c 2c 2c 73 74 72 69 6e 67 20 72 61 6e  256,,,string ran
3d60: 67 65 20 5b 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20  ge [::tls::hmac 
3d70: 2d 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d  -digest sha256 -
3d80: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24  key $key -data $
3d90: 64 61 74 61 5d 20 30 20 33 31 2c 2c 2c 61 33 62  data] 0 31,,,a3b
3da0: 36 31 36 37 34 37 33 31 30 30 65 65 30 36 65 30  6167473100ee06e0
3db0: 63 37 39 36 63 32 39 35 35 35 35 32 62 2c 2c 2c  c796c2955552b,,,
3dc0: 0a 52 46 43 34 32 33 31 20 54 43 35 2c 73 68 61  .RFC4231 TC5,sha
3dd0: 33 38 34 2c 2c 2c 73 74 72 69 6e 67 20 72 61 6e  384,,,string ran
3de0: 67 65 20 5b 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20  ge [::tls::hmac 
3df0: 2d 64 69 67 65 73 74 20 73 68 61 33 38 34 20 2d  -digest sha384 -
3e00: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24  key $key -data $
3e10: 64 61 74 61 5d 20 30 20 33 31 2c 2c 2c 33 61 62  data] 0 31,,,3ab
3e20: 66 33 34 63 33 35 30 33 62 32 61 32 33 61 34 36  f34c3503b2a23a46
3e30: 65 66 63 36 31 39 62 61 65 66 38 39 37 2c 2c 2c  efc619baef897,,,
3e40: 0a 52 46 43 34 32 33 31 20 54 43 35 2c 73 68 61  .RFC4231 TC5,sha
3e50: 35 31 32 2c 2c 2c 73 74 72 69 6e 67 20 72 61 6e  512,,,string ran
3e60: 67 65 20 5b 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20  ge [::tls::hmac 
3e70: 2d 64 69 67 65 73 74 20 73 68 61 35 31 32 20 2d  -digest sha512 -
3e80: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24  key $key -data $
3e90: 64 61 74 61 5d 20 30 20 33 31 2c 2c 2c 34 31 35  data] 0 31,,,415
3ea0: 66 61 64 36 32 37 31 35 38 30 61 35 33 31 64 34  fad6271580a531d4
3eb0: 31 37 39 62 63 38 39 31 64 38 37 61 36 2c 2c 2c  179bc891d87a6,,,
3ec0: 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  .,,,,,,,,,,.comm
3ed0: 61 6e 64 2c 23 20 52 46 43 20 34 32 33 31 20 48  and,# RFC 4231 H
3ee0: 4d 41 43 20 45 78 61 6d 70 6c 65 73 20 54 65 73  MAC Examples Tes
3ef0: 74 20 43 61 73 65 20 23 36 20 2d 20 54 65 73 74  t Case #6 - Test
3f00: 20 77 69 74 68 20 61 20 6b 65 79 20 6c 61 72 67   with a key larg
3f10: 65 72 20 74 68 61 6e 20 31 32 38 20 62 79 74 65  er than 128 byte
3f20: 73 20 28 3d 20 62 6c 6f 63 6b 2d 73 69 7a 65 20  s (= block-size 
3f30: 6f 66 20 53 48 41 2d 33 38 34 20 61 6e 64 20 53  of SHA-384 and S
3f40: 48 41 2d 35 31 32 29 2e 2c 2c 2c 2c 2c 2c 2c 2c  HA-512).,,,,,,,,
3f50: 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 6b  ,.command,"set k
3f60: 65 79 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64  ey [binary decod
3f70: 65 20 68 65 78 20 5b 73 74 72 69 6e 67 20 72 65  e hex [string re
3f80: 70 65 61 74 20 22 22 61 61 22 22 20 31 33 31 5d  peat ""aa"" 131]
3f90: 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  ]",,,,,,,,,.comm
3fa0: 61 6e 64 2c 22 73 65 74 20 64 61 74 61 20 22 22  and,"set data ""
3fb0: 54 65 73 74 20 55 73 69 6e 67 20 4c 61 72 67 65  Test Using Large
3fc0: 72 20 54 68 61 6e 20 42 6c 6f 63 6b 2d 53 69 7a  r Than Block-Siz
3fd0: 65 20 4b 65 79 20 2d 20 48 61 73 68 20 4b 65 79  e Key - Hash Key
3fe0: 20 46 69 72 73 74 22 22 22 2c 2c 2c 2c 2c 2c 2c   First""",,,,,,,
3ff0: 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 36 2c 73  ,,.RFC4231 TC6,s
4000: 68 61 32 32 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68  ha224,,,::tls::h
4010: 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 32  mac -digest sha2
4020: 32 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61  24 -key $key -da
4030: 74 61 20 24 64 61 74 61 2c 2c 2c 39 35 65 39 61  ta $data,,,95e9a
4040: 30 64 62 39 36 32 30 39 35 61 64 61 65 62 65 39  0db962095adaebe9
4050: 62 32 64 36 66 30 64 62 63 65 32 64 34 39 39 66  b2d6f0dbce2d499f
4060: 31 31 32 66 32 64 32 62 37 32 37 33 66 61 36 38  112f2d2b7273fa68
4070: 37 30 65 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54  70e,,,.RFC4231 T
4080: 43 36 2c 73 68 61 32 35 36 2c 2c 2c 3a 3a 74 6c  C6,sha256,,,::tl
4090: 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20  s::hmac -digest 
40a0: 73 68 61 32 35 36 20 2d 6b 65 79 20 24 6b 65 79  sha256 -key $key
40b0: 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 36   -data $data,,,6
40c0: 30 65 34 33 31 35 39 31 65 65 30 62 36 37 66 30  0e431591ee0b67f0
40d0: 64 38 61 32 36 61 61 63 62 66 35 62 37 37 66 38  d8a26aacbf5b77f8
40e0: 65 30 62 63 36 32 31 33 37 32 38 63 35 31 34 30  e0bc6213728c5140
40f0: 35 34 36 30 34 30 66 30 65 65 33 37 66 35 34 2c  546040f0ee37f54,
4100: 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 36 2c 73  ,,.RFC4231 TC6,s
4110: 68 61 33 38 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68  ha384,,,::tls::h
4120: 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 33  mac -digest sha3
4130: 38 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61  84 -key $key -da
4140: 74 61 20 24 64 61 74 61 2c 2c 2c 34 65 63 65 30  ta $data,,,4ece0
4150: 38 34 34 38 35 38 31 33 65 39 30 38 38 64 32 63  84485813e9088d2c
4160: 36 33 61 30 34 31 62 63 35 62 34 34 66 39 65 66  63a041bc5b44f9ef
4170: 31 30 31 32 61 32 62 35 38 38 66 33 63 64 31 31  1012a2b588f3cd11
4180: 66 30 35 30 33 33 61 63 34 63 36 30 63 32 65 66  f05033ac4c60c2ef
4190: 36 61 62 34 30 33 30 66 65 38 32 39 36 32 34 38  6ab4030fe8296248
41a0: 64 66 31 36 33 66 34 34 39 35 32 2c 2c 2c 0a 52  df163f44952,,,.R
41b0: 46 43 34 32 33 31 20 54 43 36 2c 73 68 61 35 31  FC4231 TC6,sha51
41c0: 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20  2,,,::tls::hmac 
41d0: 2d 64 69 67 65 73 74 20 73 68 61 35 31 32 20 2d  -digest sha512 -
41e0: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24  key $key -data $
41f0: 64 61 74 61 2c 2c 2c 38 30 62 32 34 32 36 33 63  data,,,80b24263c
4200: 37 63 31 61 33 65 62 62 37 31 34 39 33 63 31 64  7c1a3ebb71493c1d
4210: 64 37 62 65 38 62 34 39 62 34 36 64 31 66 34 31  d7be8b49b46d1f41
4220: 62 34 61 65 65 63 31 31 32 31 62 30 31 33 37 38  b4aeec1121b01378
4230: 33 66 38 66 33 35 32 36 62 35 36 64 30 33 37 65  3f8f3526b56d037e
4240: 30 35 66 32 35 39 38 62 64 30 66 64 32 32 31 35  05f2598bd0fd2215
4250: 64 36 61 31 65 35 32 39 35 65 36 34 66 37 33 66  d6a1e5295e64f73f
4260: 36 33 66 30 61 65 63 38 62 39 31 35 61 39 38 35  63f0aec8b915a985
4270: 64 37 38 36 35 39 38 2c 2c 2c 0a 2c 2c 2c 2c 2c  d786598,,,.,,,,,
4280: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20  ,,,,,.command,# 
4290: 52 46 43 20 34 32 33 31 20 48 4d 41 43 20 45 78  RFC 4231 HMAC Ex
42a0: 61 6d 70 6c 65 73 20 54 65 73 74 20 43 61 73 65  amples Test Case
42b0: 20 23 37 20 2d 20 54 65 73 74 20 77 69 74 68 20   #7 - Test with 
42c0: 61 20 6b 65 79 20 61 6e 64 20 64 61 74 61 20 74  a key and data t
42d0: 68 61 74 20 69 73 20 6c 61 72 67 65 72 20 74 68  hat is larger th
42e0: 61 6e 20 31 32 38 20 62 79 74 65 73 20 28 3d 20  an 128 bytes (= 
42f0: 62 6c 6f 63 6b 2d 73 69 7a 65 20 6f 66 20 53 48  block-size of SH
4300: 41 2d 33 38 34 20 61 6e 64 20 53 48 41 2d 35 31  A-384 and SHA-51
4310: 32 29 2e 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  2).,,,,,,,,,.com
4320: 6d 61 6e 64 2c 22 73 65 74 20 6b 65 79 20 5b 62  mand,"set key [b
4330: 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78  inary decode hex
4340: 20 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 20   [string repeat 
4350: 22 22 61 61 22 22 20 31 33 31 5d 5d 22 2c 2c 2c  ""aa"" 131]]",,,
4360: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22  ,,,,,,.command,"
4370: 73 65 74 20 64 61 74 61 20 22 22 54 68 69 73 20  set data ""This 
4380: 69 73 20 61 20 74 65 73 74 20 75 73 69 6e 67 20  is a test using 
4390: 61 20 6c 61 72 67 65 72 20 74 68 61 6e 20 62 6c  a larger than bl
43a0: 6f 63 6b 2d 73 69 7a 65 20 6b 65 79 20 61 6e 64  ock-size key and
43b0: 20 61 20 6c 61 72 67 65 72 20 74 68 61 6e 20 62   a larger than b
43c0: 6c 6f 63 6b 2d 73 69 7a 65 20 64 61 74 61 2e 20  lock-size data. 
43d0: 54 68 65 20 6b 65 79 20 6e 65 65 64 73 20 74 6f  The key needs to
43e0: 20 62 65 20 68 61 73 68 65 64 20 62 65 66 6f 72   be hashed befor
43f0: 65 20 62 65 69 6e 67 20 75 73 65 64 20 62 79 20  e being used by 
4400: 74 68 65 20 48 4d 41 43 20 61 6c 67 6f 72 69 74  the HMAC algorit
4410: 68 6d 2e 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  hm.""",,,,,,,,,.
4420: 52 46 43 34 32 33 31 20 54 43 37 2c 73 68 61 32  RFC4231 TC7,sha2
4430: 32 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63  24,,,::tls::hmac
4440: 20 2d 64 69 67 65 73 74 20 73 68 61 32 32 34 20   -digest sha224 
4450: 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20  -key $key -data 
4460: 24 64 61 74 61 2c 2c 2c 33 61 38 35 34 31 36 36  $data,,,3a854166
4470: 61 63 35 64 39 66 30 32 33 66 35 34 64 35 31 37  ac5d9f023f54d517
4480: 64 30 62 33 39 64 62 64 39 34 36 37 37 30 64 62  d0b39dbd946770db
4490: 39 63 32 62 39 35 63 39 66 36 66 35 36 35 64 31  9c2b95c9f6f565d1
44a0: 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 37 2c  ,,,.RFC4231 TC7,
44b0: 73 68 61 32 35 36 2c 2c 2c 3a 3a 74 6c 73 3a 3a  sha256,,,::tls::
44c0: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61  hmac -digest sha
44d0: 32 35 36 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64  256 -key $key -d
44e0: 61 74 61 20 24 64 61 74 61 2c 2c 2c 39 62 30 39  ata $data,,,9b09
44f0: 66 66 61 37 31 62 39 34 32 66 63 62 32 37 36 33  ffa71b942fcb2763
4500: 35 66 62 63 64 35 62 30 65 39 34 34 62 66 64 63  5fbcd5b0e944bfdc
4510: 36 33 36 34 34 66 30 37 31 33 39 33 38 61 37 66  63644f0713938a7f
4520: 35 31 35 33 35 63 33 61 33 35 65 32 2c 2c 2c 0a  51535c3a35e2,,,.
4530: 52 46 43 34 32 33 31 20 54 43 37 2c 73 68 61 33  RFC4231 TC7,sha3
4540: 38 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63  84,,,::tls::hmac
4550: 20 2d 64 69 67 65 73 74 20 73 68 61 33 38 34 20   -digest sha384 
4560: 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20  -key $key -data 
4570: 24 64 61 74 61 2c 2c 2c 36 36 31 37 31 37 38 65  $data,,,6617178e
4580: 39 34 31 66 30 32 30 64 33 35 31 65 32 66 32 35  941f020d351e2f25
4590: 34 65 38 66 64 33 32 63 36 30 32 34 32 30 66 65  4e8fd32c602420fe
45a0: 62 30 62 38 66 62 39 61 64 63 63 65 62 62 38 32  b0b8fb9adccebb82
45b0: 34 36 31 65 39 39 63 35 61 36 37 38 63 63 33 31  461e99c5a678cc31
45c0: 65 37 39 39 31 37 36 64 33 38 36 30 65 36 31 31  e799176d3860e611
45d0: 30 63 34 36 35 32 33 65 2c 2c 2c 0a 52 46 43 34  0c46523e,,,.RFC4
45e0: 32 33 31 20 54 43 37 2c 73 68 61 35 31 32 2c 2c  231 TC7,sha512,,
45f0: 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69  ,::tls::hmac -di
4600: 67 65 73 74 20 73 68 61 35 31 32 20 2d 6b 65 79  gest sha512 -key
4610: 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74   $key -data $dat
4620: 61 2c 2c 2c 65 33 37 62 36 61 37 37 35 64 63 38  a,,,e37b6a775dc8
4630: 37 64 62 61 61 34 64 66 61 39 66 39 36 65 35 65  7dbaa4dfa9f96e5e
4640: 33 66 66 64 64 65 62 64 37 31 66 38 38 36 37 32  3ffddebd71f88672
4650: 38 39 38 36 35 64 66 35 61 33 32 64 32 30 63 64  89865df5a32d20cd
4660: 63 39 34 34 62 36 30 32 32 63 61 63 33 63 34 39  c944b6022cac3c49
4670: 38 32 62 31 30 64 35 65 65 62 35 35 63 33 65 34  82b10d5eeb55c3e4
4680: 64 65 31 35 31 33 34 36 37 36 66 62 36 64 65 30  de15134676fb6de0
4690: 34 34 36 30 36 35 63 39 37 34 34 30 66 61 38 63  446065c97440fa8c
46a0: 36 61 35 38 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c  6a58,,,.,,,,,,,,
46b0: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 4e 49 53  ,,.command,# NIS
46c0: 54 20 38 30 30 2d 33 38 62 20 52 65 63 6f 6d 6d  T 800-38b Recomm
46d0: 65 6e 64 61 74 69 6f 6e 20 66 6f 72 20 42 6c 6f  endation for Blo
46e0: 63 6b 20 43 69 70 68 65 72 20 4d 6f 64 65 73 20  ck Cipher Modes 
46f0: 6f 66 20 4f 70 65 72 61 74 69 6f 6e 3a 20 54 68  of Operation: Th
4700: 65 20 43 4d 41 43 20 4d 6f 64 65 20 66 6f 72 20  e CMAC Mode for 
4710: 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 2c 2c  Authentication,,
4720: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
4730: 23 20 41 45 53 2d 31 32 38 2c 2c 2c 2c 2c 2c 2c  # AES-128,,,,,,,
4740: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20  ,,.command,"set 
4750: 6b 65 79 20 5b 62 69 6e 61 72 79 20 64 65 63 6f  key [binary deco
4760: 64 65 20 68 65 78 20 22 22 32 62 37 65 31 35 31  de hex ""2b7e151
4770: 36 32 38 61 65 64 32 61 36 61 62 66 37 31 35 38  628aed2a6abf7158
4780: 38 30 39 63 66 34 66 33 63 22 22 5d 22 2c 2c 2c  809cf4f3c""]",,,
4790: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22  ,,,,,,.command,"
47a0: 73 65 74 20 64 61 74 61 20 5b 62 69 6e 61 72 79  set data [binary
47b0: 20 64 65 63 6f 64 65 20 68 65 78 20 22 22 36 62   decode hex ""6b
47c0: 63 31 62 65 65 32 32 65 34 30 39 66 39 36 65 39  c1bee22e409f96e9
47d0: 33 64 37 65 31 31 37 33 39 33 31 37 32 61 22 22  3d7e117393172a""
47e0: 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4e 49 53 54  ]",,,,,,,,,.NIST
47f0: 38 30 30 2d 33 38 62 2d 41 45 53 31 32 38 2c 6c  800-38b-AES128,l
4800: 65 6e 3d 31 32 38 2c 2c 2c 3a 3a 74 6c 73 3a 3a  en=128,,,::tls::
4810: 63 6d 61 63 20 2d 63 69 70 68 65 72 20 61 65 73  cmac -cipher aes
4820: 2d 31 32 38 2d 63 62 63 20 2d 6b 65 79 20 24 6b  -128-cbc -key $k
4830: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c  ey -data $data,,
4840: 2c 30 37 30 61 31 36 62 34 36 62 34 64 34 31 34  ,070a16b46b4d414
4850: 34 66 37 39 62 64 64 39 64 64 30 34 61 32 38 37  4f79bdd9dd04a287
4860: 63 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65  c,,,.command,"se
4870: 74 20 64 61 74 61 20 5b 62 69 6e 61 72 79 20 64  t data [binary d
4880: 65 63 6f 64 65 20 68 65 78 20 22 22 36 62 63 31  ecode hex ""6bc1
4890: 62 65 65 32 32 65 34 30 39 66 39 36 65 39 33 64  bee22e409f96e93d
48a0: 37 65 31 31 37 33 39 33 31 37 32 61 61 65 32 64  7e117393172aae2d
48b0: 38 61 35 37 31 65 30 33 61 63 39 63 39 65 62 37  8a571e03ac9c9eb7
48c0: 36 66 61 63 34 35 61 66 38 65 35 31 33 30 63 38  6fac45af8e5130c8
48d0: 31 63 34 36 61 33 35 63 65 34 31 31 22 22 5d 22  1c46a35ce411""]"
48e0: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4e 49 53 54 38 30  ,,,,,,,,,.NIST80
48f0: 30 2d 33 38 62 2d 41 45 53 31 32 38 2c 6c 65 6e  0-38b-AES128,len
4900: 3d 33 32 30 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d  =320,,,::tls::cm
4910: 61 63 20 2d 63 69 70 68 65 72 20 61 65 73 2d 31  ac -cipher aes-1
4920: 32 38 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 79  28-cbc -key $key
4930: 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 64   -data $data,,,d
4940: 66 61 36 36 37 34 37 64 65 39 61 65 36 33 30 33  fa66747de9ae6303
4950: 30 63 61 33 32 36 31 31 34 39 37 63 38 32 37 2c  0ca32611497c827,
4960: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20  ,,.command,"set 
4970: 64 61 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63  data [binary dec
4980: 6f 64 65 20 68 65 78 20 22 22 36 62 63 31 62 65  ode hex ""6bc1be
4990: 65 32 32 65 34 30 39 66 39 36 65 39 33 64 37 65  e22e409f96e93d7e
49a0: 31 31 37 33 39 33 31 37 32 61 61 65 32 64 38 61  117393172aae2d8a
49b0: 35 37 31 65 30 33 61 63 39 63 39 65 62 37 36 66  571e03ac9c9eb76f
49c0: 61 63 34 35 61 66 38 65 35 31 33 30 63 38 31 63  ac45af8e5130c81c
49d0: 34 36 61 33 35 63 65 34 31 31 65 35 66 62 63 31  46a35ce411e5fbc1
49e0: 31 39 31 61 30 61 35 32 65 66 66 36 39 66 32 34  191a0a52eff69f24
49f0: 34 35 64 66 34 66 39 62 31 37 61 64 32 62 34 31  45df4f9b17ad2b41
4a00: 37 62 65 36 36 63 33 37 31 30 22 22 5d 22 2c 2c  7be66c3710""]",,
4a10: 2c 2c 2c 2c 2c 2c 2c 0a 4e 49 53 54 38 30 30 2d  ,,,,,,,.NIST800-
4a20: 33 38 62 2d 41 45 53 31 32 38 2c 6c 65 6e 3d 35  38b-AES128,len=5
4a30: 31 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d 61 63  12,,,::tls::cmac
4a40: 20 2d 63 69 70 68 65 72 20 61 65 73 2d 31 32 38   -cipher aes-128
4a50: 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d  -cbc -key $key -
4a60: 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 35 31 66  data $data,,,51f
4a70: 30 62 65 62 66 37 65 33 62 39 64 39 32 66 63 34  0bebf7e3b9d92fc4
4a80: 39 37 34 31 37 37 39 33 36 33 63 66 65 2c 2c 2c  9741779363cfe,,,
4a90: 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  .,,,,,,,,,,.comm
4aa0: 61 6e 64 2c 23 20 41 45 53 2d 31 39 32 2c 2c 2c  and,# AES-192,,,
4ab0: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22  ,,,,,,.command,"
4ac0: 73 65 74 20 6b 65 79 20 5b 62 69 6e 61 72 79 20  set key [binary 
4ad0: 64 65 63 6f 64 65 20 68 65 78 20 22 22 38 65 37  decode hex ""8e7
4ae0: 33 62 30 66 37 64 61 30 65 36 34 35 32 63 38 31  3b0f7da0e6452c81
4af0: 30 66 33 32 62 38 30 39 30 37 39 65 35 36 32 66  0f32b809079e562f
4b00: 38 65 61 64 32 35 32 32 63 36 62 37 62 22 22 5d  8ead2522c6b7b""]
4b10: 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61  ",,,,,,,,,.comma
4b20: 6e 64 2c 22 73 65 74 20 64 61 74 61 20 5b 62 69  nd,"set data [bi
4b30: 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20  nary decode hex 
4b40: 22 22 36 62 63 31 62 65 65 32 32 65 34 30 39 66  ""6bc1bee22e409f
4b50: 39 36 65 39 33 64 37 65 31 31 37 33 39 33 31 37  96e93d7e11739317
4b60: 32 61 22 22 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  2a""]",,,,,,,,,.
4b70: 4e 49 53 54 38 30 30 2d 33 38 62 2d 41 45 53 2d  NIST800-38b-AES-
4b80: 31 39 32 2c 6c 65 6e 3d 31 32 38 2c 2c 2c 3a 3a  192,len=128,,,::
4b90: 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65  tls::cmac -ciphe
4ba0: 72 20 61 65 73 2d 31 39 32 2d 63 62 63 20 2d 6b  r aes-192-cbc -k
4bb0: 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64  ey $key -data $d
4bc0: 61 74 61 2c 2c 2c 39 65 39 39 61 37 62 66 33 31  ata,,,9e99a7bf31
4bd0: 65 37 31 30 39 30 30 36 36 32 66 36 35 65 36 31  e710900662f65e61
4be0: 37 63 35 31 38 34 2c 2c 2c 0a 63 6f 6d 6d 61 6e  7c5184,,,.comman
4bf0: 64 2c 22 73 65 74 20 64 61 74 61 20 5b 62 69 6e  d,"set data [bin
4c00: 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 22  ary decode hex "
4c10: 22 36 62 63 31 62 65 65 32 32 65 34 30 39 66 39  "6bc1bee22e409f9
4c20: 36 65 39 33 64 37 65 31 31 37 33 39 33 31 37 32  6e93d7e117393172
4c30: 61 61 65 32 64 38 61 35 37 31 65 30 33 61 63 39  aae2d8a571e03ac9
4c40: 63 39 65 62 37 36 66 61 63 34 35 61 66 38 65 35  c9eb76fac45af8e5
4c50: 31 33 30 63 38 31 63 34 36 61 33 35 63 65 34 31  130c81c46a35ce41
4c60: 31 22 22 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4e  1""]",,,,,,,,,.N
4c70: 49 53 54 38 30 30 2d 33 38 62 2d 41 45 53 2d 31  IST800-38b-AES-1
4c80: 39 32 2c 6c 65 6e 3d 33 32 30 2c 2c 2c 3a 3a 74  92,len=320,,,::t
4c90: 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72  ls::cmac -cipher
4ca0: 20 61 65 73 2d 31 39 32 2d 63 62 63 20 2d 6b 65   aes-192-cbc -ke
4cb0: 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61  y $key -data $da
4cc0: 74 61 2c 2c 2c 38 61 31 64 65 35 62 65 32 65 62  ta,,,8a1de5be2eb
4cd0: 33 31 61 61 64 30 38 39 61 38 32 65 36 65 65 39  31aad089a82e6ee9
4ce0: 30 38 62 30 65 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64  08b0e,,,.command
4cf0: 2c 22 73 65 74 20 64 61 74 61 20 5b 62 69 6e 61  ,"set data [bina
4d00: 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 22 22  ry decode hex ""
4d10: 36 62 63 31 62 65 65 32 32 65 34 30 39 66 39 36  6bc1bee22e409f96
4d20: 65 39 33 64 37 65 31 31 37 33 39 33 31 37 32 61  e93d7e117393172a
4d30: 61 65 32 64 38 61 35 37 31 65 30 33 61 63 39 63  ae2d8a571e03ac9c
4d40: 39 65 62 37 36 66 61 63 34 35 61 66 38 65 35 31  9eb76fac45af8e51
4d50: 33 30 63 38 31 63 34 36 61 33 35 63 65 34 31 31  30c81c46a35ce411
4d60: 65 35 66 62 63 31 31 39 31 61 30 61 35 32 65 66  e5fbc1191a0a52ef
4d70: 66 36 39 66 32 34 34 35 64 66 34 66 39 62 31 37  f69f2445df4f9b17
4d80: 61 64 32 62 34 31 37 62 65 36 36 63 33 37 31 30  ad2b417be66c3710
4d90: 22 22 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4e 49  ""]",,,,,,,,,.NI
4da0: 53 54 38 30 30 2d 33 38 62 2d 41 45 53 2d 31 39  ST800-38b-AES-19
4db0: 32 2c 6c 65 6e 3d 35 31 32 2c 2c 2c 3a 3a 74 6c  2,len=512,,,::tl
4dc0: 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 20  s::cmac -cipher 
4dd0: 61 65 73 2d 31 39 32 2d 63 62 63 20 2d 6b 65 79  aes-192-cbc -key
4de0: 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74   $key -data $dat
4df0: 61 2c 2c 2c 61 31 64 35 64 66 30 65 65 64 37 39  a,,,a1d5df0eed79
4e00: 30 66 37 39 34 64 37 37 35 38 39 36 35 39 66 33  0f794d77589659f3
4e10: 39 61 31 31 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c  9a11,,,.,,,,,,,,
4e20: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 41 45 53  ,,.command,# AES
4e30: 2d 32 35 36 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f  -256,,,,,,,,,.co
4e40: 6d 6d 61 6e 64 2c 22 73 65 74 20 6b 65 79 20 5b  mmand,"set key [
4e50: 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65  binary decode he
4e60: 78 20 22 22 36 30 33 64 65 62 31 30 31 35 63 61  x ""603deb1015ca
4e70: 37 31 62 65 32 62 37 33 61 65 66 30 38 35 37 64  71be2b73aef0857d
4e80: 37 37 38 31 31 66 33 35 32 63 30 37 33 62 36 31  77811f352c073b61
4e90: 30 38 64 37 32 64 39 38 31 30 61 33 30 39 31 34  08d72d9810a30914
4ea0: 64 66 66 34 22 22 5d 22 2c 2c 2c 2c 2c 2c 2c 2c  dff4""]",,,,,,,,
4eb0: 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 64  ,.command,"set d
4ec0: 61 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63 6f  ata [binary deco
4ed0: 64 65 20 68 65 78 20 22 22 36 62 63 31 62 65 65  de hex ""6bc1bee
4ee0: 32 32 65 34 30 39 66 39 36 65 39 33 64 37 65 31  22e409f96e93d7e1
4ef0: 31 37 33 39 33 31 37 32 61 22 22 5d 22 2c 2c 2c  17393172a""]",,,
4f00: 2c 2c 2c 2c 2c 2c 0a 4e 49 53 54 38 30 30 2d 33  ,,,,,,.NIST800-3
4f10: 38 62 2d 41 45 53 2d 32 35 36 2c 6c 65 6e 3d 31  8b-AES-256,len=1
4f20: 32 38 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d 61 63  28,,,::tls::cmac
4f30: 20 2d 63 69 70 68 65 72 20 61 65 73 2d 32 35 36   -cipher aes-256
4f40: 2d 63 62 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d  -cbc -key $key -
4f50: 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 32 38 61  data $data,,,28a
4f60: 37 30 32 33 66 34 35 32 65 38 66 38 32 62 64 34  7023f452e8f82bd4
4f70: 62 66 32 38 64 38 63 33 37 63 33 35 63 2c 2c 2c  bf28d8c37c35c,,,
4f80: 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 64 61  .command,"set da
4f90: 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64  ta [binary decod
4fa0: 65 20 68 65 78 20 22 22 36 62 63 31 62 65 65 32  e hex ""6bc1bee2
4fb0: 32 65 34 30 39 66 39 36 65 39 33 64 37 65 31 31  2e409f96e93d7e11
4fc0: 37 33 39 33 31 37 32 61 61 65 32 64 38 61 35 37  7393172aae2d8a57
4fd0: 31 65 30 33 61 63 39 63 39 65 62 37 36 66 61 63  1e03ac9c9eb76fac
4fe0: 34 35 61 66 38 65 35 31 33 30 63 38 31 63 34 36  45af8e5130c81c46
4ff0: 61 33 35 63 65 34 31 31 22 22 5d 22 2c 2c 2c 2c  a35ce411""]",,,,
5000: 2c 2c 2c 2c 2c 0a 4e 49 53 54 38 30 30 2d 33 38  ,,,,,.NIST800-38
5010: 62 2d 41 45 53 2d 32 35 36 2c 6c 65 6e 3d 33 32  b-AES-256,len=32
5020: 30 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20  0,,,::tls::cmac 
5030: 2d 63 69 70 68 65 72 20 61 65 73 2d 32 35 36 2d  -cipher aes-256-
5040: 63 62 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64  cbc -key $key -d
5050: 61 74 61 20 24 64 61 74 61 2c 2c 2c 61 61 66 33  ata $data,,,aaf3
5060: 64 38 66 31 64 65 35 36 34 30 63 32 33 32 66 35  d8f1de5640c232f5
5070: 62 31 36 39 62 39 63 39 31 31 65 36 2c 2c 2c 0a  b169b9c911e6,,,.
5080: 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 64 61 74  command,"set dat
5090: 61 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65  a [binary decode
50a0: 20 68 65 78 20 22 22 36 62 63 31 62 65 65 32 32   hex ""6bc1bee22
50b0: 65 34 30 39 66 39 36 65 39 33 64 37 65 31 31 37  e409f96e93d7e117
50c0: 33 39 33 31 37 32 61 61 65 32 64 38 61 35 37 31  393172aae2d8a571
50d0: 65 30 33 61 63 39 63 39 65 62 37 36 66 61 63 34  e03ac9c9eb76fac4
50e0: 35 61 66 38 65 35 31 33 30 63 38 31 63 34 36 61  5af8e5130c81c46a
50f0: 33 35 63 65 34 31 31 65 35 66 62 63 31 31 39 31  35ce411e5fbc1191
5100: 61 30 61 35 32 65 66 66 36 39 66 32 34 34 35 64  a0a52eff69f2445d
5110: 66 34 66 39 62 31 37 61 64 32 62 34 31 37 62 65  f4f9b17ad2b417be
5120: 36 36 63 33 37 31 30 22 22 5d 22 2c 2c 2c 2c 2c  66c3710""]",,,,,
5130: 2c 2c 2c 2c 0a 4e 49 53 54 38 30 30 2d 33 38 62  ,,,,.NIST800-38b
5140: 2d 41 45 53 2d 32 35 36 2c 6c 65 6e 3d 35 31 32  -AES-256,len=512
5150: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d  ,,,::tls::cmac -
5160: 63 69 70 68 65 72 20 61 65 73 2d 32 35 36 2d 63  cipher aes-256-c
5170: 62 63 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61  bc -key $key -da
5180: 74 61 20 24 64 61 74 61 2c 2c 2c 65 31 39 39 32  ta $data,,,e1992
5190: 31 39 30 35 34 39 66 36 65 64 35 36 39 36 61 32  190549f6ed5696a2
51a0: 63 30 35 36 63 33 31 35 34 31 30 2c 2c 2c 0a 2c  c056c315410,,,.,
51b0: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e  ,,,,,,,,,.comman
51c0: 64 2c 23 20 43 6c 65 61 6e 75 70 2c 2c 2c 2c 2c  d,# Cleanup,,,,,
51d0: 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 3a 3a 74  ,,,,.command,::t
51e0: 63 6c 74 65 73 74 3a 3a 72 65 6d 6f 76 65 46 69  cltest::removeFi
51f0: 6c 65 20 24 74 65 73 74 5f 66 69 6c 65 2c 2c 2c  le $test_file,,,
5200: 2c 2c 2c 2c 2c 2c 0a                             ,,,,,,.