#!/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";
}
