Signers CMS SubjectKeyIdentifier

HotPDF puede identificar el signer primario de CMS mediante la extensión X.509 subjectKeyIdentifier en lugar del nombre del issuer y el número de serie del certificado

Selección del identificador

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

Establezca el campo en cmsidSubjectKeyIdentifier antes de llamar a HPDFCMSBuildSignedDataEx, a un constructor de CMS basado en provider, a la estimación de placeholders o a un overload 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 signer debe contener exactamente una extensión X.509 no vacía con OID 2.5.29.14 cuyo valor de extensión contenga un DER OCTET STRING completo

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

SigningCertificateV2 sigue vinculando el mismo certificado con sus campos issuer y serial incluso cuando el SID del SignerInfo usa el key identifier

Formato en la trama y verificación

El key identifier se codifica como IMPLICIT primitivo [0], SignerInfo.version es 3, y el SignedData.version de un solo signer generado es 3, tal como exige el RFC 5652

La verificación exige que los bytes del SID coincidan con la extensión del certificado incrustado, y rechaza valores de SID que no coinciden, registros issuer-and-serial con versión de signer distinta de 1, registros SKI con versión de signer distinta de 3 y contenedores SKI cuya versión externa sea menor que 3

La identidad compacta resulta útil para certificate stores orientados a claves y para flujos que no conservan codificaciones de nombres de issuer, pero el software consumidor debe soportar la variante SKI del RFC 5652

HPDFCMSBuildCounterSignerInfo sigue usando identidades issuer-and-serial; configure el signer primario mediante THPDFCMSSignOptions

Consulte los modern signature providers y la consistencia de algoritmos de digest CMS