Hex Artifact Content

Artifact 01ba038a9cf83bce1fd632585756e87b8e34818987f596135c66fd3a1fa9092a:


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 64 69 67 65 73 74 20 24 74 65  :tls::digest $te
0690: 73 74 5f 66 69 6c 65 20 2d 64 69 67 65 73 74 20  st_file -digest 
06a0: 6d 64 34 2c 2c 2c 37 39 33 33 39 39 66 37 39 32  md4,,,793399f792
06b0: 65 63 61 32 37 35 32 63 36 61 66 33 32 33 34 62  eca2752c6af3234b
06c0: 61 37 30 38 35 38 2c 2c 2c 0a 44 69 67 65 73 74  a70858,,,.Digest
06d0: 20 43 68 61 6e 2c 6d 64 35 2c 2c 2c 72 65 61 64   Chan,md5,,,read
06e0: 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 64 69 67  _chan ::tls::dig
06f0: 65 73 74 20 24 74 65 73 74 5f 66 69 6c 65 20 2d  est $test_file -
0700: 64 69 67 65 73 74 20 6d 64 35 2c 2c 2c 39 36 32  digest md5,,,962
0710: 62 66 30 38 30 33 62 34 32 33 32 65 63 32 33 62  bf0803b4232ec23b
0720: 64 38 34 32 37 62 62 39 34 65 61 30 39 2c 2c 2c  d8427bb94ea09,,,
0730: 0a 44 69 67 65 73 74 20 43 68 61 6e 2c 73 68 61  .Digest Chan,sha
0740: 31 2c 2c 2c 72 65 61 64 5f 63 68 61 6e 20 3a 3a  1,,,read_chan ::
0750: 74 6c 73 3a 3a 64 69 67 65 73 74 20 24 74 65 73  tls::digest $tes
0760: 74 5f 66 69 6c 65 20 2d 64 69 67 65 73 74 20 73  t_file -digest s
0770: 68 61 31 2c 2c 2c 34 66 65 30 33 62 37 66 32 35  ha1,,,4fe03b7f25
0780: 36 38 35 35 31 64 66 61 66 62 39 38 63 61 36 30  68551dfafb98ca60
0790: 30 34 65 36 35 63 34 62 37 31 61 61 37 64 2c 2c  04e65c4b71aa7d,,
07a0: 2c 0a 44 69 67 65 73 74 20 43 68 61 6e 2c 73 68  ,.Digest Chan,sh
07b0: 61 32 35 36 2c 2c 2c 72 65 61 64 5f 63 68 61 6e  a256,,,read_chan
07c0: 20 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 24   ::tls::digest $
07d0: 74 65 73 74 5f 66 69 6c 65 20 2d 64 69 67 65 73  test_file -diges
07e0: 74 20 73 68 61 32 35 36 2c 2c 2c 39 64 33 35 37  t sha256,,,9d357
07f0: 38 66 63 31 33 38 32 30 35 63 66 30 65 65 34 62  8fc138205cf0ee4b
0800: 34 63 65 66 33 35 66 65 31 30 31 62 62 34 65 63  4cef35fe101bb4ec
0810: 61 63 37 62 31 36 31 34 63 31 38 65 36 66 61 34  ac7b1614c18e6fa4
0820: 38 62 35 63 37 66 39 35 65 31 39 2c 2c 2c 0a 44  8b5c7f95e19,,,.D
0830: 69 67 65 73 74 20 43 68 61 6e 2c 73 68 61 35 31  igest Chan,sha51
0840: 32 2c 2c 2c 72 65 61 64 5f 63 68 61 6e 20 3a 3a  2,,,read_chan ::
0850: 74 6c 73 3a 3a 64 69 67 65 73 74 20 24 74 65 73  tls::digest $tes
0860: 74 5f 66 69 6c 65 20 2d 64 69 67 65 73 74 20 73  t_file -digest s
0870: 68 61 35 31 32 2c 2c 2c 64 31 37 38 65 37 35 39  ha512,,,d178e759
0880: 64 63 35 39 31 32 37 30 37 31 35 38 38 64 32 66  dc59127071588d2f
0890: 61 64 31 37 33 63 30 36 32 33 38 64 38 37 65 38  ad173c06238d87e8
08a0: 30 30 61 36 34 30 33 63 30 61 33 30 64 61 61 34  00a6403c0a30daa4
08b0: 66 61 61 66 30 35 64 30 65 37 63 65 30 34 39 31  faaf05d0e7ce0491
08c0: 36 61 66 61 61 36 61 35 38 61 33 30 63 62 65 62  6afaa6a58a30cbeb
08d0: 35 39 37 64 61 63 62 30 31 63 36 32 66 39 66 62  597dacb01c62f9fb
08e0: 39 64 38 39 62 61 62 39 64 61 36 33 30 63 36 39  9d89bab9da630c69
08f0: 39 65 34 38 31 36 66 31 2c 2c 2c 0a 44 69 67 65  9e4816f1,,,.Dige
0900: 73 74 20 43 68 61 6e 2c 6d 64 35 20 62 69 6e 2c  st Chan,md5 bin,
0910: 2c 2c 62 69 6e 61 72 79 20 65 6e 63 6f 64 65 20  ,,binary encode 
0920: 68 65 78 20 5b 72 65 61 64 5f 63 68 61 6e 20 3a  hex [read_chan :
0930: 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 24 74 65  :tls::digest $te
0940: 73 74 5f 66 69 6c 65 20 2d 62 69 6e 20 2d 64 69  st_file -bin -di
0950: 67 65 73 74 20 6d 64 35 5d 2c 2c 2c 39 36 32 62  gest md5],,,962b
0960: 66 30 38 30 33 62 34 32 33 32 65 63 32 33 62 64  f0803b4232ec23bd
0970: 38 34 32 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a  8427bb94ea09,,,.
0980: 44 69 67 65 73 74 20 43 68 61 6e 2c 6d 64 35 20  Digest Chan,md5 
0990: 68 65 78 2c 2c 2c 72 65 61 64 5f 63 68 61 6e 20  hex,,,read_chan 
09a0: 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 24 74  ::tls::digest $t
09b0: 65 73 74 5f 66 69 6c 65 20 2d 68 65 78 20 2d 64  est_file -hex -d
09c0: 69 67 65 73 74 20 6d 64 35 2c 2c 2c 39 36 32 62  igest md5,,,962b
09d0: 66 30 38 30 33 62 34 32 33 32 65 63 32 33 62 64  f0803b4232ec23bd
09e0: 38 34 32 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a  8427bb94ea09,,,.
09f0: 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61  ,,,,,,,,,,.comma
0a00: 6e 64 2c 23 20 54 65 73 74 20 64 69 67 65 73 74  nd,# Test digest
0a10: 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 6f 62 6a   command for obj
0a20: 65 63 74 20 63 6f 6d 6d 61 6e 64 2c 2c 2c 2c 2c  ect command,,,,,
0a30: 2c 2c 2c 2c 0a 44 69 67 65 73 74 20 43 6f 6d 6d  ,,,,.Digest Comm
0a40: 61 6e 64 2c 6d 64 34 2c 2c 2c 61 63 63 75 6d 75  and,md4,,,accumu
0a50: 6c 61 74 65 20 24 74 65 73 74 5f 64 61 74 61 20  late $test_data 
0a60: 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 2d 64  ::tls::digest -d
0a70: 69 67 65 73 74 20 6d 64 34 2c 2c 2c 37 39 33 33  igest md4,,,7933
0a80: 39 39 66 37 39 32 65 63 61 32 37 35 32 63 36 61  99f792eca2752c6a
0a90: 66 33 32 33 34 62 61 37 30 38 35 38 2c 2c 2c 0a  f3234ba70858,,,.
0aa0: 44 69 67 65 73 74 20 43 6f 6d 6d 61 6e 64 2c 6d  Digest Command,m
0ab0: 64 35 2c 2c 2c 61 63 63 75 6d 75 6c 61 74 65 20  d5,,,accumulate 
0ac0: 24 74 65 73 74 5f 64 61 74 61 20 3a 3a 74 6c 73  $test_data ::tls
0ad0: 3a 3a 64 69 67 65 73 74 20 2d 64 69 67 65 73 74  ::digest -digest
0ae0: 20 6d 64 35 2c 2c 2c 39 36 32 62 66 30 38 30 33   md5,,,962bf0803
0af0: 62 34 32 33 32 65 63 32 33 62 64 38 34 32 37 62  b4232ec23bd8427b
0b00: 62 39 34 65 61 30 39 2c 2c 2c 0a 44 69 67 65 73  b94ea09,,,.Diges
0b10: 74 20 43 6f 6d 6d 61 6e 64 2c 73 68 61 31 2c 2c  t Command,sha1,,
0b20: 2c 61 63 63 75 6d 75 6c 61 74 65 20 24 74 65 73  ,accumulate $tes
0b30: 74 5f 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 64 69  t_data ::tls::di
0b40: 67 65 73 74 20 2d 64 69 67 65 73 74 20 73 68 61  gest -digest sha
0b50: 31 2c 2c 2c 34 66 65 30 33 62 37 66 32 35 36 38  1,,,4fe03b7f2568
0b60: 35 35 31 64 66 61 66 62 39 38 63 61 36 30 30 34  551dfafb98ca6004
0b70: 65 36 35 63 34 62 37 31 61 61 37 64 2c 2c 2c 0a  e65c4b71aa7d,,,.
0b80: 44 69 67 65 73 74 20 43 6f 6d 6d 61 6e 64 2c 73  Digest Command,s
0b90: 68 61 32 35 36 2c 2c 2c 61 63 63 75 6d 75 6c 61  ha256,,,accumula
0ba0: 74 65 20 24 74 65 73 74 5f 64 61 74 61 20 3a 3a  te $test_data ::
0bb0: 74 6c 73 3a 3a 64 69 67 65 73 74 20 2d 64 69 67  tls::digest -dig
0bc0: 65 73 74 20 73 68 61 32 35 36 2c 2c 2c 39 64 33  est sha256,,,9d3
0bd0: 35 37 38 66 63 31 33 38 32 30 35 63 66 30 65 65  578fc138205cf0ee
0be0: 34 62 34 63 65 66 33 35 66 65 31 30 31 62 62 34  4b4cef35fe101bb4
0bf0: 65 63 61 63 37 62 31 36 31 34 63 31 38 65 36 66  ecac7b1614c18e6f
0c00: 61 34 38 62 35 63 37 66 39 35 65 31 39 2c 2c 2c  a48b5c7f95e19,,,
0c10: 0a 44 69 67 65 73 74 20 43 6f 6d 6d 61 6e 64 2c  .Digest Command,
0c20: 73 68 61 35 31 32 2c 2c 2c 61 63 63 75 6d 75 6c  sha512,,,accumul
0c30: 61 74 65 20 24 74 65 73 74 5f 64 61 74 61 20 3a  ate $test_data :
0c40: 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 2d 64 69  :tls::digest -di
0c50: 67 65 73 74 20 73 68 61 35 31 32 2c 2c 2c 64 31  gest sha512,,,d1
0c60: 37 38 65 37 35 39 64 63 35 39 31 32 37 30 37 31  78e759dc59127071
0c70: 35 38 38 64 32 66 61 64 31 37 33 63 30 36 32 33  588d2fad173c0623
0c80: 38 64 38 37 65 38 30 30 61 36 34 30 33 63 30 61  8d87e800a6403c0a
0c90: 33 30 64 61 61 34 66 61 61 66 30 35 64 30 65 37  30daa4faaf05d0e7
0ca0: 63 65 30 34 39 31 36 61 66 61 61 36 61 35 38 61  ce04916afaa6a58a
0cb0: 33 30 63 62 65 62 35 39 37 64 61 63 62 30 31 63  30cbeb597dacb01c
0cc0: 36 32 66 39 66 62 39 64 38 39 62 61 62 39 64 61  62f9fb9d89bab9da
0cd0: 36 33 30 63 36 39 39 65 34 38 31 36 66 31 2c 2c  630c699e4816f1,,
0ce0: 2c 0a 44 69 67 65 73 74 20 43 6f 6d 6d 61 6e 64  ,.Digest Command
0cf0: 2c 6d 64 35 20 62 69 6e 2c 2c 2c 62 69 6e 61 72  ,md5 bin,,,binar
0d00: 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 61 63  y encode hex [ac
0d10: 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64  cumulate $test_d
0d20: 61 74 61 20 3a 3a 74 6c 73 3a 3a 64 69 67 65 73  ata ::tls::diges
0d30: 74 20 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 62  t -digest md5 -b
0d40: 69 6e 5d 2c 2c 2c 39 36 32 62 66 30 38 30 33 62  in],,,962bf0803b
0d50: 34 32 33 32 65 63 32 33 62 64 38 34 32 37 62 62  4232ec23bd8427bb
0d60: 39 34 65 61 30 39 2c 2c 2c 0a 44 69 67 65 73 74  94ea09,,,.Digest
0d70: 20 43 6f 6d 6d 61 6e 64 2c 6d 64 35 20 68 65 78   Command,md5 hex
0d80: 2c 2c 2c 61 63 63 75 6d 75 6c 61 74 65 20 24 74  ,,,accumulate $t
0d90: 65 73 74 5f 64 61 74 61 20 3a 3a 74 6c 73 3a 3a  est_data ::tls::
0da0: 64 69 67 65 73 74 20 2d 64 69 67 65 73 74 20 6d  digest -digest m
0db0: 64 35 20 2d 68 65 78 2c 2c 2c 39 36 32 62 66 30  d5 -hex,,,962bf0
0dc0: 38 30 33 62 34 32 33 32 65 63 32 33 62 64 38 34  803b4232ec23bd84
0dd0: 32 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a 2c 2c  27bb94ea09,,,.,,
0de0: 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64  ,,,,,,,,.command
0df0: 2c 23 20 54 65 73 74 20 64 69 67 65 73 74 20 63  ,# Test digest c
0e00: 6f 6d 6d 61 6e 64 20 66 6f 72 20 64 61 74 61 20  ommand for data 
0e10: 73 68 6f 72 74 63 75 74 2c 2c 2c 2c 2c 2c 2c 2c  shortcut,,,,,,,,
0e20: 2c 0a 44 69 67 65 73 74 20 44 61 74 61 2c 6d 64  ,.Digest Data,md
0e30: 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 64 69 67 65 73  4,,,::tls::diges
0e40: 74 20 6d 64 34 20 24 74 65 73 74 5f 64 61 74 61  t md4 $test_data
0e50: 2c 2c 2c 37 39 33 33 39 39 66 37 39 32 65 63 61  ,,,793399f792eca
0e60: 32 37 35 32 63 36 61 66 33 32 33 34 62 61 37 30  2752c6af3234ba70
0e70: 38 35 38 2c 2c 2c 0a 44 69 67 65 73 74 20 44 61  858,,,.Digest Da
0e80: 74 61 2c 6d 64 35 2c 2c 2c 3a 3a 74 6c 73 3a 3a  ta,md5,,,::tls::
0e90: 64 69 67 65 73 74 20 6d 64 35 20 24 74 65 73 74  digest md5 $test
0ea0: 5f 64 61 74 61 2c 2c 2c 39 36 32 62 66 30 38 30  _data,,,962bf080
0eb0: 33 62 34 32 33 32 65 63 32 33 62 64 38 34 32 37  3b4232ec23bd8427
0ec0: 62 62 39 34 65 61 30 39 2c 2c 2c 0a 44 69 67 65  bb94ea09,,,.Dige
0ed0: 73 74 20 44 61 74 61 2c 73 68 61 31 2c 2c 2c 3a  st Data,sha1,,,:
0ee0: 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 73 68 61  :tls::digest sha
0ef0: 31 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 34  1 $test_data,,,4
0f00: 66 65 30 33 62 37 66 32 35 36 38 35 35 31 64 66  fe03b7f2568551df
0f10: 61 66 62 39 38 63 61 36 30 30 34 65 36 35 63 34  afb98ca6004e65c4
0f20: 62 37 31 61 61 37 64 2c 2c 2c 0a 44 69 67 65 73  b71aa7d,,,.Diges
0f30: 74 20 44 61 74 61 2c 73 68 61 32 35 36 2c 2c 2c  t Data,sha256,,,
0f40: 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 73 68  ::tls::digest sh
0f50: 61 32 35 36 20 24 74 65 73 74 5f 64 61 74 61 2c  a256 $test_data,
0f60: 2c 2c 39 64 33 35 37 38 66 63 31 33 38 32 30 35  ,,9d3578fc138205
0f70: 63 66 30 65 65 34 62 34 63 65 66 33 35 66 65 31  cf0ee4b4cef35fe1
0f80: 30 31 62 62 34 65 63 61 63 37 62 31 36 31 34 63  01bb4ecac7b1614c
0f90: 31 38 65 36 66 61 34 38 62 35 63 37 66 39 35 65  18e6fa48b5c7f95e
0fa0: 31 39 2c 2c 2c 0a 44 69 67 65 73 74 20 44 61 74  19,,,.Digest Dat
0fb0: 61 2c 73 68 61 35 31 32 2c 2c 2c 3a 3a 74 6c 73  a,sha512,,,::tls
0fc0: 3a 3a 64 69 67 65 73 74 20 73 68 61 35 31 32 20  ::digest sha512 
0fd0: 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 64 31 37  $test_data,,,d17
0fe0: 38 65 37 35 39 64 63 35 39 31 32 37 30 37 31 35  8e759dc591270715
0ff0: 38 38 64 32 66 61 64 31 37 33 63 30 36 32 33 38  88d2fad173c06238
1000: 64 38 37 65 38 30 30 61 36 34 30 33 63 30 61 33  d87e800a6403c0a3
1010: 30 64 61 61 34 66 61 61 66 30 35 64 30 65 37 63  0daa4faaf05d0e7c
1020: 65 30 34 39 31 36 61 66 61 61 36 61 35 38 61 33  e04916afaa6a58a3
1030: 30 63 62 65 62 35 39 37 64 61 63 62 30 31 63 36  0cbeb597dacb01c6
1040: 32 66 39 66 62 39 64 38 39 62 61 62 39 64 61 36  2f9fb9d89bab9da6
1050: 33 30 63 36 39 39 65 34 38 31 36 66 31 2c 2c 2c  30c699e4816f1,,,
1060: 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  .,,,,,,,,,,.comm
1070: 61 6e 64 2c 23 20 54 65 73 74 20 64 69 67 65 73  and,# Test diges
1080: 74 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 64 61  t command for da
1090: 74 61 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 44 69 67 65  ta,,,,,,,,,.Dige
10a0: 73 74 20 44 61 74 61 2c 6d 64 34 2c 2c 2c 3a 3a  st Data,md4,,,::
10b0: 74 6c 73 3a 3a 64 69 67 65 73 74 20 2d 64 69 67  tls::digest -dig
10c0: 65 73 74 20 6d 64 34 20 2d 64 61 74 61 20 24 74  est md4 -data $t
10d0: 65 73 74 5f 64 61 74 61 2c 2c 2c 37 39 33 33 39  est_data,,,79339
10e0: 39 66 37 39 32 65 63 61 32 37 35 32 63 36 61 66  9f792eca2752c6af
10f0: 33 32 33 34 62 61 37 30 38 35 38 2c 2c 2c 0a 44  3234ba70858,,,.D
1100: 69 67 65 73 74 20 44 61 74 61 2c 6d 64 35 2c 2c  igest Data,md5,,
1110: 2c 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 2d  ,::tls::digest -
1120: 64 69 67 65 73 74 20 6d 64 35 20 2d 64 61 74 61  digest md5 -data
1130: 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 39 36   $test_data,,,96
1140: 32 62 66 30 38 30 33 62 34 32 33 32 65 63 32 33  2bf0803b4232ec23
1150: 62 64 38 34 32 37 62 62 39 34 65 61 30 39 2c 2c  bd8427bb94ea09,,
1160: 2c 0a 44 69 67 65 73 74 20 44 61 74 61 2c 73 68  ,.Digest Data,sh
1170: 61 31 2c 2c 2c 3a 3a 74 6c 73 3a 3a 64 69 67 65  a1,,,::tls::dige
1180: 73 74 20 2d 64 69 67 65 73 74 20 73 68 61 31 20  st -digest sha1 
1190: 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 61  -data $test_data
11a0: 2c 2c 2c 34 66 65 30 33 62 37 66 32 35 36 38 35  ,,,4fe03b7f25685
11b0: 35 31 64 66 61 66 62 39 38 63 61 36 30 30 34 65  51dfafb98ca6004e
11c0: 36 35 63 34 62 37 31 61 61 37 64 2c 2c 2c 0a 44  65c4b71aa7d,,,.D
11d0: 69 67 65 73 74 20 44 61 74 61 2c 73 68 61 32 35  igest Data,sha25
11e0: 36 2c 2c 2c 3a 3a 74 6c 73 3a 3a 64 69 67 65 73  6,,,::tls::diges
11f0: 74 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 36  t -digest sha256
1200: 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74   -data $test_dat
1210: 61 2c 2c 2c 39 64 33 35 37 38 66 63 31 33 38 32  a,,,9d3578fc1382
1220: 30 35 63 66 30 65 65 34 62 34 63 65 66 33 35 66  05cf0ee4b4cef35f
1230: 65 31 30 31 62 62 34 65 63 61 63 37 62 31 36 31  e101bb4ecac7b161
1240: 34 63 31 38 65 36 66 61 34 38 62 35 63 37 66 39  4c18e6fa48b5c7f9
1250: 35 65 31 39 2c 2c 2c 0a 44 69 67 65 73 74 20 44  5e19,,,.Digest D
1260: 61 74 61 2c 73 68 61 35 31 32 2c 2c 2c 3a 3a 74  ata,sha512,,,::t
1270: 6c 73 3a 3a 64 69 67 65 73 74 20 2d 64 69 67 65  ls::digest -dige
1280: 73 74 20 73 68 61 35 31 32 20 2d 64 61 74 61 20  st sha512 -data 
1290: 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 64 31 37  $test_data,,,d17
12a0: 38 65 37 35 39 64 63 35 39 31 32 37 30 37 31 35  8e759dc591270715
12b0: 38 38 64 32 66 61 64 31 37 33 63 30 36 32 33 38  88d2fad173c06238
12c0: 64 38 37 65 38 30 30 61 36 34 30 33 63 30 61 33  d87e800a6403c0a3
12d0: 30 64 61 61 34 66 61 61 66 30 35 64 30 65 37 63  0daa4faaf05d0e7c
12e0: 65 30 34 39 31 36 61 66 61 61 36 61 35 38 61 33  e04916afaa6a58a3
12f0: 30 63 62 65 62 35 39 37 64 61 63 62 30 31 63 36  0cbeb597dacb01c6
1300: 32 66 39 66 62 39 64 38 39 62 61 62 39 64 61 36  2f9fb9d89bab9da6
1310: 33 30 63 36 39 39 65 34 38 31 36 66 31 2c 2c 2c  30c699e4816f1,,,
1320: 0a 44 69 67 65 73 74 20 44 61 74 61 2c 6d 64 35  .Digest Data,md5
1330: 20 62 69 6e 2c 2c 2c 62 69 6e 61 72 79 20 65 6e   bin,,,binary en
1340: 63 6f 64 65 20 68 65 78 20 5b 3a 3a 74 6c 73 3a  code hex [::tls:
1350: 3a 64 69 67 65 73 74 20 2d 64 69 67 65 73 74 20  :digest -digest 
1360: 6d 64 35 20 2d 64 61 74 61 20 24 74 65 73 74 5f  md5 -data $test_
1370: 64 61 74 61 20 2d 62 69 6e 5d 2c 2c 2c 39 36 32  data -bin],,,962
1380: 62 66 30 38 30 33 62 34 32 33 32 65 63 32 33 62  bf0803b4232ec23b
1390: 64 38 34 32 37 62 62 39 34 65 61 30 39 2c 2c 2c  d8427bb94ea09,,,
13a0: 0a 44 69 67 65 73 74 20 44 61 74 61 2c 6d 64 35  .Digest Data,md5
13b0: 20 68 65 78 2c 2c 2c 3a 3a 74 6c 73 3a 3a 64 69   hex,,,::tls::di
13c0: 67 65 73 74 20 2d 64 69 67 65 73 74 20 6d 64 35  gest -digest md5
13d0: 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74   -data $test_dat
13e0: 61 20 2d 68 65 78 2c 2c 2c 39 36 32 62 66 30 38  a -hex,,,962bf08
13f0: 30 33 62 34 32 33 32 65 63 32 33 62 64 38 34 32  03b4232ec23bd842
1400: 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a 2c 2c 2c  7bb94ea09,,,.,,,
1410: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
1420: 23 20 54 65 73 74 20 64 69 67 65 73 74 20 63 6f  # Test digest co
1430: 6d 6d 61 6e 64 20 66 6f 72 20 66 69 6c 65 2c 2c  mmand for file,,
1440: 2c 2c 2c 2c 2c 2c 2c 0a 44 69 67 65 73 74 20 46  ,,,,,,,.Digest F
1450: 69 6c 65 2c 6d 64 34 2c 2c 2c 3a 3a 74 6c 73 3a  ile,md4,,,::tls:
1460: 3a 64 69 67 65 73 74 20 2d 64 69 67 65 73 74 20  :digest -digest 
1470: 6d 64 34 20 2d 66 69 6c 65 20 24 74 65 73 74 5f  md4 -file $test_
1480: 66 69 6c 65 2c 2c 2c 37 39 33 33 39 39 66 37 39  file,,,793399f79
1490: 32 65 63 61 32 37 35 32 63 36 61 66 33 32 33 34  2eca2752c6af3234
14a0: 62 61 37 30 38 35 38 2c 2c 2c 0a 44 69 67 65 73  ba70858,,,.Diges
14b0: 74 20 46 69 6c 65 2c 6d 64 35 2c 2c 2c 3a 3a 74  t File,md5,,,::t
14c0: 6c 73 3a 3a 64 69 67 65 73 74 20 2d 64 69 67 65  ls::digest -dige
14d0: 73 74 20 6d 64 35 20 2d 66 69 6c 65 20 24 74 65  st md5 -file $te
14e0: 73 74 5f 66 69 6c 65 2c 2c 2c 39 36 32 62 66 30  st_file,,,962bf0
14f0: 38 30 33 62 34 32 33 32 65 63 32 33 62 64 38 34  803b4232ec23bd84
1500: 32 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a 44 69  27bb94ea09,,,.Di
1510: 67 65 73 74 20 46 69 6c 65 2c 73 68 61 31 2c 2c  gest File,sha1,,
1520: 2c 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 2d  ,::tls::digest -
1530: 64 69 67 65 73 74 20 73 68 61 31 20 2d 66 69 6c  digest sha1 -fil
1540: 65 20 24 74 65 73 74 5f 66 69 6c 65 2c 2c 2c 34  e $test_file,,,4
1550: 66 65 30 33 62 37 66 32 35 36 38 35 35 31 64 66  fe03b7f2568551df
1560: 61 66 62 39 38 63 61 36 30 30 34 65 36 35 63 34  afb98ca6004e65c4
1570: 62 37 31 61 61 37 64 2c 2c 2c 0a 44 69 67 65 73  b71aa7d,,,.Diges
1580: 74 20 46 69 6c 65 2c 73 68 61 32 35 36 2c 2c 2c  t File,sha256,,,
1590: 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 2d 64  ::tls::digest -d
15a0: 69 67 65 73 74 20 73 68 61 32 35 36 20 2d 66 69  igest sha256 -fi
15b0: 6c 65 20 24 74 65 73 74 5f 66 69 6c 65 2c 2c 2c  le $test_file,,,
15c0: 39 64 33 35 37 38 66 63 31 33 38 32 30 35 63 66  9d3578fc138205cf
15d0: 30 65 65 34 62 34 63 65 66 33 35 66 65 31 30 31  0ee4b4cef35fe101
15e0: 62 62 34 65 63 61 63 37 62 31 36 31 34 63 31 38  bb4ecac7b1614c18
15f0: 65 36 66 61 34 38 62 35 63 37 66 39 35 65 31 39  e6fa48b5c7f95e19
1600: 2c 2c 2c 0a 44 69 67 65 73 74 20 46 69 6c 65 2c  ,,,.Digest File,
1610: 73 68 61 35 31 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a  sha512,,,::tls::
1620: 64 69 67 65 73 74 20 2d 64 69 67 65 73 74 20 73  digest -digest s
1630: 68 61 35 31 32 20 2d 66 69 6c 65 20 24 74 65 73  ha512 -file $tes
1640: 74 5f 66 69 6c 65 2c 2c 2c 64 31 37 38 65 37 35  t_file,,,d178e75
1650: 39 64 63 35 39 31 32 37 30 37 31 35 38 38 64 32  9dc59127071588d2
1660: 66 61 64 31 37 33 63 30 36 32 33 38 64 38 37 65  fad173c06238d87e
1670: 38 30 30 61 36 34 30 33 63 30 61 33 30 64 61 61  800a6403c0a30daa
1680: 34 66 61 61 66 30 35 64 30 65 37 63 65 30 34 39  4faaf05d0e7ce049
1690: 31 36 61 66 61 61 36 61 35 38 61 33 30 63 62 65  16afaa6a58a30cbe
16a0: 62 35 39 37 64 61 63 62 30 31 63 36 32 66 39 66  b597dacb01c62f9f
16b0: 62 39 64 38 39 62 61 62 39 64 61 36 33 30 63 36  b9d89bab9da630c6
16c0: 39 39 65 34 38 31 36 66 31 2c 2c 2c 0a 44 69 67  99e4816f1,,,.Dig
16d0: 65 73 74 20 46 69 6c 65 2c 6d 64 35 20 62 69 6e  est File,md5 bin
16e0: 2c 2c 2c 62 69 6e 61 72 79 20 65 6e 63 6f 64 65  ,,,binary encode
16f0: 20 68 65 78 20 5b 3a 3a 74 6c 73 3a 3a 64 69 67   hex [::tls::dig
1700: 65 73 74 20 2d 64 69 67 65 73 74 20 6d 64 35 20  est -digest md5 
1710: 2d 66 69 6c 65 20 24 74 65 73 74 5f 66 69 6c 65  -file $test_file
1720: 20 2d 62 69 6e 5d 2c 2c 2c 39 36 32 62 66 30 38   -bin],,,962bf08
1730: 30 33 62 34 32 33 32 65 63 32 33 62 64 38 34 32  03b4232ec23bd842
1740: 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a 44 69 67  7bb94ea09,,,.Dig
1750: 65 73 74 20 46 69 6c 65 2c 6d 64 35 20 68 65 78  est File,md5 hex
1760: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74  ,,,::tls::digest
1770: 20 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 66 69   -digest md5 -fi
1780: 6c 65 20 24 74 65 73 74 5f 66 69 6c 65 20 2d 68  le $test_file -h
1790: 65 78 2c 2c 2c 39 36 32 62 66 30 38 30 33 62 34  ex,,,962bf0803b4
17a0: 32 33 32 65 63 32 33 62 64 38 34 32 37 62 62 39  232ec23bd8427bb9
17b0: 34 65 61 30 39 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c  4ea09,,,.,,,,,,,
17c0: 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65  ,,,.command,# Te
17d0: 73 74 20 48 4d 41 43 20 63 6f 6d 6d 61 6e 64 2c  st HMAC command,
17e0: 2c 2c 2c 2c 2c 2c 2c 2c 0a 48 4d 41 43 2c 64 61  ,,,,,,,,.HMAC,da
17f0: 74 61 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63  ta,,,::tls::hmac
1800: 20 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 6b 65   -digest md5 -ke
1810: 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74  y $test_key -dat
1820: 61 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 66  a $test_data,,,f
1830: 39 38 33 32 37 65 66 33 65 32 30 61 62 36 64 33  98327ef3e20ab6d3
1840: 38 38 66 36 37 36 63 36 61 37 39 64 39 33 64 2c  88f676c6a79d93d,
1850: 2c 2c 0a 48 4d 41 43 2c 66 69 6c 65 2c 2c 2c 3a  ,,.HMAC,file,,,:
1860: 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65  :tls::hmac -dige
1870: 73 74 20 6d 64 35 20 2d 6b 65 79 20 24 74 65 73  st md5 -key $tes
1880: 74 5f 6b 65 79 20 2d 66 69 6c 65 20 24 74 65 73  t_key -file $tes
1890: 74 5f 66 69 6c 65 2c 2c 2c 66 39 38 33 32 37 65  t_file,,,f98327e
18a0: 66 33 65 32 30 61 62 36 64 33 38 38 66 36 37 36  f3e20ab6d388f676
18b0: 63 36 61 37 39 64 39 33 64 2c 2c 2c 0a 48 4d 41  c6a79d93d,,,.HMA
18c0: 43 2c 63 68 61 6e 6e 65 6c 2c 2c 2c 72 65 61 64  C,channel,,,read
18d0: 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 68 6d 61  _chan ::tls::hma
18e0: 63 20 24 74 65 73 74 5f 66 69 6c 65 20 2d 64 69  c $test_file -di
18f0: 67 65 73 74 20 6d 64 35 20 2d 6b 65 79 20 24 74  gest md5 -key $t
1900: 65 73 74 5f 6b 65 79 2c 2c 2c 66 39 38 33 32 37  est_key,,,f98327
1910: 65 66 33 65 32 30 61 62 36 64 33 38 38 66 36 37  ef3e20ab6d388f67
1920: 36 63 36 61 37 39 64 39 33 64 2c 2c 2c 0a 48 4d  6c6a79d93d,,,.HM
1930: 41 43 2c 63 6f 6d 6d 61 6e 64 2c 2c 2c 61 63 63  AC,command,,,acc
1940: 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64 61  umulate $test_da
1950: 74 61 20 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d  ta ::tls::hmac -
1960: 64 69 67 65 73 74 20 6d 64 35 20 2d 6b 65 79 20  digest md5 -key 
1970: 24 74 65 73 74 5f 6b 65 79 2c 2c 2c 66 39 38 33  $test_key,,,f983
1980: 32 37 65 66 33 65 32 30 61 62 36 64 33 38 38 66  27ef3e20ab6d388f
1990: 36 37 36 63 36 61 37 39 64 39 33 64 2c 2c 2c 0a  676c6a79d93d,,,.
19a0: 48 4d 41 43 2c 64 61 74 61 20 62 69 6e 2c 2c 2c  HMAC,data bin,,,
19b0: 62 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 68 65  binary encode he
19c0: 78 20 5b 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d  x [::tls::hmac -
19d0: 64 69 67 65 73 74 20 6d 64 35 20 2d 62 69 6e 20  digest md5 -bin 
19e0: 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20 2d  -key $test_key -
19f0: 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 61 5d  data $test_data]
1a00: 2c 2c 2c 66 39 38 33 32 37 65 66 33 65 32 30 61  ,,,f98327ef3e20a
1a10: 62 36 64 33 38 38 66 36 37 36 63 36 61 37 39 64  b6d388f676c6a79d
1a20: 39 33 64 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c  93d,,,.,,,,,,,,,
1a30: 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73 74  ,.command,# Test
1a40: 20 44 69 67 65 73 74 20 48 4d 41 43 2c 2c 2c 2c   Digest HMAC,,,,
1a50: 2c 2c 2c 2c 2c 0a 44 69 67 65 73 74 20 48 4d 41  ,,,,,.Digest HMA
1a60: 43 2c 64 61 74 61 2c 2c 2c 3a 3a 74 6c 73 3a 3a  C,data,,,::tls::
1a70: 64 69 67 65 73 74 20 2d 64 69 67 65 73 74 20 6d  digest -digest m
1a80: 64 35 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65  d5 -key $test_ke
1a90: 79 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61  y -data $test_da
1aa0: 74 61 2c 2c 2c 66 39 38 33 32 37 65 66 33 65 32  ta,,,f98327ef3e2
1ab0: 30 61 62 36 64 33 38 38 66 36 37 36 63 36 61 37  0ab6d388f676c6a7
1ac0: 39 64 39 33 64 2c 2c 2c 0a 44 69 67 65 73 74 20  9d93d,,,.Digest 
1ad0: 48 4d 41 43 2c 66 69 6c 65 2c 2c 2c 3a 3a 74 6c  HMAC,file,,,::tl
1ae0: 73 3a 3a 64 69 67 65 73 74 20 2d 64 69 67 65 73  s::digest -diges
1af0: 74 20 6d 64 35 20 2d 6b 65 79 20 24 74 65 73 74  t md5 -key $test
1b00: 5f 6b 65 79 20 2d 66 69 6c 65 20 24 74 65 73 74  _key -file $test
1b10: 5f 66 69 6c 65 2c 2c 2c 66 39 38 33 32 37 65 66  _file,,,f98327ef
1b20: 33 65 32 30 61 62 36 64 33 38 38 66 36 37 36 63  3e20ab6d388f676c
1b30: 36 61 37 39 64 39 33 64 2c 2c 2c 0a 44 69 67 65  6a79d93d,,,.Dige
1b40: 73 74 20 48 4d 41 43 2c 63 68 61 6e 6e 65 6c 2c  st HMAC,channel,
1b50: 2c 2c 72 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c  ,,read_chan ::tl
1b60: 73 3a 3a 64 69 67 65 73 74 20 24 74 65 73 74 5f  s::digest $test_
1b70: 66 69 6c 65 20 2d 64 69 67 65 73 74 20 6d 64 35  file -digest md5
1b80: 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 2c   -key $test_key,
1b90: 2c 2c 66 39 38 33 32 37 65 66 33 65 32 30 61 62  ,,f98327ef3e20ab
1ba0: 36 64 33 38 38 66 36 37 36 63 36 61 37 39 64 39  6d388f676c6a79d9
1bb0: 33 64 2c 2c 2c 0a 44 69 67 65 73 74 20 48 4d 41  3d,,,.Digest HMA
1bc0: 43 2c 63 6f 6d 6d 61 6e 64 2c 2c 2c 61 63 63 75  C,command,,,accu
1bd0: 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64 61 74  mulate $test_dat
1be0: 61 20 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20  a ::tls::digest 
1bf0: 2d 64 69 67 65 73 74 20 6d 64 35 20 2d 6b 65 79  -digest md5 -key
1c00: 20 24 74 65 73 74 5f 6b 65 79 2c 2c 2c 66 39 38   $test_key,,,f98
1c10: 33 32 37 65 66 33 65 32 30 61 62 36 64 33 38 38  327ef3e20ab6d388
1c20: 66 36 37 36 63 36 61 37 39 64 39 33 64 2c 2c 2c  f676c6a79d93d,,,
1c30: 0a 44 69 67 65 73 74 20 48 4d 41 43 2c 64 61 74  .Digest HMAC,dat
1c40: 61 20 62 69 6e 2c 2c 2c 62 69 6e 61 72 79 20 65  a bin,,,binary e
1c50: 6e 63 6f 64 65 20 68 65 78 20 5b 3a 3a 74 6c 73  ncode hex [::tls
1c60: 3a 3a 64 69 67 65 73 74 20 2d 64 69 67 65 73 74  ::digest -digest
1c70: 20 6d 64 35 20 2d 62 69 6e 20 2d 6b 65 79 20 24   md5 -bin -key $
1c80: 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 20 24  test_key -data $
1c90: 74 65 73 74 5f 64 61 74 61 5d 2c 2c 2c 66 39 38  test_data],,,f98
1ca0: 33 32 37 65 66 33 65 32 30 61 62 36 64 33 38 38  327ef3e20ab6d388
1cb0: 66 36 37 36 63 36 61 37 39 64 39 33 64 2c 2c 2c  f676c6a79d93d,,,
1cc0: 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  .,,,,,,,,,,.comm
1cd0: 61 6e 64 2c 23 20 54 65 73 74 20 43 4d 41 43 20  and,# Test CMAC 
1ce0: 63 6f 6d 6d 61 6e 64 2c 2c 2c 2c 2c 2c 2c 2c 2c  command,,,,,,,,,
1cf0: 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 74 65  .command,"set te
1d00: 73 74 5f 63 69 70 68 65 72 20 22 22 61 65 73 2d  st_cipher ""aes-
1d10: 31 32 38 2d 63 62 63 22 22 22 2c 2c 2c 2c 2c 2c  128-cbc""",,,,,,
1d20: 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74  ,,,.command,"set
1d30: 20 74 65 73 74 5f 6b 65 79 20 22 22 45 78 61 6d   test_key ""Exam
1d40: 70 6c 65 20 6b 65 79 20 31 32 33 34 22 22 22 2c  ple key 1234""",
1d50: 2c 2c 2c 2c 2c 2c 2c 2c 0a 43 4d 41 43 2c 64 61  ,,,,,,,,.CMAC,da
1d60: 74 61 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d 61 63  ta,,,::tls::cmac
1d70: 20 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f 63   -cipher $test_c
1d80: 69 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74  ipher -key $test
1d90: 5f 6b 65 79 20 2d 64 61 74 61 20 24 74 65 73 74  _key -data $test
1da0: 5f 64 61 74 61 2c 2c 2c 62 61 66 35 63 32 30 66  _data,,,baf5c20f
1db0: 39 39 37 33 65 32 64 36 30 36 62 31 34 63 37 65  9973e2d606b14c7e
1dc0: 66 64 66 65 35 32 66 61 2c 2c 2c 0a 43 4d 41 43  fdfe52fa,,,.CMAC
1dd0: 2c 66 69 6c 65 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63  ,file,,,::tls::c
1de0: 6d 61 63 20 2d 63 69 70 68 65 72 20 24 74 65 73  mac -cipher $tes
1df0: 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 20 24 74  t_cipher -key $t
1e00: 65 73 74 5f 6b 65 79 20 2d 66 69 6c 65 20 24 74  est_key -file $t
1e10: 65 73 74 5f 66 69 6c 65 2c 2c 2c 62 61 66 35 63  est_file,,,baf5c
1e20: 32 30 66 39 39 37 33 65 32 64 36 30 36 62 31 34  20f9973e2d606b14
1e30: 63 37 65 66 64 66 65 35 32 66 61 2c 2c 2c 0a 43  c7efdfe52fa,,,.C
1e40: 4d 41 43 2c 63 68 61 6e 6e 65 6c 2c 2c 2c 72 65  MAC,channel,,,re
1e50: 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 63  ad_chan ::tls::c
1e60: 6d 61 63 20 24 74 65 73 74 5f 66 69 6c 65 20 2d  mac $test_file -
1e70: 63 69 70 68 65 72 20 24 74 65 73 74 5f 63 69 70  cipher $test_cip
1e80: 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b  her -key $test_k
1e90: 65 79 2c 2c 2c 62 61 66 35 63 32 30 66 39 39 37  ey,,,baf5c20f997
1ea0: 33 65 32 64 36 30 36 62 31 34 63 37 65 66 64 66  3e2d606b14c7efdf
1eb0: 65 35 32 66 61 2c 2c 2c 0a 43 4d 41 43 2c 63 6f  e52fa,,,.CMAC,co
1ec0: 6d 6d 61 6e 64 2c 2c 2c 61 63 63 75 6d 75 6c 61  mmand,,,accumula
1ed0: 74 65 20 24 74 65 73 74 5f 64 61 74 61 20 3a 3a  te $test_data ::
1ee0: 74 6c 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65  tls::cmac -ciphe
1ef0: 72 20 24 74 65 73 74 5f 63 69 70 68 65 72 20 2d  r $test_cipher -
1f00: 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 2c 2c 2c  key $test_key,,,
1f10: 62 61 66 35 63 32 30 66 39 39 37 33 65 32 64 36  baf5c20f9973e2d6
1f20: 30 36 62 31 34 63 37 65 66 64 66 65 35 32 66 61  06b14c7efdfe52fa
1f30: 2c 2c 2c 0a 43 4d 41 43 2c 64 61 74 61 20 62 69  ,,,.CMAC,data bi
1f40: 6e 2c 2c 2c 62 69 6e 61 72 79 20 65 6e 63 6f 64  n,,,binary encod
1f50: 65 20 68 65 78 20 5b 3a 3a 74 6c 73 3a 3a 63 6d  e hex [::tls::cm
1f60: 61 63 20 2d 62 69 6e 20 2d 63 69 70 68 65 72 20  ac -bin -cipher 
1f70: 24 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65  $test_cipher -ke
1f80: 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74  y $test_key -dat
1f90: 61 20 24 74 65 73 74 5f 64 61 74 61 5d 2c 2c 2c  a $test_data],,,
1fa0: 62 61 66 35 63 32 30 66 39 39 37 33 65 32 64 36  baf5c20f9973e2d6
1fb0: 30 36 62 31 34 63 37 65 66 64 66 65 35 32 66 61  06b14c7efdfe52fa
1fc0: 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63  ,,,.,,,,,,,,,,.c
1fd0: 6f 6d 6d 61 6e 64 2c 23 20 54 65 73 74 20 44 69  ommand,# Test Di
1fe0: 67 65 73 74 20 43 4d 41 43 2c 2c 2c 2c 2c 2c 2c  gest CMAC,,,,,,,
1ff0: 2c 2c 0a 44 69 67 65 73 74 20 43 4d 41 43 2c 64  ,,.Digest CMAC,d
2000: 61 74 61 2c 2c 2c 3a 3a 74 6c 73 3a 3a 64 69 67  ata,,,::tls::dig
2010: 65 73 74 20 2d 63 69 70 68 65 72 20 24 74 65 73  est -cipher $tes
2020: 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 20 24 74  t_cipher -key $t
2030: 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 20 24 74  est_key -data $t
2040: 65 73 74 5f 64 61 74 61 2c 2c 2c 62 61 66 35 63  est_data,,,baf5c
2050: 32 30 66 39 39 37 33 65 32 64 36 30 36 62 31 34  20f9973e2d606b14
2060: 63 37 65 66 64 66 65 35 32 66 61 2c 2c 2c 0a 44  c7efdfe52fa,,,.D
2070: 69 67 65 73 74 20 43 4d 41 43 2c 66 69 6c 65 2c  igest CMAC,file,
2080: 2c 2c 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20  ,,::tls::digest 
2090: 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f 63 69  -cipher $test_ci
20a0: 70 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74 5f  pher -key $test_
20b0: 6b 65 79 20 2d 66 69 6c 65 20 24 74 65 73 74 5f  key -file $test_
20c0: 66 69 6c 65 2c 2c 2c 62 61 66 35 63 32 30 66 39  file,,,baf5c20f9
20d0: 39 37 33 65 32 64 36 30 36 62 31 34 63 37 65 66  973e2d606b14c7ef
20e0: 64 66 65 35 32 66 61 2c 2c 2c 0a 44 69 67 65 73  dfe52fa,,,.Diges
20f0: 74 20 43 4d 41 43 2c 63 68 61 6e 6e 65 6c 2c 2c  t CMAC,channel,,
2100: 2c 72 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73  ,read_chan ::tls
2110: 3a 3a 64 69 67 65 73 74 20 24 74 65 73 74 5f 66  ::digest $test_f
2120: 69 6c 65 20 2d 63 69 70 68 65 72 20 24 74 65 73  ile -cipher $tes
2130: 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 20 24 74  t_cipher -key $t
2140: 65 73 74 5f 6b 65 79 2c 2c 2c 62 61 66 35 63 32  est_key,,,baf5c2
2150: 30 66 39 39 37 33 65 32 64 36 30 36 62 31 34 63  0f9973e2d606b14c
2160: 37 65 66 64 66 65 35 32 66 61 2c 2c 2c 0a 44 69  7efdfe52fa,,,.Di
2170: 67 65 73 74 20 43 4d 41 43 2c 63 6f 6d 6d 61 6e  gest CMAC,comman
2180: 64 2c 2c 2c 61 63 63 75 6d 75 6c 61 74 65 20 24  d,,,accumulate $
2190: 74 65 73 74 5f 64 61 74 61 20 3a 3a 74 6c 73 3a  test_data ::tls:
21a0: 3a 64 69 67 65 73 74 20 2d 63 69 70 68 65 72 20  :digest -cipher 
21b0: 24 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65  $test_cipher -ke
21c0: 79 20 24 74 65 73 74 5f 6b 65 79 2c 2c 2c 62 61  y $test_key,,,ba
21d0: 66 35 63 32 30 66 39 39 37 33 65 32 64 36 30 36  f5c20f9973e2d606
21e0: 62 31 34 63 37 65 66 64 66 65 35 32 66 61 2c 2c  b14c7efdfe52fa,,
21f0: 2c 0a 44 69 67 65 73 74 20 43 4d 41 43 2c 64 61  ,.Digest CMAC,da
2200: 74 61 20 62 69 6e 2c 2c 2c 62 69 6e 61 72 79 20  ta bin,,,binary 
2210: 65 6e 63 6f 64 65 20 68 65 78 20 5b 3a 3a 74 6c  encode hex [::tl
2220: 73 3a 3a 64 69 67 65 73 74 20 2d 62 69 6e 20 2d  s::digest -bin -
2230: 63 69 70 68 65 72 20 24 74 65 73 74 5f 63 69 70  cipher $test_cip
2240: 68 65 72 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b  her -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 5d 2c 2c 2c 62 61 66 35 63 32 30 66 39  ata],,,baf5c20f9
2270: 39 37 33 65 32 64 36 30 36 62 31 34 63 37 65 66  973e2d606b14c7ef
2280: 64 66 65 35 32 66 61 2c 2c 2c 0a 2c 2c 2c 2c 2c  dfe52fa,,,.,,,,,
2290: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20  ,,,,,.command,# 
22a0: 54 65 73 74 20 4d 41 43 20 63 6f 6d 6d 61 6e 64  Test MAC command
22b0: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4d 41 43 2c 48 4d  ,,,,,,,,,.MAC,HM
22c0: 41 43 2c 6e 65 77 5f 61 70 69 2c 2c 3a 3a 74 6c  AC,new_api,,::tl
22d0: 73 3a 3a 6d 61 63 20 2d 64 69 67 65 73 74 20 73  s::mac -digest s
22e0: 68 61 32 35 36 20 2d 6d 61 63 20 68 6d 61 63 20  ha256 -mac hmac 
22f0: 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20 2d  -key $test_key -
2300: 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 61 2c  data $test_data,
2310: 2c 2c 34 39 38 65 66 35 65 66 37 31 34 32 34 66  ,,498ef5ef71424f
2320: 38 31 64 61 37 34 39 39 62 32 65 65 61 65 31 64  81da7499b2eeae1d
2330: 30 61 33 34 38 64 64 34 30 62 38 34 31 65 61 32  0a348dd40b841ea2
2340: 37 62 64 64 65 34 39 34 66 36 62 63 39 30 34 36  7bdde494f6bc9046
2350: 66 66 2c 2c 2c 0a 4d 41 43 2c 43 4d 41 43 2c 6e  ff,,,.MAC,CMAC,n
2360: 65 77 5f 61 70 69 2c 2c 3a 3a 74 6c 73 3a 3a 6d  ew_api,,::tls::m
2370: 61 63 20 2d 63 69 70 68 65 72 20 24 74 65 73 74  ac -cipher $test
2380: 5f 63 69 70 68 65 72 20 2d 64 69 67 65 73 74 20  _cipher -digest 
2390: 73 68 61 32 35 36 20 2d 6d 61 63 20 63 6d 61 63  sha256 -mac cmac
23a0: 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20   -key $test_key 
23b0: 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 61  -data $test_data
23c0: 2c 2c 2c 34 39 38 65 66 35 65 66 37 31 34 32 34  ,,,498ef5ef71424
23d0: 66 38 31 64 61 37 34 39 39 62 32 65 65 61 65 31  f81da7499b2eeae1
23e0: 64 30 61 33 34 38 64 64 34 30 62 38 34 31 65 61  d0a348dd40b841ea
23f0: 32 37 62 64 64 65 34 39 34 66 36 62 63 39 30 34  27bdde494f6bc904
2400: 36 66 66 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c  6ff,,,.,,,,,,,,,
2410: 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 44 69 67 65  ,.command,# Dige
2420: 73 74 20 45 72 72 6f 72 20 43 61 73 65 73 2c 2c  st Error Cases,,
2430: 2c 2c 2c 2c 2c 2c 2c 0a 44 69 67 65 73 74 20 45  ,,,,,,,.Digest E
2440: 72 72 6f 72 73 2c 54 6f 6f 20 66 65 77 20 61 72  rrors,Too few ar
2450: 67 73 2c 2c 2c 3a 3a 74 6c 73 3a 3a 64 69 67 65  gs,,,::tls::dige
2460: 73 74 2c 2c 2c 22 77 72 6f 6e 67 20 23 20 61 72  st,,,"wrong # ar
2470: 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 22  gs: should be ""
2480: 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 3f 2d  ::tls::digest ?-
2490: 62 69 6e 7c 2d 68 65 78 3f 20 3f 2d 63 69 70 68  bin|-hex? ?-ciph
24a0: 65 72 20 6e 61 6d 65 3f 20 3f 2d 64 69 67 65 73  er name? ?-diges
24b0: 74 20 6e 61 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65  t name? ?-key ke
24c0: 79 3f 20 3f 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b  y? ?-mac name? [
24d0: 2d 63 68 61 6e 6e 65 6c 20 63 68 61 6e 20 7c 20  -channel chan | 
24e0: 2d 63 6f 6d 6d 61 6e 64 20 63 6d 64 4e 61 6d 65  -command cmdName
24f0: 20 7c 20 2d 66 69 6c 65 20 66 69 6c 65 6e 61 6d   | -file filenam
2500: 65 20 7c 20 3f 2d 64 61 74 61 3f 20 64 61 74 61  e | ?-data? data
2510: 5d 22 22 22 2c 2c 2c 31 0a 44 69 67 65 73 74 20  ]""",,,1.Digest 
2520: 45 72 72 6f 72 73 2c 54 6f 6f 20 6d 61 6e 79 20  Errors,Too many 
2530: 61 72 67 73 2c 2c 2c 3a 3a 74 6c 73 3a 3a 64 69  args,,,::tls::di
2540: 67 65 73 74 20 74 6f 6f 20 6d 61 6e 79 20 63 6f  gest too many co
2550: 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 72 67 73 20  mmand line args 
2560: 74 6f 20 70 61 73 73 20 74 68 65 20 74 65 73 74  to pass the test
2570: 20 77 69 74 68 6f 75 74 20 61 6e 20 65 72 72 6f   without an erro
2580: 72 20 6f 72 20 66 61 69 6c 69 6e 67 2c 2c 2c 22  r or failing,,,"
2590: 77 72 6f 6e 67 20 23 20 61 72 67 73 3a 20 73 68  wrong # args: sh
25a0: 6f 75 6c 64 20 62 65 20 22 22 3a 3a 74 6c 73 3a  ould be ""::tls:
25b0: 3a 64 69 67 65 73 74 20 3f 2d 62 69 6e 7c 2d 68  :digest ?-bin|-h
25c0: 65 78 3f 20 3f 2d 63 69 70 68 65 72 20 6e 61 6d  ex? ?-cipher nam
25d0: 65 3f 20 3f 2d 64 69 67 65 73 74 20 6e 61 6d 65  e? ?-digest name
25e0: 3f 20 3f 2d 6b 65 79 20 6b 65 79 3f 20 3f 2d 6d  ? ?-key key? ?-m
25f0: 61 63 20 6e 61 6d 65 3f 20 5b 2d 63 68 61 6e 6e  ac name? [-chann
2600: 65 6c 20 63 68 61 6e 20 7c 20 2d 63 6f 6d 6d 61  el chan | -comma
2610: 6e 64 20 63 6d 64 4e 61 6d 65 20 7c 20 2d 66 69  nd cmdName | -fi
2620: 6c 65 20 66 69 6c 65 6e 61 6d 65 20 7c 20 3f 2d  le filename | ?-
2630: 64 61 74 61 3f 20 64 61 74 61 5d 22 22 22 2c 2c  data? data]""",,
2640: 2c 31 0a 44 69 67 65 73 74 20 45 72 72 6f 72 73  ,1.Digest Errors
2650: 2c 49 6e 76 61 6c 69 64 20 64 69 67 65 73 74 2c  ,Invalid digest,
2660: 2c 2c 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20  ,,::tls::digest 
2670: 62 6f 67 75 73 20 64 61 74 61 2c 2c 2c 22 49 6e  bogus data,,,"In
2680: 76 61 6c 69 64 20 64 69 67 65 73 74 20 22 22 62  valid digest ""b
2690: 6f 67 75 73 22 22 22 2c 2c 2c 31 0a 44 69 67 65  ogus""",,,1.Dige
26a0: 73 74 20 45 72 72 6f 72 73 2c 49 6e 76 61 6c 69  st Errors,Invali
26b0: 64 20 64 69 67 65 73 74 20 41 72 67 2c 2c 2c 3a  d digest Arg,,,:
26c0: 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 2d 64 69  :tls::digest -di
26d0: 67 65 73 74 20 62 6f 67 75 73 20 2d 64 61 74 61  gest bogus -data
26e0: 20 64 61 74 61 2c 2c 2c 22 49 6e 76 61 6c 69 64   data,,,"Invalid
26f0: 20 64 69 67 65 73 74 20 22 22 62 6f 67 75 73 22   digest ""bogus"
2700: 22 22 2c 2c 2c 31 0a 44 69 67 65 73 74 20 45 72  "",,,1.Digest Er
2710: 72 6f 72 73 2c 4e 6f 20 64 69 67 65 73 74 2c 2c  rors,No digest,,
2720: 2c 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 2d  ,::tls::digest -
2730: 68 65 78 20 2d 64 61 74 61 20 76 61 6c 75 65 2c  hex -data value,
2740: 2c 2c 4e 6f 20 64 69 67 65 73 74 20 73 70 65 63  ,,No digest spec
2750: 69 66 69 65 64 2c 2c 2c 31 0a 44 69 67 65 73 74  ified,,,1.Digest
2760: 20 45 72 72 6f 72 73 2c 49 6e 76 61 6c 69 64 20   Errors,Invalid 
2770: 6f 70 74 69 6f 6e 2c 2c 2c 3a 3a 74 6c 73 3a 3a  option,,,::tls::
2780: 64 69 67 65 73 74 20 2d 64 69 67 65 73 74 20 73  digest -digest s
2790: 68 61 32 35 36 20 2d 62 6f 67 75 73 20 76 61 6c  ha256 -bogus val
27a0: 75 65 2c 2c 2c 22 62 61 64 20 6f 70 74 69 6f 6e  ue,,,"bad option
27b0: 20 22 22 2d 62 6f 67 75 73 22 22 3a 20 6d 75 73   ""-bogus"": mus
27c0: 74 20 62 65 20 2d 62 69 6e 2c 20 2d 63 68 61 6e  t be -bin, -chan
27d0: 6e 65 6c 2c 20 2d 63 69 70 68 65 72 2c 20 2d 63  nel, -cipher, -c
27e0: 6f 6d 6d 61 6e 64 2c 20 2d 64 61 74 61 2c 20 2d  ommand, -data, -
27f0: 64 69 67 65 73 74 2c 20 2d 66 69 6c 65 2c 20 2d  digest, -file, -
2800: 66 69 6c 65 6e 61 6d 65 2c 20 2d 68 65 78 2c 20  filename, -hex, 
2810: 2d 6b 65 79 2c 20 6f 72 20 2d 6d 61 63 22 2c 2c  -key, or -mac",,
2820: 2c 31 0a 44 69 67 65 73 74 20 45 72 72 6f 72 73  ,1.Digest Errors
2830: 2c 49 6e 76 61 6c 69 64 20 66 69 6c 65 2c 2c 2c  ,Invalid file,,,
2840: 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 2d 64  ::tls::digest -d
2850: 69 67 65 73 74 20 73 68 61 32 35 36 20 2d 66 69  igest sha256 -fi
2860: 6c 65 20 62 6f 67 75 73 2c 2c 2c 22 63 6f 75 6c  le bogus,,,"coul
2870: 64 6e 27 74 20 6f 70 65 6e 20 22 22 62 6f 67 75  dn't open ""bogu
2880: 73 22 22 3a 20 6e 6f 20 73 75 63 68 20 66 69 6c  s"": no such fil
2890: 65 20 6f 72 20 64 69 72 65 63 74 6f 72 79 22 2c  e or directory",
28a0: 2c 2c 31 0a 44 69 67 65 73 74 20 45 72 72 6f 72  ,,1.Digest Error
28b0: 73 2c 49 6e 76 61 6c 69 64 20 63 68 61 6e 6e 65  s,Invalid channe
28c0: 6c 2c 2c 2c 3a 3a 74 6c 73 3a 3a 64 69 67 65 73  l,,,::tls::diges
28d0: 74 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 36  t -digest sha256
28e0: 20 2d 63 68 61 6e 6e 65 6c 20 62 6f 67 75 73 2c   -channel bogus,
28f0: 2c 2c 22 63 61 6e 20 6e 6f 74 20 66 69 6e 64 20  ,,"can not find 
2900: 63 68 61 6e 6e 65 6c 20 6e 61 6d 65 64 20 22 22  channel named ""
2910: 62 6f 67 75 73 22 22 22 2c 2c 2c 31 0a 2c 2c 2c  bogus""",,,1.,,,
2920: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
2930: 23 20 43 4d 41 43 20 45 72 72 6f 72 20 43 61 73  # CMAC Error Cas
2940: 65 73 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 43 4d 41 43  es,,,,,,,,,.CMAC
2950: 20 45 72 72 6f 72 73 2c 54 6f 6f 20 66 65 77 20   Errors,Too few 
2960: 61 72 67 73 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d  args,,,::tls::cm
2970: 61 63 2c 2c 2c 22 77 72 6f 6e 67 20 23 20 61 72  ac,,,"wrong # ar
2980: 67 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 22  gs: should be ""
2990: 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 3f 2d 62 69  ::tls::cmac ?-bi
29a0: 6e 7c 2d 68 65 78 3f 20 3f 2d 63 69 70 68 65 72  n|-hex? ?-cipher
29b0: 20 6e 61 6d 65 3f 20 3f 2d 64 69 67 65 73 74 20   name? ?-digest 
29c0: 6e 61 6d 65 3f 20 3f 2d 6b 65 79 20 6b 65 79 3f  name? ?-key key?
29d0: 20 3f 2d 6d 61 63 20 6e 61 6d 65 3f 20 5b 2d 63   ?-mac name? [-c
29e0: 68 61 6e 6e 65 6c 20 63 68 61 6e 20 7c 20 2d 63  hannel chan | -c
29f0: 6f 6d 6d 61 6e 64 20 63 6d 64 4e 61 6d 65 20 7c  ommand cmdName |
2a00: 20 2d 66 69 6c 65 20 66 69 6c 65 6e 61 6d 65 20   -file filename 
2a10: 7c 20 3f 2d 64 61 74 61 3f 20 64 61 74 61 5d 22  | ?-data? data]"
2a20: 22 22 2c 2c 2c 31 0a 43 4d 41 43 20 45 72 72 6f  "",,,1.CMAC Erro
2a30: 72 73 2c 4e 6f 20 63 69 70 68 65 72 2c 2c 2c 3a  rs,No cipher,,,:
2a40: 3a 74 6c 73 3a 3a 63 6d 61 63 20 2d 68 65 78 20  :tls::cmac -hex 
2a50: 2d 64 61 74 61 20 76 61 6c 75 65 2c 2c 2c 4e 6f  -data value,,,No
2a60: 20 63 69 70 68 65 72 20 73 70 65 63 69 66 69 65   cipher specifie
2a70: 64 2c 2c 2c 31 0a 43 4d 41 43 20 45 72 72 6f 72  d,,,1.CMAC Error
2a80: 73 2c 4e 6f 20 6b 65 79 2c 2c 2c 3a 3a 74 6c 73  s,No key,,,::tls
2a90: 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 20 24  ::cmac -cipher $
2aa0: 74 65 73 74 5f 63 69 70 68 65 72 20 2d 64 61 74  test_cipher -dat
2ab0: 61 20 76 61 6c 75 65 2c 2c 2c 4e 6f 20 6b 65 79  a value,,,No key
2ac0: 20 73 70 65 63 69 66 69 65 64 2c 2c 2c 31 0a 43   specified,,,1.C
2ad0: 4d 41 43 20 45 72 72 6f 72 73 2c 49 6e 76 61 6c  MAC Errors,Inval
2ae0: 69 64 20 63 69 70 68 65 72 2c 2c 2c 3a 3a 74 6c  id cipher,,,::tl
2af0: 73 3a 3a 63 6d 61 63 20 2d 63 69 70 68 65 72 20  s::cmac -cipher 
2b00: 62 6f 67 75 73 20 2d 64 61 74 61 20 76 61 6c 75  bogus -data valu
2b10: 65 2c 2c 2c 22 49 6e 76 61 6c 69 64 20 63 69 70  e,,,"Invalid cip
2b20: 68 65 72 20 22 22 62 6f 67 75 73 22 22 22 2c 2c  her ""bogus""",,
2b30: 2c 31 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f  ,1.,,,,,,,,,,.co
2b40: 6d 6d 61 6e 64 2c 23 20 48 4d 41 43 20 45 72 72  mmand,# HMAC Err
2b50: 6f 72 20 43 61 73 65 73 2c 2c 2c 2c 2c 2c 2c 2c  or Cases,,,,,,,,
2b60: 2c 0a 48 4d 41 43 20 45 72 72 6f 72 73 2c 54 6f  ,.HMAC Errors,To
2b70: 6f 20 66 65 77 20 61 72 67 73 2c 2c 2c 3a 3a 74  o few args,,,::t
2b80: 6c 73 3a 3a 68 6d 61 63 2c 2c 2c 22 77 72 6f 6e  ls::hmac,,,"wron
2b90: 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75 6c 64  g # args: should
2ba0: 20 62 65 20 22 22 3a 3a 74 6c 73 3a 3a 68 6d 61   be ""::tls::hma
2bb0: 63 20 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20 3f 2d  c ?-bin|-hex? ?-
2bc0: 63 69 70 68 65 72 20 6e 61 6d 65 3f 20 3f 2d 64  cipher name? ?-d
2bd0: 69 67 65 73 74 20 6e 61 6d 65 3f 20 3f 2d 6b 65  igest name? ?-ke
2be0: 79 20 6b 65 79 3f 20 3f 2d 6d 61 63 20 6e 61 6d  y key? ?-mac nam
2bf0: 65 3f 20 5b 2d 63 68 61 6e 6e 65 6c 20 63 68 61  e? [-channel cha
2c00: 6e 20 7c 20 2d 63 6f 6d 6d 61 6e 64 20 63 6d 64  n | -command cmd
2c10: 4e 61 6d 65 20 7c 20 2d 66 69 6c 65 20 66 69 6c  Name | -file fil
2c20: 65 6e 61 6d 65 20 7c 20 3f 2d 64 61 74 61 3f 20  ename | ?-data? 
2c30: 64 61 74 61 5d 22 22 22 2c 2c 2c 31 0a 48 4d 41  data]""",,,1.HMA
2c40: 43 20 45 72 72 6f 72 73 2c 4e 6f 20 64 69 67 65  C Errors,No dige
2c50: 73 74 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63  st,,,::tls::hmac
2c60: 20 2d 68 65 78 20 2d 64 61 74 61 20 76 61 6c 75   -hex -data valu
2c70: 65 2c 2c 2c 4e 6f 20 64 69 67 65 73 74 20 73 70  e,,,No digest sp
2c80: 65 63 69 66 69 65 64 2c 2c 2c 31 0a 48 4d 41 43  ecified,,,1.HMAC
2c90: 20 45 72 72 6f 72 73 2c 4e 6f 20 6b 65 79 2c 2c   Errors,No key,,
2ca0: 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69  ,::tls::hmac -di
2cb0: 67 65 73 74 20 73 68 61 32 35 36 20 2d 64 61 74  gest sha256 -dat
2cc0: 61 20 76 61 6c 75 65 2c 2c 2c 4e 6f 20 6b 65 79  a value,,,No key
2cd0: 20 73 70 65 63 69 66 69 65 64 2c 2c 2c 31 0a 2c   specified,,,1.,
2ce0: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e  ,,,,,,,,,.comman
2cf0: 64 2c 23 20 4d 41 43 20 45 72 72 6f 72 20 43 61  d,# MAC Error Ca
2d00: 73 65 73 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 4d 41 43  ses,,,,,,,,,.MAC
2d10: 20 45 72 72 6f 72 73 2c 54 6f 6f 20 66 65 77 20   Errors,Too few 
2d20: 61 72 67 73 2c 6e 65 77 5f 61 70 69 2c 2c 3a 3a  args,new_api,,::
2d30: 74 6c 73 3a 3a 6d 6d 61 63 2c 2c 2c 22 77 72 6f  tls::mmac,,,"wro
2d40: 6e 67 20 23 20 61 72 67 73 3a 20 73 68 6f 75 6c  ng # args: shoul
2d50: 64 20 62 65 20 22 22 3a 3a 74 6c 73 3a 3a 6d 61  d be ""::tls::ma
2d60: 63 20 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20 3f 2d  c ?-bin|-hex? ?-
2d70: 63 69 70 68 65 72 20 6e 61 6d 65 3f 20 3f 2d 64  cipher name? ?-d
2d80: 69 67 65 73 74 20 6e 61 6d 65 3f 20 3f 2d 6b 65  igest name? ?-ke
2d90: 79 20 6b 65 79 3f 20 3f 2d 6d 61 63 20 6e 61 6d  y key? ?-mac nam
2da0: 65 3f 20 5b 2d 63 68 61 6e 6e 65 6c 20 63 68 61  e? [-channel cha
2db0: 6e 20 7c 20 2d 63 6f 6d 6d 61 6e 64 20 63 6d 64  n | -command cmd
2dc0: 4e 61 6d 65 20 7c 20 2d 66 69 6c 65 20 66 69 6c  Name | -file fil
2dd0: 65 6e 61 6d 65 20 7c 20 3f 2d 64 61 74 61 3f 20  ename | ?-data? 
2de0: 64 61 74 61 5d 22 22 22 2c 2c 2c 31 0a 4d 41 43  data]""",,,1.MAC
2df0: 20 45 72 72 6f 72 73 2c 4e 6f 20 6b 65 79 2c 6e   Errors,No key,n
2e00: 65 77 5f 61 70 69 2c 2c 3a 3a 74 6c 73 3a 3a 6d  ew_api,,::tls::m
2e10: 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 32 35  ac -digest sha25
2e20: 36 20 2d 64 61 74 61 20 76 61 6c 75 65 2c 2c 2c  6 -data value,,,
2e30: 4e 6f 20 6b 65 79 20 73 70 65 63 69 66 69 65 64  No key specified
2e40: 2c 2c 2c 31 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  ,,,1.,,,,,,,,,,.
2e50: 63 6f 6d 6d 61 6e 64 2c 23 20 52 46 43 20 34 32  command,# RFC 42
2e60: 33 31 20 48 4d 41 43 20 45 78 61 6d 70 6c 65 73  31 HMAC Examples
2e70: 20 54 65 73 74 20 43 61 73 65 20 23 31 2c 2c 2c   Test Case #1,,,
2e80: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22  ,,,,,,.command,"
2e90: 73 65 74 20 6b 65 79 20 5b 62 69 6e 61 72 79 20  set key [binary 
2ea0: 64 65 63 6f 64 65 20 68 65 78 20 5b 73 74 72 69  decode hex [stri
2eb0: 6e 67 20 72 65 70 65 61 74 20 22 22 30 62 22 22  ng repeat ""0b""
2ec0: 20 32 30 5d 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a   20]]",,,,,,,,,.
2ed0: 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 64 61 74  command,"set dat
2ee0: 61 20 22 22 48 69 20 54 68 65 72 65 22 22 22 2c  a ""Hi There""",
2ef0: 2c 2c 2c 2c 2c 2c 2c 2c 0a 52 46 43 34 32 33 31  ,,,,,,,,.RFC4231
2f00: 20 54 43 31 2c 73 68 61 32 32 34 2c 2c 2c 3a 3a   TC1,sha224,,,::
2f10: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73  tls::hmac -diges
2f20: 74 20 73 68 61 32 32 34 20 2d 6b 65 79 20 24 6b  t sha224 -key $k
2f30: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c  ey -data $data,,
2f40: 2c 38 39 36 66 62 31 31 32 38 61 62 62 64 66 31  ,896fb1128abbdf1
2f50: 39 36 38 33 32 31 30 37 63 64 34 39 64 66 33 33  96832107cd49df33
2f60: 66 34 37 62 34 62 31 31 36 39 39 31 32 62 61 34  f47b4b1169912ba4
2f70: 66 35 33 36 38 34 62 32 32 2c 2c 2c 0a 52 46 43  f53684b22,,,.RFC
2f80: 34 32 33 31 20 54 43 31 2c 73 68 61 32 35 36 2c  4231 TC1,sha256,
2f90: 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64  ,,::tls::hmac -d
2fa0: 69 67 65 73 74 20 73 68 61 32 35 36 20 2d 6b 65  igest sha256 -ke
2fb0: 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61  y $key -data $da
2fc0: 74 61 2c 2c 2c 62 30 33 34 34 63 36 31 64 38 64  ta,,,b0344c61d8d
2fd0: 62 33 38 35 33 35 63 61 38 61 66 63 65 61 66 30  b38535ca8afceaf0
2fe0: 62 66 31 32 62 38 38 31 64 63 32 30 30 63 39 38  bf12b881dc200c98
2ff0: 33 33 64 61 37 32 36 65 39 33 37 36 63 32 65 33  33da726e9376c2e3
3000: 32 63 66 66 37 2c 2c 2c 0a 52 46 43 34 32 33 31  2cff7,,,.RFC4231
3010: 20 54 43 31 2c 73 68 61 33 38 34 2c 2c 2c 3a 3a   TC1,sha384,,,::
3020: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73  tls::hmac -diges
3030: 74 20 73 68 61 33 38 34 20 2d 6b 65 79 20 24 6b  t sha384 -key $k
3040: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c  ey -data $data,,
3050: 2c 61 66 64 30 33 39 34 34 64 38 34 38 39 35 36  ,afd03944d848956
3060: 32 36 62 30 38 32 35 66 34 61 62 34 36 39 30 37  26b0825f4ab46907
3070: 66 31 35 66 39 64 61 64 62 65 34 31 30 31 65 63  f15f9dadbe4101ec
3080: 36 38 32 61 61 30 33 34 63 37 63 65 62 63 35 39  682aa034c7cebc59
3090: 63 66 61 65 61 39 65 61 39 30 37 36 65 64 65 37  cfaea9ea9076ede7
30a0: 66 34 61 66 31 35 32 65 38 62 32 66 61 39 63 62  f4af152e8b2fa9cb
30b0: 36 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 31  6,,,.RFC4231 TC1
30c0: 2c 73 68 61 35 31 32 2c 2c 2c 3a 3a 74 6c 73 3a  ,sha512,,,::tls:
30d0: 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68  :hmac -digest sh
30e0: 61 35 31 32 20 2d 6b 65 79 20 24 6b 65 79 20 2d  a512 -key $key -
30f0: 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 38 37 61  data $data,,,87a
3100: 61 37 63 64 65 61 35 65 66 36 31 39 64 34 66 66  a7cdea5ef619d4ff
3110: 30 62 34 32 34 31 61 31 64 36 63 62 30 32 33 37  0b4241a1d6cb0237
3120: 39 66 34 65 32 63 65 34 65 63 32 37 38 37 61 64  9f4e2ce4ec2787ad
3130: 30 62 33 30 35 34 35 65 31 37 63 64 65 64 61 61  0b30545e17cdedaa
3140: 38 33 33 62 37 64 36 62 38 61 37 30 32 30 33 38  833b7d6b8a702038
3150: 62 32 37 34 65 61 65 61 33 66 34 65 34 62 65 39  b274eaea3f4e4be9
3160: 64 39 31 34 65 65 62 36 31 66 31 37 30 32 65 36  d914eeb61f1702e6
3170: 39 36 63 32 30 33 61 31 32 36 38 35 34 2c 2c 2c  96c203a126854,,,
3180: 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  .,,,,,,,,,,.comm
3190: 61 6e 64 2c 23 20 52 46 43 20 34 32 33 31 20 48  and,# RFC 4231 H
31a0: 4d 41 43 20 45 78 61 6d 70 6c 65 73 20 54 65 73  MAC Examples Tes
31b0: 74 20 43 61 73 65 20 23 32 20 2d 20 54 65 73 74  t Case #2 - Test
31c0: 20 77 69 74 68 20 61 20 6b 65 79 20 73 68 6f 72   with a key shor
31d0: 74 65 72 20 74 68 61 6e 20 74 68 65 20 6c 65 6e  ter than the len
31e0: 67 74 68 20 6f 66 20 74 68 65 20 48 4d 41 43 20  gth of the HMAC 
31f0: 6f 75 74 70 75 74 2e 2c 2c 2c 2c 2c 2c 2c 2c 2c  output.,,,,,,,,,
3200: 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 6b 65  .command,"set ke
3210: 79 20 22 22 4a 65 66 65 22 22 22 2c 2c 2c 2c 2c  y ""Jefe""",,,,,
3220: 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65  ,,,,.command,"se
3230: 74 20 64 61 74 61 20 22 22 77 68 61 74 20 64 6f  t data ""what do
3240: 20 79 61 20 77 61 6e 74 20 66 6f 72 20 6e 6f 74   ya want for not
3250: 68 69 6e 67 3f 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c  hing?""",,,,,,,,
3260: 2c 0a 52 46 43 34 32 33 31 20 54 43 32 2c 73 68  ,.RFC4231 TC2,sh
3270: 61 32 32 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d  a224,,,::tls::hm
3280: 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 32 32  ac -digest sha22
3290: 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74  4 -key $key -dat
32a0: 61 20 24 64 61 74 61 2c 2c 2c 61 33 30 65 30 31  a $data,,,a30e01
32b0: 30 39 38 62 63 36 64 62 62 66 34 35 36 39 30 66  098bc6dbbf45690f
32c0: 33 61 37 65 39 65 36 64 30 66 38 62 62 65 61 32  3a7e9e6d0f8bbea2
32d0: 61 33 39 65 36 31 34 38 30 30 38 66 64 30 35 65  a39e6148008fd05e
32e0: 34 34 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54 43  44,,,.RFC4231 TC
32f0: 32 2c 73 68 61 32 35 36 2c 2c 2c 3a 3a 74 6c 73  2,sha256,,,::tls
3300: 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73  ::hmac -digest s
3310: 68 61 32 35 36 20 2d 6b 65 79 20 24 6b 65 79 20  ha256 -key $key 
3320: 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 35 62  -data $data,,,5b
3330: 64 63 63 31 34 36 62 66 36 30 37 35 34 65 36 61  dcc146bf60754e6a
3340: 30 34 32 34 32 36 30 38 39 35 37 35 63 37 35 61  042426089575c75a
3350: 30 30 33 66 30 38 39 64 32 37 33 39 38 33 39 64  003f089d2739839d
3360: 65 63 35 38 62 39 36 34 65 63 33 38 34 33 2c 2c  ec58b964ec3843,,
3370: 2c 0a 52 46 43 34 32 33 31 20 54 43 32 2c 73 68  ,.RFC4231 TC2,sh
3380: 61 33 38 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d  a384,,,::tls::hm
3390: 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 33 38  ac -digest sha38
33a0: 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74  4 -key $key -dat
33b0: 61 20 24 64 61 74 61 2c 2c 2c 61 66 34 35 64 32  a $data,,,af45d2
33c0: 65 33 37 36 34 38 34 30 33 31 36 31 37 66 37 38  e376484031617f78
33d0: 64 32 62 35 38 61 36 62 31 62 39 63 37 65 66 34  d2b58a6b1b9c7ef4
33e0: 36 34 66 35 61 30 31 62 34 37 65 34 32 65 63 33  64f5a01b47e42ec3
33f0: 37 33 36 33 32 32 34 34 35 65 38 65 32 32 34 30  736322445e8e2240
3400: 63 61 35 65 36 39 65 32 63 37 38 62 33 32 33 39  ca5e69e2c78b3239
3410: 65 63 66 61 62 32 31 36 34 39 2c 2c 2c 0a 52 46  ecfab21649,,,.RF
3420: 43 34 32 33 31 20 54 43 32 2c 73 68 61 35 31 32  C4231 TC2,sha512
3430: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d  ,,,::tls::hmac -
3440: 64 69 67 65 73 74 20 73 68 61 35 31 32 20 2d 6b  digest sha512 -k
3450: 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64  ey $key -data $d
3460: 61 74 61 2c 2c 2c 31 36 34 62 37 61 37 62 66 63  ata,,,164b7a7bfc
3470: 66 38 31 39 65 32 65 33 39 35 66 62 65 37 33 62  f819e2e395fbe73b
3480: 35 36 65 30 61 33 38 37 62 64 36 34 32 32 32 65  56e0a387bd64222e
3490: 38 33 31 66 64 36 31 30 32 37 30 63 64 37 65 61  831fd610270cd7ea
34a0: 32 35 30 35 35 34 39 37 35 38 62 66 37 35 63 30  2505549758bf75c0
34b0: 35 61 39 39 34 61 36 64 30 33 34 66 36 35 66 38  5a994a6d034f65f8
34c0: 66 30 65 36 66 64 63 61 65 61 62 31 61 33 34 64  f0e6fdcaeab1a34d
34d0: 34 61 36 62 34 62 36 33 36 65 30 37 30 61 33 38  4a6b4b636e070a38
34e0: 62 63 65 37 33 37 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c  bce737,,,.,,,,,,
34f0: 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 52  ,,,,.command,# R
3500: 46 43 20 34 32 33 31 20 48 4d 41 43 20 45 78 61  FC 4231 HMAC Exa
3510: 6d 70 6c 65 73 20 54 65 73 74 20 43 61 73 65 20  mples Test Case 
3520: 23 33 20 2d 20 54 65 73 74 20 77 69 74 68 20 61  #3 - Test with a
3530: 20 63 6f 6d 62 69 6e 65 64 20 6c 65 6e 67 74 68   combined length
3540: 20 6f 66 20 6b 65 79 20 61 6e 64 20 64 61 74 61   of key and data
3550: 20 74 68 61 74 20 69 73 20 6c 61 72 67 65 72 20   that is larger 
3560: 74 68 61 6e 20 36 34 20 62 79 74 65 73 20 28 3d  than 64 bytes (=
3570: 20 62 6c 6f 63 6b 2d 73 69 7a 65 20 6f 66 20 53   block-size of S
3580: 48 41 2d 32 32 34 20 61 6e 64 20 53 48 41 2d 32  HA-224 and SHA-2
3590: 35 36 29 2e 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f  56).,,,,,,,,,.co
35a0: 6d 6d 61 6e 64 2c 22 73 65 74 20 6b 65 79 20 5b  mmand,"set key [
35b0: 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65  binary decode he
35c0: 78 20 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74  x [string repeat
35d0: 20 22 22 61 61 22 22 20 32 30 5d 5d 22 2c 2c 2c   ""aa"" 20]]",,,
35e0: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22  ,,,,,,.command,"
35f0: 73 65 74 20 64 61 74 61 20 5b 62 69 6e 61 72 79  set data [binary
3600: 20 64 65 63 6f 64 65 20 68 65 78 20 5b 73 74 72   decode hex [str
3610: 69 6e 67 20 72 65 70 65 61 74 20 22 22 64 64 22  ing repeat ""dd"
3620: 22 20 35 30 5d 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c  " 50]]",,,,,,,,,
3630: 0a 52 46 43 34 32 33 31 20 54 43 33 2c 73 68 61  .RFC4231 TC3,sha
3640: 32 32 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61  224,,,::tls::hma
3650: 63 20 2d 64 69 67 65 73 74 20 73 68 61 32 32 34  c -digest sha224
3660: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61   -key $key -data
3670: 20 24 64 61 74 61 2c 2c 2c 37 66 62 33 63 62 33   $data,,,7fb3cb3
3680: 35 38 38 63 36 63 31 66 36 66 66 61 39 36 39 34  588c6c1f6ffa9694
3690: 64 37 64 36 61 64 32 36 34 39 33 36 35 62 30 63  d7d6ad2649365b0c
36a0: 31 66 36 35 64 36 39 64 31 65 63 38 33 33 33 65  1f65d69d1ec8333e
36b0: 61 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 33  a,,,.RFC4231 TC3
36c0: 2c 73 68 61 32 35 36 2c 2c 2c 3a 3a 74 6c 73 3a  ,sha256,,,::tls:
36d0: 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68  :hmac -digest sh
36e0: 61 32 35 36 20 2d 6b 65 79 20 24 6b 65 79 20 2d  a256 -key $key -
36f0: 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 37 37 33  data $data,,,773
3700: 65 61 39 31 65 33 36 38 30 30 65 34 36 38 35 34  ea91e36800e46854
3710: 64 62 38 65 62 64 30 39 31 38 31 61 37 32 39 35  db8ebd09181a7295
3720: 39 30 39 38 62 33 65 66 38 63 31 32 32 64 39 36  9098b3ef8c122d96
3730: 33 35 35 31 34 63 65 64 35 36 35 66 65 2c 2c 2c  35514ced565fe,,,
3740: 0a 52 46 43 34 32 33 31 20 54 43 33 2c 73 68 61  .RFC4231 TC3,sha
3750: 33 38 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61  384,,,::tls::hma
3760: 63 20 2d 64 69 67 65 73 74 20 73 68 61 33 38 34  c -digest sha384
3770: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61   -key $key -data
3780: 20 24 64 61 74 61 2c 2c 2c 38 38 30 36 32 36 30   $data,,,8806260
3790: 38 64 33 65 36 61 64 38 61 30 61 61 32 61 63 65  8d3e6ad8a0aa2ace
37a0: 30 31 34 63 38 61 38 36 66 30 61 61 36 33 35 64  014c8a86f0aa635d
37b0: 39 34 37 61 63 39 66 65 62 65 38 33 65 66 34 65  947ac9febe83ef4e
37c0: 35 35 39 36 36 31 34 34 62 32 61 35 61 62 33 39  55966144b2a5ab39
37d0: 64 63 31 33 38 31 34 62 39 34 65 33 61 62 36 65  dc13814b94e3ab6e
37e0: 31 30 31 61 33 34 66 32 37 2c 2c 2c 0a 52 46 43  101a34f27,,,.RFC
37f0: 34 32 33 31 20 54 43 33 2c 73 68 61 35 31 32 2c  4231 TC3,sha512,
3800: 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64  ,,::tls::hmac -d
3810: 69 67 65 73 74 20 73 68 61 35 31 32 20 2d 6b 65  igest sha512 -ke
3820: 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61  y $key -data $da
3830: 74 61 2c 2c 2c 66 61 37 33 62 30 30 38 39 64 35  ta,,,fa73b0089d5
3840: 36 61 32 38 34 65 66 62 30 66 30 37 35 36 63 38  6a284efb0f0756c8
3850: 39 30 62 65 39 62 31 62 35 64 62 64 64 38 65 65  90be9b1b5dbdd8ee
3860: 38 31 61 33 36 35 35 66 38 33 65 33 33 62 32 32  81a3655f83e33b22
3870: 37 39 64 33 39 62 66 33 65 38 34 38 32 37 39 61  79d39bf3e848279a
3880: 37 32 32 63 38 30 36 62 34 38 35 61 34 37 65 36  722c806b485a47e6
3890: 37 63 38 30 37 62 39 34 36 61 33 33 37 62 65 65  7c807b946a337bee
38a0: 38 39 34 32 36 37 34 32 37 38 38 35 39 65 31 33  8942674278859e13
38b0: 32 39 32 66 62 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c  292fb,,,.,,,,,,,
38c0: 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 52 46  ,,,.command,# RF
38d0: 43 20 34 32 33 31 20 48 4d 41 43 20 45 78 61 6d  C 4231 HMAC Exam
38e0: 70 6c 65 73 20 54 65 73 74 20 43 61 73 65 20 23  ples Test Case #
38f0: 34 20 2d 20 54 65 73 74 20 77 69 74 68 20 61 20  4 - Test with a 
3900: 63 6f 6d 62 69 6e 65 64 20 6c 65 6e 67 74 68 20  combined length 
3910: 6f 66 20 6b 65 79 20 61 6e 64 20 64 61 74 61 20  of key and data 
3920: 74 68 61 74 20 69 73 20 6c 61 72 67 65 72 20 74  that is larger t
3930: 68 61 6e 20 36 34 20 62 79 74 65 73 20 28 3d 20  han 64 bytes (= 
3940: 62 6c 6f 63 6b 2d 73 69 7a 65 20 6f 66 20 53 48  block-size of SH
3950: 41 2d 32 32 34 20 61 6e 64 20 53 48 41 2d 32 35  A-224 and SHA-25
3960: 36 29 2e 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  6).,,,,,,,,,.com
3970: 6d 61 6e 64 2c 22 73 65 74 20 6b 65 79 20 5b 62  mand,"set key [b
3980: 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78  inary decode hex
3990: 20 22 22 30 31 30 32 30 33 30 34 30 35 30 36 30   ""0102030405060
39a0: 37 30 38 30 39 30 61 30 62 30 63 30 64 30 65 30  708090a0b0c0d0e0
39b0: 66 31 30 31 31 31 32 31 33 31 34 31 35 31 36 31  f101112131415161
39c0: 37 31 38 31 39 22 22 5d 22 2c 2c 2c 2c 2c 2c 2c  71819""]",,,,,,,
39d0: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20  ,,.command,"set 
39e0: 64 61 74 61 20 5b 62 69 6e 61 72 79 20 64 65 63  data [binary dec
39f0: 6f 64 65 20 68 65 78 20 5b 73 74 72 69 6e 67 20  ode hex [string 
3a00: 72 65 70 65 61 74 20 22 22 63 64 22 22 20 35 30  repeat ""cd"" 50
3a10: 5d 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 52 46 43  ]]",,,,,,,,,.RFC
3a20: 34 32 33 31 20 54 43 34 2c 73 68 61 32 32 34 2c  4231 TC4,sha224,
3a30: 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64  ,,::tls::hmac -d
3a40: 69 67 65 73 74 20 73 68 61 32 32 34 20 2d 6b 65  igest sha224 -ke
3a50: 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61  y $key -data $da
3a60: 74 61 2c 2c 2c 36 63 31 31 35 30 36 38 37 34 30  ta,,,6c115068740
3a70: 31 33 63 61 63 36 61 32 61 62 63 31 62 62 33 38  13cac6a2abc1bb38
3a80: 32 36 32 37 63 65 63 36 61 39 30 64 38 36 65 66  2627cec6a90d86ef
3a90: 63 30 31 32 64 65 37 61 66 65 63 35 61 2c 2c 2c  c012de7afec5a,,,
3aa0: 0a 52 46 43 34 32 33 31 20 54 43 34 2c 73 68 61  .RFC4231 TC4,sha
3ab0: 32 35 36 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61  256,,,::tls::hma
3ac0: 63 20 2d 64 69 67 65 73 74 20 73 68 61 32 35 36  c -digest sha256
3ad0: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61   -key $key -data
3ae0: 20 24 64 61 74 61 2c 2c 2c 38 32 35 35 38 61 33   $data,,,82558a3
3af0: 38 39 61 34 34 33 63 30 65 61 34 63 63 38 31 39  89a443c0ea4cc819
3b00: 38 39 39 66 32 30 38 33 61 38 35 66 30 66 61 61  899f2083a85f0faa
3b10: 33 65 35 37 38 66 38 30 37 37 61 32 65 33 66 66  3e578f8077a2e3ff
3b20: 34 36 37 32 39 36 36 35 62 2c 2c 2c 0a 52 46 43  46729665b,,,.RFC
3b30: 34 32 33 31 20 54 43 34 2c 73 68 61 33 38 34 2c  4231 TC4,sha384,
3b40: 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64  ,,::tls::hmac -d
3b50: 69 67 65 73 74 20 73 68 61 33 38 34 20 2d 6b 65  igest sha384 -ke
3b60: 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61  y $key -data $da
3b70: 74 61 2c 2c 2c 33 65 38 61 36 39 62 37 37 38 33  ta,,,3e8a69b7783
3b80: 63 32 35 38 35 31 39 33 33 61 62 36 32 39 30 61  c25851933ab6290a
3b90: 66 36 63 61 37 37 61 39 39 38 31 34 38 30 38 35  f6ca77a998148085
3ba0: 30 30 30 39 63 63 35 35 37 37 63 36 65 31 66 35  0009cc5577c6e1f5
3bb0: 37 33 62 34 65 36 38 30 31 64 64 32 33 63 34 61  73b4e6801dd23c4a
3bc0: 37 64 36 37 39 63 63 66 38 61 33 38 36 63 36 37  7d679ccf8a386c67
3bd0: 34 63 66 66 62 2c 2c 2c 0a 52 46 43 34 32 33 31  4cffb,,,.RFC4231
3be0: 20 54 43 34 2c 73 68 61 35 31 32 2c 2c 2c 3a 3a   TC4,sha512,,,::
3bf0: 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73  tls::hmac -diges
3c00: 74 20 73 68 61 35 31 32 20 2d 6b 65 79 20 24 6b  t sha512 -key $k
3c10: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c  ey -data $data,,
3c20: 2c 62 30 62 61 34 36 35 36 33 37 34 35 38 63 36  ,b0ba465637458c6
3c30: 39 39 30 65 35 61 38 63 35 66 36 31 64 34 61 66  990e5a8c5f61d4af
3c40: 37 65 35 37 36 64 39 37 66 66 39 34 62 38 37 32  7e576d97ff94b872
3c50: 64 65 37 36 66 38 30 35 30 33 36 31 65 65 33 64  de76f8050361ee3d
3c60: 62 61 39 31 63 61 35 63 31 31 61 61 32 35 65 62  ba91ca5c11aa25eb
3c70: 34 64 36 37 39 32 37 35 63 63 35 37 38 38 30 36  4d679275cc578806
3c80: 33 61 35 66 31 39 37 34 31 31 32 30 63 34 66 32  3a5f19741120c4f2
3c90: 64 65 32 61 64 65 62 65 62 31 30 61 32 39 38 64  de2adebeb10a298d
3ca0: 64 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  d,,,.,,,,,,,,,,.
3cb0: 63 6f 6d 6d 61 6e 64 2c 23 20 52 46 43 20 34 32  command,# RFC 42
3cc0: 33 31 20 48 4d 41 43 20 45 78 61 6d 70 6c 65 73  31 HMAC Examples
3cd0: 20 54 65 73 74 20 43 61 73 65 20 23 35 20 2d 20   Test Case #5 - 
3ce0: 54 65 73 74 20 77 69 74 68 20 61 20 74 72 75 6e  Test with a trun
3cf0: 63 61 74 69 6f 6e 20 6f 66 20 6f 75 74 70 75 74  cation of output
3d00: 20 74 6f 20 31 32 38 20 62 69 74 73 2e 2c 2c 2c   to 128 bits.,,,
3d10: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22  ,,,,,,.command,"
3d20: 73 65 74 20 6b 65 79 20 5b 62 69 6e 61 72 79 20  set key [binary 
3d30: 64 65 63 6f 64 65 20 68 65 78 20 5b 73 74 72 69  decode hex [stri
3d40: 6e 67 20 72 65 70 65 61 74 20 22 22 30 63 22 22  ng repeat ""0c""
3d50: 20 32 30 5d 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a   20]]",,,,,,,,,.
3d60: 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 64 61 74  command,"set dat
3d70: 61 20 22 22 54 65 73 74 20 57 69 74 68 20 54 72  a ""Test With Tr
3d80: 75 6e 63 61 74 69 6f 6e 22 22 22 2c 2c 2c 2c 2c  uncation""",,,,,
3d90: 2c 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 35  ,,,,.RFC4231 TC5
3da0: 2c 73 68 61 32 32 34 2c 2c 2c 73 74 72 69 6e 67  ,sha224,,,string
3db0: 20 72 61 6e 67 65 20 5b 3a 3a 74 6c 73 3a 3a 68   range [::tls::h
3dc0: 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 32  mac -digest sha2
3dd0: 32 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61  24 -key $key -da
3de0: 74 61 20 24 64 61 74 61 5d 20 30 20 33 31 2c 2c  ta $data] 0 31,,
3df0: 2c 30 65 32 61 65 61 36 38 61 39 30 63 38 64 33  ,0e2aea68a90c8d3
3e00: 37 63 39 38 38 62 63 64 62 39 66 63 61 36 66 61  7c988bcdb9fca6fa
3e10: 38 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 35  8,,,.RFC4231 TC5
3e20: 2c 73 68 61 32 35 36 2c 2c 2c 73 74 72 69 6e 67  ,sha256,,,string
3e30: 20 72 61 6e 67 65 20 5b 3a 3a 74 6c 73 3a 3a 68   range [::tls::h
3e40: 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 32  mac -digest sha2
3e50: 35 36 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61  56 -key $key -da
3e60: 74 61 20 24 64 61 74 61 5d 20 30 20 33 31 2c 2c  ta $data] 0 31,,
3e70: 2c 61 33 62 36 31 36 37 34 37 33 31 30 30 65 65  ,a3b6167473100ee
3e80: 30 36 65 30 63 37 39 36 63 32 39 35 35 35 35 32  06e0c796c2955552
3e90: 62 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 35  b,,,.RFC4231 TC5
3ea0: 2c 73 68 61 33 38 34 2c 2c 2c 73 74 72 69 6e 67  ,sha384,,,string
3eb0: 20 72 61 6e 67 65 20 5b 3a 3a 74 6c 73 3a 3a 68   range [::tls::h
3ec0: 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 33  mac -digest sha3
3ed0: 38 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61  84 -key $key -da
3ee0: 74 61 20 24 64 61 74 61 5d 20 30 20 33 31 2c 2c  ta $data] 0 31,,
3ef0: 2c 33 61 62 66 33 34 63 33 35 30 33 62 32 61 32  ,3abf34c3503b2a2
3f00: 33 61 34 36 65 66 63 36 31 39 62 61 65 66 38 39  3a46efc619baef89
3f10: 37 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 35  7,,,.RFC4231 TC5
3f20: 2c 73 68 61 35 31 32 2c 2c 2c 73 74 72 69 6e 67  ,sha512,,,string
3f30: 20 72 61 6e 67 65 20 5b 3a 3a 74 6c 73 3a 3a 68   range [::tls::h
3f40: 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 35  mac -digest sha5
3f50: 31 32 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61  12 -key $key -da
3f60: 74 61 20 24 64 61 74 61 5d 20 30 20 33 31 2c 2c  ta $data] 0 31,,
3f70: 2c 34 31 35 66 61 64 36 32 37 31 35 38 30 61 35  ,415fad6271580a5
3f80: 33 31 64 34 31 37 39 62 63 38 39 31 64 38 37 61  31d4179bc891d87a
3f90: 36 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  6,,,.,,,,,,,,,,.
3fa0: 63 6f 6d 6d 61 6e 64 2c 23 20 52 46 43 20 34 32  command,# RFC 42
3fb0: 33 31 20 48 4d 41 43 20 45 78 61 6d 70 6c 65 73  31 HMAC Examples
3fc0: 20 54 65 73 74 20 43 61 73 65 20 23 36 20 2d 20   Test Case #6 - 
3fd0: 54 65 73 74 20 77 69 74 68 20 61 20 6b 65 79 20  Test with a key 
3fe0: 6c 61 72 67 65 72 20 74 68 61 6e 20 31 32 38 20  larger than 128 
3ff0: 62 79 74 65 73 20 28 3d 20 62 6c 6f 63 6b 2d 73  bytes (= block-s
4000: 69 7a 65 20 6f 66 20 53 48 41 2d 33 38 34 20 61  ize of SHA-384 a
4010: 6e 64 20 53 48 41 2d 35 31 32 29 2e 2c 2c 2c 2c  nd SHA-512).,,,,
4020: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73  ,,,,,.command,"s
4030: 65 74 20 6b 65 79 20 5b 62 69 6e 61 72 79 20 64  et key [binary d
4040: 65 63 6f 64 65 20 68 65 78 20 5b 73 74 72 69 6e  ecode hex [strin
4050: 67 20 72 65 70 65 61 74 20 22 22 61 61 22 22 20  g repeat ""aa"" 
4060: 31 33 31 5d 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  131]]",,,,,,,,,.
4070: 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 64 61 74  command,"set dat
4080: 61 20 22 22 54 65 73 74 20 55 73 69 6e 67 20 4c  a ""Test Using L
4090: 61 72 67 65 72 20 54 68 61 6e 20 42 6c 6f 63 6b  arger Than Block
40a0: 2d 53 69 7a 65 20 4b 65 79 20 2d 20 48 61 73 68  -Size Key - Hash
40b0: 20 4b 65 79 20 46 69 72 73 74 22 22 22 2c 2c 2c   Key First""",,,
40c0: 2c 2c 2c 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54  ,,,,,,.RFC4231 T
40d0: 43 36 2c 73 68 61 32 32 34 2c 2c 2c 3a 3a 74 6c  C6,sha224,,,::tl
40e0: 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20  s::hmac -digest 
40f0: 73 68 61 32 32 34 20 2d 6b 65 79 20 24 6b 65 79  sha224 -key $key
4100: 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 39   -data $data,,,9
4110: 35 65 39 61 30 64 62 39 36 32 30 39 35 61 64 61  5e9a0db962095ada
4120: 65 62 65 39 62 32 64 36 66 30 64 62 63 65 32 64  ebe9b2d6f0dbce2d
4130: 34 39 39 66 31 31 32 66 32 64 32 62 37 32 37 33  499f112f2d2b7273
4140: 66 61 36 38 37 30 65 2c 2c 2c 0a 52 46 43 34 32  fa6870e,,,.RFC42
4150: 33 31 20 54 43 36 2c 73 68 61 32 35 36 2c 2c 2c  31 TC6,sha256,,,
4160: 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67  ::tls::hmac -dig
4170: 65 73 74 20 73 68 61 32 35 36 20 2d 6b 65 79 20  est sha256 -key 
4180: 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61  $key -data $data
4190: 2c 2c 2c 36 30 65 34 33 31 35 39 31 65 65 30 62  ,,,60e431591ee0b
41a0: 36 37 66 30 64 38 61 32 36 61 61 63 62 66 35 62  67f0d8a26aacbf5b
41b0: 37 37 66 38 65 30 62 63 36 32 31 33 37 32 38 63  77f8e0bc6213728c
41c0: 35 31 34 30 35 34 36 30 34 30 66 30 65 65 33 37  5140546040f0ee37
41d0: 66 35 34 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54  f54,,,.RFC4231 T
41e0: 43 36 2c 73 68 61 33 38 34 2c 2c 2c 3a 3a 74 6c  C6,sha384,,,::tl
41f0: 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74 20  s::hmac -digest 
4200: 73 68 61 33 38 34 20 2d 6b 65 79 20 24 6b 65 79  sha384 -key $key
4210: 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 34   -data $data,,,4
4220: 65 63 65 30 38 34 34 38 35 38 31 33 65 39 30 38  ece084485813e908
4230: 38 64 32 63 36 33 61 30 34 31 62 63 35 62 34 34  8d2c63a041bc5b44
4240: 66 39 65 66 31 30 31 32 61 32 62 35 38 38 66 33  f9ef1012a2b588f3
4250: 63 64 31 31 66 30 35 30 33 33 61 63 34 63 36 30  cd11f05033ac4c60
4260: 63 32 65 66 36 61 62 34 30 33 30 66 65 38 32 39  c2ef6ab4030fe829
4270: 36 32 34 38 64 66 31 36 33 66 34 34 39 35 32 2c  6248df163f44952,
4280: 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 36 2c 73  ,,.RFC4231 TC6,s
4290: 68 61 35 31 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68  ha512,,,::tls::h
42a0: 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 35  mac -digest sha5
42b0: 31 32 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61  12 -key $key -da
42c0: 74 61 20 24 64 61 74 61 2c 2c 2c 38 30 62 32 34  ta $data,,,80b24
42d0: 32 36 33 63 37 63 31 61 33 65 62 62 37 31 34 39  263c7c1a3ebb7149
42e0: 33 63 31 64 64 37 62 65 38 62 34 39 62 34 36 64  3c1dd7be8b49b46d
42f0: 31 66 34 31 62 34 61 65 65 63 31 31 32 31 62 30  1f41b4aeec1121b0
4300: 31 33 37 38 33 66 38 66 33 35 32 36 62 35 36 64  13783f8f3526b56d
4310: 30 33 37 65 30 35 66 32 35 39 38 62 64 30 66 64  037e05f2598bd0fd
4320: 32 32 31 35 64 36 61 31 65 35 32 39 35 65 36 34  2215d6a1e5295e64
4330: 66 37 33 66 36 33 66 30 61 65 63 38 62 39 31 35  f73f63f0aec8b915
4340: 61 39 38 35 64 37 38 36 35 39 38 2c 2c 2c 0a 2c  a985d786598,,,.,
4350: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e  ,,,,,,,,,.comman
4360: 64 2c 23 20 52 46 43 20 34 32 33 31 20 48 4d 41  d,# RFC 4231 HMA
4370: 43 20 45 78 61 6d 70 6c 65 73 20 54 65 73 74 20  C Examples Test 
4380: 43 61 73 65 20 23 37 20 2d 20 54 65 73 74 20 77  Case #7 - Test w
4390: 69 74 68 20 61 20 6b 65 79 20 61 6e 64 20 64 61  ith a key and da
43a0: 74 61 20 74 68 61 74 20 69 73 20 6c 61 72 67 65  ta that is large
43b0: 72 20 74 68 61 6e 20 31 32 38 20 62 79 74 65 73  r than 128 bytes
43c0: 20 28 3d 20 62 6c 6f 63 6b 2d 73 69 7a 65 20 6f   (= block-size o
43d0: 66 20 53 48 41 2d 33 38 34 20 61 6e 64 20 53 48  f SHA-384 and SH
43e0: 41 2d 35 31 32 29 2e 2c 2c 2c 2c 2c 2c 2c 2c 2c  A-512).,,,,,,,,,
43f0: 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 6b 65  .command,"set ke
4400: 79 20 5b 62 69 6e 61 72 79 20 64 65 63 6f 64 65  y [binary decode
4410: 20 68 65 78 20 5b 73 74 72 69 6e 67 20 72 65 70   hex [string rep
4420: 65 61 74 20 22 22 61 61 22 22 20 31 33 31 5d 5d  eat ""aa"" 131]]
4430: 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61  ",,,,,,,,,.comma
4440: 6e 64 2c 22 73 65 74 20 64 61 74 61 20 22 22 54  nd,"set data ""T
4450: 68 69 73 20 69 73 20 61 20 74 65 73 74 20 75 73  his is a test us
4460: 69 6e 67 20 61 20 6c 61 72 67 65 72 20 74 68 61  ing a larger tha
4470: 6e 20 62 6c 6f 63 6b 2d 73 69 7a 65 20 6b 65 79  n block-size key
4480: 20 61 6e 64 20 61 20 6c 61 72 67 65 72 20 74 68   and a larger th
4490: 61 6e 20 62 6c 6f 63 6b 2d 73 69 7a 65 20 64 61  an block-size da
44a0: 74 61 2e 20 54 68 65 20 6b 65 79 20 6e 65 65 64  ta. The key need
44b0: 73 20 74 6f 20 62 65 20 68 61 73 68 65 64 20 62  s to be hashed b
44c0: 65 66 6f 72 65 20 62 65 69 6e 67 20 75 73 65 64  efore being used
44d0: 20 62 79 20 74 68 65 20 48 4d 41 43 20 61 6c 67   by the HMAC alg
44e0: 6f 72 69 74 68 6d 2e 22 22 22 2c 2c 2c 2c 2c 2c  orithm.""",,,,,,
44f0: 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 37 2c  ,,,.RFC4231 TC7,
4500: 73 68 61 32 32 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a  sha224,,,::tls::
4510: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61  hmac -digest sha
4520: 32 32 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64  224 -key $key -d
4530: 61 74 61 20 24 64 61 74 61 2c 2c 2c 33 61 38 35  ata $data,,,3a85
4540: 34 31 36 36 61 63 35 64 39 66 30 32 33 66 35 34  4166ac5d9f023f54
4550: 64 35 31 37 64 30 62 33 39 64 62 64 39 34 36 37  d517d0b39dbd9467
4560: 37 30 64 62 39 63 32 62 39 35 63 39 66 36 66 35  70db9c2b95c9f6f5
4570: 36 35 64 31 2c 2c 2c 0a 52 46 43 34 32 33 31 20  65d1,,,.RFC4231 
4580: 54 43 37 2c 73 68 61 32 35 36 2c 2c 2c 3a 3a 74  TC7,sha256,,,::t
4590: 6c 73 3a 3a 68 6d 61 63 20 2d 64 69 67 65 73 74  ls::hmac -digest
45a0: 20 73 68 61 32 35 36 20 2d 6b 65 79 20 24 6b 65   sha256 -key $ke
45b0: 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c  y -data $data,,,
45c0: 39 62 30 39 66 66 61 37 31 62 39 34 32 66 63 62  9b09ffa71b942fcb
45d0: 32 37 36 33 35 66 62 63 64 35 62 30 65 39 34 34  27635fbcd5b0e944
45e0: 62 66 64 63 36 33 36 34 34 66 30 37 31 33 39 33  bfdc63644f071393
45f0: 38 61 37 66 35 31 35 33 35 63 33 61 33 35 65 32  8a7f51535c3a35e2
4600: 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 37 2c  ,,,.RFC4231 TC7,
4610: 73 68 61 33 38 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a  sha384,,,::tls::
4620: 68 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61  hmac -digest sha
4630: 33 38 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64  384 -key $key -d
4640: 61 74 61 20 24 64 61 74 61 2c 2c 2c 36 36 31 37  ata $data,,,6617
4650: 31 37 38 65 39 34 31 66 30 32 30 64 33 35 31 65  178e941f020d351e
4660: 32 66 32 35 34 65 38 66 64 33 32 63 36 30 32 34  2f254e8fd32c6024
4670: 32 30 66 65 62 30 62 38 66 62 39 61 64 63 63 65  20feb0b8fb9adcce
4680: 62 62 38 32 34 36 31 65 39 39 63 35 61 36 37 38  bb82461e99c5a678
4690: 63 63 33 31 65 37 39 39 31 37 36 64 33 38 36 30  cc31e799176d3860
46a0: 65 36 31 31 30 63 34 36 35 32 33 65 2c 2c 2c 0a  e6110c46523e,,,.
46b0: 52 46 43 34 32 33 31 20 54 43 37 2c 73 68 61 35  RFC4231 TC7,sha5
46c0: 31 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63  12,,,::tls::hmac
46d0: 20 2d 64 69 67 65 73 74 20 73 68 61 35 31 32 20   -digest sha512 
46e0: 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20  -key $key -data 
46f0: 24 64 61 74 61 2c 2c 2c 65 33 37 62 36 61 37 37  $data,,,e37b6a77
4700: 35 64 63 38 37 64 62 61 61 34 64 66 61 39 66 39  5dc87dbaa4dfa9f9
4710: 36 65 35 65 33 66 66 64 64 65 62 64 37 31 66 38  6e5e3ffddebd71f8
4720: 38 36 37 32 38 39 38 36 35 64 66 35 61 33 32 64  867289865df5a32d
4730: 32 30 63 64 63 39 34 34 62 36 30 32 32 63 61 63  20cdc944b6022cac
4740: 33 63 34 39 38 32 62 31 30 64 35 65 65 62 35 35  3c4982b10d5eeb55
4750: 63 33 65 34 64 65 31 35 31 33 34 36 37 36 66 62  c3e4de15134676fb
4760: 36 64 65 30 34 34 36 30 36 35 63 39 37 34 34 30  6de0446065c97440
4770: 66 61 38 63 36 61 35 38 2c 2c 2c 0a 2c 2c 2c 2c  fa8c6a58,,,.,,,,
4780: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23  ,,,,,,.command,#
4790: 20 43 6c 65 61 6e 75 70 2c 2c 2c 2c 2c 2c 2c 2c   Cleanup,,,,,,,,
47a0: 2c 0a 63 6f 6d 6d 61 6e 64 2c 3a 3a 74 63 6c 74  ,.command,::tclt
47b0: 65 73 74 3a 3a 72 65 6d 6f 76 65 46 69 6c 65 20  est::removeFile 
47c0: 24 74 65 73 74 5f 66 69 6c 65 2c 2c 2c 2c 2c 2c  $test_file,,,,,,
47d0: 2c 2c 2c 0a                                      ,,,.