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