openssl/util/fips_standalone_sha1
2012-10-04 13:27:11 +00:00

32 lines
665 B
Perl

#!/usr/bin/env perl
#
$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
unshift(@INC,$dir);
require "hmac_sha1.pl";
(!@ARV[0] && -f @ARGV[$#ARGV]) || die "usage: $0 [-verify] file";
$verify=shift if (@ARGV[0] eq "-verify");
sysopen(FD,@ARGV[0],0) || die "$!";
binmode(FD);
my $ctx = HMAC->Init("etaonrishdlcupfm");
while (read(FD,$blob,4*1024)) { $ctx->Update($blob); }
close(FD);
my $signature = unpack("H*",$ctx->Final());
print "HMAC-SHA1(@ARGV[0])= $signature\n";
if ($verify) {
open(FD,"<@ARGV[0].sha1") || die "$!";
$line = <FD>;
close(FD);
exit(0) if ($line =~ /HMAC\-SHA1\([^\)]*\)=\s*([0-9a-f]+)/i &&
$1 eq $signature);
die "signature mismatch";
}