1use strict; 2 3my $MODULE; 4 5BEGIN { 6 $MODULE = (-d "src") ? "Digest::SHA" : "Digest::SHA::PurePerl"; 7 eval "require $MODULE" || die $@; 8 $MODULE->import(qw()); 9} 10 11BEGIN { 12 if ($ENV{PERL_CORE}) { 13 chdir 't' if -d 't'; 14 @INC = '../lib'; 15 } 16} 17 18# David Ireland's test vector - SHA-256 digest of "a" x 536870912 19 20# Adapted from Julius Duque's original script (t/24-ireland.tmp) 21# - modified to use state cache via putstate method 22 23print "1..1\n"; 24 25my $rsp = "b9045a713caed5dff3d3b783e98d1ce5778d8bc331ee4119d707072312af06a7"; 26 27my $sha; 28if ($sha = $MODULE->putstate(join('', <DATA>))) { 29 $sha->add("aa"); 30 print "not " unless $sha->hexdigest eq $rsp; 31 print "ok 1\n"; 32} 33else { print "not ok 1\n" } 34 35__DATA__ 36 37 # Verify comments/blank lines ignored in state data 38 39alg:256 40H:dd75eb45:02d4f043:06b41193:6fda751d:73064db9:787d54e1:52dc3fe0:48687dfa 41 42block:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:00:00 43blockcnt:496 44 45lenhh:0 46lenhl:0 47lenlh:0 48 49# Note: add'ing two more bytes will cause lenll (below) to overflow 50 51lenll:4294967280 52