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