CMS-SubjectKeyIdentifier-ondertekenaars

HotPDF kan de primaire CMS-ondertekenaar identificeren via de X.509-subjectKeyIdentifier-extensie in plaats van via een uitgever-naam en certificaat-serialnummer

De identificatie selecteren

HPDFCMSDefaultOptions stelt THPDFCMSSignOptions.SignerIdentifier in op cmsidIssuerAndSerialNumber zodat bestaande aanroepers hun deterministische CMS-bytevorm behouden

Stel het veld in op cmsidSubjectKeyIdentifier vóór het aanroepen van HPDFCMSBuildSignedDataEx, een providergebaseerde CMS-builder, plaatsaanduiding-schatting of een high-level ondertekeningsoverload die THPDFCMSSignOptions accepteert

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

Certificaatvereiste

Het ondertekeningscertificaat moet precies één niet-lege X.509-extensie bevatten met OID 2.5.29.14 waarvan de extensiewaarde een volledige DER-OCTET-STRING bevat

HotPDF faalt vóór het ondertekenen wanneer die extensie ontbreekt, gedupliceerd, leeg, afgekapt of verkeerd gevormd is; het synthetiseert geen sleutelidentificatie uit de publieke sleutel

SigningCertificateV2 blijft hetzelfde certificaat binden met zijn uitgever- en serialvelden, zelfs wanneer de SignerInfo-SID de sleutelidentificatie gebruikt

Draaddformaatt en verificatie

De sleutelidentificatie wordt gecodeerd als primitief IMPLICIET [0], SignerInfo.version is 3 en de gegenereerde één-ondertekenaar-SignedData.version is 3, zoals vereist door RFC 5652

Verificatie vereist dat de SID-bytes overeenkomen met de ingebedde certificaatextensie en wijst niet-overeenkomende SID-waarden af, uitgever-en-serial-records met een niet-1-ondertekenaarsversie, SKI-records met een niet-3-ondertekenaarsversie en SKI-containers waarvan de buitenste versie onder 3 ligt

De compacte identiteit is nuttig voor sleutelgerichte certificaatopslag en werkstromen die geen uitgever-naamcoderingen behouden, maar verbruikende software moet de RFC-5652-SKI-keuze ondersteunen

HPDFCMSBuildCounterSignerInfo blijft uitgever-en-serial-identiteiten gebruiken; configureer de primaire ondertekenaar via THPDFCMSSignOptions

Zie moderne handtekeningproviders en CMS-digestalgoritme-consistentie