Upgrade to Time-Piece-1.14
[p5sagit/p5-mst-13.2.git] / ext / Digest-SHA / t / hmacsha.t
CommitLineData
6bc89f92 1# HMAC-SHA-256 test vectors from draft-ietf-ipsec-ciph-sha-256-01.txt
2
6bc89f92 3use strict;
747da336 4
5my $MODULE;
6
7BEGIN {
4eb6bdb8 8 $MODULE = ($ENV{PERL_CORE} || -d "src") ? "Digest::SHA" : "Digest::SHA::PurePerl";
747da336 9 eval "require $MODULE" || die $@;
10 $MODULE->import(qw(hmac_sha256_hex));
11}
6bc89f92 12
41c686de 13BEGIN {
77d2a621 14 if ($ENV{PERL_CORE}) {
15 chdir 't' if -d 't';
16 @INC = '../lib';
17 }
41c686de 18}
19
747da336 20my @data = map { eval } <DATA>;
6bc89f92 21
747da336 22my $numtests = scalar @data;
23print "1..$numtests\n";
6bc89f92 24
747da336 25my $k1 = join( "", map { chr } (1 .. 32) );
26my $k2 = join( "", map { chr } (1 .. 37) );
6bc89f92 27
747da336 28my @keys = (
6bc89f92 29 $k1,
30 $k1,
31 $k1,
32 chr(0x0b) x 32,
33 "Jefe",
34 chr(0xaa) x 32,
35 $k2,
36 chr(0x0c) x 32,
37 chr(0xaa) x 80,
38 chr(0xaa) x 80
39);
40
747da336 41my @out = (
6bc89f92 42 "a21b1f5d4cf4f73a4dd939750f7a066a7f98cc131cb16a6692759021cfab8181",
43 "104fdc1257328f08184ba73131c53caee698e36119421149ea8c712456697d30",
44 "470305fc7e40fe34d3eeb3e773d95aab73acf0fd060447a5eb4595bf33a9d1a3",
45 "198a607eb44bfbc69903a0f1cf2bbdc5ba0aa3f3d9ae3c1c7a3b1696a0b68cf7",
46 "5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843",
47 "cdcb1220d1ecccea91e53aba3092f962e549fe6ce9ed7fdc43191fbde45c30b0",
48 "d4633c17f6fb8d744c66dee0f8f074556ec4af55ef07998541468eb49bd2e917",
49 "7546af01841fc09b1ab9c3749a5f1c17d4f589668a587b2700a9c97c1193cf42",
50 "6953025ed96f0c09f80a96f78e6538dbe2e7b820e3dd970e7ddd39091b32352f",
51 "6355ac22e890d0a3c8481a5ca4825bc884d3e7a1ff98a2fc2ac7d8e064c3b2e6"
52);
53
747da336 54 # do the first one using multi-argument data feed
6bc89f92 55
747da336 56my $testnum = 1;
57my @args = split(//, shift @data);
58print "not " unless hmac_sha256_hex(@args, shift @keys) eq shift @out;
59print "ok ", $testnum++, "\n";
6bc89f92 60
747da336 61while (@data) {
62 print "not " unless hmac_sha256_hex(shift @data, shift @keys)
63 eq shift @out;
64 print "ok ", $testnum++, "\n";
6bc89f92 65}
747da336 66
67__DATA__
68"abc"
69"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
70"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopqabcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
71"Hi There"
72"what do ya want for nothing?"
73chr(0xdd) x 50
74chr(0xcd) x 50
75"Test With Truncation"
76"Test Using Larger Than Block-Size Key - Hash Key First"
77"Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data"