diff options
Diffstat (limited to 'gpggraph.lpr')
-rw-r--r-- | gpggraph.lpr | 69 |
1 files changed, 56 insertions, 13 deletions
diff --git a/gpggraph.lpr b/gpggraph.lpr index e2a0ba7..25e622e 100644 --- a/gpggraph.lpr +++ b/gpggraph.lpr @@ -3,38 +3,81 @@ program gpggraph; {$R *.res} uses - mystringlistunit; + mystringlistunit, classes, sysutils, graphunit; + +const + gpgCommand = 'gpg --no-auto-check-trustdb --fast-list-mode --fixed-list-mode'; var - lKeys,kKeys: tMyStringList; + lKeys,kKeys: tMyStringList; + baum: tList; + wurzel,spitze: int64; + i: longint; + cK: tKnoten; begin lKeys:=tMyStringList.create; kKeys:=tMyStringList.create; - lKeys.loadFromPipe('gpg --list-keys --no-auto-check-trustdb --fast-list-mode --fixed-list-mode'); + lKeys.loadFromPipe(gpgCommand+' --list-keys'); lKeys.grep('^pub'); - lKeys.replace('^\S+\s+[^ /]+/([0-9A-F]{8}) .*$','$1'); - kKeys.loadFromPipe('gpg --homedir /var/cache/kernelKeys/.gnupg --list-keys --no-auto-check-trustdb --fast-list-mode --fixed-list-mode'); + lKeys.replace('^\S+\s+[^ /]+/([0-9A-F]{8}) .*$','0x$1'); + kKeys.loadFromPipe(gpgCommand+' --list-keys --homedir /var/cache/kernelKeys/.gnupg'); kKeys.grep('^pub'); - kKeys.replace('^\S+\s+[^ /]+/([0-9A-F]{8}) .*$','$1'); - -// kSigs.loadFromPipe('gpg --homedir /var/cache/kernelKeys/.gnupg --list-sigs --no-auto-check-trustdb --fast-list-mode --fixed-list-mode'); -// kSigs.grep('^(pub|sig)'); + kKeys.replace('^\S+\s+[^ /]+/([0-9A-F]{8}) .*$','0x$1'); lKeys.sort; kKeys.sort; lKeys.uniq('-'); kKeys.uniq('-'); - writeln(lKeys.count,' ',length(lKeys.text)); - writeln(kKeys.count,' ',length(kKeys.text)); + writeln(inttostr(lKeys.count)+' lokale Schlüssel'); + writeln(inttostr(kKeys.count)+' Kernel-Schlüssel'); + + lKeys.append(kKeys); + kKeys.clear; - kKeys.append(lKeys); + lKeys.sort; + lKeys.uniq('d'); + + lKeys.grep('^0x(CAFAA3E1|00411886|76E21CBB|65D0FD58)$',true); + + kKeys.loadFromPipe(gpgCommand+' --list-keys '+lKeys.text); + kKeys.grep('^pub'); + kKeys.grep('expired|revoked',true); + kKeys.replace('^\S+\s+[^ /]+/([0-9A-F]{8}) .*$','$1'); kKeys.sort; - kKeys.uniq('d'); + wurzel:=strtoint('$'+kKeys[0]); + + writeln('folgende Kernelschlüssel sind auch lokal vorhanden:'); write(kKeys.text); + writeln('davon nehme ich jetzt '+kKeys[0]); + + kKeys.clear; + kKeys.loadFromPipe(gpgCommand+' --list-sigs');// --homedir /var/cache/kernelKeys/.gnupg'); + kKeys.grep('^(pub|sig)'); + + kKeys.replace('^pub .*/([0-9A-F]{8}) .*$','pub $1'); + kKeys.replace('^sig .* ([0-9A-F]{8}) .*$','sig $1'); + kKeys.uniq('-'); + + baum:=tList.create; + i:=0; + while i<kKeys.count do begin + if leftStr(kKeys[i],4)='pub ' then begin + cK:=findeKnoten(baum,strtoint('$'+rightStr(kKeys[i],8))); + inc(i); + while (i<kKeys.count) and (leftStr(kKeys[i],4)='sig ') do begin + cK.addSig(baum,strtoint('$'+rightStr(kKeys[i],8))); + inc(i); + end; + end + else + inc(i); + end; + + spitze:=strtoint('$00411886'); // Torvalds key lKeys.free; kKeys.free; |