This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
arena-rework : consolidated patch
[perl5.git] / ext / Digest / SHA / t / 5-hmac-rfc2202.t
CommitLineData
6bc89f92
SP
1use Test;
2use strict;
3use integer;
4use Digest::SHA qw(hmac_sha1_hex);
5
41c686de
SP
6BEGIN {
7 if ($ENV{PERL_CORE}) {
8 chdir 't' if -d 't';
9 @INC = '../lib';
10 }
11}
12
6bc89f92
SP
13my(@vec);
14
15BEGIN {
16 @vec = (
17"Hi There",
18"what do ya want for nothing?",
19chr(0xdd) x 50,
20chr(0xcd) x 50,
21"Test With Truncation",
22"Test Using Larger Than Block-Size Key - Hash Key First",
23"Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data"
24 );
25 plan tests => scalar(@vec);
26}
27
28my @keys = (
29 chr(0x0b) x 20,
30 "Jefe",
31 chr(0xaa) x 20,
32 "",
33 chr(0x0c) x 20,
34 chr(0xaa) x 80,
35 chr(0xaa) x 80
36);
37
38my @hmac1rsp = (
39 "b617318655057264e28bc0b6fb378c8ef146be00",
40 "effcdf6ae5eb2fa2d27416d5f184df9c259a7c79",
41 "125d7342b9ac11cd91a39af48aa17b4f63f175d3",
42 "4c9007f4026250c6bc8414f9bf50c86c2d7235da",
43 "4c1a03424b55e07fe7f27be1d58bb9324a9a5a04",
44 "aa4ae5e15272d00e95705637ce8a3b55ed402112",
45 "e8e99d0f45237d786d6bbaa7965c7808bbff1a91"
46);
47
48my $i = 0x01;
49$keys[3] .= chr($i++) while (length($keys[3]) < 25);
50
51for ($i = 0; $i < @vec; $i++) {
52 ok(
53 hmac_sha1_hex($vec[$i], $keys[$i]),
54 $hmac1rsp[$i]
55 );
56}