CMS-Signierer mit SubjectKeyIdentifier

HotPDF kann den primären CMS-Signierer über die X.509-Erweiterung subjectKeyIdentifier statt über einen Ausstellernamen und eine Zertifikatseriennummer identifizieren

Auswahl der Kennung

HPDFCMSDefaultOptions setzt THPDFCMSSignOptions.SignerIdentifier auf cmsidIssuerAndSerialNumber, sodass bestehende Aufrufer ihre deterministische CMS-Byteform behalten

Setzen Sie das Feld vor dem Aufruf von HPDFCMSBuildSignedDataEx, einem providerbasierten CMS-Builder, der Platzhalterschätzung oder einer übergeordneten Signierüberladung, die THPDFCMSSignOptions akzeptiert, auf cmsidSubjectKeyIdentifier

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

Zertifikatsanforderung

Das Signiererzertifikat muss genau eine nicht leere X.509-Erweiterung mit OID 2.5.29.14 enthalten, deren Erweiterungswert eine vollständige DER-OCTET-STRING enthält

HotPDF schlägt vor dem Signieren fehl, wenn diese Erweiterung fehlt, dupliziert, leer, abgeschnitten oder fehlerhaft ist; es erzeugt keine Schlüsselkennung aus dem öffentlichen Schlüssel

SigningCertificateV2 bindet dasselbe Zertifikat weiterhin über seine Aussteller- und Serienfelder, auch wenn die SID des SignerInfo die Schlüsselkennung verwendet

Wire-Format und Verifikation

Die Schlüsselkennung wird als primitives IMPLICIT [0] codiert, SignerInfo.version ist 3, und die Version des erzeugten Ein-Signierer-SignedData ist wie von RFC 5652 gefordert 3

Die Verifikation verlangt, dass die SID-Bytes mit der eingebetteten Zertifikatserweiterung übereinstimmen, und lehnt abweichende SID-Werte, Aussteller-Serien-Datensätze mit einer Signiererversion ungleich 1, SKI-Datensätze mit einer Signiererversion ungleich 3 sowie SKI-Container mit einer äußeren Version unter 3 ab

Die kompakte Identität ist nützlich für schlüsselorientierte Zertifikatsspeicher und Workflows, die keine Ausstellernamens-Codierungen vorhalten, aber die verarbeitende Software muss die SKI-Auswahl von RFC 5652 unterstützen

HPDFCMSBuildCounterSignerInfo verwendet weiterhin Aussteller-Serien-Identitäten; konfigurieren Sie den primären Signierer über THPDFCMSSignOptions

Siehe moderne Signatur-Provider und CMS-Digest-Algorithmus-Konsistenz