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