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