signify-1.11p0 FAIL - bei zu überprüfende Datei mit kompletter Pfadangabe

kongstrong

Well-Known Member
Guten Tag,

ich möchte gerne unter OpenBSD 7.2 mit signify gezielt angeben, welche Datei ich prüfen lassen möchte, mit kompletter Pfadangabe, ohne dazu in dem Verzeichnis sein zu müssen, wo sich die zu überprüfende Datei befindet.
Hintergrund: signify soll die angegebene Datei prüfen, ohne im aktuellen Verzeichnis zu sein "(zu wechseln (cd PFAD))", wo sich die zu über prüfende Datei befindet.

Shell Script Code Beispiel:
-----------------------------------
Bash:
cd "${DER}/${KOMPLETTE}/${PFAD}/${ZU}"
signify -C -p /etc/signify/openbsd-72-base.pub -x "${DER}/${KOMPLETTE}/${PFAD}/${ZU}/SHA256.sig" "ports.tar.gz"
Signature Verified
ports.tar.gz: OK
funktioniert, wenn man sich, bzw das shell Script, dabei im selben Verzeichnis befindet, wie die zu überprüfende Datei.

Bash:
cd / 
signify -C -p /etc/signify/openbsd-72-base.pub -x "${DER}/${KOMPLETTE}/${PFAD}/${ZU}/SHA256.sig" "${DER}/${KOMPLETTE}/${PFAD}/${ZU}/ports.tar.gz"
Signature Verified
ports.tar.gz: FAIL
funktioniert nicht, ist natürlich auch verständlich, denn in der SHA256.sig ist auch nur die Datei ohne Pfad Angabe enthalten.

Leider funktioniert auch "Parameter Substitution" nicht, also den kompletten Pfad vor dem Datei Namen entfernen "${DATEI##/*/}" ... oder
Bash:
ZU_ÜBERPRÜFENDE_DATEI="${DER}/${KOMPLETTE}/${PFAD}/${ZU}/ports.tar.gz"
cd /
signify -C -p /etc/signify/openbsd-72-base.pub -x "${DER}/${KOMPLETTE}/${PFAD}/${ZU}/SHA256.sig" "${ZU_ÜBERPRÜFENDE_DATEI##/*/}"
Signature Verified
ports.tar.gz: FAIL
funktioniert so leider auch nicht (FAIL)

gibt es irgentwie eine Möglichkeit, eine Datei mit signify zu prüfen ohne jeweils in das Verzeichnis zu wechseln, wo die zu überprüfende Datei sich befindet, per shell Script ?
Vielen Dank
 
Was spricht denn dagegen in das Verzeichnis zu wechseln? Du kannst ja nach der Überprüfung wieder ins vorhergehende Verzeichnis zurückwechseln.
So a-la
Bash:
# zu überprüfende Datei:
DATEI="/path/to/ports.tar.gz"

cd $(dirname $DATEI)
signify -C -p /etc/signify/openbsd-72-base.pub -x "/path/to/SHA256.sig" $(basename $DATEI)
cd -

Oder hab ich irgendwas nicht richtig verstanden?
 
Ohne das Tool genau zu kennen: versuch doch mal, die Eingabedatei als STDIN zu nutzen.

Code:
$ signify -C -p /etc/signify/openbsd-72-base.pub -x "/path/to/SHA256.sig" < /path/to/inputfile

Rob
 
versuch doch mal, die Eingabedatei als STDIN zu nutzen.
Das wird so vermutlich eher nicht funktionieren. Das Signiture-File (Beispiel) kann mehrere Einträge enthalten. Der Pickup-Key für den Passenden ist quasi die Dateiname (deshalb funktioniert es auch nicht, wenn da irgendein Pfad mit reingenudelt ist). Kommt was über STDIN rein wird durch signify ja erst gar kein Dateiname gesehen und somit fehlt dieser Referenz-Key.
 
Zurück
Oben