Firmatari CMS SubjectKeyIdentifier
HotPDF può identificare il firmatario primario CMS tramite l'estensione X.509 subjectKeyIdentifier invece del nome issuer e del numero di serie del certificato
Scelta dell'identificatore
HPDFCMSDefaultOptions imposta THPDFCMSSignOptions.SignerIdentifier a cmsidIssuerAndSerialNumber, così i chiamanti esistenti conservano la loro forma di byte CMS deterministica
Impostare il campo a cmsidSubjectKeyIdentifier prima di chiamare HPDFCMSBuildSignedDataEx, un builder CMS basato su provider, la stima dei placeholder o un overload di firma di alto livello che accetta THPDFCMSSignOptions
Options := HPDFCMSDefaultOptions(palBaseline_B_B);
Options.SignerIdentifier := cmsidSubjectKeyIdentifier;
CMS := HPDFCMSBuildSignedDataEx(KeyMaterial, DocumentDigest, Options);
Requisiti del certificato
Il certificato del firmatario deve contenere esattamente una estensione X.509 non vuota con OID 2.5.29.14 il cui valore di estensione contiene un OCTET STRING DER completo
HotPDF fallisce prima della firma quando quella estensione manca, è duplicata, vuota, troncata o malformata; non sintetizza un key identifier dalla chiave pubblica
SigningCertificateV2 continua a legare lo stesso certificato con i suoi campi issuer e seriale anche quando il SID del SignerInfo usa il key identifier
Formato sul filo e verifica
Il key identifier è codificato come IMPLICIT primitivo [0], SignerInfo.version è 3, e il SignedData.version generato a firmatario singolo è 3 come richiesto da RFC 5652
La verifica richiede che i byte del SID corrispondano all'estensione del certificato incorporato e rifiuta valori SID non corrispondenti, record issuer-and-serial con versione del firmatario diversa da 1, record SKI con versione del firmatario diversa da 3 e contenitori SKI la cui versione esterna è inferiore a 3
L'identità compatta è utile per i certificate store orientati alle chiavi e per i workflow che non conservano le codifiche dei nomi issuer, ma il software di consumo deve supportare la scelta SKI di RFC 5652
HPDFCMSBuildCounterSignerInfo continua a usare identità issuer-and-serial; configurare il firmatario primario tramite THPDFCMSSignOptions
Vedere modern signature providers e coerenza degli algoritmi di digest CMS