RSA pubkey Dateityperkennung
-
12-09-2019 - |
Frage
Ich habe eine RSA pubkey.dat (fast auf der Hand, was es ist), die die folgende Struktur auf Inhalt hat:
- ASN1 Integer von rund 1024 Bit (Modulus)
- ASN1 Integer (Exponent)
- Blob von 256 Bytes (Signature)
Keine Tags wie "---- beginnen ---" oder so. reine Hex-Werte in ihm.
Es gibt eine Möglichkeit, sein Format wie zu identifizieren, wenn es DIE / PEM / etc, also kann ich es öffne mit Python Krypto-Bibliotheken oder Crypto ++ auf c ++?
(Oder wenn sie paßt eine öffentliche Standardstruktur Namen für mich zu überprüfen)
Es scheint, wie seine nicht PEM als M2crypt kann nicht geladen werden.
Vielen Dank im Voraus.
Lösung
PEM-Codierung hat obligatorisches Format:
-----BEGIN typeName-----
base64 of DER value
-----END typeName-----
Dabei gilt, für öffentliche Schlüssel, typename = „PUBLIC KEY“ (AFAIR) so, das ist sehr einfach, mit einem regulären Ausdruck zu prüfen, wie die folgenden:
/-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----/
Wenn es nicht PEM ist, ist es in der Regel schlicht DIE.
Das DIE Darstellung einer ASN.1 Sequenz beginnt immer mit 0x30 so in der Regel, wenn ich eine DER-oder-PEM-Stream dekodieren, die ich sicher weiß, es ist eine ASN.1-Sequenz (komplexe Werte sind Sequenzen, sowieso) ich überprüfe das erste Byte: wenn es die 0x30, ich als dEN dekodieren, was ich als PEM dekodieren
.Sie können Ihre ASN.1 Daten schnell mit meinem eigenen Open-Source-ASN.1-Parser überprüfen (es ist alle clientseitige Javascript, also werde ich Ihre Daten nicht sehen).