Commit | Line | Data |
---|---|---|
d56fd9d1 MW |
1 | #! /usr/bin/perl |
2 | ||
3 | $mode = shift @ARGV; | |
4 | ||
5 | if ($mode eq "k") { print "pubkey {\n"; } | |
6 | elsif ($mode eq "s") { print "sign {\n"; } | |
7 | elsif ($mode eq "v") { print "verify {\n"; } | |
8 | ||
9 | while (<>) { | |
10 | s/^([^:]{64})([^:]{64}):\2:([^:]*):([^:]{128})\3:$/$1:$2:$3:$4/; | |
11 | my ($k, $K, $m, $s) = ($1, $2, $3, $4); | |
12 | $m = '""' unless length $m; | |
13 | if ($mode eq "k") { print " $k\n $K;\n"; } | |
14 | elsif ($mode eq "s") { print " $k\n $m\n $s;\n"; } | |
15 | elsif ($mode eq "v") { | |
16 | print " $K\n $m\n $s\n 0;\n"; | |
17 | (my $Kneg = $K) =~ s/([0-9a-f]{2})$/ sprintf "%02x", hex($1) ^ 0x80 /e; | |
18 | print " $Kneg\n $m\n $s\n -1;\n"; | |
19 | (my $Kzap = $K) =~ s/^([0-9a-f]{2})/ sprintf "%02x", hex($1) ^ 0xff /e; | |
20 | print " $Kzap\n $m\n $s\n -1;\n"; | |
21 | (my $mzap = $m) =~ s/^([0-9a-f]{2})/ sprintf "%02x", hex($1) ^ 0xff /e; | |
22 | $mzap = "00" unless $m ne '""'; | |
23 | print " $K\n $mzap\n $s\n -1;\n"; | |
24 | (my $szap = $s) =~ s/^([0-9a-f]{2})/ sprintf "%02x", hex($1) ^ 0xff /e; | |
25 | print " $K\n $m\n $szap\n -1;\n"; | |
26 | } | |
27 | } | |
28 | ||
29 | print "}\n"; |