Zum Inhalt springen
ecdsa.com
OpenSSL 3.x CLI (asn1parse, d2i loaders)OpenSSL-CLI

Fehlermeldung

error:0680009B:asn1 encoding routines:ASN1_get_object:too long

Reproduziert mit OpenSSL 3.6; OpenSSL 1.1.x gibt denselben Fehler als „error:0D07209B:asn1 encoding routines:ASN1_get_object:too long“ aus. Das viel gesuchte „header too long“ (error:0680007B unter OpenSSL 3, error:0D07207B unter 1.1.x) ist ein verwandter Fehler: Die Eingabe endet, bevor der Header aus Tag und Länge selbst vollständig ist – eine leere Datei, eine Datei mit nur einem Byte oder ein Header, der mitten in der Längenangabe abbricht.

Was der Fehler bedeutet

Der DER-Parser hat gelesen, was ein ASN.1-Header aus Tag und Länge sein sollte, und eine Länge erhalten, die über die vorhandenen Daten hinausgeht – das klassische Anzeichen für „diese Bytes sind kein DER“. Meist ist die Eingabe base64-Text, PEM oder abgeschnittene Daten, die als rohes DER geparst werden, und keine subtil beschädigte Struktur.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Eingabeformat auf den Parser abstimmen

    Dekodiere zuerst das base64 oder sag dem Tool, dass es sich um PEM handelt. asn1parse erwartet standardmäßig eine PEM-Eingabe; -inform der ist nur für echte Binärdaten gedacht.

    bash
    # base64 signature/blob → DER, then parse
    openssl base64 -d -in sig.b64 | openssl asn1parse -inform der
    
    # PEM object: let asn1parse handle the armor itself
    openssl asn1parse -in cert.pem
  2. 2.

    Größen vor dem Parsen prüfen

    Rechne bei einer DER-kodierten ECDSA-Signatur mit P-256 mit etwa 70–72 Byte, beginnend mit 0x30. Eine 96 Byte lange „Signatur“ ist wahrscheinlich base64; 64 Byte sind rohes r‖s, also gar kein DER.

    bash
    wc -c < sig.der
    head -c 8 sig.der | xxd   # 30 44/45/46 ... → DER SEQUENCE
  3. 3.

    Bei einer rohen r‖s-Signatur: konvertieren

    JWS und WebCrypto erzeugen rohe ECDSA-Signaturen mit 64 Byte, die kein DER-Parser akzeptiert. Der Konverter unten wandelt das Rohformat in DER um (und zurück) und zeigt die Ganzzahlen r und s an – füge die Bytes ein und sieh nach, welches Format du tatsächlich vor dir hast.

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen