THPDFCMSVerifyOptions Record
Ρυθμίζει όρια επαλήθευσης υπογραφών CMS, εξωτερικούς providers, pinning signature policy και επαναληπτική επαλήθευση timestamp
Δήλωση
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;
Μονάδα
HPDFSignVerify
Πεδία
| Πεδίο | Σκοπός |
|---|---|
SignatureProvider | Προαιρετικός εξωτερικός THPDFSignatureProvider για τις primitives υπογραφής και επαλήθευσης, το nil επιλέγει την ενσωματωμένη υλοποίηση |
AllowMLDSA | Επιτρέπει υπογραφές ML-DSA κατά την επαλήθευση |
OpenSSLLibraryPath | Κατάλογος με τις βιβλιοθήκες OpenSSL όταν η επαλήθευση περνά από το OpenSSL backend |
MaxSignerCount | Άνω όριο στους primary signers που επεξεργάζονται, το Default ορίζει 256 |
MaxCounterSignatureDepth | Όριο εμφώλευσης για counter-signatures, το Default ορίζει 8 |
RequireSignaturePolicy | Όταν είναι True, υπογραφές χωρίς signature policy αποτυγχάνουν |
ExpectedSignaturePolicyOID | OID πολιτικής που πρέπει να παρουσιάζει ένα primary SignerInfo, το κενό δεν περιορίζει |
ExpectedSignaturePolicyHash | Αναμενόμενος digest πολιτικής για pinning, το κενό δεν περιορίζει |
SignaturePolicyDocument | Bytes εγγράφου πολιτικής που χρησιμοποιούνται για σύγκριση hash |
VerifySignaturePolicyDocumentHash | Υπολογισμός hash σε σκόπιμα κενό έγγραφο πολιτικής όταν είναι True |
RejectUnknownSignaturePolicyHash | Αποτυγχάνει την επαλήθευση όταν το ενσωματωμένο hash πολιτικής δεν ταιριάζει με κανένα αναμενόμενο |
SkipSignatureTimestampVerification | Εμπιστεύεται cached ετυμηγορία για το ενσωματωμένο token signature timestamp κατά την ομαδική επαλήθευση |
Default | Class function που επιστρέφει μηδενισμένο record με MaxSignerCount 256 και MaxCounterSignatureDepth 8 |
Σημειώσεις χρήσης
- Ξεκινήστε πάντα από το
THPDFCMSVerifyOptions.Defaultαντί για μηδενισμένο τοπικό, ώστε τα όρια signer και βάθους να εφαρμόζονται στην πράξη - Τα πεδία policy pinning ισχύουν μόνο για primary SignerInfo τιμές, και κενά αναμενόμενα πεδία αφήνουν τον αντίστοιχο έλεγχο πολιτικής χωρίς περιορισμό
- Η ομαδική επαλήθευση ορίζει
SkipSignatureTimestampVerificationόταν μια κοινή timestamp cache κρατά ήδη την ετυμηγορία του token, και τα document timestamps δεν ακολουθούν ποτέ αυτό το μονοπάτι