summaryrefslogtreecommitdiffstats
path: root/c6x/fips_standalone_sha1
blob: ea2268cb4ecc613b43c1db1220c931a49eb3cdf6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/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";
}