Artifact
28320e2e1518fe11d4ce1466fb7549dd8bf701b09bfc17bb00c4329d8aadbf2d:
0000: 23 20 48 4d 41 43 2d 4d 44 35 0a 23 20 46 72 6f # HMAC-MD5.# Fro
0010: 6d 20 52 46 43 20 32 31 30 34 20 48 4d 41 43 0a m RFC 2104 HMAC.
0020: 23 20 61 6e 64 20 52 46 43 20 32 32 30 32 20 54 # and RFC 2202 T
0030: 65 73 74 20 43 61 73 65 73 20 66 6f 72 20 48 4d est Cases for HM
0040: 41 43 2d 4d 44 35 20 61 6e 64 20 48 4d 41 43 2d AC-MD5 and HMAC-
0050: 53 48 41 2d 31 0a 0a 5b 62 20 3d 20 36 34 5d 0a SHA-1..[b = 64].
0060: 5b 4c 20 3d 20 31 36 5d 0a 0a 23 20 52 46 43 20 [L = 16]..# RFC
0070: 32 31 30 34 20 54 65 73 74 20 43 61 73 65 20 31 2104 Test Case 1
0080: 0a 4b 6c 65 6e 20 3d 20 31 36 0a 54 6c 65 6e 20 .Klen = 16.Tlen
0090: 3d 20 31 36 0a 4c 65 6e 20 3d 20 38 0a 4b 65 79 = 16.Len = 8.Key
00a0: 20 3d 20 30 62 30 62 30 62 30 62 30 62 30 62 30 = 0b0b0b0b0b0b0
00b0: 62 30 62 30 62 30 62 30 62 30 62 30 62 30 62 30 b0b0b0b0b0b0b0b0
00c0: 62 30 62 0a 4d 73 67 20 3d 20 22 48 69 20 54 68 b0b.Msg = "Hi Th
00d0: 65 72 65 22 0a 4d 61 63 20 3d 20 39 32 39 34 37 ere".Mac = 92947
00e0: 32 37 61 33 36 33 38 62 62 31 63 31 33 66 34 38 27a3638bb1c13f48
00f0: 65 66 38 31 35 38 62 66 63 39 64 0a 0a 23 20 52 ef8158bfc9d..# R
0100: 46 43 20 32 31 30 34 20 54 65 73 74 20 43 61 73 FC 2104 Test Cas
0110: 65 20 32 0a 4b 6c 65 6e 20 3d 20 34 0a 54 6c 65 e 2.Klen = 4.Tle
0120: 6e 20 3d 20 31 36 0a 4c 65 6e 20 3d 20 32 38 0a n = 16.Len = 28.
0130: 4b 65 79 20 3d 20 22 4a 65 66 65 22 0a 4d 73 67 Key = "Jefe".Msg
0140: 20 3d 20 22 77 68 61 74 20 64 6f 20 79 61 20 77 = "what do ya w
0150: 61 6e 74 20 66 6f 72 20 6e 6f 74 68 69 6e 67 3f ant for nothing?
0160: 22 0a 23 4d 73 67 20 3d 20 37 37 36 38 36 31 37 ".#Msg = 7768617
0170: 34 32 30 36 34 36 66 32 30 37 39 36 31 32 30 37 420646f207961207
0180: 37 36 31 36 65 37 34 32 30 36 36 36 66 37 32 32 7616e7420666f722
0190: 30 36 65 36 66 37 34 36 38 36 39 36 65 36 37 33 06e6f7468696e673
01a0: 66 0a 4d 61 63 20 3d 20 37 35 30 63 37 38 33 65 f.Mac = 750c783e
01b0: 36 61 62 30 62 35 30 33 65 61 61 38 36 65 33 31 6ab0b503eaa86e31
01c0: 30 61 35 64 62 37 33 38 0a 0a 23 20 52 46 43 20 0a5db738..# RFC
01d0: 32 31 30 34 20 54 65 73 74 20 43 61 73 65 20 33 2104 Test Case 3
01e0: 0a 4b 6c 65 6e 20 3d 20 31 36 0a 54 6c 65 6e 20 .Klen = 16.Tlen
01f0: 3d 20 31 36 0a 4c 65 6e 20 3d 20 35 30 0a 4b 65 = 16.Len = 50.Ke
0200: 79 20 3d 20 61 61 61 61 61 61 61 61 61 61 61 61 y = aaaaaaaaaaaa
0210: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
0220: 61 61 61 61 0a 4d 73 67 20 3d 20 64 64 64 64 64 aaaa.Msg = ddddd
0230: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 dddddddddddddddd
0240: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 dddddddddddddddd
0250: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 dddddddddddddddd
0260: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 dddddddddddddddd
0270: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 dddddddddddddddd
0280: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 0a ddddddddddddddd.
0290: 4d 61 63 20 3d 20 35 36 62 65 33 34 35 32 31 64 Mac = 56be34521d
02a0: 31 34 34 63 38 38 64 62 62 38 63 37 33 33 66 30 144c88dbb8c733f0
02b0: 65 38 62 33 66 36 0a 0a 23 20 52 46 43 20 32 32 e8b3f6..# RFC 22
02c0: 30 32 20 54 65 73 74 20 43 61 73 65 20 31 0a 4b 02 Test Case 1.K
02d0: 6c 65 6e 20 3d 20 31 36 0a 54 6c 65 6e 20 3d 20 len = 16.Tlen =
02e0: 31 36 0a 4c 65 6e 20 3d 20 38 0a 4b 65 79 20 3d 16.Len = 8.Key =
02f0: 20 30 62 30 62 30 62 30 62 30 62 30 62 30 62 30 0b0b0b0b0b0b0b0
0300: 62 30 62 30 62 30 62 30 62 30 62 30 62 30 62 30 b0b0b0b0b0b0b0b0
0310: 62 0a 4d 73 67 20 3d 20 22 48 69 20 54 68 65 72 b.Msg = "Hi Ther
0320: 65 22 0a 23 4d 73 67 20 3d 20 34 38 36 39 32 30 e".#Msg = 486920
0330: 35 34 36 38 36 35 37 32 36 35 0a 4d 61 63 20 3d 5468657265.Mac =
0340: 20 39 32 39 34 37 32 37 61 33 36 33 38 62 62 31 9294727a3638bb1
0350: 63 31 33 66 34 38 65 66 38 31 35 38 62 66 63 39 c13f48ef8158bfc9
0360: 64 0a 0a 23 20 52 46 43 20 32 32 30 32 20 54 65 d..# RFC 2202 Te
0370: 73 74 20 43 61 73 65 20 32 0a 4b 6c 65 6e 20 3d st Case 2.Klen =
0380: 20 34 0a 54 6c 65 6e 20 3d 20 31 36 0a 4c 65 6e 4.Tlen = 16.Len
0390: 20 3d 20 32 38 0a 4b 65 79 20 3d 20 22 4a 65 66 = 28.Key = "Jef
03a0: 65 22 0a 23 4b 65 79 20 3d 20 34 61 36 35 36 36 e".#Key = 4a6566
03b0: 36 35 0a 4d 73 67 20 3d 20 22 77 68 61 74 20 64 65.Msg = "what d
03c0: 6f 20 79 61 20 77 61 6e 74 20 66 6f 72 20 6e 6f o ya want for no
03d0: 74 68 69 6e 67 3f 22 0a 23 4d 73 67 20 3d 20 37 thing?".#Msg = 7
03e0: 37 36 38 36 31 37 34 32 30 36 34 36 66 32 30 37 768617420646f207
03f0: 39 36 31 32 30 37 37 36 31 36 65 37 34 32 30 36 9612077616e74206
0400: 36 36 66 37 32 32 30 36 65 36 66 37 34 36 38 36 66f72206e6f74686
0410: 39 36 65 36 37 33 66 0a 4d 61 63 20 3d 20 37 35 96e673f.Mac = 75
0420: 30 63 37 38 33 65 36 61 62 30 62 35 30 33 65 61 0c783e6ab0b503ea
0430: 61 38 36 65 33 31 30 61 35 64 62 37 33 38 0a 0a a86e310a5db738..
0440: 23 20 52 46 43 20 32 32 30 32 20 54 65 73 74 20 # RFC 2202 Test
0450: 43 61 73 65 20 33 0a 4b 6c 65 6e 20 3d 20 31 36 Case 3.Klen = 16
0460: 0a 54 6c 65 6e 20 3d 20 31 36 0a 4c 65 6e 20 3d .Tlen = 16.Len =
0470: 20 35 30 0a 4b 65 79 20 3d 20 61 61 61 61 61 61 50.Key = aaaaaa
0480: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
0490: 61 61 61 61 61 61 61 61 61 61 0a 4d 73 67 20 3d aaaaaaaaaa.Msg =
04a0: 20 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 ddddddddddddddd
04b0: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 dddddddddddddddd
04c0: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 dddddddddddddddd
04d0: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 dddddddddddddddd
04e0: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 dddddddddddddddd
04f0: 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 dddddddddddddddd
0500: 64 64 64 64 64 0a 4d 61 63 20 3d 20 35 36 62 65 ddddd.Mac = 56be
0510: 33 34 35 32 31 64 31 34 34 63 38 38 64 62 62 38 34521d144c88dbb8
0520: 63 37 33 33 66 30 65 38 62 33 66 36 0a 0a 23 20 c733f0e8b3f6..#
0530: 52 46 43 20 32 32 30 32 20 54 65 73 74 20 43 61 RFC 2202 Test Ca
0540: 73 65 20 34 0a 4b 6c 65 6e 20 3d 20 32 35 0a 54 se 4.Klen = 25.T
0550: 6c 65 6e 20 3d 20 31 36 0a 4c 65 6e 20 3d 20 35 len = 16.Len = 5
0560: 30 0a 4b 65 79 20 3d 20 30 31 30 32 30 33 30 34 0.Key = 01020304
0570: 30 35 30 36 30 37 30 38 30 39 30 61 30 62 30 63 05060708090a0b0c
0580: 30 64 30 65 30 66 31 30 31 31 31 32 31 33 31 34 0d0e0f1011121314
0590: 31 35 31 36 31 37 31 38 31 39 0a 4d 73 67 20 3d 1516171819.Msg =
05a0: 20 63 64 63 64 63 64 63 64 63 64 63 64 63 64 63 cdcdcdcdcdcdcdc
05b0: 64 63 64 63 64 63 64 63 64 63 64 63 64 63 64 63 dcdcdcdcdcdcdcdc
05c0: 64 63 64 63 64 63 64 63 64 63 64 63 64 63 64 63 dcdcdcdcdcdcdcdc
05d0: 64 63 64 63 64 63 64 63 64 63 64 63 64 63 64 63 dcdcdcdcdcdcdcdc
05e0: 64 63 64 63 64 63 64 63 64 63 64 63 64 63 64 63 dcdcdcdcdcdcdcdc
05f0: 64 63 64 63 64 63 64 63 64 63 64 63 64 63 64 63 dcdcdcdcdcdcdcdc
0600: 64 63 64 63 64 0a 4d 61 63 20 3d 20 36 39 37 65 dcdcd.Mac = 697e
0610: 61 66 30 61 63 61 33 61 33 61 65 61 33 61 37 35 af0aca3a3aea3a75
0620: 31 36 34 37 34 36 66 66 61 61 37 39 0a 0a 23 20 164746ffaa79..#
0630: 52 46 43 20 32 32 30 32 20 54 65 73 74 20 43 61 RFC 2202 Test Ca
0640: 73 65 20 35 0a 4b 6c 65 6e 20 3d 20 31 36 0a 54 se 5.Klen = 16.T
0650: 6c 65 6e 20 3d 20 31 32 0a 4c 65 6e 20 3d 20 32 len = 12.Len = 2
0660: 30 0a 4b 65 79 20 3d 20 30 63 30 63 30 63 30 63 0.Key = 0c0c0c0c
0670: 30 63 30 63 30 63 30 63 30 63 30 63 30 63 30 63 0c0c0c0c0c0c0c0c
0680: 30 63 30 63 30 63 30 63 0a 4d 73 67 20 3d 20 22 0c0c0c0c.Msg = "
0690: 54 65 73 74 20 57 69 74 68 20 54 72 75 6e 63 61 Test With Trunca
06a0: 74 69 6f 6e 22 0a 23 4d 73 67 20 3d 20 35 34 36 tion".#Msg = 546
06b0: 35 37 33 37 34 32 30 35 37 36 39 37 34 36 38 32 5737420576974682
06c0: 30 35 34 37 32 37 35 36 65 36 33 36 31 37 34 36 05472756e6361746
06d0: 39 36 66 36 65 0a 4d 61 63 20 3d 20 35 36 34 36 96f6e.Mac = 5646
06e0: 31 65 66 32 33 34 32 65 64 63 30 30 66 39 62 61 1ef2342edc00f9ba
06f0: 62 39 39 35 36 39 30 65 66 64 34 63 0a 54 72 75 b995690efd4c.Tru
0700: 6e 63 20 3d 20 35 36 34 36 31 65 66 32 33 34 32 nc = 56461ef2342
0710: 65 64 63 30 30 66 39 62 61 62 39 39 35 0a 0a 23 edc00f9bab995..#
0720: 20 52 46 43 20 32 32 30 32 20 54 65 73 74 20 43 RFC 2202 Test C
0730: 61 73 65 20 36 0a 4b 6c 65 6e 20 3d 20 38 30 0a ase 6.Klen = 80.
0740: 54 6c 65 6e 20 3d 20 31 36 0a 4c 65 6e 20 3d 20 Tlen = 16.Len =
0750: 34 33 32 0a 4b 65 79 20 3d 20 61 61 61 61 61 61 432.Key = aaaaaa
0760: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
0770: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
0780: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
0790: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
07a0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
07b0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
07c0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
07d0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
07e0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
07f0: 61 61 61 61 61 61 61 61 61 61 0a 4d 73 67 20 3d aaaaaaaaaa.Msg =
0800: 20 22 54 65 73 74 20 55 73 69 6e 67 20 4c 61 72 "Test Using Lar
0810: 67 65 72 20 54 68 61 6e 20 42 6c 6f 63 6b 2d 53 ger Than Block-S
0820: 69 7a 65 20 4b 65 79 20 2d 20 48 61 73 68 20 4b ize Key - Hash K
0830: 65 79 20 46 69 72 73 74 22 0a 23 4d 73 67 20 3d ey First".#Msg =
0840: 20 35 34 36 35 37 33 37 34 32 30 35 35 37 33 36 546573742055736
0850: 39 36 65 36 37 32 30 34 63 36 31 37 32 36 37 36 96e67204c6172676
0860: 35 37 32 32 30 35 34 36 38 36 31 36 65 32 30 34 572205468616e204
0870: 32 36 63 36 66 36 33 36 62 32 64 35 33 36 39 37 26c6f636b2d53697
0880: 61 36 35 32 30 34 62 36 35 37 39 32 30 32 64 32 a65204b6579202d2
0890: 30 34 38 36 31 37 33 36 38 32 30 34 62 36 35 37 048617368204b657
08a0: 39 32 30 34 36 36 39 37 32 37 33 37 34 0a 4d 61 9204669727374.Ma
08b0: 63 20 3d 20 36 62 31 61 62 37 66 65 34 62 64 37 c = 6b1ab7fe4bd7
08c0: 62 66 38 66 30 62 36 32 65 36 63 65 36 31 62 39 bf8f0b62e6ce61b9
08d0: 64 30 63 64 0a 0a 23 20 52 46 43 20 32 32 30 32 d0cd..# RFC 2202
08e0: 20 54 65 73 74 20 43 61 73 65 20 37 0a 4b 6c 65 Test Case 7.Kle
08f0: 6e 20 3d 20 38 30 0a 54 6c 65 6e 20 3d 20 31 36 n = 80.Tlen = 16
0900: 0a 4c 65 6e 20 3d 20 37 33 0a 4b 65 79 20 3d 20 .Len = 73.Key =
0910: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
0920: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
0930: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
0940: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
0950: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
0960: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
0970: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
0980: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
0990: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
09a0: 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 aaaaaaaaaaaaaaaa
09b0: 0a 4d 73 67 20 3d 20 22 54 65 73 74 20 55 73 69 .Msg = "Test Usi
09c0: 6e 67 20 4c 61 72 67 65 72 20 54 68 61 6e 20 42 ng Larger Than B
09d0: 6c 6f 63 6b 2d 53 69 7a 65 20 4b 65 79 20 61 6e lock-Size Key an
09e0: 64 20 4c 61 72 67 65 72 20 54 68 61 6e 20 4f 6e d Larger Than On
09f0: 65 20 42 6c 6f 63 6b 2d 53 69 7a 65 20 44 61 74 e Block-Size Dat
0a00: 61 22 0a 23 4d 73 67 20 3d 20 35 34 36 35 37 33 a".#Msg = 546573
0a10: 37 34 32 30 35 35 37 33 36 39 36 65 36 37 32 30 74205573696e6720
0a20: 34 63 36 31 37 32 36 37 36 35 37 32 32 30 35 34 4c61726765722054
0a30: 36 38 36 31 36 65 32 30 34 32 36 63 36 66 36 33 68616e20426c6f63
0a40: 36 62 32 64 35 33 36 39 37 61 36 35 32 30 34 62 6b2d53697a65204b
0a50: 36 35 37 39 32 30 36 31 36 65 36 34 32 30 34 63 657920616e64204c
0a60: 36 31 37 32 36 37 36 35 37 32 32 30 35 34 36 38 6172676572205468
0a70: 36 31 36 65 32 30 34 66 36 65 36 35 32 30 34 32 616e204f6e652042
0a80: 36 63 36 66 36 33 36 62 32 64 35 33 36 39 37 61 6c6f636b2d53697a
0a90: 36 35 32 30 34 34 36 31 37 34 36 31 0a 4d 61 63 652044617461.Mac
0aa0: 20 3d 20 36 66 36 33 30 66 61 64 36 37 63 64 61 = 6f630fad67cda
0ab0: 30 65 65 31 66 62 31 66 35 36 32 64 62 33 61 61 0ee1fb1f562db3aa
0ac0: 35 33 65 0a 0a 23 20 57 69 6b 69 70 65 64 69 61 53e..# Wikipedia
0ad0: 0a 4b 6c 65 6e 20 3d 20 33 0a 54 6c 65 6e 20 3d .Klen = 3.Tlen =
0ae0: 20 31 36 0a 4c 65 6e 20 3d 20 34 33 0a 4b 65 79 16.Len = 43.Key
0af0: 20 3d 20 22 6b 65 79 22 0a 4d 73 67 20 3d 20 22 = "key".Msg = "
0b00: 54 68 65 20 71 75 69 63 6b 20 62 72 6f 77 6e 20 The quick brown
0b10: 66 6f 78 20 6a 75 6d 70 73 20 6f 76 65 72 20 74 fox jumps over t
0b20: 68 65 20 6c 61 7a 79 20 64 6f 67 22 0a 4d 61 63 he lazy dog".Mac
0b30: 20 3d 20 38 30 30 37 30 37 31 33 34 36 33 65 37 = 80070713463e7
0b40: 37 34 39 62 39 30 63 32 64 63 32 34 39 31 31 65 749b90c2dc24911e
0b50: 32 37 35 0a 275.