¿Alguien tendría un ejemplo de un certificado X.509 codificado XER para que pueda jugar con él?
¡Gracias!
X.509 indica que los certificados utilizan la codificación DER:
Para firma cálculo, los datos que se van a firmar se codifican utilizando el ASN.1 reglas de codificación distinguidas (DER)
Nominalmente, podría imaginar que codifica los datos del certificado en XER, y que la codificación DER de la estructura a firmar ( TBSCertificate
) se realiza de forma dinámica para fines de cálculo o verificando la firma, pero nadie lo hace porque:
Sería muy difícil de hacer, porque aunque DER es supuestamente determinista, hay una gran cantidad de detalles que pueden fallar (¿usa UTCTime
o GeneralizedTime
para las fechas de validez? ¿Cómo ¿Maneja milisegundos en la representación de la fecha? Para los componentes de DN, ¿utiliza PrintableString
, BMPString
, UTF8String
? ¿Qué tipo de descomposición de Unicode utiliza para los signos diacríticos? Y así sucesivamente). No sería confiable.
La codificación XML es terriblemente ineficiente, tanto en el espacio (usa muchos bytes, incluso cuando se compara con el DER codificado en Base64) como en la CPU (que puede ser un problema difícil con plataformas reducidas como las tarjetas inteligentes).
Los certificados tienen que ver con la interoperabilidad, y nadie es compatible con los certificados codificados con XER, por lo que no hay un valor agregado en su compatibilidad en este momento. Tampoco hay incentivos: lo que XML puede aportar (en comparación con DER) es el soporte automático de transformaciones de datos genéricos (XPath, XSLT ... lo que sea), pero ese es el tipo de cosa que no queremos para hacer con los certificados, porque un certificado está firmado y no puede cambiar ni un solo bit de él sin invalidar la firma.
Si desea jugar con firmas en datos XML, busque XML-DSig . Cabe destacar que cuando un objeto XML-DSig incrusta un certificado (como un elemento X509Certificate
), utiliza la codificación Base64 del certificado binario (es decir, certificado codificado con DER) (consulte la sección 4.4.4).
Resumen: no existe tal cosa como un certificado "estándar" codificado en XER y predigo que tomará algún tiempo antes de que aparezca tal cosa (y ore a todos los dioses, sé que no sucederá antes de que me retire).
Lea otras preguntas en las etiquetas public-key-infrastructure tls certificates