Firmantes con SubjectKeyIdentifier de CMS

HotPDF puede identificar al firmante CMS primario por la extensión X.509 subjectKeyIdentifier en lugar de un nombre de emisor y un número de serie de certificado

Selección del identificador

HPDFCMSDefaultOptions establece THPDFCMSSignOptions.SignerIdentifier en cmsidIssuerAndSerialNumber para que los llamadores existentes conserven su forma de bytes CMS determinista

Establezca el campo en cmsidSubjectKeyIdentifier antes de llamar a HPDFCMSBuildSignedDataEx, a un compilador CMS basado en proveedor, a la estimación del marcador de posición o a una sobrecarga de firma de alto nivel que acepte THPDFCMSSignOptions

Options := HPDFCMSDefaultOptions(palBaseline_B_B);
Options.SignerIdentifier := cmsidSubjectKeyIdentifier;
CMS := HPDFCMSBuildSignedDataEx(KeyMaterial, DocumentDigest, Options);

Requisito del certificado

El certificado del firmante debe contener exactamente una extensión X.509 no vacía con OID 2.5.29.14 cuyo valor de extensión contenga un OCTET STRING DER completo

HotPDF falla antes de firmar cuando esa extensión está ausente, duplicada, vacía, truncada o malformada; no sintetiza un identificador de clave a partir de la clave pública

SigningCertificateV2 continúa vinculando el mismo certificado con sus campos de emisor y serie incluso cuando el SID de SignerInfo usa el identificador de clave

Formato en la transmisión y verificación

El identificador de clave se codifica como IMPLICIT [0] primitivo, SignerInfo.version es 3 y el SignedData.version generado de un solo firmante es 3 según requiere RFC 5652

La verificación requiere que los bytes del SID coincidan con la extensión del certificado incrustado y rechaza valores de SID no coincidentes, registros de emisor y serie con versión de firmante distinta de 1, registros SKI con versión de firmante distinta de 3 y contenedores SKI cuya versión externa sea inferior a 3

La identidad compacta es útil para almacenes de certificados orientados a claves y flujos de trabajo que no conservan codificaciones de nombre de emisor, pero el software consumidor debe admitir la opción SKI de RFC 5652

HPDFCMSBuildCounterSignerInfo continúa usando identidades de emisor y serie; configure el firmante primario mediante THPDFCMSSignOptions

Consulte proveedores de firma modernos y consistencia del algoritmo de resumen de CMS