Commit | Line | Data |
---|---|---|
6bc89f92 | 1 | use strict; |
747da336 RGS |
2 | |
3 | my $MODULE; | |
4 | ||
5 | BEGIN { | |
dfe1edcb | 6 | $MODULE = (-d "src") ? "Digest::SHA" : "Digest::SHA::PurePerl"; |
747da336 RGS |
7 | eval "require $MODULE" || die $@; |
8 | $MODULE->import(qw(hmac_sha1_hex)); | |
9 | } | |
6bc89f92 | 10 | |
41c686de | 11 | BEGIN { |
77d2a621 SP |
12 | if ($ENV{PERL_CORE}) { |
13 | chdir 't' if -d 't'; | |
14 | @INC = '../lib'; | |
15 | } | |
41c686de SP |
16 | } |
17 | ||
747da336 | 18 | my @data = map { eval } <DATA>; |
6bc89f92 | 19 | |
747da336 RGS |
20 | my $numtests = scalar @data; |
21 | print "1..$numtests\n"; | |
6bc89f92 SP |
22 | |
23 | my @keys = ( | |
24 | chr(0x0b) x 20, | |
25 | "Jefe", | |
26 | chr(0xaa) x 20, | |
747da336 | 27 | join("", map { chr } (1 .. 25)), |
6bc89f92 SP |
28 | chr(0x0c) x 20, |
29 | chr(0xaa) x 80, | |
30 | chr(0xaa) x 80 | |
31 | ); | |
32 | ||
747da336 | 33 | my @out = ( |
6bc89f92 SP |
34 | "b617318655057264e28bc0b6fb378c8ef146be00", |
35 | "effcdf6ae5eb2fa2d27416d5f184df9c259a7c79", | |
36 | "125d7342b9ac11cd91a39af48aa17b4f63f175d3", | |
37 | "4c9007f4026250c6bc8414f9bf50c86c2d7235da", | |
38 | "4c1a03424b55e07fe7f27be1d58bb9324a9a5a04", | |
39 | "aa4ae5e15272d00e95705637ce8a3b55ed402112", | |
40 | "e8e99d0f45237d786d6bbaa7965c7808bbff1a91" | |
41 | ); | |
42 | ||
747da336 RGS |
43 | my $testnum = 1; |
44 | while (@data) { | |
45 | print "not " unless hmac_sha1_hex(shift @data, shift @keys) | |
46 | eq shift @out; | |
47 | print "ok ", $testnum++, "\n"; | |
6bc89f92 | 48 | } |
747da336 RGS |
49 | |
50 | __DATA__ | |
51 | "Hi There" | |
52 | "what do ya want for nothing?" | |
53 | chr(0xdd) x 50 | |
54 | chr(0xcd) x 50 | |
55 | "Test With Truncation" | |
56 | "Test Using Larger Than Block-Size Key - Hash Key First" | |
57 | "Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data" |