1use strict;
2use Digest::SHA qw(hmac_sha1_hex);
3
4my @data = map { eval } <DATA>;
5
6my $numtests = scalar @data;
7print "1..$numtests\n";
8
9my @keys = (
10	chr(0x0b) x 20,
11	"Jefe",
12	chr(0xaa) x 20,
13	join("", map { chr } (1 .. 25)),
14	chr(0x0c) x 20,
15	chr(0xaa) x 80,
16	chr(0xaa) x 80
17);
18
19my @out = (
20	"b617318655057264e28bc0b6fb378c8ef146be00",
21	"effcdf6ae5eb2fa2d27416d5f184df9c259a7c79",
22	"125d7342b9ac11cd91a39af48aa17b4f63f175d3",
23	"4c9007f4026250c6bc8414f9bf50c86c2d7235da",
24	"4c1a03424b55e07fe7f27be1d58bb9324a9a5a04",
25	"aa4ae5e15272d00e95705637ce8a3b55ed402112",
26	"e8e99d0f45237d786d6bbaa7965c7808bbff1a91"
27);
28
29my $testnum = 1;
30while (@data) {
31	print "not " unless hmac_sha1_hex(shift @data, shift @keys)
32		eq shift @out;
33	print "ok ", $testnum++, "\n";
34}
35
36__DATA__
37"Hi There"
38"what do ya want for nothing?"
39chr(0xdd) x 50
40chr(0xcd) x 50
41"Test With Truncation"
42"Test Using Larger Than Block-Size Key - Hash Key First"
43"Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data"
44