| Anterior | Siguiente |
| TRUST_E_SUBJECT_NOT_TRUSTED | DIGSIG_E_DECODE |
DIGSIG_E_ENCODE
Qué significa DIGSIG_E_ENCODE
DIGSIG_E_ENCODE corresponde a 0x800B0005. Microsoft lo define como un problema en el proceso de codificación ASN.1.
El fallo ocurre al convertir el modelo de objetos —firmante, algoritmos, atributos, extensiones y contenido— en una representación ASN.1. Puede producirse antes de usar la clave privada, por lo que cambiar certificados o permisos de clave no corrige un OID, una longitud o una estructura mal construida.
Qué comprobar
- Identifica la estructura y la API de codificación exactas que devolvieron el HRESULT.
- Valida OID, campos obligatorios, multiplicidad de atributos y longitudes antes de pasar el objeto al encoder.
- Construye un caso mínimo con un firmante y sin atributos opcionales; añade los campos de producción uno por uno hasta localizar el que rompe la codificación.
- Decodifica la salida de control con una implementación independiente para confirmar que el objeto generado corresponde al perfil CMS/X.509 esperado.
Cómo resolverlo
Corrige el modelo ASN.1 o los datos entregados al encoder y vuelve a generar el objeto desde el principio. No sustituyas el algoritmo de firma y elimines atributos al mismo tiempo: si el resultado cambia, ya no sabrás qué modificación reparó realmente la estructura.
Código cercano
DIGSIG_E_DECODE aparece al interpretar bytes ASN.1 existentes; DIGSIG_E_ENCODE ocurre al construirlos.
Referencias técnicas
¿Buscas un código diferente? Buscar otro código de estado o error.