Hex Artifact Content

Artifact 70c49bbd6a0b17d681f204edb7fdef801439ecc4398d1505559018d81f8e9d80:


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 6d 64 20 66 69 6c 65 6e 61  n {cmd md filena
0120: 6d 65 20 61 72 67 73 7d 20 7b 73 65 74 20 63 68  me args} {set ch
0130: 20 5b 6f 70 65 6e 20 24 66 69 6c 65 6e 61 6d 65   [open $filename
0140: 20 72 62 5d 3b 66 63 6f 6e 66 69 67 75 72 65 20   rb];fconfigure 
0150: 24 63 68 20 2d 74 72 61 6e 73 6c 61 74 69 6f 6e  $ch -translation
0160: 20 62 69 6e 61 72 79 3b 73 65 74 20 62 73 69 7a   binary;set bsiz
0170: 65 20 5b 66 63 6f 6e 66 69 67 75 72 65 20 24 63  e [fconfigure $c
0180: 68 20 2d 62 75 66 66 65 72 73 69 7a 65 5d 3b 73  h -buffersize];s
0190: 65 74 20 6e 65 77 20 5b 24 63 6d 64 20 24 6d 64  et new [$cmd $md
01a0: 20 7b 2a 7d 24 61 72 67 73 20 2d 63 68 61 6e 20   {*}$args -chan 
01b0: 24 63 68 5d 3b 77 68 69 6c 65 20 7b 21 5b 65 6f  $ch];while {![eo
01c0: 66 20 24 6e 65 77 5d 7d 20 7b 73 65 74 20 72 65  f $new]} {set re
01d0: 73 75 6c 74 20 5b 72 65 61 64 20 24 6e 65 77 20  sult [read $new 
01e0: 24 62 73 69 7a 65 5d 7d 3b 63 6c 6f 73 65 20 24  $bsize]};close $
01f0: 6e 65 77 3b 72 65 74 75 72 6e 20 24 72 65 73 75  new;return $resu
0200: 6c 74 7d 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  lt},,,,,,,,,.com
0210: 6d 61 6e 64 2c 70 72 6f 63 20 61 63 63 75 6d 75  mand,proc accumu
0220: 6c 61 74 65 20 7b 73 74 72 69 6e 67 20 61 72 67  late {string arg
0230: 73 7d 20 7b 73 65 74 20 63 6d 64 20 5b 7b 2a 7d  s} {set cmd [{*}
0240: 24 61 72 67 73 20 2d 63 6f 6d 6d 61 6e 64 20 64  $args -command d
0250: 63 6d 64 5d 3b 24 63 6d 64 20 75 70 64 61 74 65  cmd];$cmd update
0260: 20 5b 73 74 72 69 6e 67 20 72 61 6e 67 65 20 24   [string range $
0270: 73 74 72 69 6e 67 20 30 20 32 30 5d 3b 24 63 6d  string 0 20];$cm
0280: 64 20 75 70 64 61 74 65 20 5b 73 74 72 69 6e 67  d update [string
0290: 20 72 61 6e 67 65 20 24 73 74 72 69 6e 67 20 32   range $string 2
02a0: 31 20 65 6e 64 5d 3b 72 65 74 75 72 6e 20 5b 24  1 end];return [$
02b0: 63 6d 64 20 66 69 6e 61 6c 69 7a 65 5d 7d 2c 2c  cmd finalize]},,
02c0: 2c 2c 2c 2c 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c  ,,,,,,,.,,,,,,,,
02d0: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20  ,,.command,"set 
02e0: 74 65 73 74 5f 64 61 74 61 20 22 22 45 78 61 6d  test_data ""Exam
02f0: 70 6c 65 20 73 74 72 69 6e 67 20 66 6f 72 20 6d  ple string for m
0300: 65 73 73 61 67 65 20 64 69 67 65 73 74 20 74 65  essage digest te
0310: 73 74 73 2e 5c 6e 22 22 22 2c 2c 2c 2c 2c 2c 2c  sts.\n""",,,,,,,
0320: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20  ,,.command,"set 
0330: 74 65 73 74 5f 66 69 6c 65 20 22 22 6d 64 5f 64  test_file ""md_d
0340: 61 74 61 2e 64 61 74 22 22 22 2c 2c 2c 2c 2c 2c  ata.dat""",,,,,,
0350: 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74  ,,,.command,"set
0360: 20 74 65 73 74 5f 6b 65 79 20 22 22 45 78 61 6d   test_key ""Exam
0370: 70 6c 65 20 6b 65 79 22 22 22 2c 2c 2c 2c 2c 2c  ple key""",,,,,,
0380: 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 3a 3a 74 63  ,,,.command,::tc
0390: 6c 74 65 73 74 3a 3a 6d 61 6b 65 46 69 6c 65 20  ltest::makeFile 
03a0: 24 74 65 73 74 5f 64 61 74 61 20 24 74 65 73 74  $test_data $test
03b0: 5f 66 69 6c 65 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 2c  _file,,,,,,,,,.,
03c0: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e  ,,,,,,,,,.comman
03d0: 64 2c 23 20 54 65 73 74 20 64 69 67 65 73 74 20  d,# Test digest 
03e0: 63 6f 6d 6d 61 6e 64 73 2c 2c 2c 2c 2c 2c 2c 2c  commands,,,,,,,,
03f0: 2c 0a 44 69 67 65 73 74 20 43 6d 64 73 2c 6d 64  ,.Digest Cmds,md
0400: 34 20 63 6d 64 2c 2c 2c 3a 3a 74 6c 73 3a 3a 6d  4 cmd,,,::tls::m
0410: 64 34 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c  d4 $test_data,,,
0420: 37 39 33 33 39 39 66 37 39 32 65 63 61 32 37 35  793399f792eca275
0430: 32 63 36 61 66 33 32 33 34 62 61 37 30 38 35 38  2c6af3234ba70858
0440: 2c 2c 2c 0a 44 69 67 65 73 74 20 43 6d 64 73 2c  ,,,.Digest Cmds,
0450: 6d 64 35 20 63 6d 64 2c 2c 2c 3a 3a 74 6c 73 3a  md5 cmd,,,::tls:
0460: 3a 6d 64 35 20 24 74 65 73 74 5f 64 61 74 61 2c  :md5 $test_data,
0470: 2c 2c 39 36 32 62 66 30 38 30 33 62 34 32 33 32  ,,962bf0803b4232
0480: 65 63 32 33 62 64 38 34 32 37 62 62 39 34 65 61  ec23bd8427bb94ea
0490: 30 39 2c 2c 2c 0a 44 69 67 65 73 74 20 43 6d 64  09,,,.Digest Cmd
04a0: 73 2c 73 68 61 31 20 63 6d 64 2c 2c 2c 3a 3a 74  s,sha1 cmd,,,::t
04b0: 6c 73 3a 3a 73 68 61 31 20 24 74 65 73 74 5f 64  ls::sha1 $test_d
04c0: 61 74 61 2c 2c 2c 34 66 65 30 33 62 37 66 32 35  ata,,,4fe03b7f25
04d0: 36 38 35 35 31 64 66 61 66 62 39 38 63 61 36 30  68551dfafb98ca60
04e0: 30 34 65 36 35 63 34 62 37 31 61 61 37 64 2c 2c  04e65c4b71aa7d,,
04f0: 2c 0a 44 69 67 65 73 74 20 43 6d 64 73 2c 73 68  ,.Digest Cmds,sh
0500: 61 32 35 36 20 63 6d 64 2c 2c 2c 3a 3a 74 6c 73  a256 cmd,,,::tls
0510: 3a 3a 73 68 61 32 35 36 20 24 74 65 73 74 5f 64  ::sha256 $test_d
0520: 61 74 61 2c 2c 2c 39 64 33 35 37 38 66 63 31 33  ata,,,9d3578fc13
0530: 38 32 30 35 63 66 30 65 65 34 62 34 63 65 66 33  8205cf0ee4b4cef3
0540: 35 66 65 31 30 31 62 62 34 65 63 61 63 37 62 31  5fe101bb4ecac7b1
0550: 36 31 34 63 31 38 65 36 66 61 34 38 62 35 63 37  614c18e6fa48b5c7
0560: 66 39 35 65 31 39 2c 2c 2c 0a 44 69 67 65 73 74  f95e19,,,.Digest
0570: 20 43 6d 64 73 2c 73 68 61 35 31 32 20 63 6d 64   Cmds,sha512 cmd
0580: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 73 68 61 35 31 32  ,,,::tls::sha512
0590: 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 64 31   $test_data,,,d1
05a0: 37 38 65 37 35 39 64 63 35 39 31 32 37 30 37 31  78e759dc59127071
05b0: 35 38 38 64 32 66 61 64 31 37 33 63 30 36 32 33  588d2fad173c0623
05c0: 38 64 38 37 65 38 30 30 61 36 34 30 33 63 30 61  8d87e800a6403c0a
05d0: 33 30 64 61 61 34 66 61 61 66 30 35 64 30 65 37  30daa4faaf05d0e7
05e0: 63 65 30 34 39 31 36 61 66 61 61 36 61 35 38 61  ce04916afaa6a58a
05f0: 33 30 63 62 65 62 35 39 37 64 61 63 62 30 31 63  30cbeb597dacb01c
0600: 36 32 66 39 66 62 39 64 38 39 62 61 62 39 64 61  62f9fb9d89bab9da
0610: 36 33 30 63 36 39 39 65 34 38 31 36 66 31 2c 2c  630c699e4816f1,,
0620: 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  ,.,,,,,,,,,,.com
0630: 6d 61 6e 64 2c 23 20 54 65 73 74 20 64 69 67 65  mand,# Test dige
0640: 73 74 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 63  st command for c
0650: 68 61 6e 6e 65 6c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  hannel,,,,,,,,,.
0660: 44 69 67 65 73 74 20 43 68 61 6e 2c 6d 64 34 2c  Digest Chan,md4,
0670: 2c 2c 72 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c  ,,read_chan ::tl
0680: 73 3a 3a 64 69 67 65 73 74 20 6d 64 34 20 24 74  s::digest md4 $t
0690: 65 73 74 5f 66 69 6c 65 2c 2c 2c 37 39 33 33 39  est_file,,,79339
06a0: 39 66 37 39 32 65 63 61 32 37 35 32 63 36 61 66  9f792eca2752c6af
06b0: 33 32 33 34 62 61 37 30 38 35 38 2c 2c 2c 0a 44  3234ba70858,,,.D
06c0: 69 67 65 73 74 20 43 68 61 6e 2c 6d 64 35 2c 2c  igest Chan,md5,,
06d0: 2c 72 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73  ,read_chan ::tls
06e0: 3a 3a 64 69 67 65 73 74 20 6d 64 35 20 24 74 65  ::digest md5 $te
06f0: 73 74 5f 66 69 6c 65 2c 2c 2c 39 36 32 62 66 30  st_file,,,962bf0
0700: 38 30 33 62 34 32 33 32 65 63 32 33 62 64 38 34  803b4232ec23bd84
0710: 32 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a 44 69  27bb94ea09,,,.Di
0720: 67 65 73 74 20 43 68 61 6e 2c 73 68 61 31 2c 2c  gest Chan,sha1,,
0730: 2c 72 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73  ,read_chan ::tls
0740: 3a 3a 64 69 67 65 73 74 20 73 68 61 31 20 24 74  ::digest sha1 $t
0750: 65 73 74 5f 66 69 6c 65 2c 2c 2c 34 66 65 30 33  est_file,,,4fe03
0760: 62 37 66 32 35 36 38 35 35 31 64 66 61 66 62 39  b7f2568551dfafb9
0770: 38 63 61 36 30 30 34 65 36 35 63 34 62 37 31 61  8ca6004e65c4b71a
0780: 61 37 64 2c 2c 2c 0a 44 69 67 65 73 74 20 43 68  a7d,,,.Digest Ch
0790: 61 6e 2c 73 68 61 32 35 36 2c 2c 2c 72 65 61 64  an,sha256,,,read
07a0: 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 64 69 67  _chan ::tls::dig
07b0: 65 73 74 20 73 68 61 32 35 36 20 24 74 65 73 74  est sha256 $test
07c0: 5f 66 69 6c 65 2c 2c 2c 39 64 33 35 37 38 66 63  _file,,,9d3578fc
07d0: 31 33 38 32 30 35 63 66 30 65 65 34 62 34 63 65  138205cf0ee4b4ce
07e0: 66 33 35 66 65 31 30 31 62 62 34 65 63 61 63 37  f35fe101bb4ecac7
07f0: 62 31 36 31 34 63 31 38 65 36 66 61 34 38 62 35  b1614c18e6fa48b5
0800: 63 37 66 39 35 65 31 39 2c 2c 2c 0a 44 69 67 65  c7f95e19,,,.Dige
0810: 73 74 20 43 68 61 6e 2c 73 68 61 35 31 32 2c 2c  st Chan,sha512,,
0820: 2c 72 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73  ,read_chan ::tls
0830: 3a 3a 64 69 67 65 73 74 20 73 68 61 35 31 32 20  ::digest sha512 
0840: 24 74 65 73 74 5f 66 69 6c 65 2c 2c 2c 64 31 37  $test_file,,,d17
0850: 38 65 37 35 39 64 63 35 39 31 32 37 30 37 31 35  8e759dc591270715
0860: 38 38 64 32 66 61 64 31 37 33 63 30 36 32 33 38  88d2fad173c06238
0870: 64 38 37 65 38 30 30 61 36 34 30 33 63 30 61 33  d87e800a6403c0a3
0880: 30 64 61 61 34 66 61 61 66 30 35 64 30 65 37 63  0daa4faaf05d0e7c
0890: 65 30 34 39 31 36 61 66 61 61 36 61 35 38 61 33  e04916afaa6a58a3
08a0: 30 63 62 65 62 35 39 37 64 61 63 62 30 31 63 36  0cbeb597dacb01c6
08b0: 32 66 39 66 62 39 64 38 39 62 61 62 39 64 61 36  2f9fb9d89bab9da6
08c0: 33 30 63 36 39 39 65 34 38 31 36 66 31 2c 2c 2c  30c699e4816f1,,,
08d0: 0a 44 69 67 65 73 74 20 43 68 61 6e 2c 6d 64 35  .Digest Chan,md5
08e0: 20 62 69 6e 2c 2c 2c 62 69 6e 61 72 79 20 65 6e   bin,,,binary en
08f0: 63 6f 64 65 20 68 65 78 20 5b 72 65 61 64 5f 63  code hex [read_c
0900: 68 61 6e 20 3a 3a 74 6c 73 3a 3a 64 69 67 65 73  han ::tls::diges
0910: 74 20 6d 64 35 20 24 74 65 73 74 5f 66 69 6c 65  t md5 $test_file
0920: 20 2d 62 69 6e 5d 2c 2c 2c 39 36 32 62 66 30 38   -bin],,,962bf08
0930: 30 33 62 34 32 33 32 65 63 32 33 62 64 38 34 32  03b4232ec23bd842
0940: 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a 44 69 67  7bb94ea09,,,.Dig
0950: 65 73 74 20 43 68 61 6e 2c 6d 64 35 20 68 65 78  est Chan,md5 hex
0960: 2c 2c 2c 72 65 61 64 5f 63 68 61 6e 20 3a 3a 74  ,,,read_chan ::t
0970: 6c 73 3a 3a 64 69 67 65 73 74 20 6d 64 35 20 24  ls::digest md5 $
0980: 74 65 73 74 5f 66 69 6c 65 20 2d 68 65 78 2c 2c  test_file -hex,,
0990: 2c 39 36 32 62 66 30 38 30 33 62 34 32 33 32 65  ,962bf0803b4232e
09a0: 63 32 33 62 64 38 34 32 37 62 62 39 34 65 61 30  c23bd8427bb94ea0
09b0: 39 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  9,,,.,,,,,,,,,,.
09c0: 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73 74 20 64  command,# Test d
09d0: 69 67 65 73 74 20 63 6f 6d 6d 61 6e 64 20 66 6f  igest command fo
09e0: 72 20 6f 62 6a 65 63 74 20 63 6f 6d 6d 61 6e 64  r object command
09f0: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 44 69 67 65 73 74  ,,,,,,,,,.Digest
0a00: 20 43 6f 6d 6d 61 6e 64 2c 6d 64 34 2c 2c 2c 61   Command,md4,,,a
0a10: 63 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f  ccumulate $test_
0a20: 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 64 69 67 65  data ::tls::dige
0a30: 73 74 20 6d 64 34 2c 2c 2c 37 39 33 33 39 39 66  st md4,,,793399f
0a40: 37 39 32 65 63 61 32 37 35 32 63 36 61 66 33 32  792eca2752c6af32
0a50: 33 34 62 61 37 30 38 35 38 2c 2c 2c 0a 44 69 67  34ba70858,,,.Dig
0a60: 65 73 74 20 43 6f 6d 6d 61 6e 64 2c 6d 64 35 2c  est Command,md5,
0a70: 2c 2c 61 63 63 75 6d 75 6c 61 74 65 20 24 74 65  ,,accumulate $te
0a80: 73 74 5f 64 61 74 61 20 3a 3a 74 6c 73 3a 3a 64  st_data ::tls::d
0a90: 69 67 65 73 74 20 6d 64 35 2c 2c 2c 39 36 32 62  igest md5,,,962b
0aa0: 66 30 38 30 33 62 34 32 33 32 65 63 32 33 62 64  f0803b4232ec23bd
0ab0: 38 34 32 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a  8427bb94ea09,,,.
0ac0: 44 69 67 65 73 74 20 43 6f 6d 6d 61 6e 64 2c 73  Digest Command,s
0ad0: 68 61 31 2c 2c 2c 61 63 63 75 6d 75 6c 61 74 65  ha1,,,accumulate
0ae0: 20 24 74 65 73 74 5f 64 61 74 61 20 3a 3a 74 6c   $test_data ::tl
0af0: 73 3a 3a 64 69 67 65 73 74 20 73 68 61 31 2c 2c  s::digest sha1,,
0b00: 2c 34 66 65 30 33 62 37 66 32 35 36 38 35 35 31  ,4fe03b7f2568551
0b10: 64 66 61 66 62 39 38 63 61 36 30 30 34 65 36 35  dfafb98ca6004e65
0b20: 63 34 62 37 31 61 61 37 64 2c 2c 2c 0a 44 69 67  c4b71aa7d,,,.Dig
0b30: 65 73 74 20 43 6f 6d 6d 61 6e 64 2c 73 68 61 32  est Command,sha2
0b40: 35 36 2c 2c 2c 61 63 63 75 6d 75 6c 61 74 65 20  56,,,accumulate 
0b50: 24 74 65 73 74 5f 64 61 74 61 20 3a 3a 74 6c 73  $test_data ::tls
0b60: 3a 3a 64 69 67 65 73 74 20 73 68 61 32 35 36 2c  ::digest sha256,
0b70: 2c 2c 39 64 33 35 37 38 66 63 31 33 38 32 30 35  ,,9d3578fc138205
0b80: 63 66 30 65 65 34 62 34 63 65 66 33 35 66 65 31  cf0ee4b4cef35fe1
0b90: 30 31 62 62 34 65 63 61 63 37 62 31 36 31 34 63  01bb4ecac7b1614c
0ba0: 31 38 65 36 66 61 34 38 62 35 63 37 66 39 35 65  18e6fa48b5c7f95e
0bb0: 31 39 2c 2c 2c 0a 44 69 67 65 73 74 20 43 6f 6d  19,,,.Digest Com
0bc0: 6d 61 6e 64 2c 73 68 61 35 31 32 2c 2c 2c 61 63  mand,sha512,,,ac
0bd0: 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64  cumulate $test_d
0be0: 61 74 61 20 3a 3a 74 6c 73 3a 3a 64 69 67 65 73  ata ::tls::diges
0bf0: 74 20 73 68 61 35 31 32 2c 2c 2c 64 31 37 38 65  t sha512,,,d178e
0c00: 37 35 39 64 63 35 39 31 32 37 30 37 31 35 38 38  759dc59127071588
0c10: 64 32 66 61 64 31 37 33 63 30 36 32 33 38 64 38  d2fad173c06238d8
0c20: 37 65 38 30 30 61 36 34 30 33 63 30 61 33 30 64  7e800a6403c0a30d
0c30: 61 61 34 66 61 61 66 30 35 64 30 65 37 63 65 30  aa4faaf05d0e7ce0
0c40: 34 39 31 36 61 66 61 61 36 61 35 38 61 33 30 63  4916afaa6a58a30c
0c50: 62 65 62 35 39 37 64 61 63 62 30 31 63 36 32 66  beb597dacb01c62f
0c60: 39 66 62 39 64 38 39 62 61 62 39 64 61 36 33 30  9fb9d89bab9da630
0c70: 63 36 39 39 65 34 38 31 36 66 31 2c 2c 2c 0a 44  c699e4816f1,,,.D
0c80: 69 67 65 73 74 20 43 6f 6d 6d 61 6e 64 2c 6d 64  igest Command,md
0c90: 35 20 62 69 6e 2c 2c 2c 62 69 6e 61 72 79 20 65  5 bin,,,binary e
0ca0: 6e 63 6f 64 65 20 68 65 78 20 5b 61 63 63 75 6d  ncode hex [accum
0cb0: 75 6c 61 74 65 20 24 74 65 73 74 5f 64 61 74 61  ulate $test_data
0cc0: 20 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 6d   ::tls::digest m
0cd0: 64 35 20 2d 62 69 6e 5d 2c 2c 2c 39 36 32 62 66  d5 -bin],,,962bf
0ce0: 30 38 30 33 62 34 32 33 32 65 63 32 33 62 64 38  0803b4232ec23bd8
0cf0: 34 32 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a 44  427bb94ea09,,,.D
0d00: 69 67 65 73 74 20 43 6f 6d 6d 61 6e 64 2c 6d 64  igest Command,md
0d10: 35 20 68 65 78 2c 2c 2c 61 63 63 75 6d 75 6c 61  5 hex,,,accumula
0d20: 74 65 20 24 74 65 73 74 5f 64 61 74 61 20 3a 3a  te $test_data ::
0d30: 74 6c 73 3a 3a 64 69 67 65 73 74 20 6d 64 35 20  tls::digest md5 
0d40: 2d 68 65 78 2c 2c 2c 39 36 32 62 66 30 38 30 33  -hex,,,962bf0803
0d50: 62 34 32 33 32 65 63 32 33 62 64 38 34 32 37 62  b4232ec23bd8427b
0d60: 62 39 34 65 61 30 39 2c 2c 2c 0a 2c 2c 2c 2c 2c  b94ea09,,,.,,,,,
0d70: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20  ,,,,,.command,# 
0d80: 54 65 73 74 20 64 69 67 65 73 74 20 63 6f 6d 6d  Test digest comm
0d90: 61 6e 64 20 66 6f 72 20 64 61 74 61 2c 2c 2c 2c  and for data,,,,
0da0: 2c 2c 2c 2c 2c 0a 44 69 67 65 73 74 20 44 61 74  ,,,,,.Digest Dat
0db0: 61 2c 6d 64 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 64  a,md4,,,::tls::d
0dc0: 69 67 65 73 74 20 6d 64 34 20 24 74 65 73 74 5f  igest md4 $test_
0dd0: 64 61 74 61 2c 2c 2c 37 39 33 33 39 39 66 37 39  data,,,793399f79
0de0: 32 65 63 61 32 37 35 32 63 36 61 66 33 32 33 34  2eca2752c6af3234
0df0: 62 61 37 30 38 35 38 2c 2c 2c 0a 44 69 67 65 73  ba70858,,,.Diges
0e00: 74 20 44 61 74 61 2c 6d 64 35 2c 2c 2c 3a 3a 74  t Data,md5,,,::t
0e10: 6c 73 3a 3a 64 69 67 65 73 74 20 6d 64 35 20 24  ls::digest md5 $
0e20: 74 65 73 74 5f 64 61 74 61 2c 2c 2c 39 36 32 62  test_data,,,962b
0e30: 66 30 38 30 33 62 34 32 33 32 65 63 32 33 62 64  f0803b4232ec23bd
0e40: 38 34 32 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a  8427bb94ea09,,,.
0e50: 44 69 67 65 73 74 20 44 61 74 61 2c 73 68 61 31  Digest Data,sha1
0e60: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74  ,,,::tls::digest
0e70: 20 73 68 61 31 20 24 74 65 73 74 5f 64 61 74 61   sha1 $test_data
0e80: 2c 2c 2c 34 66 65 30 33 62 37 66 32 35 36 38 35  ,,,4fe03b7f25685
0e90: 35 31 64 66 61 66 62 39 38 63 61 36 30 30 34 65  51dfafb98ca6004e
0ea0: 36 35 63 34 62 37 31 61 61 37 64 2c 2c 2c 0a 44  65c4b71aa7d,,,.D
0eb0: 69 67 65 73 74 20 44 61 74 61 2c 73 68 61 32 35  igest Data,sha25
0ec0: 36 2c 2c 2c 3a 3a 74 6c 73 3a 3a 64 69 67 65 73  6,,,::tls::diges
0ed0: 74 20 73 68 61 32 35 36 20 24 74 65 73 74 5f 64  t sha256 $test_d
0ee0: 61 74 61 2c 2c 2c 39 64 33 35 37 38 66 63 31 33  ata,,,9d3578fc13
0ef0: 38 32 30 35 63 66 30 65 65 34 62 34 63 65 66 33  8205cf0ee4b4cef3
0f00: 35 66 65 31 30 31 62 62 34 65 63 61 63 37 62 31  5fe101bb4ecac7b1
0f10: 36 31 34 63 31 38 65 36 66 61 34 38 62 35 63 37  614c18e6fa48b5c7
0f20: 66 39 35 65 31 39 2c 2c 2c 0a 44 69 67 65 73 74  f95e19,,,.Digest
0f30: 20 44 61 74 61 2c 73 68 61 35 31 32 2c 2c 2c 3a   Data,sha512,,,:
0f40: 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 73 68 61  :tls::digest sha
0f50: 35 31 32 20 24 74 65 73 74 5f 64 61 74 61 2c 2c  512 $test_data,,
0f60: 2c 64 31 37 38 65 37 35 39 64 63 35 39 31 32 37  ,d178e759dc59127
0f70: 30 37 31 35 38 38 64 32 66 61 64 31 37 33 63 30  071588d2fad173c0
0f80: 36 32 33 38 64 38 37 65 38 30 30 61 36 34 30 33  6238d87e800a6403
0f90: 63 30 61 33 30 64 61 61 34 66 61 61 66 30 35 64  c0a30daa4faaf05d
0fa0: 30 65 37 63 65 30 34 39 31 36 61 66 61 61 36 61  0e7ce04916afaa6a
0fb0: 35 38 61 33 30 63 62 65 62 35 39 37 64 61 63 62  58a30cbeb597dacb
0fc0: 30 31 63 36 32 66 39 66 62 39 64 38 39 62 61 62  01c62f9fb9d89bab
0fd0: 39 64 61 36 33 30 63 36 39 39 65 34 38 31 36 66  9da630c699e4816f
0fe0: 31 2c 2c 2c 0a 44 69 67 65 73 74 20 44 61 74 61  1,,,.Digest Data
0ff0: 2c 6d 64 35 20 62 69 6e 2c 2c 2c 62 69 6e 61 72  ,md5 bin,,,binar
1000: 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 3a 3a  y encode hex [::
1010: 74 6c 73 3a 3a 64 69 67 65 73 74 20 6d 64 35 20  tls::digest md5 
1020: 2d 62 69 6e 20 24 74 65 73 74 5f 64 61 74 61 5d  -bin $test_data]
1030: 2c 2c 2c 39 36 32 62 66 30 38 30 33 62 34 32 33  ,,,962bf0803b423
1040: 32 65 63 32 33 62 64 38 34 32 37 62 62 39 34 65  2ec23bd8427bb94e
1050: 61 30 39 2c 2c 2c 0a 44 69 67 65 73 74 20 44 61  a09,,,.Digest Da
1060: 74 61 2c 6d 64 35 20 68 65 78 2c 2c 2c 3a 3a 74  ta,md5 hex,,,::t
1070: 6c 73 3a 3a 64 69 67 65 73 74 20 6d 64 35 20 2d  ls::digest md5 -
1080: 68 65 78 20 24 74 65 73 74 5f 64 61 74 61 2c 2c  hex $test_data,,
1090: 2c 39 36 32 62 66 30 38 30 33 62 34 32 33 32 65  ,962bf0803b4232e
10a0: 63 32 33 62 64 38 34 32 37 62 62 39 34 65 61 30  c23bd8427bb94ea0
10b0: 39 2c 2c 2c 0a 44 69 67 65 73 74 20 44 61 74 61  9,,,.Digest Data
10c0: 2c 6d 64 35 20 77 69 74 68 20 61 72 67 2c 2c 2c  ,md5 with arg,,,
10d0: 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 6d 64  ::tls::digest md
10e0: 35 20 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61  5 -data $test_da
10f0: 74 61 2c 2c 2c 39 36 32 62 66 30 38 30 33 62 34  ta,,,962bf0803b4
1100: 32 33 32 65 63 32 33 62 64 38 34 32 37 62 62 39  232ec23bd8427bb9
1110: 34 65 61 30 39 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c  4ea09,,,.,,,,,,,
1120: 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65  ,,,.command,# Te
1130: 73 74 20 64 69 67 65 73 74 20 63 6f 6d 6d 61 6e  st digest comman
1140: 64 20 66 6f 72 20 66 69 6c 65 2c 2c 2c 2c 2c 2c  d for file,,,,,,
1150: 2c 2c 2c 0a 44 69 67 65 73 74 20 46 69 6c 65 2c  ,,,.Digest File,
1160: 6d 64 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 64 69 67  md4,,,::tls::dig
1170: 65 73 74 20 6d 64 34 20 2d 66 69 6c 65 20 24 74  est md4 -file $t
1180: 65 73 74 5f 66 69 6c 65 2c 2c 2c 37 39 33 33 39  est_file,,,79339
1190: 39 66 37 39 32 65 63 61 32 37 35 32 63 36 61 66  9f792eca2752c6af
11a0: 33 32 33 34 62 61 37 30 38 35 38 2c 2c 2c 0a 44  3234ba70858,,,.D
11b0: 69 67 65 73 74 20 46 69 6c 65 2c 6d 64 35 2c 2c  igest File,md5,,
11c0: 2c 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 6d  ,::tls::digest m
11d0: 64 35 20 2d 66 69 6c 65 20 24 74 65 73 74 5f 66  d5 -file $test_f
11e0: 69 6c 65 2c 2c 2c 39 36 32 62 66 30 38 30 33 62  ile,,,962bf0803b
11f0: 34 32 33 32 65 63 32 33 62 64 38 34 32 37 62 62  4232ec23bd8427bb
1200: 39 34 65 61 30 39 2c 2c 2c 0a 44 69 67 65 73 74  94ea09,,,.Digest
1210: 20 46 69 6c 65 2c 73 68 61 31 2c 2c 2c 3a 3a 74   File,sha1,,,::t
1220: 6c 73 3a 3a 64 69 67 65 73 74 20 73 68 61 31 20  ls::digest sha1 
1230: 2d 66 69 6c 65 20 24 74 65 73 74 5f 66 69 6c 65  -file $test_file
1240: 2c 2c 2c 34 66 65 30 33 62 37 66 32 35 36 38 35  ,,,4fe03b7f25685
1250: 35 31 64 66 61 66 62 39 38 63 61 36 30 30 34 65  51dfafb98ca6004e
1260: 36 35 63 34 62 37 31 61 61 37 64 2c 2c 2c 0a 44  65c4b71aa7d,,,.D
1270: 69 67 65 73 74 20 46 69 6c 65 2c 73 68 61 32 35  igest File,sha25
1280: 36 2c 2c 2c 3a 3a 74 6c 73 3a 3a 64 69 67 65 73  6,,,::tls::diges
1290: 74 20 73 68 61 32 35 36 20 2d 66 69 6c 65 20 24  t sha256 -file $
12a0: 74 65 73 74 5f 66 69 6c 65 2c 2c 2c 39 64 33 35  test_file,,,9d35
12b0: 37 38 66 63 31 33 38 32 30 35 63 66 30 65 65 34  78fc138205cf0ee4
12c0: 62 34 63 65 66 33 35 66 65 31 30 31 62 62 34 65  b4cef35fe101bb4e
12d0: 63 61 63 37 62 31 36 31 34 63 31 38 65 36 66 61  cac7b1614c18e6fa
12e0: 34 38 62 35 63 37 66 39 35 65 31 39 2c 2c 2c 0a  48b5c7f95e19,,,.
12f0: 44 69 67 65 73 74 20 46 69 6c 65 2c 73 68 61 35  Digest File,sha5
1300: 31 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a 64 69 67 65  12,,,::tls::dige
1310: 73 74 20 73 68 61 35 31 32 20 2d 66 69 6c 65 20  st sha512 -file 
1320: 24 74 65 73 74 5f 66 69 6c 65 2c 2c 2c 64 31 37  $test_file,,,d17
1330: 38 65 37 35 39 64 63 35 39 31 32 37 30 37 31 35  8e759dc591270715
1340: 38 38 64 32 66 61 64 31 37 33 63 30 36 32 33 38  88d2fad173c06238
1350: 64 38 37 65 38 30 30 61 36 34 30 33 63 30 61 33  d87e800a6403c0a3
1360: 30 64 61 61 34 66 61 61 66 30 35 64 30 65 37 63  0daa4faaf05d0e7c
1370: 65 30 34 39 31 36 61 66 61 61 36 61 35 38 61 33  e04916afaa6a58a3
1380: 30 63 62 65 62 35 39 37 64 61 63 62 30 31 63 36  0cbeb597dacb01c6
1390: 32 66 39 66 62 39 64 38 39 62 61 62 39 64 61 36  2f9fb9d89bab9da6
13a0: 33 30 63 36 39 39 65 34 38 31 36 66 31 2c 2c 2c  30c699e4816f1,,,
13b0: 0a 44 69 67 65 73 74 20 46 69 6c 65 2c 6d 64 35  .Digest File,md5
13c0: 20 62 69 6e 2c 2c 2c 62 69 6e 61 72 79 20 65 6e   bin,,,binary en
13d0: 63 6f 64 65 20 68 65 78 20 5b 3a 3a 74 6c 73 3a  code hex [::tls:
13e0: 3a 64 69 67 65 73 74 20 6d 64 35 20 2d 62 69 6e  :digest md5 -bin
13f0: 20 2d 66 69 6c 65 20 24 74 65 73 74 5f 66 69 6c   -file $test_fil
1400: 65 5d 2c 2c 2c 39 36 32 62 66 30 38 30 33 62 34  e],,,962bf0803b4
1410: 32 33 32 65 63 32 33 62 64 38 34 32 37 62 62 39  232ec23bd8427bb9
1420: 34 65 61 30 39 2c 2c 2c 0a 44 69 67 65 73 74 20  4ea09,,,.Digest 
1430: 46 69 6c 65 2c 6d 64 35 20 68 65 78 2c 2c 2c 3a  File,md5 hex,,,:
1440: 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 6d 64 35  :tls::digest md5
1450: 20 2d 68 65 78 20 2d 66 69 6c 65 20 24 74 65 73   -hex -file $tes
1460: 74 5f 66 69 6c 65 2c 2c 2c 39 36 32 62 66 30 38  t_file,,,962bf08
1470: 30 33 62 34 32 33 32 65 63 32 33 62 64 38 34 32  03b4232ec23bd842
1480: 37 62 62 39 34 65 61 30 39 2c 2c 2c 0a 2c 2c 2c  7bb94ea09,,,.,,,
1490: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
14a0: 23 20 54 65 73 74 20 44 69 67 65 73 74 20 48 4d  # Test Digest HM
14b0: 41 43 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 44 69 67 65  AC,,,,,,,,,.Dige
14c0: 73 74 20 48 4d 41 43 2c 64 61 74 61 2c 2c 2c 3a  st HMAC,data,,,:
14d0: 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 6d 64 35  :tls::digest md5
14e0: 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20   -key $test_key 
14f0: 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 61  -data $test_data
1500: 2c 2c 2c 66 39 38 33 32 37 65 66 33 65 32 30 61  ,,,f98327ef3e20a
1510: 62 36 64 33 38 38 66 36 37 36 63 36 61 37 39 64  b6d388f676c6a79d
1520: 39 33 64 2c 2c 2c 0a 44 69 67 65 73 74 20 48 4d  93d,,,.Digest HM
1530: 41 43 2c 66 69 6c 65 2c 2c 2c 3a 3a 74 6c 73 3a  AC,file,,,::tls:
1540: 3a 64 69 67 65 73 74 20 6d 64 35 20 2d 6b 65 79  :digest md5 -key
1550: 20 24 74 65 73 74 5f 6b 65 79 20 2d 66 69 6c 65   $test_key -file
1560: 20 24 74 65 73 74 5f 66 69 6c 65 2c 2c 2c 66 39   $test_file,,,f9
1570: 38 33 32 37 65 66 33 65 32 30 61 62 36 64 33 38  8327ef3e20ab6d38
1580: 38 66 36 37 36 63 36 61 37 39 64 39 33 64 2c 2c  8f676c6a79d93d,,
1590: 2c 0a 44 69 67 65 73 74 20 48 4d 41 43 2c 63 68  ,.Digest HMAC,ch
15a0: 61 6e 6e 65 6c 2c 2c 2c 72 65 61 64 5f 63 68 61  annel,,,read_cha
15b0: 6e 20 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20  n ::tls::digest 
15c0: 6d 64 35 20 24 74 65 73 74 5f 66 69 6c 65 20 2d  md5 $test_file -
15d0: 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 2c 2c 2c  key $test_key,,,
15e0: 66 39 38 33 32 37 65 66 33 65 32 30 61 62 36 64  f98327ef3e20ab6d
15f0: 33 38 38 66 36 37 36 63 36 61 37 39 64 39 33 64  388f676c6a79d93d
1600: 2c 2c 2c 0a 44 69 67 65 73 74 20 48 4d 41 43 2c  ,,,.Digest HMAC,
1610: 64 61 74 61 20 62 69 6e 2c 2c 2c 62 69 6e 61 72  data bin,,,binar
1620: 79 20 65 6e 63 6f 64 65 20 68 65 78 20 5b 3a 3a  y encode hex [::
1630: 74 6c 73 3a 3a 64 69 67 65 73 74 20 6d 64 35 20  tls::digest md5 
1640: 2d 62 69 6e 20 2d 6b 65 79 20 24 74 65 73 74 5f  -bin -key $test_
1650: 6b 65 79 20 2d 64 61 74 61 20 24 74 65 73 74 5f  key -data $test_
1660: 64 61 74 61 5d 2c 2c 2c 66 39 38 33 32 37 65 66  data],,,f98327ef
1670: 33 65 32 30 61 62 36 64 33 38 38 66 36 37 36 63  3e20ab6d388f676c
1680: 36 61 37 39 64 39 33 64 2c 2c 2c 0a 2c 2c 2c 2c  6a79d93d,,,.,,,,
1690: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23  ,,,,,,.command,#
16a0: 20 54 65 73 74 20 48 4d 41 43 20 63 6f 6d 6d 61   Test HMAC comma
16b0: 6e 64 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 48 4d 41 43  nd,,,,,,,,,.HMAC
16c0: 2c 64 61 74 61 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68  ,data,,,::tls::h
16d0: 6d 61 63 20 6d 64 35 20 2d 6b 65 79 20 24 74 65  mac md5 -key $te
16e0: 73 74 5f 6b 65 79 20 2d 64 61 74 61 20 24 74 65  st_key -data $te
16f0: 73 74 5f 64 61 74 61 2c 2c 2c 66 39 38 33 32 37  st_data,,,f98327
1700: 65 66 33 65 32 30 61 62 36 64 33 38 38 66 36 37  ef3e20ab6d388f67
1710: 36 63 36 61 37 39 64 39 33 64 2c 2c 2c 0a 48 4d  6c6a79d93d,,,.HM
1720: 41 43 2c 66 69 6c 65 2c 2c 2c 3a 3a 74 6c 73 3a  AC,file,,,::tls:
1730: 3a 68 6d 61 63 20 6d 64 35 20 2d 6b 65 79 20 24  :hmac md5 -key $
1740: 74 65 73 74 5f 6b 65 79 20 2d 66 69 6c 65 20 24  test_key -file $
1750: 74 65 73 74 5f 66 69 6c 65 2c 2c 2c 66 39 38 33  test_file,,,f983
1760: 32 37 65 66 33 65 32 30 61 62 36 64 33 38 38 66  27ef3e20ab6d388f
1770: 36 37 36 63 36 61 37 39 64 39 33 64 2c 2c 2c 0a  676c6a79d93d,,,.
1780: 48 4d 41 43 2c 63 68 61 6e 6e 65 6c 2c 2c 2c 72  HMAC,channel,,,r
1790: 65 61 64 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a  ead_chan ::tls::
17a0: 68 6d 61 63 20 6d 64 35 20 24 74 65 73 74 5f 66  hmac md5 $test_f
17b0: 69 6c 65 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b  ile -key $test_k
17c0: 65 79 2c 2c 2c 66 39 38 33 32 37 65 66 33 65 32  ey,,,f98327ef3e2
17d0: 30 61 62 36 64 33 38 38 66 36 37 36 63 36 61 37  0ab6d388f676c6a7
17e0: 39 64 39 33 64 2c 2c 2c 0a 48 4d 41 43 2c 63 6f  9d93d,,,.HMAC,co
17f0: 6d 6d 61 6e 64 2c 2c 2c 61 63 63 75 6d 75 6c 61  mmand,,,accumula
1800: 74 65 20 24 74 65 73 74 5f 64 61 74 61 20 3a 3a  te $test_data ::
1810: 74 6c 73 3a 3a 68 6d 61 63 20 6d 64 35 20 2d 6b  tls::hmac md5 -k
1820: 65 79 20 24 74 65 73 74 5f 6b 65 79 2c 2c 2c 66  ey $test_key,,,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 64 61 74 61 20 62 69 6e  ,,.HMAC,data bin
1860: 2c 2c 2c 62 69 6e 61 72 79 20 65 6e 63 6f 64 65  ,,,binary encode
1870: 20 68 65 78 20 5b 3a 3a 74 6c 73 3a 3a 68 6d 61   hex [::tls::hma
1880: 63 20 6d 64 35 20 2d 62 69 6e 20 2d 6b 65 79 20  c md5 -bin -key 
1890: 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74 61 20  $test_key -data 
18a0: 24 74 65 73 74 5f 64 61 74 61 5d 2c 2c 2c 66 39  $test_data],,,f9
18b0: 38 33 32 37 65 66 33 65 32 30 61 62 36 64 33 38  8327ef3e20ab6d38
18c0: 38 66 36 37 36 63 36 61 37 39 64 39 33 64 2c 2c  8f676c6a79d93d,,
18d0: 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  ,.,,,,,,,,,,.com
18e0: 6d 61 6e 64 2c 23 20 54 65 73 74 20 43 4d 41 43  mand,# Test CMAC
18f0: 20 63 6f 6d 6d 61 6e 64 2c 2c 2c 2c 2c 2c 2c 2c   command,,,,,,,,
1900: 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 74  ,.command,"set t
1910: 65 73 74 5f 63 69 70 68 65 72 20 22 22 61 65 73  est_cipher ""aes
1920: 2d 31 32 38 2d 63 62 63 22 22 22 2c 2c 2c 2c 2c  -128-cbc""",,,,,
1930: 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65  ,,,,.command,"se
1940: 74 20 74 65 73 74 5f 6b 65 79 20 22 22 45 78 61  t test_key ""Exa
1950: 6d 70 6c 65 20 6b 65 79 20 31 32 33 34 22 22 22  mple key 1234"""
1960: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 43 4d 41 43 2c 64  ,,,,,,,,,.CMAC,d
1970: 61 74 61 2c 2c 2c 3a 3a 74 6c 73 3a 3a 63 6d 61  ata,,,::tls::cma
1980: 63 20 73 68 61 32 35 36 20 2d 63 69 70 68 65 72  c sha256 -cipher
1990: 20 24 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b   $test_cipher -k
19a0: 65 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61  ey $test_key -da
19b0: 74 61 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c  ta $test_data,,,
19c0: 62 61 66 35 63 32 30 66 39 39 37 33 65 32 64 36  baf5c20f9973e2d6
19d0: 30 36 62 31 34 63 37 65 66 64 66 65 35 32 66 61  06b14c7efdfe52fa
19e0: 2c 2c 2c 0a 43 4d 41 43 2c 66 69 6c 65 2c 2c 2c  ,,,.CMAC,file,,,
19f0: 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20 73 68 61 32  ::tls::cmac sha2
1a00: 35 36 20 2d 63 69 70 68 65 72 20 24 74 65 73 74  56 -cipher $test
1a10: 5f 63 69 70 68 65 72 20 2d 6b 65 79 20 24 74 65  _cipher -key $te
1a20: 73 74 5f 6b 65 79 20 2d 66 69 6c 65 20 24 74 65  st_key -file $te
1a30: 73 74 5f 66 69 6c 65 2c 2c 2c 62 61 66 35 63 32  st_file,,,baf5c2
1a40: 30 66 39 39 37 33 65 32 64 36 30 36 62 31 34 63  0f9973e2d606b14c
1a50: 37 65 66 64 66 65 35 32 66 61 2c 2c 2c 0a 43 4d  7efdfe52fa,,,.CM
1a60: 41 43 2c 63 68 61 6e 6e 65 6c 2c 2c 2c 72 65 61  AC,channel,,,rea
1a70: 64 5f 63 68 61 6e 20 3a 3a 74 6c 73 3a 3a 63 6d  d_chan ::tls::cm
1a80: 61 63 20 73 68 61 32 35 36 20 24 74 65 73 74 5f  ac sha256 $test_
1a90: 66 69 6c 65 20 2d 63 69 70 68 65 72 20 24 74 65  file -cipher $te
1aa0: 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79 20 24  st_cipher -key $
1ab0: 74 65 73 74 5f 6b 65 79 2c 2c 2c 62 61 66 35 63  test_key,,,baf5c
1ac0: 32 30 66 39 39 37 33 65 32 64 36 30 36 62 31 34  20f9973e2d606b14
1ad0: 63 37 65 66 64 66 65 35 32 66 61 2c 2c 2c 0a 43  c7efdfe52fa,,,.C
1ae0: 4d 41 43 2c 63 6f 6d 6d 61 6e 64 2c 2c 2c 61 63  MAC,command,,,ac
1af0: 63 75 6d 75 6c 61 74 65 20 24 74 65 73 74 5f 64  cumulate $test_d
1b00: 61 74 61 20 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20  ata ::tls::cmac 
1b10: 73 68 61 32 35 36 20 2d 63 69 70 68 65 72 20 24  sha256 -cipher $
1b20: 74 65 73 74 5f 63 69 70 68 65 72 20 2d 6b 65 79  test_cipher -key
1b30: 20 24 74 65 73 74 5f 6b 65 79 2c 2c 2c 62 61 66   $test_key,,,baf
1b40: 35 63 32 30 66 39 39 37 33 65 32 64 36 30 36 62  5c20f9973e2d606b
1b50: 31 34 63 37 65 66 64 66 65 35 32 66 61 2c 2c 2c  14c7efdfe52fa,,,
1b60: 0a 43 4d 41 43 2c 64 61 74 61 20 62 69 6e 2c 2c  .CMAC,data bin,,
1b70: 2c 62 69 6e 61 72 79 20 65 6e 63 6f 64 65 20 68  ,binary encode h
1b80: 65 78 20 5b 3a 3a 74 6c 73 3a 3a 63 6d 61 63 20  ex [::tls::cmac 
1b90: 73 68 61 32 35 36 20 2d 62 69 6e 20 2d 63 69 70  sha256 -bin -cip
1ba0: 68 65 72 20 24 74 65 73 74 5f 63 69 70 68 65 72  her $test_cipher
1bb0: 20 2d 6b 65 79 20 24 74 65 73 74 5f 6b 65 79 20   -key $test_key 
1bc0: 2d 64 61 74 61 20 24 74 65 73 74 5f 64 61 74 61  -data $test_data
1bd0: 5d 2c 2c 2c 62 61 66 35 63 32 30 66 39 39 37 33  ],,,baf5c20f9973
1be0: 65 32 64 36 30 36 62 31 34 63 37 65 66 64 66 65  e2d606b14c7efdfe
1bf0: 35 32 66 61 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c  52fa,,,.,,,,,,,,
1c00: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 54 65 73  ,,.command,# Tes
1c10: 74 20 4d 41 43 20 63 6f 6d 6d 61 6e 64 2c 2c 2c  t MAC command,,,
1c20: 2c 2c 2c 2c 2c 2c 0a 4d 41 43 2c 48 4d 41 43 2c  ,,,,,,.MAC,HMAC,
1c30: 6e 65 77 5f 61 70 69 2c 2c 3a 3a 74 6c 73 3a 3a  new_api,,::tls::
1c40: 6d 61 63 20 2d 64 69 67 65 73 74 20 73 68 61 32  mac -digest sha2
1c50: 35 36 20 2d 6d 61 63 20 68 6d 61 63 20 2d 6b 65  56 -mac hmac -ke
1c60: 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61 74  y $test_key -dat
1c70: 61 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c 34  a $test_data,,,4
1c80: 39 38 65 66 35 65 66 37 31 34 32 34 66 38 31 64  98ef5ef71424f81d
1c90: 61 37 34 39 39 62 32 65 65 61 65 31 64 30 61 33  a7499b2eeae1d0a3
1ca0: 34 38 64 64 34 30 62 38 34 31 65 61 32 37 62 64  48dd40b841ea27bd
1cb0: 64 65 34 39 34 66 36 62 63 39 30 34 36 66 66 2c  de494f6bc9046ff,
1cc0: 2c 2c 0a 4d 41 43 2c 43 4d 41 43 2c 6e 65 77 5f  ,,.MAC,CMAC,new_
1cd0: 61 70 69 2c 2c 3a 3a 74 6c 73 3a 3a 6d 61 63 20  api,,::tls::mac 
1ce0: 2d 63 69 70 68 65 72 20 24 74 65 73 74 5f 63 69  -cipher $test_ci
1cf0: 70 68 65 72 20 2d 64 69 67 65 73 74 20 73 68 61  pher -digest sha
1d00: 32 35 36 20 2d 6d 61 63 20 63 6d 61 63 20 2d 6b  256 -mac cmac -k
1d10: 65 79 20 24 74 65 73 74 5f 6b 65 79 20 2d 64 61  ey $test_key -da
1d20: 74 61 20 24 74 65 73 74 5f 64 61 74 61 2c 2c 2c  ta $test_data,,,
1d30: 34 39 38 65 66 35 65 66 37 31 34 32 34 66 38 31  498ef5ef71424f81
1d40: 64 61 37 34 39 39 62 32 65 65 61 65 31 64 30 61  da7499b2eeae1d0a
1d50: 33 34 38 64 64 34 30 62 38 34 31 65 61 32 37 62  348dd40b841ea27b
1d60: 64 64 65 34 39 34 66 36 62 63 39 30 34 36 66 66  dde494f6bc9046ff
1d70: 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63  ,,,.,,,,,,,,,,.c
1d80: 6f 6d 6d 61 6e 64 2c 23 20 44 69 67 65 73 74 20  ommand,# Digest 
1d90: 45 72 72 6f 72 20 43 61 73 65 73 2c 2c 2c 2c 2c  Error Cases,,,,,
1da0: 2c 2c 2c 2c 0a 44 69 67 65 73 74 20 45 72 72 6f  ,,,,.Digest Erro
1db0: 72 73 2c 54 6f 6f 20 66 65 77 20 61 72 67 73 2c  rs,Too few args,
1dc0: 2c 2c 3a 3a 74 6c 73 3a 3a 64 69 67 65 73 74 2c  ,,::tls::digest,
1dd0: 2c 2c 22 77 72 6f 6e 67 20 23 20 61 72 67 73 3a  ,,"wrong # args:
1de0: 20 73 68 6f 75 6c 64 20 62 65 20 22 22 3a 3a 74   should be ""::t
1df0: 6c 73 3a 3a 64 69 67 65 73 74 20 64 69 67 65 73  ls::digest diges
1e00: 74 20 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20 3f 2d  t ?-bin|-hex? ?-
1e10: 63 69 70 68 65 72 20 6e 61 6d 65 3f 20 3f 2d 6b  cipher name? ?-k
1e20: 65 79 20 6b 65 79 3f 20 3f 2d 6d 61 63 20 6e 61  ey key? ?-mac na
1e30: 6d 65 3f 20 5b 2d 63 68 61 6e 6e 65 6c 20 63 68  me? [-channel ch
1e40: 61 6e 20 7c 20 2d 63 6f 6d 6d 61 6e 64 20 63 6d  an | -command cm
1e50: 64 4e 61 6d 65 20 7c 20 2d 66 69 6c 65 20 66 69  dName | -file fi
1e60: 6c 65 6e 61 6d 65 20 7c 20 3f 2d 64 61 74 61 3f  lename | ?-data?
1e70: 20 64 61 74 61 5d 22 22 22 2c 2c 2c 31 0a 44 69   data]""",,,1.Di
1e80: 67 65 73 74 20 45 72 72 6f 72 73 2c 54 6f 6f 20  gest Errors,Too 
1e90: 6d 61 6e 79 20 61 72 67 73 2c 2c 2c 3a 3a 74 6c  many args,,,::tl
1ea0: 73 3a 3a 64 69 67 65 73 74 20 74 6f 6f 20 6d 61  s::digest too ma
1eb0: 6e 79 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20  ny command line 
1ec0: 61 72 67 73 20 74 6f 20 70 61 73 73 20 74 68 65  args to pass the
1ed0: 20 74 65 73 74 20 77 69 74 68 6f 75 74 20 61 6e   test without an
1ee0: 20 65 72 72 6f 72 20 6f 72 20 66 61 69 6c 69 6e   error or failin
1ef0: 67 2c 2c 2c 22 77 72 6f 6e 67 20 23 20 61 72 67  g,,,"wrong # arg
1f00: 73 3a 20 73 68 6f 75 6c 64 20 62 65 20 22 22 3a  s: should be "":
1f10: 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 64 69 67  :tls::digest dig
1f20: 65 73 74 20 3f 2d 62 69 6e 7c 2d 68 65 78 3f 20  est ?-bin|-hex? 
1f30: 3f 2d 63 69 70 68 65 72 20 6e 61 6d 65 3f 20 3f  ?-cipher name? ?
1f40: 2d 6b 65 79 20 6b 65 79 3f 20 3f 2d 6d 61 63 20  -key key? ?-mac 
1f50: 6e 61 6d 65 3f 20 5b 2d 63 68 61 6e 6e 65 6c 20  name? [-channel 
1f60: 63 68 61 6e 20 7c 20 2d 63 6f 6d 6d 61 6e 64 20  chan | -command 
1f70: 63 6d 64 4e 61 6d 65 20 7c 20 2d 66 69 6c 65 20  cmdName | -file 
1f80: 66 69 6c 65 6e 61 6d 65 20 7c 20 3f 2d 64 61 74  filename | ?-dat
1f90: 61 3f 20 64 61 74 61 5d 22 22 22 2c 2c 2c 31 0a  a? data]""",,,1.
1fa0: 44 69 67 65 73 74 20 45 72 72 6f 72 73 2c 49 6e  Digest Errors,In
1fb0: 76 61 6c 69 64 20 64 69 67 65 73 74 2c 2c 2c 3a  valid digest,,,:
1fc0: 3a 74 6c 73 3a 3a 64 69 67 65 73 74 20 62 6f 67  :tls::digest bog
1fd0: 75 73 20 64 61 74 61 2c 2c 2c 22 49 6e 76 61 6c  us data,,,"Inval
1fe0: 69 64 20 64 69 67 65 73 74 20 22 22 62 6f 67 75  id digest ""bogu
1ff0: 73 22 22 22 2c 2c 2c 31 0a 44 69 67 65 73 74 20  s""",,,1.Digest 
2000: 45 72 72 6f 72 73 2c 49 6e 76 61 6c 69 64 20 6f  Errors,Invalid o
2010: 70 74 69 6f 6e 2c 2c 2c 3a 3a 74 6c 73 3a 3a 64  ption,,,::tls::d
2020: 69 67 65 73 74 20 73 68 61 32 35 36 20 2d 62 6f  igest sha256 -bo
2030: 67 75 73 20 76 61 6c 75 65 2c 2c 2c 22 62 61 64  gus value,,,"bad
2040: 20 6f 70 74 69 6f 6e 20 22 22 2d 62 6f 67 75 73   option ""-bogus
2050: 22 22 3a 20 6d 75 73 74 20 62 65 20 2d 62 69 6e  "": must be -bin
2060: 2c 20 2d 63 68 61 6e 6e 65 6c 2c 20 2d 63 69 70  , -channel, -cip
2070: 68 65 72 2c 20 2d 63 6f 6d 6d 61 6e 64 2c 20 2d  her, -command, -
2080: 64 61 74 61 2c 20 2d 66 69 6c 65 2c 20 2d 66 69  data, -file, -fi
2090: 6c 65 6e 61 6d 65 2c 20 2d 68 65 78 2c 20 2d 6b  lename, -hex, -k
20a0: 65 79 2c 20 6f 72 20 2d 6d 61 63 22 2c 2c 2c 31  ey, or -mac",,,1
20b0: 0a 44 69 67 65 73 74 20 45 72 72 6f 72 73 2c 49  .Digest Errors,I
20c0: 6e 76 61 6c 69 64 20 66 69 6c 65 2c 2c 2c 3a 3a  nvalid file,,,::
20d0: 74 6c 73 3a 3a 64 69 67 65 73 74 20 73 68 61 32  tls::digest sha2
20e0: 35 36 20 2d 66 69 6c 65 20 62 6f 67 75 73 2c 2c  56 -file bogus,,
20f0: 2c 22 63 6f 75 6c 64 6e 27 74 20 6f 70 65 6e 20  ,"couldn't open 
2100: 22 22 62 6f 67 75 73 22 22 3a 20 6e 6f 20 73 75  ""bogus"": no su
2110: 63 68 20 66 69 6c 65 20 6f 72 20 64 69 72 65 63  ch file or direc
2120: 74 6f 72 79 22 2c 2c 2c 31 0a 44 69 67 65 73 74  tory",,,1.Digest
2130: 20 45 72 72 6f 72 73 2c 49 6e 76 61 6c 69 64 20   Errors,Invalid 
2140: 63 68 61 6e 6e 65 6c 2c 2c 2c 3a 3a 74 6c 73 3a  channel,,,::tls:
2150: 3a 64 69 67 65 73 74 20 73 68 61 32 35 36 20 2d  :digest sha256 -
2160: 63 68 61 6e 6e 65 6c 20 62 6f 67 75 73 2c 2c 2c  channel bogus,,,
2170: 22 63 61 6e 20 6e 6f 74 20 66 69 6e 64 20 63 68  "can not find ch
2180: 61 6e 6e 65 6c 20 6e 61 6d 65 64 20 22 22 62 6f  annel named ""bo
2190: 67 75 73 22 22 22 2c 2c 2c 31 0a 2c 2c 2c 2c 2c  gus""",,,1.,,,,,
21a0: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20  ,,,,,.command,# 
21b0: 52 46 43 20 34 32 33 31 20 48 4d 41 43 20 45 78  RFC 4231 HMAC Ex
21c0: 61 6d 70 6c 65 73 20 54 65 73 74 20 43 61 73 65  amples Test Case
21d0: 20 23 31 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d   #1,,,,,,,,,.com
21e0: 6d 61 6e 64 2c 22 73 65 74 20 6b 65 79 20 5b 62  mand,"set key [b
21f0: 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78  inary decode hex
2200: 20 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 20   [string repeat 
2210: 22 22 30 62 22 22 20 32 30 5d 5d 22 2c 2c 2c 2c  ""0b"" 20]]",,,,
2220: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73  ,,,,,.command,"s
2230: 65 74 20 64 61 74 61 20 22 22 48 69 20 54 68 65  et data ""Hi The
2240: 72 65 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 52  re""",,,,,,,,,.R
2250: 46 43 34 32 33 31 20 54 43 31 2c 73 68 61 32 32  FC4231 TC1,sha22
2260: 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20  4,,,::tls::hmac 
2270: 73 68 61 32 32 34 20 2d 6b 65 79 20 24 6b 65 79  sha224 -key $key
2280: 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 38   -data $data,,,8
2290: 39 36 66 62 31 31 32 38 61 62 62 64 66 31 39 36  96fb1128abbdf196
22a0: 38 33 32 31 30 37 63 64 34 39 64 66 33 33 66 34  832107cd49df33f4
22b0: 37 62 34 62 31 31 36 39 39 31 32 62 61 34 66 35  7b4b1169912ba4f5
22c0: 33 36 38 34 62 32 32 2c 2c 2c 0a 52 46 43 34 32  3684b22,,,.RFC42
22d0: 33 31 20 54 43 31 2c 73 68 61 32 35 36 2c 2c 2c  31 TC1,sha256,,,
22e0: 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 73 68 61 32  ::tls::hmac sha2
22f0: 35 36 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61  56 -key $key -da
2300: 74 61 20 24 64 61 74 61 2c 2c 2c 62 30 33 34 34  ta $data,,,b0344
2310: 63 36 31 64 38 64 62 33 38 35 33 35 63 61 38 61  c61d8db38535ca8a
2320: 66 63 65 61 66 30 62 66 31 32 62 38 38 31 64 63  fceaf0bf12b881dc
2330: 32 30 30 63 39 38 33 33 64 61 37 32 36 65 39 33  200c9833da726e93
2340: 37 36 63 32 65 33 32 63 66 66 37 2c 2c 2c 0a 52  76c2e32cff7,,,.R
2350: 46 43 34 32 33 31 20 54 43 31 2c 73 68 61 33 38  FC4231 TC1,sha38
2360: 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20  4,,,::tls::hmac 
2370: 73 68 61 33 38 34 20 2d 6b 65 79 20 24 6b 65 79  sha384 -key $key
2380: 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 61   -data $data,,,a
2390: 66 64 30 33 39 34 34 64 38 34 38 39 35 36 32 36  fd03944d84895626
23a0: 62 30 38 32 35 66 34 61 62 34 36 39 30 37 66 31  b0825f4ab46907f1
23b0: 35 66 39 64 61 64 62 65 34 31 30 31 65 63 36 38  5f9dadbe4101ec68
23c0: 32 61 61 30 33 34 63 37 63 65 62 63 35 39 63 66  2aa034c7cebc59cf
23d0: 61 65 61 39 65 61 39 30 37 36 65 64 65 37 66 34  aea9ea9076ede7f4
23e0: 61 66 31 35 32 65 38 62 32 66 61 39 63 62 36 2c  af152e8b2fa9cb6,
23f0: 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 31 2c 73  ,,.RFC4231 TC1,s
2400: 68 61 35 31 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68  ha512,,,::tls::h
2410: 6d 61 63 20 73 68 61 35 31 32 20 2d 6b 65 79 20  mac sha512 -key 
2420: 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61  $key -data $data
2430: 2c 2c 2c 38 37 61 61 37 63 64 65 61 35 65 66 36  ,,,87aa7cdea5ef6
2440: 31 39 64 34 66 66 30 62 34 32 34 31 61 31 64 36  19d4ff0b4241a1d6
2450: 63 62 30 32 33 37 39 66 34 65 32 63 65 34 65 63  cb02379f4e2ce4ec
2460: 32 37 38 37 61 64 30 62 33 30 35 34 35 65 31 37  2787ad0b30545e17
2470: 63 64 65 64 61 61 38 33 33 62 37 64 36 62 38 61  cdedaa833b7d6b8a
2480: 37 30 32 30 33 38 62 32 37 34 65 61 65 61 33 66  702038b274eaea3f
2490: 34 65 34 62 65 39 64 39 31 34 65 65 62 36 31 66  4e4be9d914eeb61f
24a0: 31 37 30 32 65 36 39 36 63 32 30 33 61 31 32 36  1702e696c203a126
24b0: 38 35 34 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c  854,,,.,,,,,,,,,
24c0: 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20 52 46 43 20  ,.command,# RFC 
24d0: 34 32 33 31 20 48 4d 41 43 20 45 78 61 6d 70 6c  4231 HMAC Exampl
24e0: 65 73 20 54 65 73 74 20 43 61 73 65 20 23 32 20  es Test Case #2 
24f0: 2d 20 54 65 73 74 20 77 69 74 68 20 61 20 6b 65  - Test with a ke
2500: 79 20 73 68 6f 72 74 65 72 20 74 68 61 6e 20 74  y shorter than t
2510: 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65  he length of the
2520: 20 48 4d 41 43 20 6f 75 74 70 75 74 2e 2c 2c 2c   HMAC output.,,,
2530: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22  ,,,,,,.command,"
2540: 73 65 74 20 6b 65 79 20 22 22 4a 65 66 65 22 22  set key ""Jefe""
2550: 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61  ",,,,,,,,,.comma
2560: 6e 64 2c 22 73 65 74 20 64 61 74 61 20 22 22 77  nd,"set data ""w
2570: 68 61 74 20 64 6f 20 79 61 20 77 61 6e 74 20 66  hat do ya want f
2580: 6f 72 20 6e 6f 74 68 69 6e 67 3f 22 22 22 2c 2c  or nothing?""",,
2590: 2c 2c 2c 2c 2c 2c 2c 0a 52 46 43 34 32 33 31 20  ,,,,,,,.RFC4231 
25a0: 54 43 32 2c 73 68 61 32 32 34 2c 2c 2c 3a 3a 74  TC2,sha224,,,::t
25b0: 6c 73 3a 3a 68 6d 61 63 20 73 68 61 32 32 34 20  ls::hmac sha224 
25c0: 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20  -key $key -data 
25d0: 24 64 61 74 61 2c 2c 2c 61 33 30 65 30 31 30 39  $data,,,a30e0109
25e0: 38 62 63 36 64 62 62 66 34 35 36 39 30 66 33 61  8bc6dbbf45690f3a
25f0: 37 65 39 65 36 64 30 66 38 62 62 65 61 32 61 33  7e9e6d0f8bbea2a3
2600: 39 65 36 31 34 38 30 30 38 66 64 30 35 65 34 34  9e6148008fd05e44
2610: 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 32 2c  ,,,.RFC4231 TC2,
2620: 73 68 61 32 35 36 2c 2c 2c 3a 3a 74 6c 73 3a 3a  sha256,,,::tls::
2630: 68 6d 61 63 20 73 68 61 32 35 36 20 2d 6b 65 79  hmac sha256 -key
2640: 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74   $key -data $dat
2650: 61 2c 2c 2c 35 62 64 63 63 31 34 36 62 66 36 30  a,,,5bdcc146bf60
2660: 37 35 34 65 36 61 30 34 32 34 32 36 30 38 39 35  754e6a0424260895
2670: 37 35 63 37 35 61 30 30 33 66 30 38 39 64 32 37  75c75a003f089d27
2680: 33 39 38 33 39 64 65 63 35 38 62 39 36 34 65 63  39839dec58b964ec
2690: 33 38 34 33 2c 2c 2c 0a 52 46 43 34 32 33 31 20  3843,,,.RFC4231 
26a0: 54 43 32 2c 73 68 61 33 38 34 2c 2c 2c 3a 3a 74  TC2,sha384,,,::t
26b0: 6c 73 3a 3a 68 6d 61 63 20 73 68 61 33 38 34 20  ls::hmac sha384 
26c0: 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20  -key $key -data 
26d0: 24 64 61 74 61 2c 2c 2c 61 66 34 35 64 32 65 33  $data,,,af45d2e3
26e0: 37 36 34 38 34 30 33 31 36 31 37 66 37 38 64 32  76484031617f78d2
26f0: 62 35 38 61 36 62 31 62 39 63 37 65 66 34 36 34  b58a6b1b9c7ef464
2700: 66 35 61 30 31 62 34 37 65 34 32 65 63 33 37 33  f5a01b47e42ec373
2710: 36 33 32 32 34 34 35 65 38 65 32 32 34 30 63 61  6322445e8e2240ca
2720: 35 65 36 39 65 32 63 37 38 62 33 32 33 39 65 63  5e69e2c78b3239ec
2730: 66 61 62 32 31 36 34 39 2c 2c 2c 0a 52 46 43 34  fab21649,,,.RFC4
2740: 32 33 31 20 54 43 32 2c 73 68 61 35 31 32 2c 2c  231 TC2,sha512,,
2750: 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 73 68 61  ,::tls::hmac sha
2760: 35 31 32 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64  512 -key $key -d
2770: 61 74 61 20 24 64 61 74 61 2c 2c 2c 31 36 34 62  ata $data,,,164b
2780: 37 61 37 62 66 63 66 38 31 39 65 32 65 33 39 35  7a7bfcf819e2e395
2790: 66 62 65 37 33 62 35 36 65 30 61 33 38 37 62 64  fbe73b56e0a387bd
27a0: 36 34 32 32 32 65 38 33 31 66 64 36 31 30 32 37  64222e831fd61027
27b0: 30 63 64 37 65 61 32 35 30 35 35 34 39 37 35 38  0cd7ea2505549758
27c0: 62 66 37 35 63 30 35 61 39 39 34 61 36 64 30 33  bf75c05a994a6d03
27d0: 34 66 36 35 66 38 66 30 65 36 66 64 63 61 65 61  4f65f8f0e6fdcaea
27e0: 62 31 61 33 34 64 34 61 36 62 34 62 36 33 36 65  b1a34d4a6b4b636e
27f0: 30 37 30 61 33 38 62 63 65 37 33 37 2c 2c 2c 0a  070a38bce737,,,.
2800: 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61  ,,,,,,,,,,.comma
2810: 6e 64 2c 23 20 52 46 43 20 34 32 33 31 20 48 4d  nd,# RFC 4231 HM
2820: 41 43 20 45 78 61 6d 70 6c 65 73 20 54 65 73 74  AC Examples Test
2830: 20 43 61 73 65 20 23 33 20 2d 20 54 65 73 74 20   Case #3 - Test 
2840: 77 69 74 68 20 61 20 63 6f 6d 62 69 6e 65 64 20  with a combined 
2850: 6c 65 6e 67 74 68 20 6f 66 20 6b 65 79 20 61 6e  length of key an
2860: 64 20 64 61 74 61 20 74 68 61 74 20 69 73 20 6c  d data that is l
2870: 61 72 67 65 72 20 74 68 61 6e 20 36 34 20 62 79  arger than 64 by
2880: 74 65 73 20 28 3d 20 62 6c 6f 63 6b 2d 73 69 7a  tes (= block-siz
2890: 65 20 6f 66 20 53 48 41 2d 32 32 34 20 61 6e 64  e of SHA-224 and
28a0: 20 53 48 41 2d 32 35 36 29 2e 2c 2c 2c 2c 2c 2c   SHA-256).,,,,,,
28b0: 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74  ,,,.command,"set
28c0: 20 6b 65 79 20 5b 62 69 6e 61 72 79 20 64 65 63   key [binary dec
28d0: 6f 64 65 20 68 65 78 20 5b 73 74 72 69 6e 67 20  ode hex [string 
28e0: 72 65 70 65 61 74 20 22 22 61 61 22 22 20 32 30  repeat ""aa"" 20
28f0: 5d 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  ]]",,,,,,,,,.com
2900: 6d 61 6e 64 2c 22 73 65 74 20 64 61 74 61 20 5b  mand,"set data [
2910: 62 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65  binary decode he
2920: 78 20 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74  x [string repeat
2930: 20 22 22 64 64 22 22 20 35 30 5d 5d 22 2c 2c 2c   ""dd"" 50]]",,,
2940: 2c 2c 2c 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54  ,,,,,,.RFC4231 T
2950: 43 33 2c 73 68 61 32 32 34 2c 2c 2c 3a 3a 74 6c  C3,sha224,,,::tl
2960: 73 3a 3a 68 6d 61 63 20 73 68 61 32 32 34 20 2d  s::hmac sha224 -
2970: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24  key $key -data $
2980: 64 61 74 61 2c 2c 2c 37 66 62 33 63 62 33 35 38  data,,,7fb3cb358
2990: 38 63 36 63 31 66 36 66 66 61 39 36 39 34 64 37  8c6c1f6ffa9694d7
29a0: 64 36 61 64 32 36 34 39 33 36 35 62 30 63 31 66  d6ad2649365b0c1f
29b0: 36 35 64 36 39 64 31 65 63 38 33 33 33 65 61 2c  65d69d1ec8333ea,
29c0: 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 33 2c 73  ,,.RFC4231 TC3,s
29d0: 68 61 32 35 36 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68  ha256,,,::tls::h
29e0: 6d 61 63 20 73 68 61 32 35 36 20 2d 6b 65 79 20  mac sha256 -key 
29f0: 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61  $key -data $data
2a00: 2c 2c 2c 37 37 33 65 61 39 31 65 33 36 38 30 30  ,,,773ea91e36800
2a10: 65 34 36 38 35 34 64 62 38 65 62 64 30 39 31 38  e46854db8ebd0918
2a20: 31 61 37 32 39 35 39 30 39 38 62 33 65 66 38 63  1a72959098b3ef8c
2a30: 31 32 32 64 39 36 33 35 35 31 34 63 65 64 35 36  122d9635514ced56
2a40: 35 66 65 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54  5fe,,,.RFC4231 T
2a50: 43 33 2c 73 68 61 33 38 34 2c 2c 2c 3a 3a 74 6c  C3,sha384,,,::tl
2a60: 73 3a 3a 68 6d 61 63 20 73 68 61 33 38 34 20 2d  s::hmac sha384 -
2a70: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24  key $key -data $
2a80: 64 61 74 61 2c 2c 2c 38 38 30 36 32 36 30 38 64  data,,,88062608d
2a90: 33 65 36 61 64 38 61 30 61 61 32 61 63 65 30 31  3e6ad8a0aa2ace01
2aa0: 34 63 38 61 38 36 66 30 61 61 36 33 35 64 39 34  4c8a86f0aa635d94
2ab0: 37 61 63 39 66 65 62 65 38 33 65 66 34 65 35 35  7ac9febe83ef4e55
2ac0: 39 36 36 31 34 34 62 32 61 35 61 62 33 39 64 63  966144b2a5ab39dc
2ad0: 31 33 38 31 34 62 39 34 65 33 61 62 36 65 31 30  13814b94e3ab6e10
2ae0: 31 61 33 34 66 32 37 2c 2c 2c 0a 52 46 43 34 32  1a34f27,,,.RFC42
2af0: 33 31 20 54 43 33 2c 73 68 61 35 31 32 2c 2c 2c  31 TC3,sha512,,,
2b00: 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 73 68 61 35  ::tls::hmac sha5
2b10: 31 32 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61  12 -key $key -da
2b20: 74 61 20 24 64 61 74 61 2c 2c 2c 66 61 37 33 62  ta $data,,,fa73b
2b30: 30 30 38 39 64 35 36 61 32 38 34 65 66 62 30 66  0089d56a284efb0f
2b40: 30 37 35 36 63 38 39 30 62 65 39 62 31 62 35 64  0756c890be9b1b5d
2b50: 62 64 64 38 65 65 38 31 61 33 36 35 35 66 38 33  bdd8ee81a3655f83
2b60: 65 33 33 62 32 32 37 39 64 33 39 62 66 33 65 38  e33b2279d39bf3e8
2b70: 34 38 32 37 39 61 37 32 32 63 38 30 36 62 34 38  48279a722c806b48
2b80: 35 61 34 37 65 36 37 63 38 30 37 62 39 34 36 61  5a47e67c807b946a
2b90: 33 33 37 62 65 65 38 39 34 32 36 37 34 32 37 38  337bee8942674278
2ba0: 38 35 39 65 31 33 32 39 32 66 62 2c 2c 2c 0a 2c  859e13292fb,,,.,
2bb0: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e  ,,,,,,,,,.comman
2bc0: 64 2c 23 20 52 46 43 20 34 32 33 31 20 48 4d 41  d,# RFC 4231 HMA
2bd0: 43 20 45 78 61 6d 70 6c 65 73 20 54 65 73 74 20  C Examples Test 
2be0: 43 61 73 65 20 23 34 20 2d 20 54 65 73 74 20 77  Case #4 - Test w
2bf0: 69 74 68 20 61 20 63 6f 6d 62 69 6e 65 64 20 6c  ith a combined l
2c00: 65 6e 67 74 68 20 6f 66 20 6b 65 79 20 61 6e 64  ength of key and
2c10: 20 64 61 74 61 20 74 68 61 74 20 69 73 20 6c 61   data that is la
2c20: 72 67 65 72 20 74 68 61 6e 20 36 34 20 62 79 74  rger than 64 byt
2c30: 65 73 20 28 3d 20 62 6c 6f 63 6b 2d 73 69 7a 65  es (= block-size
2c40: 20 6f 66 20 53 48 41 2d 32 32 34 20 61 6e 64 20   of SHA-224 and 
2c50: 53 48 41 2d 32 35 36 29 2e 2c 2c 2c 2c 2c 2c 2c  SHA-256).,,,,,,,
2c60: 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20  ,,.command,"set 
2c70: 6b 65 79 20 5b 62 69 6e 61 72 79 20 64 65 63 6f  key [binary deco
2c80: 64 65 20 68 65 78 20 22 22 30 31 30 32 30 33 30  de hex ""0102030
2c90: 34 30 35 30 36 30 37 30 38 30 39 30 61 30 62 30  405060708090a0b0
2ca0: 63 30 64 30 65 30 66 31 30 31 31 31 32 31 33 31  c0d0e0f101112131
2cb0: 34 31 35 31 36 31 37 31 38 31 39 22 22 5d 22 2c  41516171819""]",
2cc0: 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64  ,,,,,,,,.command
2cd0: 2c 22 73 65 74 20 64 61 74 61 20 5b 62 69 6e 61  ,"set data [bina
2ce0: 72 79 20 64 65 63 6f 64 65 20 68 65 78 20 5b 73  ry decode hex [s
2cf0: 74 72 69 6e 67 20 72 65 70 65 61 74 20 22 22 63  tring repeat ""c
2d00: 64 22 22 20 35 30 5d 5d 22 2c 2c 2c 2c 2c 2c 2c  d"" 50]]",,,,,,,
2d10: 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 34 2c 73  ,,.RFC4231 TC4,s
2d20: 68 61 32 32 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68  ha224,,,::tls::h
2d30: 6d 61 63 20 73 68 61 32 32 34 20 2d 6b 65 79 20  mac sha224 -key 
2d40: 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61  $key -data $data
2d50: 2c 2c 2c 36 63 31 31 35 30 36 38 37 34 30 31 33  ,,,6c11506874013
2d60: 63 61 63 36 61 32 61 62 63 31 62 62 33 38 32 36  cac6a2abc1bb3826
2d70: 32 37 63 65 63 36 61 39 30 64 38 36 65 66 63 30  27cec6a90d86efc0
2d80: 31 32 64 65 37 61 66 65 63 35 61 2c 2c 2c 0a 52  12de7afec5a,,,.R
2d90: 46 43 34 32 33 31 20 54 43 34 2c 73 68 61 32 35  FC4231 TC4,sha25
2da0: 36 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20  6,,,::tls::hmac 
2db0: 73 68 61 32 35 36 20 2d 6b 65 79 20 24 6b 65 79  sha256 -key $key
2dc0: 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 38   -data $data,,,8
2dd0: 32 35 35 38 61 33 38 39 61 34 34 33 63 30 65 61  2558a389a443c0ea
2de0: 34 63 63 38 31 39 38 39 39 66 32 30 38 33 61 38  4cc819899f2083a8
2df0: 35 66 30 66 61 61 33 65 35 37 38 66 38 30 37 37  5f0faa3e578f8077
2e00: 61 32 65 33 66 66 34 36 37 32 39 36 36 35 62 2c  a2e3ff46729665b,
2e10: 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 34 2c 73  ,,.RFC4231 TC4,s
2e20: 68 61 33 38 34 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68  ha384,,,::tls::h
2e30: 6d 61 63 20 73 68 61 33 38 34 20 2d 6b 65 79 20  mac sha384 -key 
2e40: 24 6b 65 79 20 2d 64 61 74 61 20 24 64 61 74 61  $key -data $data
2e50: 2c 2c 2c 33 65 38 61 36 39 62 37 37 38 33 63 32  ,,,3e8a69b7783c2
2e60: 35 38 35 31 39 33 33 61 62 36 32 39 30 61 66 36  5851933ab6290af6
2e70: 63 61 37 37 61 39 39 38 31 34 38 30 38 35 30 30  ca77a99814808500
2e80: 30 39 63 63 35 35 37 37 63 36 65 31 66 35 37 33  09cc5577c6e1f573
2e90: 62 34 65 36 38 30 31 64 64 32 33 63 34 61 37 64  b4e6801dd23c4a7d
2ea0: 36 37 39 63 63 66 38 61 33 38 36 63 36 37 34 63  679ccf8a386c674c
2eb0: 66 66 62 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54  ffb,,,.RFC4231 T
2ec0: 43 34 2c 73 68 61 35 31 32 2c 2c 2c 3a 3a 74 6c  C4,sha512,,,::tl
2ed0: 73 3a 3a 68 6d 61 63 20 73 68 61 35 31 32 20 2d  s::hmac sha512 -
2ee0: 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24  key $key -data $
2ef0: 64 61 74 61 2c 2c 2c 62 30 62 61 34 36 35 36 33  data,,,b0ba46563
2f00: 37 34 35 38 63 36 39 39 30 65 35 61 38 63 35 66  7458c6990e5a8c5f
2f10: 36 31 64 34 61 66 37 65 35 37 36 64 39 37 66 66  61d4af7e576d97ff
2f20: 39 34 62 38 37 32 64 65 37 36 66 38 30 35 30 33  94b872de76f80503
2f30: 36 31 65 65 33 64 62 61 39 31 63 61 35 63 31 31  61ee3dba91ca5c11
2f40: 61 61 32 35 65 62 34 64 36 37 39 32 37 35 63 63  aa25eb4d679275cc
2f50: 35 37 38 38 30 36 33 61 35 66 31 39 37 34 31 31  5788063a5f197411
2f60: 32 30 63 34 66 32 64 65 32 61 64 65 62 65 62 31  20c4f2de2adebeb1
2f70: 30 61 32 39 38 64 64 2c 2c 2c 0a 2c 2c 2c 2c 2c  0a298dd,,,.,,,,,
2f80: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20  ,,,,,.command,# 
2f90: 52 46 43 20 34 32 33 31 20 48 4d 41 43 20 45 78  RFC 4231 HMAC Ex
2fa0: 61 6d 70 6c 65 73 20 54 65 73 74 20 43 61 73 65  amples Test Case
2fb0: 20 23 35 20 2d 20 54 65 73 74 20 77 69 74 68 20   #5 - Test with 
2fc0: 61 20 74 72 75 6e 63 61 74 69 6f 6e 20 6f 66 20  a truncation of 
2fd0: 6f 75 74 70 75 74 20 74 6f 20 31 32 38 20 62 69  output to 128 bi
2fe0: 74 73 2e 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  ts.,,,,,,,,,.com
2ff0: 6d 61 6e 64 2c 22 73 65 74 20 6b 65 79 20 5b 62  mand,"set key [b
3000: 69 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78  inary decode hex
3010: 20 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 20   [string repeat 
3020: 22 22 30 63 22 22 20 32 30 5d 5d 22 2c 2c 2c 2c  ""0c"" 20]]",,,,
3030: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73  ,,,,,.command,"s
3040: 65 74 20 64 61 74 61 20 22 22 54 65 73 74 20 57  et data ""Test W
3050: 69 74 68 20 54 72 75 6e 63 61 74 69 6f 6e 22 22  ith Truncation""
3060: 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 52 46 43 34 32  ",,,,,,,,,.RFC42
3070: 33 31 20 54 43 35 2c 73 68 61 32 32 34 2c 2c 2c  31 TC5,sha224,,,
3080: 73 74 72 69 6e 67 20 72 61 6e 67 65 20 5b 3a 3a  string range [::
3090: 74 6c 73 3a 3a 68 6d 61 63 20 73 68 61 32 32 34  tls::hmac sha224
30a0: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61   -key $key -data
30b0: 20 24 64 61 74 61 5d 20 30 20 33 31 2c 2c 2c 30   $data] 0 31,,,0
30c0: 65 32 61 65 61 36 38 61 39 30 63 38 64 33 37 63  e2aea68a90c8d37c
30d0: 39 38 38 62 63 64 62 39 66 63 61 36 66 61 38 2c  988bcdb9fca6fa8,
30e0: 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 35 2c 73  ,,.RFC4231 TC5,s
30f0: 68 61 32 35 36 2c 2c 2c 73 74 72 69 6e 67 20 72  ha256,,,string r
3100: 61 6e 67 65 20 5b 3a 3a 74 6c 73 3a 3a 68 6d 61  ange [::tls::hma
3110: 63 20 73 68 61 32 35 36 20 2d 6b 65 79 20 24 6b  c sha256 -key $k
3120: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 5d 20  ey -data $data] 
3130: 30 20 33 31 2c 2c 2c 61 33 62 36 31 36 37 34 37  0 31,,,a3b616747
3140: 33 31 30 30 65 65 30 36 65 30 63 37 39 36 63 32  3100ee06e0c796c2
3150: 39 35 35 35 35 32 62 2c 2c 2c 0a 52 46 43 34 32  955552b,,,.RFC42
3160: 33 31 20 54 43 35 2c 73 68 61 33 38 34 2c 2c 2c  31 TC5,sha384,,,
3170: 73 74 72 69 6e 67 20 72 61 6e 67 65 20 5b 3a 3a  string range [::
3180: 74 6c 73 3a 3a 68 6d 61 63 20 73 68 61 33 38 34  tls::hmac sha384
3190: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61   -key $key -data
31a0: 20 24 64 61 74 61 5d 20 30 20 33 31 2c 2c 2c 33   $data] 0 31,,,3
31b0: 61 62 66 33 34 63 33 35 30 33 62 32 61 32 33 61  abf34c3503b2a23a
31c0: 34 36 65 66 63 36 31 39 62 61 65 66 38 39 37 2c  46efc619baef897,
31d0: 2c 2c 0a 52 46 43 34 32 33 31 20 54 43 35 2c 73  ,,.RFC4231 TC5,s
31e0: 68 61 35 31 32 2c 2c 2c 73 74 72 69 6e 67 20 72  ha512,,,string r
31f0: 61 6e 67 65 20 5b 3a 3a 74 6c 73 3a 3a 68 6d 61  ange [::tls::hma
3200: 63 20 73 68 61 35 31 32 20 2d 6b 65 79 20 24 6b  c sha512 -key $k
3210: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 5d 20  ey -data $data] 
3220: 30 20 33 31 2c 2c 2c 34 31 35 66 61 64 36 32 37  0 31,,,415fad627
3230: 31 35 38 30 61 35 33 31 64 34 31 37 39 62 63 38  1580a531d4179bc8
3240: 39 31 64 38 37 61 36 2c 2c 2c 0a 2c 2c 2c 2c 2c  91d87a6,,,.,,,,,
3250: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 23 20  ,,,,,.command,# 
3260: 52 46 43 20 34 32 33 31 20 48 4d 41 43 20 45 78  RFC 4231 HMAC Ex
3270: 61 6d 70 6c 65 73 20 54 65 73 74 20 43 61 73 65  amples Test Case
3280: 20 23 36 20 2d 20 54 65 73 74 20 77 69 74 68 20   #6 - Test with 
3290: 61 20 6b 65 79 20 6c 61 72 67 65 72 20 74 68 61  a key larger tha
32a0: 6e 20 31 32 38 20 62 79 74 65 73 20 28 3d 20 62  n 128 bytes (= b
32b0: 6c 6f 63 6b 2d 73 69 7a 65 20 6f 66 20 53 48 41  lock-size of SHA
32c0: 2d 33 38 34 20 61 6e 64 20 53 48 41 2d 35 31 32  -384 and SHA-512
32d0: 29 2e 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d  ).,,,,,,,,,.comm
32e0: 61 6e 64 2c 22 73 65 74 20 6b 65 79 20 5b 62 69  and,"set key [bi
32f0: 6e 61 72 79 20 64 65 63 6f 64 65 20 68 65 78 20  nary decode hex 
3300: 5b 73 74 72 69 6e 67 20 72 65 70 65 61 74 20 22  [string repeat "
3310: 22 61 61 22 22 20 31 33 31 5d 5d 22 2c 2c 2c 2c  "aa"" 131]]",,,,
3320: 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22 73  ,,,,,.command,"s
3330: 65 74 20 64 61 74 61 20 22 22 54 65 73 74 20 55  et data ""Test U
3340: 73 69 6e 67 20 4c 61 72 67 65 72 20 54 68 61 6e  sing Larger Than
3350: 20 42 6c 6f 63 6b 2d 53 69 7a 65 20 4b 65 79 20   Block-Size Key 
3360: 2d 20 48 61 73 68 20 4b 65 79 20 46 69 72 73 74  - Hash Key First
3370: 22 22 22 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 52 46 43  """,,,,,,,,,.RFC
3380: 34 32 33 31 20 54 43 36 2c 73 68 61 32 32 34 2c  4231 TC6,sha224,
3390: 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 73 68  ,,::tls::hmac sh
33a0: 61 32 32 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d  a224 -key $key -
33b0: 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 39 35 65  data $data,,,95e
33c0: 39 61 30 64 62 39 36 32 30 39 35 61 64 61 65 62  9a0db962095adaeb
33d0: 65 39 62 32 64 36 66 30 64 62 63 65 32 64 34 39  e9b2d6f0dbce2d49
33e0: 39 66 31 31 32 66 32 64 32 62 37 32 37 33 66 61  9f112f2d2b7273fa
33f0: 36 38 37 30 65 2c 2c 2c 0a 52 46 43 34 32 33 31  6870e,,,.RFC4231
3400: 20 54 43 36 2c 73 68 61 32 35 36 2c 2c 2c 3a 3a   TC6,sha256,,,::
3410: 74 6c 73 3a 3a 68 6d 61 63 20 73 68 61 32 35 36  tls::hmac sha256
3420: 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74 61   -key $key -data
3430: 20 24 64 61 74 61 2c 2c 2c 36 30 65 34 33 31 35   $data,,,60e4315
3440: 39 31 65 65 30 62 36 37 66 30 64 38 61 32 36 61  91ee0b67f0d8a26a
3450: 61 63 62 66 35 62 37 37 66 38 65 30 62 63 36 32  acbf5b77f8e0bc62
3460: 31 33 37 32 38 63 35 31 34 30 35 34 36 30 34 30  13728c5140546040
3470: 66 30 65 65 33 37 66 35 34 2c 2c 2c 0a 52 46 43  f0ee37f54,,,.RFC
3480: 34 32 33 31 20 54 43 36 2c 73 68 61 33 38 34 2c  4231 TC6,sha384,
3490: 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 73 68  ,,::tls::hmac sh
34a0: 61 33 38 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d  a384 -key $key -
34b0: 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 34 65 63  data $data,,,4ec
34c0: 65 30 38 34 34 38 35 38 31 33 65 39 30 38 38 64  e084485813e9088d
34d0: 32 63 36 33 61 30 34 31 62 63 35 62 34 34 66 39  2c63a041bc5b44f9
34e0: 65 66 31 30 31 32 61 32 62 35 38 38 66 33 63 64  ef1012a2b588f3cd
34f0: 31 31 66 30 35 30 33 33 61 63 34 63 36 30 63 32  11f05033ac4c60c2
3500: 65 66 36 61 62 34 30 33 30 66 65 38 32 39 36 32  ef6ab4030fe82962
3510: 34 38 64 66 31 36 33 66 34 34 39 35 32 2c 2c 2c  48df163f44952,,,
3520: 0a 52 46 43 34 32 33 31 20 54 43 36 2c 73 68 61  .RFC4231 TC6,sha
3530: 35 31 32 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61  512,,,::tls::hma
3540: 63 20 73 68 61 35 31 32 20 2d 6b 65 79 20 24 6b  c sha512 -key $k
3550: 65 79 20 2d 64 61 74 61 20 24 64 61 74 61 2c 2c  ey -data $data,,
3560: 2c 38 30 62 32 34 32 36 33 63 37 63 31 61 33 65  ,80b24263c7c1a3e
3570: 62 62 37 31 34 39 33 63 31 64 64 37 62 65 38 62  bb71493c1dd7be8b
3580: 34 39 62 34 36 64 31 66 34 31 62 34 61 65 65 63  49b46d1f41b4aeec
3590: 31 31 32 31 62 30 31 33 37 38 33 66 38 66 33 35  1121b013783f8f35
35a0: 32 36 62 35 36 64 30 33 37 65 30 35 66 32 35 39  26b56d037e05f259
35b0: 38 62 64 30 66 64 32 32 31 35 64 36 61 31 65 35  8bd0fd2215d6a1e5
35c0: 32 39 35 65 36 34 66 37 33 66 36 33 66 30 61 65  295e64f73f63f0ae
35d0: 63 38 62 39 31 35 61 39 38 35 64 37 38 36 35 39  c8b915a985d78659
35e0: 38 2c 2c 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a  8,,,.,,,,,,,,,,.
35f0: 63 6f 6d 6d 61 6e 64 2c 23 20 52 46 43 20 34 32  command,# RFC 42
3600: 33 31 20 48 4d 41 43 20 45 78 61 6d 70 6c 65 73  31 HMAC Examples
3610: 20 54 65 73 74 20 43 61 73 65 20 23 37 20 2d 20   Test Case #7 - 
3620: 54 65 73 74 20 77 69 74 68 20 61 20 6b 65 79 20  Test with a key 
3630: 61 6e 64 20 64 61 74 61 20 74 68 61 74 20 69 73  and data that is
3640: 20 6c 61 72 67 65 72 20 74 68 61 6e 20 31 32 38   larger than 128
3650: 20 62 79 74 65 73 20 28 3d 20 62 6c 6f 63 6b 2d   bytes (= block-
3660: 73 69 7a 65 20 6f 66 20 53 48 41 2d 33 38 34 20  size of SHA-384 
3670: 61 6e 64 20 53 48 41 2d 35 31 32 29 2e 2c 2c 2c  and SHA-512).,,,
3680: 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c 22  ,,,,,,.command,"
3690: 73 65 74 20 6b 65 79 20 5b 62 69 6e 61 72 79 20  set key [binary 
36a0: 64 65 63 6f 64 65 20 68 65 78 20 5b 73 74 72 69  decode hex [stri
36b0: 6e 67 20 72 65 70 65 61 74 20 22 22 61 61 22 22  ng repeat ""aa""
36c0: 20 31 33 31 5d 5d 22 2c 2c 2c 2c 2c 2c 2c 2c 2c   131]]",,,,,,,,,
36d0: 0a 63 6f 6d 6d 61 6e 64 2c 22 73 65 74 20 64 61  .command,"set da
36e0: 74 61 20 22 22 54 68 69 73 20 69 73 20 61 20 74  ta ""This is a t
36f0: 65 73 74 20 75 73 69 6e 67 20 61 20 6c 61 72 67  est using a larg
3700: 65 72 20 74 68 61 6e 20 62 6c 6f 63 6b 2d 73 69  er than block-si
3710: 7a 65 20 6b 65 79 20 61 6e 64 20 61 20 6c 61 72  ze key and a lar
3720: 67 65 72 20 74 68 61 6e 20 62 6c 6f 63 6b 2d 73  ger than block-s
3730: 69 7a 65 20 64 61 74 61 2e 20 54 68 65 20 6b 65  ize data. The ke
3740: 79 20 6e 65 65 64 73 20 74 6f 20 62 65 20 68 61  y needs to be ha
3750: 73 68 65 64 20 62 65 66 6f 72 65 20 62 65 69 6e  shed before bein
3760: 67 20 75 73 65 64 20 62 79 20 74 68 65 20 48 4d  g used by the HM
3770: 41 43 20 61 6c 67 6f 72 69 74 68 6d 2e 22 22 22  AC algorithm."""
3780: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 52 46 43 34 32 33  ,,,,,,,,,.RFC423
3790: 31 20 54 43 37 2c 73 68 61 32 32 34 2c 2c 2c 3a  1 TC7,sha224,,,:
37a0: 3a 74 6c 73 3a 3a 68 6d 61 63 20 73 68 61 32 32  :tls::hmac sha22
37b0: 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74  4 -key $key -dat
37c0: 61 20 24 64 61 74 61 2c 2c 2c 33 61 38 35 34 31  a $data,,,3a8541
37d0: 36 36 61 63 35 64 39 66 30 32 33 66 35 34 64 35  66ac5d9f023f54d5
37e0: 31 37 64 30 62 33 39 64 62 64 39 34 36 37 37 30  17d0b39dbd946770
37f0: 64 62 39 63 32 62 39 35 63 39 66 36 66 35 36 35  db9c2b95c9f6f565
3800: 64 31 2c 2c 2c 0a 52 46 43 34 32 33 31 20 54 43  d1,,,.RFC4231 TC
3810: 37 2c 73 68 61 32 35 36 2c 2c 2c 3a 3a 74 6c 73  7,sha256,,,::tls
3820: 3a 3a 68 6d 61 63 20 73 68 61 32 35 36 20 2d 6b  ::hmac sha256 -k
3830: 65 79 20 24 6b 65 79 20 2d 64 61 74 61 20 24 64  ey $key -data $d
3840: 61 74 61 2c 2c 2c 39 62 30 39 66 66 61 37 31 62  ata,,,9b09ffa71b
3850: 39 34 32 66 63 62 32 37 36 33 35 66 62 63 64 35  942fcb27635fbcd5
3860: 62 30 65 39 34 34 62 66 64 63 36 33 36 34 34 66  b0e944bfdc63644f
3870: 30 37 31 33 39 33 38 61 37 66 35 31 35 33 35 63  0713938a7f51535c
3880: 33 61 33 35 65 32 2c 2c 2c 0a 52 46 43 34 32 33  3a35e2,,,.RFC423
3890: 31 20 54 43 37 2c 73 68 61 33 38 34 2c 2c 2c 3a  1 TC7,sha384,,,:
38a0: 3a 74 6c 73 3a 3a 68 6d 61 63 20 73 68 61 33 38  :tls::hmac sha38
38b0: 34 20 2d 6b 65 79 20 24 6b 65 79 20 2d 64 61 74  4 -key $key -dat
38c0: 61 20 24 64 61 74 61 2c 2c 2c 36 36 31 37 31 37  a $data,,,661717
38d0: 38 65 39 34 31 66 30 32 30 64 33 35 31 65 32 66  8e941f020d351e2f
38e0: 32 35 34 65 38 66 64 33 32 63 36 30 32 34 32 30  254e8fd32c602420
38f0: 66 65 62 30 62 38 66 62 39 61 64 63 63 65 62 62  feb0b8fb9adccebb
3900: 38 32 34 36 31 65 39 39 63 35 61 36 37 38 63 63  82461e99c5a678cc
3910: 33 31 65 37 39 39 31 37 36 64 33 38 36 30 65 36  31e799176d3860e6
3920: 31 31 30 63 34 36 35 32 33 65 2c 2c 2c 0a 52 46  110c46523e,,,.RF
3930: 43 34 32 33 31 20 54 43 37 2c 73 68 61 35 31 32  C4231 TC7,sha512
3940: 2c 2c 2c 3a 3a 74 6c 73 3a 3a 68 6d 61 63 20 73  ,,,::tls::hmac s
3950: 68 61 35 31 32 20 2d 6b 65 79 20 24 6b 65 79 20  ha512 -key $key 
3960: 2d 64 61 74 61 20 24 64 61 74 61 2c 2c 2c 65 33  -data $data,,,e3
3970: 37 62 36 61 37 37 35 64 63 38 37 64 62 61 61 34  7b6a775dc87dbaa4
3980: 64 66 61 39 66 39 36 65 35 65 33 66 66 64 64 65  dfa9f96e5e3ffdde
3990: 62 64 37 31 66 38 38 36 37 32 38 39 38 36 35 64  bd71f8867289865d
39a0: 66 35 61 33 32 64 32 30 63 64 63 39 34 34 62 36  f5a32d20cdc944b6
39b0: 30 32 32 63 61 63 33 63 34 39 38 32 62 31 30 64  022cac3c4982b10d
39c0: 35 65 65 62 35 35 63 33 65 34 64 65 31 35 31 33  5eeb55c3e4de1513
39d0: 34 36 37 36 66 62 36 64 65 30 34 34 36 30 36 35  4676fb6de0446065
39e0: 63 39 37 34 34 30 66 61 38 63 36 61 35 38 2c 2c  c97440fa8c6a58,,
39f0: 2c 0a 2c 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d  ,.,,,,,,,,,,.com
3a00: 6d 61 6e 64 2c 23 20 43 6c 65 61 6e 75 70 2c 2c  mand,# Cleanup,,
3a10: 2c 2c 2c 2c 2c 2c 2c 0a 63 6f 6d 6d 61 6e 64 2c  ,,,,,,,.command,
3a20: 3a 3a 74 63 6c 74 65 73 74 3a 3a 72 65 6d 6f 76  ::tcltest::remov
3a30: 65 46 69 6c 65 20 24 74 65 73 74 5f 66 69 6c 65  eFile $test_file
3a40: 2c 2c 2c 2c 2c 2c 2c 2c 2c 0a                    ,,,,,,,,,.