Saltar al contenido
ecdsa.com
OpenSSL 3.x CLI (asn1parse, d2i loaders)CLI de OpenSSL

Mensaje de error

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

Reproducido con OpenSSL 3.6; OpenSSL 1.1.x imprime el mismo fallo como «error:0D07209B:asn1 encoding routines:ASN1_get_object:too long». El tan buscado «header too long» (error:0680007B en OpenSSL 3, error:0D07207B en 1.1.x) es un error hermano: la entrada termina antes de que el propio encabezado de etiqueta y longitud esté completo, ya sea un archivo vacío o de un solo byte, o un encabezado cortado a mitad de la longitud.

Qué significa

El analizador DER leyó lo que debería ser un encabezado ASN.1 de etiqueta y longitud y obtuvo una longitud mayor que los datos disponibles: el síntoma clásico de «estos bytes no son DER». Normalmente la entrada es texto base64, PEM o datos truncados que se analizan como DER binario, no una estructura sutilmente dañada.

Por qué ocurre

Cómo solucionarlo

  1. 1.

    Ajustar el formato de entrada al analizador

    Decodifica primero el base64 o indica a la herramienta que es PEM. asn1parse espera entrada PEM por defecto; -inform der es solo para datos realmente binarios.

    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.

    Comprobar los tamaños antes de analizar

    Para una firma DER ECDSA P-256, espera aproximadamente entre 70 y 72 bytes que empiecen por 0x30. Una «firma» de 96 bytes probablemente sea base64; 64 bytes es r‖s en formato raw, que no es DER en absoluto.

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

    Si es una firma r‖s en formato raw, convertirla

    JWS y WebCrypto producen firmas ECDSA raw de 64 bytes que ningún analizador DER aceptará. El conversor de abajo pasa de raw a DER (y al revés) y muestra los enteros r y s: pega los bytes y comprueba qué formato tienes realmente.

Errores relacionados

Explorar toda la base de datos de errores de firma