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.

War es hilfreich?

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).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top