Enregistrement THPDFCMSVerifyOptions
Configure les limites de vérification de signatures CMS, les fournisseurs externes, l'épinglage de politique de signature et la revérification d'horodatage
Déclaration
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
Champs
| Champ | Objectif |
|---|---|
SignatureProvider | THPDFSignatureProvider externe optionnel utilisé pour les primitives de signature et de vérification ; nil sélectionne l'implémentation intégrée |
AllowMLDSA | Autorise les signatures ML-DSA pendant la vérification |
OpenSSLLibraryPath | Répertoire contenant les bibliothèques OpenSSL quand la vérification passe par le backend OpenSSL |
MaxSignerCount | Borne supérieure des signataires principaux traités ; Default fixe 256 |
MaxCounterSignatureDepth | Limite d'imbrication des contre-signatures ; Default fixe 8 |
RequireSignaturePolicy | Quand True, les signatures sans politique de signature échouent |
ExpectedSignaturePolicyOID | OID de politique qu'un SignerInfo principal doit présenter ; vide ne contraint pas |
ExpectedSignaturePolicyHash | Condensat de politique attendu à épingler ; vide ne contraint pas |
SignaturePolicyDocument | Octets du document de politique utilisés pour la comparaison de hachage |
VerifySignaturePolicyDocumentHash | Hache un document de politique volontairement vide quand True |
RejectUnknownSignaturePolicyHash | Fait échouer la vérification quand le hachage de politique embarqué ne correspond à aucune valeur attendue |
SkipSignatureTimestampVerification | Fait confiance à un verdict en cache pour le jeton d'horodatage de signature embarqué pendant la validation par lot |
Default | Fonction de classe renvoyant un enregistrement à zéro avec MaxSignerCount 256 et MaxCounterSignatureDepth 8 |
Notes d'utilisation
- Partez toujours de
THPDFCMSVerifyOptions.Defaultplutôt que d'une variable locale à zéro, pour que les limites de signataires et de profondeur soient réellement appliquées - Les champs d'épinglage de politique s'appliquent uniquement aux SignerInfo principaux ; les champs attendus vides laissent le contrôle de politique correspondant sans contrainte
- La validation par lot définit
SkipSignatureTimestampVerificationquand un cache d'horodatages partagé détient déjà le verdict du jeton ; les horodatages de document ne passent jamais par ce chemin