Hex Artifact Content

Artifact ffd58ca5b8c5300b649901727e6a4231398fbe9036614cb46f032ed6652171f9:


0000: 23 20 48 4d 41 43 2d 53 48 41 35 31 32 0a 23 20  # HMAC-SHA512.# 
0010: 46 72 6f 6d 20 68 74 74 70 73 3a 2f 2f 63 73 72  From https://csr
0020: 63 2e 6e 69 73 74 2e 67 6f 76 2f 70 72 6f 6a 65  c.nist.gov/proje
0030: 63 74 73 2f 63 72 79 70 74 6f 67 72 61 70 68 69  cts/cryptographi
0040: 63 2d 73 74 61 6e 64 61 72 64 73 2d 61 6e 64 2d  c-standards-and-
0050: 67 75 69 64 65 6c 69 6e 65 73 2f 65 78 61 6d 70  guidelines/examp
0060: 6c 65 2d 76 61 6c 75 65 73 0a 23 20 61 6e 64 20  le-values.# and 
0070: 52 46 43 20 34 32 33 31 20 48 4d 41 43 2d 53 48  RFC 4231 HMAC-SH
0080: 41 20 49 64 65 6e 74 69 66 69 65 72 73 20 61 6e  A Identifiers an
0090: 64 20 54 65 73 74 20 56 65 63 74 6f 72 73 0a 23  d Test Vectors.#
00a0: 20 61 6e 64 20 52 46 43 20 36 32 33 34 20 53 48   and RFC 6234 SH
00b0: 41 20 61 6e 64 20 53 48 41 2d 62 61 73 65 64 20  A and SHA-based 
00c0: 48 4d 41 43 20 61 6e 64 20 48 4b 44 46 0a 0a 5b  HMAC and HKDF..[
00d0: 62 20 3d 20 31 32 38 5d 0a 5b 4c 20 3d 20 36 34  b = 128].[L = 64
00e0: 5d 0a 0a 4b 6c 65 6e 20 3d 20 31 32 38 0a 54 6c  ]..Klen = 128.Tl
00f0: 65 6e 20 3d 20 36 34 0a 4c 65 6e 20 3d 20 33 34  en = 64.Len = 34
0100: 0a 4d 73 67 20 3d 20 22 53 61 6d 70 6c 65 20 6d  .Msg = "Sample m
0110: 65 73 73 61 67 65 20 66 6f 72 20 6b 65 79 6c 65  essage for keyle
0120: 6e 3d 62 6c 6f 63 6b 6c 65 6e 22 0a 4b 65 79 20  n=blocklen".Key 
0130: 3d 20 30 30 30 31 30 32 30 33 30 34 30 35 30 36  = 00010203040506
0140: 30 37 30 38 30 39 30 61 30 62 30 63 30 64 30 65  0708090a0b0c0d0e
0150: 30 66 31 30 31 31 31 32 31 33 31 34 31 35 31 36  0f10111213141516
0160: 31 37 31 38 31 39 31 61 31 62 31 63 31 64 31 65  1718191a1b1c1d1e
0170: 31 66 32 30 32 31 32 32 32 33 32 34 32 35 32 36  1f20212223242526
0180: 32 37 32 38 32 39 32 61 32 62 32 63 32 64 32 65  2728292a2b2c2d2e
0190: 32 66 33 30 33 31 33 32 33 33 33 34 33 35 33 36  2f30313233343536
01a0: 33 37 33 38 33 39 33 61 33 62 33 63 33 64 33 65  3738393a3b3c3d3e
01b0: 33 66 34 30 34 31 34 32 34 33 34 34 34 35 34 36  3f40414243444546
01c0: 34 37 34 38 34 39 34 61 34 62 34 63 34 64 34 65  4748494a4b4c4d4e
01d0: 34 66 35 30 35 31 35 32 35 33 35 34 35 35 35 36  4f50515253545556
01e0: 35 37 35 38 35 39 35 61 35 62 35 63 35 64 35 65  5758595a5b5c5d5e
01f0: 35 66 36 30 36 31 36 32 36 33 36 34 36 35 36 36  5f60616263646566
0200: 36 37 36 38 36 39 36 61 36 62 36 63 36 64 36 65  6768696a6b6c6d6e
0210: 36 66 37 30 37 31 37 32 37 33 37 34 37 35 37 36  6f70717273747576
0220: 37 37 37 38 37 39 37 61 37 62 37 63 37 64 37 65  7778797a7b7c7d7e
0230: 37 66 0a 4d 61 63 20 3d 20 66 63 32 35 65 32 34  7f.Mac = fc25e24
0240: 30 36 35 38 63 61 37 38 35 62 37 61 38 31 31 61  0658ca785b7a811a
0250: 38 64 33 66 37 62 34 63 61 34 38 63 66 61 32 36  8d3f7b4ca48cfa26
0260: 61 38 61 33 36 36 62 66 32 63 64 31 66 38 33 36  a8a366bf2cd1f836
0270: 62 30 35 66 63 62 30 32 34 62 64 33 36 38 35 33  b05fcb024bd36853
0280: 30 38 31 38 31 31 64 36 63 65 61 34 32 31 36 65  081811d6cea4216e
0290: 62 61 64 37 39 64 61 31 63 66 63 62 39 35 65 61  bad79da1cfcb95ea
02a0: 34 35 38 36 62 38 61 30 63 65 33 35 36 35 39 36  4586b8a0ce356596
02b0: 61 35 35 66 62 31 33 34 37 0a 0a 4b 6c 65 6e 20  a55fb1347..Klen 
02c0: 3d 20 36 34 0a 54 6c 65 6e 20 3d 20 36 34 0a 4c  = 64.Tlen = 64.L
02d0: 65 6e 20 3d 20 33 34 0a 4d 73 67 20 3d 20 22 53  en = 34.Msg = "S
02e0: 61 6d 70 6c 65 20 6d 65 73 73 61 67 65 20 66 6f  ample message fo
02f0: 72 20 6b 65 79 6c 65 6e 3c 62 6c 6f 63 6b 6c 65  r keylen<blockle
0300: 6e 22 0a 4b 65 79 20 3d 20 30 30 30 31 30 32 30  n".Key = 0001020
0310: 33 30 34 30 35 30 36 30 37 30 38 30 39 30 61 30  30405060708090a0
0320: 62 30 63 30 64 30 65 30 66 31 30 31 31 31 32 31  b0c0d0e0f1011121
0330: 33 31 34 31 35 31 36 31 37 31 38 31 39 31 61 31  31415161718191a1
0340: 62 31 63 31 64 31 65 31 66 32 30 32 31 32 32 32  b1c1d1e1f2021222
0350: 33 32 34 32 35 32 36 32 37 32 38 32 39 32 61 32  32425262728292a2
0360: 62 32 63 32 64 32 65 32 66 33 30 33 31 33 32 33  b2c2d2e2f3031323
0370: 33 33 34 33 35 33 36 33 37 33 38 33 39 33 61 33  33435363738393a3
0380: 62 33 63 33 64 33 65 33 66 0a 4d 61 63 20 3d 20  b3c3d3e3f.Mac = 
0390: 66 64 34 34 63 31 38 62 64 61 30 62 62 30 61 36  fd44c18bda0bb0a6
03a0: 63 65 30 65 38 32 62 30 33 31 62 66 32 38 31 38  ce0e82b031bf2818
03b0: 66 36 35 33 39 62 64 35 36 65 63 30 30 62 64 63  f6539bd56ec00bdc
03c0: 31 30 61 38 61 32 64 37 33 30 62 33 36 33 34 64  10a8a2d730b3634d
03d0: 65 32 35 34 35 64 36 33 39 62 30 66 32 63 66 37  e2545d639b0f2cf7
03e0: 31 30 64 30 36 39 32 63 37 32 61 31 38 39 36 66  10d0692c72a1896f
03f0: 31 66 32 31 31 63 32 62 39 32 32 64 31 61 39 36  1f211c2b922d1a96
0400: 63 33 39 32 65 30 37 65 37 65 61 39 66 65 64 63  c392e07e7ea9fedc
0410: 0a 0a 4b 6c 65 6e 20 3d 20 32 30 30 0a 54 6c 65  ..Klen = 200.Tle
0420: 6e 20 3d 20 36 34 0a 4c 65 6e 20 3d 20 33 34 0a  n = 64.Len = 34.
0430: 4d 73 67 20 3d 20 22 53 61 6d 70 6c 65 20 6d 65  Msg = "Sample me
0440: 73 73 61 67 65 20 66 6f 72 20 6b 65 79 6c 65 6e  ssage for keylen
0450: 3d 62 6c 6f 63 6b 6c 65 6e 22 0a 4b 65 79 20 3d  =blocklen".Key =
0460: 20 30 30 30 31 30 32 30 33 30 34 30 35 30 36 30   000102030405060
0470: 37 30 38 30 39 30 61 30 62 30 63 30 64 30 65 30  708090a0b0c0d0e0
0480: 66 31 30 31 31 31 32 31 33 31 34 31 35 31 36 31  f101112131415161
0490: 37 31 38 31 39 31 61 31 62 31 63 31 64 31 65 31  718191a1b1c1d1e1
04a0: 66 32 30 32 31 32 32 32 33 32 34 32 35 32 36 32  f202122232425262
04b0: 37 32 38 32 39 32 61 32 62 32 63 32 64 32 65 32  728292a2b2c2d2e2
04c0: 66 33 30 33 31 33 32 33 33 33 34 33 35 33 36 33  f303132333435363
04d0: 37 33 38 33 39 33 61 33 62 33 63 33 64 33 65 33  738393a3b3c3d3e3
04e0: 66 34 30 34 31 34 32 34 33 34 34 34 35 34 36 34  f404142434445464
04f0: 37 34 38 34 39 34 61 34 62 34 63 34 64 34 65 34  748494a4b4c4d4e4
0500: 66 35 30 35 31 35 32 35 33 35 34 35 35 35 36 35  f505152535455565
0510: 37 35 38 35 39 35 61 35 62 35 63 35 64 35 65 35  758595a5b5c5d5e5
0520: 66 36 30 36 31 36 32 36 33 36 34 36 35 36 36 36  f606162636465666
0530: 37 36 38 36 39 36 61 36 62 36 63 36 64 36 65 36  768696a6b6c6d6e6
0540: 66 37 30 37 31 37 32 37 33 37 34 37 35 37 36 37  f707172737475767
0550: 37 37 38 37 39 37 61 37 62 37 63 37 64 37 65 37  778797a7b7c7d7e7
0560: 66 38 30 38 31 38 32 38 33 38 34 38 35 38 36 38  f808182838485868
0570: 37 38 38 38 39 38 61 38 62 38 63 38 64 38 65 38  788898a8b8c8d8e8
0580: 66 39 30 39 31 39 32 39 33 39 34 39 35 39 36 39  f909192939495969
0590: 37 39 38 39 39 39 61 39 62 39 63 39 64 39 65 39  798999a9b9c9d9e9
05a0: 66 61 30 61 31 61 32 61 33 61 34 61 35 61 36 61  fa0a1a2a3a4a5a6a
05b0: 37 61 38 61 39 61 61 61 62 61 63 61 64 61 65 61  7a8a9aaabacadaea
05c0: 66 62 30 62 31 62 32 62 33 62 34 62 35 62 36 62  fb0b1b2b3b4b5b6b
05d0: 37 62 38 62 39 62 61 62 62 62 63 62 64 62 65 62  7b8b9babbbcbdbeb
05e0: 66 63 30 63 31 63 32 63 33 63 34 63 35 63 36 63  fc0c1c2c3c4c5c6c
05f0: 37 0a 4d 61 63 20 3d 20 64 39 33 65 63 38 64 32  7.Mac = d93ec8d2
0600: 64 65 31 61 64 32 61 39 39 35 37 63 62 39 62 38  de1ad2a9957cb9b8
0610: 33 66 31 34 65 37 36 61 64 36 62 35 65 30 63 63  3f14e76ad6b5e0cc
0620: 65 32 38 35 30 37 39 61 31 32 37 64 33 62 31 34  e285079a127d3b14
0630: 62 63 63 62 37 61 61 37 32 38 36 64 34 61 63 30  bccb7aa7286d4ac0
0640: 64 34 63 65 36 34 32 31 35 66 32 62 63 39 65 36  d4ce64215f2bc9e6
0650: 38 37 30 62 33 33 64 39 37 34 33 38 62 65 34 61  870b33d97438be4a
0660: 61 61 32 30 63 64 61 35 63 35 61 39 31 32 62 34  aa20cda5c5a912b4
0670: 38 62 38 65 32 37 66 33 0a 0a 4b 6c 65 6e 20 3d  8b8e27f3..Klen =
0680: 20 34 38 0a 54 6c 65 6e 20 3d 20 33 32 0a 4c 65   48.Tlen = 32.Le
0690: 6e 20 3d 20 35 34 0a 4d 73 67 20 3d 20 22 53 61  n = 54.Msg = "Sa
06a0: 6d 70 6c 65 20 6d 65 73 73 61 67 65 20 66 6f 72  mple message for
06b0: 20 6b 65 79 6c 65 6e 3c 62 6c 6f 63 6b 6c 65 6e   keylen<blocklen
06c0: 2c 20 77 69 74 68 20 74 72 75 6e 63 61 74 65 64  , with truncated
06d0: 20 74 61 67 22 0a 4b 65 79 20 3d 20 30 30 30 31   tag".Key = 0001
06e0: 30 32 30 33 30 34 30 35 30 36 30 37 30 38 30 39  0203040506070809
06f0: 30 61 30 62 30 63 30 64 30 65 30 66 31 30 31 31  0a0b0c0d0e0f1011
0700: 31 32 31 33 31 34 31 35 31 36 31 37 31 38 31 39  1213141516171819
0710: 31 61 31 62 31 63 31 64 31 65 31 66 32 30 32 31  1a1b1c1d1e1f2021
0720: 32 32 32 33 32 34 32 35 32 36 32 37 32 38 32 39  2223242526272829
0730: 32 61 32 62 32 63 32 64 32 65 32 66 33 30 0a 4d  2a2b2c2d2e2f30.M
0740: 61 63 20 3d 20 30 30 66 33 65 39 61 37 37 62 62  ac = 00f3e9a77bb
0750: 30 66 30 36 64 65 31 35 66 31 36 30 36 30 33 65  0f06de15f160603e
0760: 34 32 62 35 30 32 38 37 35 38 38 30 38 35 39 36  42b5028758808596
0770: 36 36 34 63 30 33 65 31 61 62 38 66 62 32 62 30  664c03e1ab8fb2b0
0780: 37 36 37 37 38 30 35 36 33 61 65 64 63 36 34 34  767780563aedc644
0790: 39 36 30 64 34 66 30 63 30 63 35 64 32 33 39 66  960d4f0c0c5d239f
07a0: 36 37 61 32 61 36 31 62 31 34 31 65 38 63 38 37  67a2a61b141e8c87
07b0: 31 66 33 64 34 30 64 62 32 63 36 30 35 35 38 38  1f3d40db2c605588
07c0: 64 61 62 39 32 0a 54 72 75 6e 63 20 3d 20 30 30  dab92.Trunc = 00
07d0: 66 33 65 39 61 37 37 62 62 30 66 30 36 64 65 31  f3e9a77bb0f06de1
07e0: 35 66 31 36 30 36 30 33 65 34 32 62 35 30 32 38  5f160603e42b5028
07f0: 37 35 38 38 30 38 35 39 36 36 36 34 63 30 33 65  758808596664c03e
0800: 31 61 62 38 66 62 32 62 30 37 36 37 37 38 0a 0a  1ab8fb2b076778..
0810: 23 20 52 46 43 20 34 32 33 31 20 54 65 73 74 20  # RFC 4231 Test 
0820: 43 61 73 65 20 31 0a 4b 6c 65 6e 20 3d 20 32 30  Case 1.Klen = 20
0830: 0a 54 6c 65 6e 20 3d 20 36 34 0a 4c 65 6e 20 3d  .Tlen = 64.Len =
0840: 20 38 0a 4b 65 79 20 3d 20 30 62 30 62 30 62 30   8.Key = 0b0b0b0
0850: 62 30 62 30 62 30 62 30 62 30 62 30 62 30 62 30  b0b0b0b0b0b0b0b0
0860: 62 30 62 30 62 30 62 30 62 30 62 30 62 30 62 30  b0b0b0b0b0b0b0b0
0870: 62 0a 4d 73 67 20 3d 20 22 48 69 20 54 68 65 72  b.Msg = "Hi Ther
0880: 65 22 0a 23 4d 73 67 20 3d 20 34 38 36 39 32 30  e".#Msg = 486920
0890: 35 34 36 38 36 35 37 32 36 35 0a 4d 61 63 20 3d  5468657265.Mac =
08a0: 20 38 37 61 61 37 63 64 65 61 35 65 66 36 31 39   87aa7cdea5ef619
08b0: 64 34 66 66 30 62 34 32 34 31 61 31 64 36 63 62  d4ff0b4241a1d6cb
08c0: 30 32 33 37 39 66 34 65 32 63 65 34 65 63 32 37  02379f4e2ce4ec27
08d0: 38 37 61 64 30 62 33 30 35 34 35 65 31 37 63 64  87ad0b30545e17cd
08e0: 65 64 61 61 38 33 33 62 37 64 36 62 38 61 37 30  edaa833b7d6b8a70
08f0: 32 30 33 38 62 32 37 34 65 61 65 61 33 66 34 65  2038b274eaea3f4e
0900: 34 62 65 39 64 39 31 34 65 65 62 36 31 66 31 37  4be9d914eeb61f17
0910: 30 32 65 36 39 36 63 32 30 33 61 31 32 36 38 35  02e696c203a12685
0920: 34 0a 0a 23 20 52 46 43 20 34 32 33 31 20 54 65  4..# RFC 4231 Te
0930: 73 74 20 43 61 73 65 20 32 3a 20 54 65 73 74 20  st Case 2: Test 
0940: 77 69 74 68 20 61 20 6b 65 79 20 73 68 6f 72 74  with a key short
0950: 65 72 20 74 68 61 6e 20 74 68 65 20 6c 65 6e 67  er than the leng
0960: 74 68 20 6f 66 20 74 68 65 20 48 4d 41 43 20 6f  th of the HMAC o
0970: 75 74 70 75 74 2e 0a 4b 6c 65 6e 20 3d 20 34 0a  utput..Klen = 4.
0980: 54 6c 65 6e 20 3d 20 36 34 0a 4c 65 6e 20 3d 20  Tlen = 64.Len = 
0990: 32 38 0a 4b 65 79 20 3d 20 22 4a 65 66 65 22 0a  28.Key = "Jefe".
09a0: 23 4b 65 79 20 3d 20 34 61 36 35 36 36 36 35 0a  #Key = 4a656665.
09b0: 4d 73 67 20 3d 20 22 77 68 61 74 20 64 6f 20 79  Msg = "what do y
09c0: 61 20 77 61 6e 74 20 66 6f 72 20 6e 6f 74 68 69  a want for nothi
09d0: 6e 67 3f 22 0a 23 4d 73 67 20 3d 20 37 37 36 38  ng?".#Msg = 7768
09e0: 36 31 37 34 32 30 36 34 36 66 32 30 37 39 36 31  617420646f207961
09f0: 32 30 37 37 36 31 36 65 37 34 32 30 36 36 36 66  2077616e7420666f
0a00: 37 32 32 30 36 65 36 66 37 34 36 38 36 39 36 65  72206e6f7468696e
0a10: 36 37 33 66 0a 4d 61 63 20 3d 20 31 36 34 62 37  673f.Mac = 164b7
0a20: 61 37 62 66 63 66 38 31 39 65 32 65 33 39 35 66  a7bfcf819e2e395f
0a30: 62 65 37 33 62 35 36 65 30 61 33 38 37 62 64 36  be73b56e0a387bd6
0a40: 34 32 32 32 65 38 33 31 66 64 36 31 30 32 37 30  4222e831fd610270
0a50: 63 64 37 65 61 32 35 30 35 35 34 39 37 35 38 62  cd7ea2505549758b
0a60: 66 37 35 63 30 35 61 39 39 34 61 36 64 30 33 34  f75c05a994a6d034
0a70: 66 36 35 66 38 66 30 65 36 66 64 63 61 65 61 62  f65f8f0e6fdcaeab
0a80: 31 61 33 34 64 34 61 36 62 34 62 36 33 36 65 30  1a34d4a6b4b636e0
0a90: 37 30 61 33 38 62 63 65 37 33 37 0a 0a 23 20 52  70a38bce737..# R
0aa0: 46 43 20 34 32 33 31 20 54 65 73 74 20 43 61 73  FC 4231 Test Cas
0ab0: 65 20 33 3a 20 54 65 73 74 20 77 69 74 68 20 61  e 3: Test with a
0ac0: 20 63 6f 6d 62 69 6e 65 64 20 6c 65 6e 67 74 68   combined length
0ad0: 20 6f 66 20 6b 65 79 20 61 6e 64 20 64 61 74 61   of key and data
0ae0: 20 74 68 61 74 20 69 73 20 6c 61 72 67 65 72 20   that is larger 
0af0: 74 68 61 6e 20 36 34 20 62 79 74 65 73 20 28 3d  than 64 bytes (=
0b00: 20 62 6c 6f 63 6b 2d 73 69 7a 65 20 6f 66 20 53   block-size of S
0b10: 48 41 2d 32 32 34 20 61 6e 64 20 53 48 41 2d 32  HA-224 and SHA-2
0b20: 35 36 29 2e 0a 4b 6c 65 6e 20 3d 20 32 30 0a 54  56)..Klen = 20.T
0b30: 6c 65 6e 20 3d 20 36 34 0a 4c 65 6e 20 3d 20 35  len = 64.Len = 5
0b40: 30 0a 4b 65 79 20 3d 20 61 61 61 61 61 61 61 61  0.Key = aaaaaaaa
0b50: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
0b60: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
0b70: 0a 4d 73 67 20 3d 20 64 64 64 64 64 64 64 64 64  .Msg = ddddddddd
0b80: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64  dddddddddddddddd
0b90: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64  dddddddddddddddd
0ba0: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64  dddddddddddddddd
0bb0: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64  dddddddddddddddd
0bc0: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64  dddddddddddddddd
0bd0: 64 64 64 64 64 64 64 64 64 64 64 0a 4d 61 63 20  ddddddddddd.Mac 
0be0: 3d 20 66 61 37 33 62 30 30 38 39 64 35 36 61 32  = fa73b0089d56a2
0bf0: 38 34 65 66 62 30 66 30 37 35 36 63 38 39 30 62  84efb0f0756c890b
0c00: 65 39 62 31 62 35 64 62 64 64 38 65 65 38 31 61  e9b1b5dbdd8ee81a
0c10: 33 36 35 35 66 38 33 65 33 33 62 32 32 37 39 64  3655f83e33b2279d
0c20: 33 39 62 66 33 65 38 34 38 32 37 39 61 37 32 32  39bf3e848279a722
0c30: 63 38 30 36 62 34 38 35 61 34 37 65 36 37 63 38  c806b485a47e67c8
0c40: 30 37 62 39 34 36 61 33 33 37 62 65 65 38 39 34  07b946a337bee894
0c50: 32 36 37 34 32 37 38 38 35 39 65 31 33 32 39 32  2674278859e13292
0c60: 66 62 0a 0a 23 20 52 46 43 20 34 32 33 31 20 54  fb..# RFC 4231 T
0c70: 65 73 74 20 43 61 73 65 20 34 3a 20 54 65 73 74  est Case 4: Test
0c80: 20 77 69 74 68 20 61 20 63 6f 6d 62 69 6e 65 64   with a combined
0c90: 20 6c 65 6e 67 74 68 20 6f 66 20 6b 65 79 20 61   length of key a
0ca0: 6e 64 20 64 61 74 61 20 74 68 61 74 20 69 73 20  nd data that is 
0cb0: 6c 61 72 67 65 72 20 74 68 61 6e 20 36 34 20 62  larger than 64 b
0cc0: 79 74 65 73 20 28 3d 20 62 6c 6f 63 6b 2d 73 69  ytes (= block-si
0cd0: 7a 65 20 6f 66 20 53 48 41 2d 32 32 34 20 61 6e  ze of SHA-224 an
0ce0: 64 20 53 48 41 2d 32 35 36 29 2e 0a 4b 6c 65 6e  d SHA-256)..Klen
0cf0: 20 3d 20 32 35 0a 54 6c 65 6e 20 3d 20 36 34 0a   = 25.Tlen = 64.
0d00: 4c 65 6e 20 3d 20 35 30 0a 4b 65 79 20 3d 20 30  Len = 50.Key = 0
0d10: 31 30 32 30 33 30 34 30 35 30 36 30 37 30 38 30  1020304050607080
0d20: 39 30 61 30 62 30 63 30 64 30 65 30 66 31 30 31  90a0b0c0d0e0f101
0d30: 31 31 32 31 33 31 34 31 35 31 36 31 37 31 38 31  1121314151617181
0d40: 39 0a 4d 73 67 20 3d 20 63 64 63 64 63 64 63 64  9.Msg = cdcdcdcd
0d50: 63 64 63 64 63 64 63 64 63 64 63 64 63 64 63 64  cdcdcdcdcdcdcdcd
0d60: 63 64 63 64 63 64 63 64 63 64 63 64 63 64 63 64  cdcdcdcdcdcdcdcd
0d70: 63 64 63 64 63 64 63 64 63 64 63 64 63 64 63 64  cdcdcdcdcdcdcdcd
0d80: 63 64 63 64 63 64 63 64 63 64 63 64 63 64 63 64  cdcdcdcdcdcdcdcd
0d90: 63 64 63 64 63 64 63 64 63 64 63 64 63 64 63 64  cdcdcdcdcdcdcdcd
0da0: 63 64 63 64 63 64 63 64 63 64 63 64 0a 4d 61 63  cdcdcdcdcdcd.Mac
0db0: 20 3d 20 62 30 62 61 34 36 35 36 33 37 34 35 38   = b0ba465637458
0dc0: 63 36 39 39 30 65 35 61 38 63 35 66 36 31 64 34  c6990e5a8c5f61d4
0dd0: 61 66 37 65 35 37 36 64 39 37 66 66 39 34 62 38  af7e576d97ff94b8
0de0: 37 32 64 65 37 36 66 38 30 35 30 33 36 31 65 65  72de76f8050361ee
0df0: 33 64 62 61 39 31 63 61 35 63 31 31 61 61 32 35  3dba91ca5c11aa25
0e00: 65 62 34 64 36 37 39 32 37 35 63 63 35 37 38 38  eb4d679275cc5788
0e10: 30 36 33 61 35 66 31 39 37 34 31 31 32 30 63 34  063a5f19741120c4
0e20: 66 32 64 65 32 61 64 65 62 65 62 31 30 61 32 39  f2de2adebeb10a29
0e30: 38 64 64 0a 0a 23 20 52 46 43 20 34 32 33 31 20  8dd..# RFC 4231 
0e40: 54 65 73 74 20 43 61 73 65 20 35 3a 20 54 65 73  Test Case 5: Tes
0e50: 74 20 77 69 74 68 20 61 20 74 72 75 6e 63 61 74  t with a truncat
0e60: 69 6f 6e 20 6f 66 20 6f 75 74 70 75 74 20 74 6f  ion of output to
0e70: 20 31 32 38 20 62 69 74 73 2e 0a 4b 6c 65 6e 20   128 bits..Klen 
0e80: 3d 20 32 30 0a 54 6c 65 6e 20 3d 20 31 36 0a 4c  = 20.Tlen = 16.L
0e90: 65 6e 20 3d 20 32 30 0a 4b 65 79 20 3d 20 30 63  en = 20.Key = 0c
0ea0: 30 63 30 63 30 63 30 63 30 63 30 63 30 63 30 63  0c0c0c0c0c0c0c0c
0eb0: 30 63 30 63 30 63 30 63 30 63 30 63 30 63 30 63  0c0c0c0c0c0c0c0c
0ec0: 30 63 30 63 30 63 0a 4d 73 67 20 3d 20 22 54 65  0c0c0c.Msg = "Te
0ed0: 73 74 20 57 69 74 68 20 54 72 75 6e 63 61 74 69  st With Truncati
0ee0: 6f 6e 22 0a 4d 61 63 20 3d 20 34 31 35 66 61 64  on".Mac = 415fad
0ef0: 36 32 37 31 35 38 30 61 35 33 31 64 34 31 37 39  6271580a531d4179
0f00: 62 63 38 39 31 64 38 37 61 36 0a 54 72 75 6e 63  bc891d87a6.Trunc
0f10: 20 3d 20 34 31 35 66 61 64 36 32 37 31 35 38 30   = 415fad6271580
0f20: 61 35 33 31 64 34 31 37 39 62 63 38 39 31 64 38  a531d4179bc891d8
0f30: 37 61 36 0a 0a 23 20 52 46 43 20 34 32 33 31 20  7a6..# RFC 4231 
0f40: 54 65 73 74 20 43 61 73 65 20 36 3a 20 54 65 73  Test Case 6: Tes
0f50: 74 20 77 69 74 68 20 61 20 6b 65 79 20 6c 61 72  t with a key lar
0f60: 67 65 72 20 74 68 61 6e 20 31 32 38 20 62 79 74  ger than 128 byt
0f70: 65 73 20 28 3d 20 62 6c 6f 63 6b 2d 73 69 7a 65  es (= block-size
0f80: 20 6f 66 20 53 48 41 2d 33 38 34 20 61 6e 64 20   of SHA-384 and 
0f90: 53 48 41 2d 35 31 32 29 2e 0a 4b 6c 65 6e 20 3d  SHA-512)..Klen =
0fa0: 20 31 33 31 0a 54 6c 65 6e 20 3d 20 36 34 0a 4c   131.Tlen = 64.L
0fb0: 65 6e 20 3d 20 35 34 0a 4b 65 79 20 3d 20 20 61  en = 54.Key =  a
0fc0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
0fd0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
0fe0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
0ff0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1000: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1010: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1020: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1030: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1040: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1050: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1060: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1070: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1080: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1090: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
10a0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
10b0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
10c0: 61 61 61 61 61 0a 4d 73 67 20 3d 20 22 54 65 73  aaaaa.Msg = "Tes
10d0: 74 20 55 73 69 6e 67 20 4c 61 72 67 65 72 20 54  t Using Larger T
10e0: 68 61 6e 20 42 6c 6f 63 6b 2d 53 69 7a 65 20 4b  han Block-Size K
10f0: 65 79 20 2d 20 48 61 73 68 20 4b 65 79 20 46 69  ey - Hash Key Fi
1100: 72 73 74 22 0a 23 4d 73 67 20 3d 20 35 34 36 35  rst".#Msg = 5465
1110: 37 33 37 34 32 30 35 35 37 33 36 39 36 65 36 37  7374205573696e67
1120: 32 30 34 63 36 31 37 32 36 37 36 35 37 32 32 30  204c617267657220
1130: 35 34 36 38 36 31 36 65 32 30 34 32 36 63 36 66  5468616e20426c6f
1140: 36 33 36 62 32 64 35 33 36 39 37 61 36 35 32 30  636b2d53697a6520
1150: 34 62 36 35 37 39 32 30 32 64 32 30 34 38 36 31  4b6579202d204861
1160: 37 33 36 38 32 30 34 62 36 35 37 39 32 30 34 36  7368204b65792046
1170: 36 39 37 32 37 33 37 34 0a 4d 61 63 20 3d 20 38  69727374.Mac = 8
1180: 30 62 32 34 32 36 33 63 37 63 31 61 33 65 62 62  0b24263c7c1a3ebb
1190: 37 31 34 39 33 63 31 64 64 37 62 65 38 62 34 39  71493c1dd7be8b49
11a0: 62 34 36 64 31 66 34 31 62 34 61 65 65 63 31 31  b46d1f41b4aeec11
11b0: 32 31 62 30 31 33 37 38 33 66 38 66 33 35 32 36  21b013783f8f3526
11c0: 62 35 36 64 30 33 37 65 30 35 66 32 35 39 38 62  b56d037e05f2598b
11d0: 64 30 66 64 32 32 31 35 64 36 61 31 65 35 32 39  d0fd2215d6a1e529
11e0: 35 65 36 34 66 37 33 66 36 33 66 30 61 65 63 38  5e64f73f63f0aec8
11f0: 62 39 31 35 61 39 38 35 64 37 38 36 35 39 38 0a  b915a985d786598.
1200: 0a 23 20 52 46 43 20 34 32 33 31 20 54 65 73 74  .# RFC 4231 Test
1210: 20 43 61 73 65 20 37 3a 20 54 65 73 74 20 77 69   Case 7: Test wi
1220: 74 68 20 61 20 6b 65 79 20 61 6e 64 20 64 61 74  th a key and dat
1230: 61 20 74 68 61 74 20 69 73 20 6c 61 72 67 65 72  a that is larger
1240: 20 74 68 61 6e 20 31 32 38 20 62 79 74 65 73 20   than 128 bytes 
1250: 28 3d 20 62 6c 6f 63 6b 2d 73 69 7a 65 20 6f 66  (= block-size of
1260: 20 53 48 41 2d 33 38 34 20 61 6e 64 20 53 48 41   SHA-384 and SHA
1270: 2d 35 31 32 29 2e 0a 4b 6c 65 6e 20 3d 20 31 33  -512)..Klen = 13
1280: 31 0a 54 6c 65 6e 20 3d 20 36 34 0a 4c 65 6e 20  1.Tlen = 64.Len 
1290: 3d 20 31 35 32 0a 4b 65 79 20 3d 20 61 61 61 61  = 152.Key = aaaa
12a0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
12b0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
12c0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
12d0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
12e0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
12f0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1300: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1310: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1320: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1330: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1340: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1350: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1360: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1370: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1380: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1390: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
13a0: 61 61 0a 4d 73 67 20 3d 20 22 54 68 69 73 20 69  aa.Msg = "This i
13b0: 73 20 61 20 74 65 73 74 20 75 73 69 6e 67 20 61  s a test using a
13c0: 20 6c 61 72 67 65 72 20 74 68 61 6e 20 62 6c 6f   larger than blo
13d0: 63 6b 2d 73 69 7a 65 20 6b 65 79 20 61 6e 64 20  ck-size key and 
13e0: 61 20 6c 61 72 67 65 72 20 74 68 61 6e 20 62 6c  a larger than bl
13f0: 6f 63 6b 2d 73 69 7a 65 20 64 61 74 61 2e 20 54  ock-size data. T
1400: 68 65 20 6b 65 79 20 6e 65 65 64 73 20 74 6f 20  he key needs to 
1410: 62 65 20 68 61 73 68 65 64 20 62 65 66 6f 72 65  be hashed before
1420: 20 62 65 69 6e 67 20 75 73 65 64 20 62 79 20 74   being used by t
1430: 68 65 20 48 4d 41 43 20 61 6c 67 6f 72 69 74 68  he HMAC algorith
1440: 6d 2e 22 0a 23 4d 73 67 20 3d 20 35 34 36 38 36  m.".#Msg = 54686
1450: 39 37 33 32 30 36 39 37 33 32 30 36 31 32 30 37  9732069732061207
1460: 34 36 35 37 33 37 34 32 30 37 35 37 33 36 39 36  4657374207573696
1470: 65 36 37 32 30 36 31 32 30 36 63 36 31 37 32 36  e672061206c61726
1480: 37 36 35 37 32 32 30 37 34 36 38 36 31 36 65 32  76572207468616e2
1490: 30 36 32 36 63 36 66 36 33 36 62 32 64 37 33 36  0626c6f636b2d736
14a0: 39 37 61 36 35 32 30 36 62 36 35 37 39 32 30 36  97a65206b6579206
14b0: 31 36 65 36 34 32 30 36 31 32 30 36 63 36 31 37  16e642061206c617
14c0: 32 36 37 36 35 37 32 32 30 37 34 36 38 36 31 36  2676572207468616
14d0: 65 32 30 36 32 36 63 36 66 36 33 36 62 32 64 37  e20626c6f636b2d7
14e0: 33 36 39 37 61 36 35 32 30 36 34 36 31 37 34 36  3697a65206461746
14f0: 31 32 65 32 30 35 34 36 38 36 35 32 30 36 62 36  12e20546865206b6
1500: 35 37 39 32 30 36 65 36 35 36 35 36 34 37 33 32  579206e656564732
1510: 30 37 34 36 66 32 30 36 32 36 35 32 30 36 38 36  0746f20626520686
1520: 31 37 33 36 38 36 35 36 34 32 30 36 32 36 35 36  1736865642062656
1530: 36 36 66 37 32 36 35 32 30 36 32 36 35 36 39 36  66f7265206265696
1540: 65 36 37 32 30 37 35 37 33 36 35 36 34 32 30 36  e672075736564206
1550: 32 37 39 32 30 37 34 36 38 36 35 32 30 34 38 34  2792074686520484
1560: 64 34 31 34 33 32 30 36 31 36 63 36 37 36 66 37  d414320616c676f7
1570: 32 36 39 37 34 36 38 36 64 32 65 0a 4d 61 63 20  26974686d2e.Mac 
1580: 3d 20 65 33 37 62 36 61 37 37 35 64 63 38 37 64  = e37b6a775dc87d
1590: 62 61 61 34 64 66 61 39 66 39 36 65 35 65 33 66  baa4dfa9f96e5e3f
15a0: 66 64 64 65 62 64 37 31 66 38 38 36 37 32 38 39  fddebd71f8867289
15b0: 38 36 35 64 66 35 61 33 32 64 32 30 63 64 63 39  865df5a32d20cdc9
15c0: 34 34 62 36 30 32 32 63 61 63 33 63 34 39 38 32  44b6022cac3c4982
15d0: 62 31 30 64 35 65 65 62 35 35 63 33 65 34 64 65  b10d5eeb55c3e4de
15e0: 31 35 31 33 34 36 37 36 66 62 36 64 65 30 34 34  15134676fb6de044
15f0: 36 30 36 35 63 39 37 34 34 30 66 61 38 63 36 61  6065c97440fa8c6a
1600: 35 38 0a 0a 23 20 57 69 6b 69 70 65 64 69 61 0a  58..# Wikipedia.
1610: 4b 6c 65 6e 20 3d 20 33 0a 54 6c 65 6e 20 3d 20  Klen = 3.Tlen = 
1620: 36 34 0a 4c 65 6e 20 3d 20 34 33 0a 4b 65 79 20  64.Len = 43.Key 
1630: 3d 20 22 6b 65 79 22 0a 4d 73 67 20 3d 20 22 54  = "key".Msg = "T
1640: 68 65 20 71 75 69 63 6b 20 62 72 6f 77 6e 20 66  he quick brown f
1650: 6f 78 20 6a 75 6d 70 73 20 6f 76 65 72 20 74 68  ox jumps over th
1660: 65 20 6c 61 7a 79 20 64 6f 67 22 0a 4d 61 63 20  e lazy dog".Mac 
1670: 3d 20 62 34 32 61 66 30 39 30 35 37 62 61 63 31  = b42af09057bac1
1680: 65 32 64 34 31 37 30 38 65 34 38 61 39 30 32 65  e2d41708e48a902e
1690: 30 39 62 35 66 66 37 66 31 32 61 62 34 32 38 61  09b5ff7f12ab428a
16a0: 34 66 65 38 36 36 35 33 63 37 33 64 64 32 34 38  4fe86653c73dd248
16b0: 66 62 38 32 66 39 34 38 61 35 34 39 66 37 62 37  fb82f948a549f7b7
16c0: 39 31 61 35 62 34 31 39 31 35 65 65 34 64 31 65  91a5b41915ee4d1e
16d0: 63 33 39 33 35 33 35 37 65 34 65 32 33 31 37 32  c3935357e4e23172
16e0: 35 30 64 30 33 37 32 61 66 61 32 65 62 65 65 62  50d0372afa2ebeeb
16f0: 33 61 0a 0a 23 20 52 46 43 20 36 32 33 34 20 54  3a..# RFC 6234 T
1700: 65 73 74 20 43 61 73 65 20 31 0a 4b 6c 65 6e 20  est Case 1.Klen 
1710: 3d 20 32 30 0a 54 6c 65 6e 20 3d 20 36 34 0a 4c  = 20.Tlen = 64.L
1720: 65 6e 20 3d 20 38 0a 4b 65 79 20 3d 20 30 62 30  en = 8.Key = 0b0
1730: 62 30 62 30 62 30 62 30 62 30 62 30 62 30 62 30  b0b0b0b0b0b0b0b0
1740: 62 30 62 30 62 30 62 30 62 30 62 30 62 30 62 30  b0b0b0b0b0b0b0b0
1750: 62 30 62 30 62 0a 4d 73 67 20 3d 20 22 48 69 20  b0b0b.Msg = "Hi 
1760: 54 68 65 72 65 22 0a 23 4d 73 67 20 3d 20 34 38  There".#Msg = 48
1770: 36 39 32 30 35 34 36 38 36 35 37 32 36 35 0a 4d  69205468657265.M
1780: 61 63 20 3d 20 38 37 61 61 37 63 64 65 61 35 65  ac = 87aa7cdea5e
1790: 66 36 31 39 64 34 66 66 30 62 34 32 34 31 61 31  f619d4ff0b4241a1
17a0: 64 36 63 62 30 32 33 37 39 66 34 65 32 63 65 34  d6cb02379f4e2ce4
17b0: 65 63 32 37 38 37 61 64 30 62 33 30 35 34 35 65  ec2787ad0b30545e
17c0: 31 37 63 64 65 64 61 61 38 33 33 62 37 64 36 62  17cdedaa833b7d6b
17d0: 38 61 37 30 32 30 33 38 62 32 37 34 65 61 65 61  8a702038b274eaea
17e0: 33 66 34 65 34 62 65 39 64 39 31 34 65 65 62 36  3f4e4be9d914eeb6
17f0: 31 66 31 37 30 32 65 36 39 36 63 32 30 33 61 31  1f1702e696c203a1
1800: 32 36 38 35 34 0a 0a 23 20 52 46 43 20 36 32 33  26854..# RFC 623
1810: 34 20 54 65 73 74 20 43 61 73 65 20 32 0a 4b 6c  4 Test Case 2.Kl
1820: 65 6e 20 3d 20 34 0a 54 6c 65 6e 20 3d 20 36 34  en = 4.Tlen = 64
1830: 0a 4c 65 6e 20 3d 20 32 38 0a 4b 65 79 20 3d 20  .Len = 28.Key = 
1840: 22 4a 65 66 65 22 0a 23 4b 65 79 20 3d 20 34 61  "Jefe".#Key = 4a
1850: 36 35 36 36 36 35 0a 4d 73 67 20 3d 20 22 77 68  656665.Msg = "wh
1860: 61 74 20 64 6f 20 79 61 20 77 61 6e 74 20 66 6f  at do ya want fo
1870: 72 20 6e 6f 74 68 69 6e 67 3f 22 0a 23 4d 73 67  r nothing?".#Msg
1880: 20 3d 20 37 37 36 38 36 31 37 34 32 30 36 34 36   = 7768617420646
1890: 66 32 30 37 39 36 31 32 30 37 37 36 31 36 65 37  f2079612077616e7
18a0: 34 32 30 36 36 36 66 37 32 32 30 36 65 36 66 37  420666f72206e6f7
18b0: 34 36 38 36 39 36 65 36 37 33 66 0a 4d 61 63 20  468696e673f.Mac 
18c0: 3d 20 31 36 34 62 37 61 37 62 66 63 66 38 31 39  = 164b7a7bfcf819
18d0: 65 32 65 33 39 35 66 62 65 37 33 62 35 36 65 30  e2e395fbe73b56e0
18e0: 61 33 38 37 62 64 36 34 32 32 32 65 38 33 31 66  a387bd64222e831f
18f0: 64 36 31 30 32 37 30 63 64 37 65 61 32 35 30 35  d610270cd7ea2505
1900: 35 34 39 37 35 38 62 66 37 35 63 30 35 61 39 39  549758bf75c05a99
1910: 34 61 36 64 30 33 34 66 36 35 66 38 66 30 65 36  4a6d034f65f8f0e6
1920: 66 64 63 61 65 61 62 31 61 33 34 64 34 61 36 62  fdcaeab1a34d4a6b
1930: 34 62 36 33 36 65 30 37 30 61 33 38 62 63 65 37  4b636e070a38bce7
1940: 33 37 0a 0a 23 20 52 46 43 20 36 32 33 34 20 54  37..# RFC 6234 T
1950: 65 73 74 20 43 61 73 65 20 33 0a 4b 6c 65 6e 20  est Case 3.Klen 
1960: 3d 20 32 30 0a 54 6c 65 6e 20 3d 20 36 34 0a 4c  = 20.Tlen = 64.L
1970: 65 6e 20 3d 20 35 30 0a 4b 65 79 20 3d 20 61 61  en = 50.Key = aa
1980: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1990: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
19a0: 61 61 61 61 61 61 0a 4d 73 67 20 3d 20 64 64 64  aaaaaa.Msg = ddd
19b0: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64  dddddddddddddddd
19c0: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64  dddddddddddddddd
19d0: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64  dddddddddddddddd
19e0: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64  dddddddddddddddd
19f0: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64  dddddddddddddddd
1a00: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64  dddddddddddddddd
1a10: 64 0a 4d 61 63 20 3d 20 66 61 37 33 62 30 30 38  d.Mac = fa73b008
1a20: 39 64 35 36 61 32 38 34 65 66 62 30 66 30 37 35  9d56a284efb0f075
1a30: 36 63 38 39 30 62 65 39 62 31 62 35 64 62 64 64  6c890be9b1b5dbdd
1a40: 38 65 65 38 31 61 33 36 35 35 66 38 33 65 33 33  8ee81a3655f83e33
1a50: 62 32 32 37 39 64 33 39 62 66 33 65 38 34 38 32  b2279d39bf3e8482
1a60: 37 39 61 37 32 32 63 38 30 36 62 34 38 35 61 34  79a722c806b485a4
1a70: 37 65 36 37 63 38 30 37 62 39 34 36 61 33 33 37  7e67c807b946a337
1a80: 62 65 65 38 39 34 32 36 37 34 32 37 38 38 35 39  bee8942674278859
1a90: 65 31 33 32 39 32 66 62 0a 0a 23 20 52 46 43 20  e13292fb..# RFC 
1aa0: 36 32 33 34 20 54 65 73 74 20 43 61 73 65 20 34  6234 Test Case 4
1ab0: 0a 4b 6c 65 6e 20 3d 20 32 35 0a 54 6c 65 6e 20  .Klen = 25.Tlen 
1ac0: 3d 20 36 34 0a 4c 65 6e 20 3d 20 35 30 0a 4b 65  = 64.Len = 50.Ke
1ad0: 79 20 3d 20 30 31 30 32 30 33 30 34 30 35 30 36  y = 010203040506
1ae0: 30 37 30 38 30 39 30 61 30 62 30 63 30 64 30 65  0708090a0b0c0d0e
1af0: 30 66 31 30 31 31 31 32 31 33 31 34 31 35 31 36  0f10111213141516
1b00: 31 37 31 38 31 39 0a 4d 73 67 20 3d 20 63 64 63  171819.Msg = cdc
1b10: 64 63 64 63 64 63 64 63 64 63 64 63 64 63 64 63  dcdcdcdcdcdcdcdc
1b20: 64 63 64 63 64 63 64 63 64 63 64 63 64 63 64 63  dcdcdcdcdcdcdcdc
1b30: 64 63 64 63 64 63 64 63 64 63 64 63 64 63 64 63  dcdcdcdcdcdcdcdc
1b40: 64 63 64 63 64 63 64 63 64 63 64 63 64 63 64 63  dcdcdcdcdcdcdcdc
1b50: 64 63 64 63 64 63 64 63 64 63 64 63 64 63 64 63  dcdcdcdcdcdcdcdc
1b60: 64 63 64 63 64 63 64 63 64 63 64 63 64 63 64 63  dcdcdcdcdcdcdcdc
1b70: 64 0a 4d 61 63 20 3d 20 62 30 62 61 34 36 35 36  d.Mac = b0ba4656
1b80: 33 37 34 35 38 63 36 39 39 30 65 35 61 38 63 35  37458c6990e5a8c5
1b90: 66 36 31 64 34 61 66 37 65 35 37 36 64 39 37 66  f61d4af7e576d97f
1ba0: 66 39 34 62 38 37 32 64 65 37 36 66 38 30 35 30  f94b872de76f8050
1bb0: 33 36 31 65 65 33 64 62 61 39 31 63 61 35 63 31  361ee3dba91ca5c1
1bc0: 31 61 61 32 35 65 62 34 64 36 37 39 32 37 35 63  1aa25eb4d679275c
1bd0: 63 35 37 38 38 30 36 33 61 35 66 31 39 37 34 31  c5788063a5f19741
1be0: 31 32 30 63 34 66 32 64 65 32 61 64 65 62 65 62  120c4f2de2adebeb
1bf0: 31 30 61 32 39 38 64 64 0a 0a 23 20 52 46 43 20  10a298dd..# RFC 
1c00: 36 32 33 34 20 54 65 73 74 20 43 61 73 65 20 35  6234 Test Case 5
1c10: 0a 4b 6c 65 6e 20 3d 20 32 30 0a 54 6c 65 6e 20  .Klen = 20.Tlen 
1c20: 3d 20 31 36 0a 4c 65 6e 20 3d 20 32 30 0a 4b 65  = 16.Len = 20.Ke
1c30: 79 20 3d 20 30 63 30 63 30 63 30 63 30 63 30 63  y = 0c0c0c0c0c0c
1c40: 30 63 30 63 30 63 30 63 30 63 30 63 30 63 30 63  0c0c0c0c0c0c0c0c
1c50: 30 63 30 63 30 63 30 63 30 63 30 63 0a 4d 73 67  0c0c0c0c0c0c.Msg
1c60: 20 3d 20 22 54 65 73 74 20 57 69 74 68 20 54 72   = "Test With Tr
1c70: 75 6e 63 61 74 69 6f 6e 22 0a 4d 61 63 20 3d 20  uncation".Mac = 
1c80: 34 31 35 66 61 64 36 32 37 31 35 38 30 61 35 33  415fad6271580a53
1c90: 31 64 34 31 37 39 62 63 38 39 31 64 38 37 61 36  1d4179bc891d87a6
1ca0: 0a 0a 23 20 52 46 43 20 36 32 33 34 20 54 65 73  ..# RFC 6234 Tes
1cb0: 74 20 43 61 73 65 20 36 0a 4b 6c 65 6e 20 3d 20  t Case 6.Klen = 
1cc0: 31 33 31 0a 54 6c 65 6e 20 3d 20 36 34 0a 4c 65  131.Tlen = 64.Le
1cd0: 6e 20 3d 20 35 34 0a 4b 65 79 20 3d 20 61 61 61  n = 54.Key = aaa
1ce0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1cf0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1d00: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1d10: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1d20: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1d30: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1d40: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1d50: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1d60: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1d70: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1d80: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1d90: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1da0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1db0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1dc0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1dd0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1de0: 61 61 61 0a 4d 73 67 20 3d 20 22 54 65 73 74 20  aaa.Msg = "Test 
1df0: 55 73 69 6e 67 20 4c 61 72 67 65 72 20 54 68 61  Using Larger Tha
1e00: 6e 20 42 6c 6f 63 6b 2d 53 69 7a 65 20 4b 65 79  n Block-Size Key
1e10: 20 2d 20 48 61 73 68 20 4b 65 79 20 46 69 72 73   - Hash Key Firs
1e20: 74 22 0a 4d 61 63 20 3d 20 38 30 62 32 34 32 36  t".Mac = 80b2426
1e30: 33 63 37 63 31 61 33 65 62 62 37 31 34 39 33 63  3c7c1a3ebb71493c
1e40: 31 64 64 37 62 65 38 62 34 39 62 34 36 64 31 66  1dd7be8b49b46d1f
1e50: 34 31 62 34 61 65 65 63 31 31 32 31 62 30 31 33  41b4aeec1121b013
1e60: 37 38 33 66 38 66 33 35 32 36 62 35 36 64 30 33  783f8f3526b56d03
1e70: 37 65 30 35 66 32 35 39 38 62 64 30 66 64 32 32  7e05f2598bd0fd22
1e80: 31 35 64 36 61 31 65 35 32 39 35 65 36 34 66 37  15d6a1e5295e64f7
1e90: 33 66 36 33 66 30 61 65 63 38 62 39 31 35 61 39  3f63f0aec8b915a9
1ea0: 38 35 64 37 38 36 35 39 38 0a 0a 23 20 52 46 43  85d786598..# RFC
1eb0: 20 36 32 33 34 20 54 65 73 74 20 43 61 73 65 20   6234 Test Case 
1ec0: 37 0a 4b 6c 65 6e 20 3d 20 31 33 31 0a 54 6c 65  7.Klen = 131.Tle
1ed0: 6e 20 3d 20 36 34 0a 4c 65 6e 20 3d 20 31 35 33  n = 64.Len = 153
1ee0: 0a 4b 65 79 20 3d 20 61 61 61 61 61 61 61 61 61  .Key = aaaaaaaaa
1ef0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1f00: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1f10: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1f20: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1f30: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1f40: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1f50: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1f60: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1f70: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1f80: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1f90: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1fa0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1fb0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1fc0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1fd0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61  aaaaaaaaaaaaaaaa
1fe0: 61 61 61 61 61 61 61 61 61 61 61 61 61 0a 4d 73  aaaaaaaaaaaaa.Ms
1ff0: 67 20 3d 20 22 54 68 69 73 20 69 73 20 61 20 74  g = "This is a t
2000: 65 73 74 20 75 73 69 6e 67 20 61 20 6c 61 72 67  est using a larg
2010: 65 72 20 74 68 61 6e 20 62 6c 6f 63 6b 2d 73 69  er than block-si
2020: 7a 65 20 6b 65 79 20 61 6e 64 20 61 20 6c 61 72  ze key and a lar
2030: 67 65 72 20 74 68 61 6e 20 62 6c 6f 63 6b 2d 73  ger than block-s
2040: 69 7a 65 20 64 61 74 61 2e 20 54 68 65 20 6b 65  ize data. The ke
2050: 79 20 6e 65 65 64 73 20 74 6f 20 62 65 20 68 61  y needs to be ha
2060: 73 68 65 64 20 62 65 66 6f 72 65 20 62 65 69 6e  shed before bein
2070: 67 20 75 73 65 64 20 62 79 20 74 68 65 20 48 4d  g used by the HM
2080: 41 43 20 61 6c 67 6f 72 69 74 68 6d 2e 22 0a 4d  AC algorithm.".M
2090: 61 63 20 3d 20 65 33 37 62 36 61 37 37 35 64 63  ac = e37b6a775dc
20a0: 38 37 64 62 61 61 34 64 66 61 39 66 39 36 65 35  87dbaa4dfa9f96e5
20b0: 65 33 66 66 64 64 65 62 64 37 31 66 38 38 36 37  e3ffddebd71f8867
20c0: 32 38 39 38 36 35 64 66 35 61 33 32 64 32 30 63  289865df5a32d20c
20d0: 64 63 39 34 34 62 36 30 32 32 63 61 63 33 63 34  dc944b6022cac3c4
20e0: 39 38 32 62 31 30 64 35 65 65 62 35 35 63 33 65  982b10d5eeb55c3e
20f0: 34 64 65 31 35 31 33 34 36 37 36 66 62 36 64 65  4de15134676fb6de
2100: 30 34 34 36 30 36 35 63 39 37 34 34 30 66 61 38  0446065c97440fa8
2110: 63 36 61 35 38 0a                                c6a58.