THPDFCMSVerifyOptions Record
Konfiguriert Grenzen der CMS-Signaturverifikation, externe Provider, Signature-Policy-Pinning und Timestamp-Nachverifikation
Deklaration
THPDFCMSVerifyOptions= record
SignatureProvider: THPDFSignatureProvider;
AllowMLDSA: boolean;
OpenSSLLibraryPath: string;
MaxSignerCount: Integer;
MaxCounterSignatureDepth: Integer;
// Policy pinning is applied to primary SignerInfo values. Empty
// expected fields do not constrain the corresponding policy field
RequireSignaturePolicy: boolean;
ExpectedSignaturePolicyOID: AnsiString;
ExpectedSignaturePolicyHash: TBytes;
SignaturePolicyDocument: TBytes;
// Set this flag to hash an intentionally empty policy document
VerifySignaturePolicyDocumentHash: boolean;
RejectUnknownSignaturePolicyHash: boolean;
// Batch validation sets this when a shared timestamp cache already
// holds the verdict for the embedded signature timestamp token: token
// re-verification is skipped and the caller restores the cached
// THPDFTimestampInfo afterwards. Document timestamps (ETSI.RFC3161)
// never take this path because the token is the primary signature
SkipSignatureTimestampVerification: boolean;
class function Default: THPDFCMSVerifyOptions; static;
end;
Unit
HPDFSignVerify
Felder
| Feld | Zweck |
|---|---|
SignatureProvider | Optionaler externer THPDFSignatureProvider für Signier- und Verifikationsprimitiven; nil wählt die eingebaute Implementierung |
AllowMLDSA | Erlaubt ML-DSA-Signaturen bei der Verifikation |
OpenSSLLibraryPath | Verzeichnis mit den OpenSSL-Bibliotheken, wenn die Verifikation über das OpenSSL-Backend läuft |
MaxSignerCount | Obergrenze verarbeiteter primärer Signatoren; Default setzt 256 |
MaxCounterSignatureDepth | Verschachtelungsgrenze für Gegensignaturen; Default setzt 8 |
RequireSignaturePolicy | Bei True scheitern Signaturen ohne Signature Policy |
ExpectedSignaturePolicyOID | Policy-OID, die eine primäre SignerInfo vorweisen muss; leer bedeutet keine Einschränkung |
ExpectedSignaturePolicyHash | Erwarteter Policy-Digest zum Festpinen; leer bedeutet keine Einschränkung |
SignaturePolicyDocument | Für den Hash-Vergleich verwendete Policy-Dokument-Bytes |
VerifySignaturePolicyDocumentHash | Bei True ein absichtlich leeres Policy-Dokument hashen |
RejectUnknownSignaturePolicyHash | Lässt die Verifikation scheitern, wenn der eingebettete Policy-Hash auf keinen erwarteten Wert passt |
SkipSignatureTimestampVerification | Vertraut bei der Batch-Validierung einem zwischengespeicherten Urteil für das eingebettete Signaturzeitstempel-Token |
Default | Klassenfunktion, die einen genullten Record mit MaxSignerCount 256 und MaxCounterSignatureDepth 8 zurückgibt |
Verwendungshinweise
- Beginnen Sie immer mit
THPDFCMSVerifyOptions.Defaultstatt mit einem genullten Lokal, damit Signator- und Tiefengrenzen wirklich greifen - Policy-Pinning-Felder gelten nur für primäre SignerInfo-Werte; leere Erwartungsfelder lassen die jeweilige Policy-Prüfung unbeschränkt
- Die Batch-Validierung setzt
SkipSignatureTimestampVerification, wenn ein gemeinsamer Timestamp-Cache das Token-Urteil bereits hält; Dokumentzeitstempel nehmen diesen Weg nie