blob: f595b230931df4ef0f313684bd1f41053dd36bb5 (
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
33
34
35
36
37
|
#!/usr/bin/perl
use strict;
my $certdir = $ARGV[0];
my $certfile = $ARGV[1];
my $aki;
my $info;
my $list;
if (! -f "${certdir}/certinfo.txt") {
system("for i in '${certdir}'/*.crt; do echo -n \$i:; certtool --inder -i < \$i|grep 'Subject Key Id' -A 1|tail -1; done > '${certdir}/certinfo.txt'");
}
do {
print "Parsing ${certdir}/${certfile}...\n";
$info = `certtool --inder -i < '${certdir}/${certfile}'`;
print "${info}";
if (${info} =~ m,Authority Key Identifier.*:\n[\t ]*([a-z0-9]+),m) {
$aki = $1;
} else {
die "Could not find AKI";
}
print "Finding AKI ${aki}...\n";
$list = `cat '${certdir}/certinfo.txt' | grep '${aki}'`;
if ($list =~m,.*/(.*):.*,) {
$list = $1;
} else {
die "Could not find issuer";
}
$certfile = ${list};
} while (1);
|