Signatários CMS SubjectKeyIdentifier
O HotPDF pode identificar o signatário CMS principal pela extensão X.509 subjectKeyIdentifier em vez de um nome de emissor e um número de série do certificado
Selecionando o identificador
HPDFCMSDefaultOptions define THPDFCMSSignOptions.SignerIdentifier como cmsidIssuerAndSerialNumber para que chamadores existentes mantenham sua forma determinística de bytes CMS
Defina o campo como cmsidSubjectKeyIdentifier antes de chamar HPDFCMSBuildSignedDataEx, um construtor de CMS baseado em provedor, a estimativa de espaço reservado 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 do certificado
O certificado do signatário deve conter exatamente uma extensão X.509 não vazia com OID 2.5.29.14 cujo valor de extensão contém uma OCTET STRING DER completa
O HotPDF falha antes de assinar quando essa extensão está ausente, duplicada, vazia, truncada ou malformada; ele não sintetiza um identificador de chave a partir da chave pública
SigningCertificateV2 continua a vincular o mesmo certificado com seus campos de emissor e 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 [0] primitivo, SignerInfo.version é 3, e o SignedData.version gerado de signatário único é 3 conforme exigido pela RFC 5652
A verificação exige que os bytes do SID correspondam à extensão do certificado embutido e rejeita valores de SID incompatíveis, registros de emissor e série com versão de signatário diferente de 1, registros SKI com versão de signatário diferente de 3 e contêineres SKI cuja versão externa é inferior a 3
A identidade compacta é útil para armazenamentos de certificados orientados a chave e fluxos de trabalho que não retêm codificações de nome de emissor, mas o software consumidor deve suportar a escolha SKI da RFC 5652
HPDFCMSBuildCounterSignerInfo continua a usar identidades de emissor e série; configure o signatário principal por meio de THPDFCMSSignOptions
Veja provedores de assinatura modernos e consistência do algoritmo de digest CMS