Ich habe hier Dateien, die möglicherweise einen öffentlichen Schlüssel enthalten.
Wenn ich das mit file dumdidum auswerte, bekomme ich etwas wie dumdidum: GPG key public ring, created Sun Oct 28 13:01:03 2018 als Antwort. Wenn ich mit hd < /usr/share/file/magic.mgc | grep -B10 -A10 'GPG key pu' nachschaue, wie file darauf kommt, werde ich daraus nicht schlau.
Frage 0:
Hat so eine Datei eine Magic Number? Wenn ja, welche ist das? Wenn nein, dann könnte ich höchstens den Output von file parsen, was langfristig nicht taugt.
Frage 1:
Ich hätte es gerne allgemeiner.
Mir fällt da nur ein, selber einen Header zu bauen, zum Beispiel cookie monster key OpenPGP was eine Magic Number von 636f6f6b6965206d6f6e73746572206b657920 für meine Schlüssel im Allgemeinen und 636f6f6b6965206d6f6e73746572206b6579204f70656e5047500a für meine Schlüssel im OpenPGP-Format ergibt.
Hat jemand eine andere Idee?
erkennen, ob etwas einen öffentlichen Schlüssel enthält
erkennen, ob etwas einen öffentlichen Schlüssel enthält
Harry, hol schon mal das Rasiermesser!
Re: erkennen, ob etwas einen öffentlichen Schlüssel enthält
Man könnte sich anschauen wie file das macht.
Speziell im Fall Zertifikat wird es schnell hässlich.
Das X.509 Zertifikat wird in einer ASN.1 Struktur notiert deren Werte mittels DER codiert sind.
Dann kann das Ganze Ding nochmal optional mit Base64 codiert werden wobei es dann noch einen ASCII Header und Footer bekommt der wiederum leichter zu detektieren ist.
Nimmt man das ASN1/DER Zertifikat sind die ersten Bytes durch den X.509 Standard immer (relativ) gleich.
Relativ, weil X.509 mittlerweile in der Version 3 im Umlauf ist und diese Version mit im Header enthalten ist außer für Version 1
Speziell im Fall Zertifikat wird es schnell hässlich.
Das X.509 Zertifikat wird in einer ASN.1 Struktur notiert deren Werte mittels DER codiert sind.
Dann kann das Ganze Ding nochmal optional mit Base64 codiert werden wobei es dann noch einen ASCII Header und Footer bekommt der wiederum leichter zu detektieren ist.
Nimmt man das ASN1/DER Zertifikat sind die ersten Bytes durch den X.509 Standard immer (relativ) gleich.
Relativ, weil X.509 mittlerweile in der Version 3 im Umlauf ist und diese Version mit im Header enthalten ist außer für Version 1
[[ Black Holes are where God devided by 0 ]]
Re: erkennen, ob etwas einen öffentlichen Schlüssel enthält
Das habe ich leider nicht nachvollziehen können.
Ich habe mir mehrere Dateien angesehen, die file als GPG key public ring erkennt, und die fangen alle mit 99020d045 an. Aber ich kann das nirgendwo im magic.mgc finden, auch nicht rückwärts und auch nicht, wenn ich vorher die \x00 entferne. Dass man vier beliebige Hexziffern in etwas, das komprimiert 180 kiB groß ist, ein paar mal findet, geht in den Bereich Radosophie.
Ich könnte ja 99020d04 als Magic Number nehmen, aber ich weiß nicht, was mir da noch so alles durchgeht.
Wenn mein Selektor noch ganz viel anderes ASN1 durchlässt, taugt er nicht.format_c hat geschrieben:28.10.2018 18:44:51Nimmt man das ASN1/DER Zertifikat sind die ersten Bytes durch den X.509 Standard immer (relativ) gleich.
Relativ, weil X.509 mittlerweile in der Version 3 im Umlauf ist und diese Version mit im Header enthalten ist außer für Version 1
Mir gefällt meine Idee, da selber einen Header zu setzen, nicht. Wenn die Dinger ohne großen Aufwand anders zu fangen sind, wäre das doppeltgemoppelt.
Mit Kanone auf Spatzen wäre, die Dateien automatisiert mit gpg zu importieren, und dann zu schauen, ob ein Schlüssel im Keyring ist.
Harry, hol schon mal das Rasiermesser!