Assinantes CMS com SubjectKeyIdentifier

O HotPDF pode identificar o assinante CMS primário pela extensão subjectKeyIdentifier X.509 em vez de um nome de emissor e número de série do certificado

Seleção do identificador

HPDFCMSDefaultOptions define THPDFCMSSignOptions.SignerIdentifier como cmsidIssuerAndSerialNumber, para que os chamadores existentes mantenham a sua forma determinística de bytes CMS

Defina o campo como cmsidSubjectKeyIdentifier antes de chamar HPDFCMSBuildSignedDataEx, um construtor CMS baseado em provedor, a estimativa de placeholder ou uma sobrecarga de assinatura de alto nível que aceita THPDFCMSSignOptions

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

Requisito de certificado

O certificado do assinante tem de conter exatamente uma extensão X.509 não vazia com o OID 2.5.29.14 cujo valor de extensão contenha uma OCTET STRING DER completa

O HotPDF falha antes de assinar quando essa extensão está ausente, duplicada, vazia, truncada ou malformada; não sintetiza um identificador de chave a partir da chave pública

SigningCertificateV2 continua a vincular o mesmo certificado com os seus campos de emissor e número de série, mesmo quando o SID de SignerInfo usa o identificador de chave

Formato de transmissão e verificação

O identificador de chave é codificado como IMPLICIT primitivo [0], SignerInfo.version é 3 e o SignedData.version gerado para assinante único é 3, conforme exigido pelo RFC 5652

A verificação exige que os bytes do SID correspondam à extensão do certificado incorporado e rejeita valores SID incompatíveis, registos issuer-and-serial com versão de assinante diferente de 1, registos SKI com versão de assinante diferente de 3 e contentores SKI cuja versão externa seja inferior a 3

A identidade compacta é útil para armazéns de certificados orientados a chaves e fluxos de trabalho que não preservam codificações de nome de emissor, mas o software de consumo tem de suportar a escolha SKI do RFC 5652

HPDFCMSBuildCounterSignerInfo continua a usar identidades issuer-and-serial; configure o assinante primário através de THPDFCMSSignOptions

Consulte provedores de assinatura modernos e consistência do algoritmo de digest CMS