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