THPDFCMSVerifyOptions Record
Configura i limiti di verifica delle firme CMS, i provider esterni, il pinning della policy di firma e la ri-verifica dei timestamp
Dichiarazione
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
Campi
| Campo | Scopo |
|---|---|
SignatureProvider | THPDFSignatureProvider esterno opzionale usato per le primitive di firma e verifica; nil seleziona l'implementazione integrata |
AllowMLDSA | Consente firme ML-DSA durante la verifica |
OpenSSLLibraryPath | Directory che contiene le librerie OpenSSL quando la verifica passa dal backend OpenSSL |
MaxSignerCount | Limite superiore sui firmatari primari elaborati; Default imposta 256 |
MaxCounterSignatureDepth | Limite di annidamento per le controfirme; Default imposta 8 |
RequireSignaturePolicy | Quando True, le firme senza una policy di firma falliscono |
ExpectedSignaturePolicyOID | OID di policy che un SignerInfo primario deve presentare; vuoto non vincola |
ExpectedSignaturePolicyHash | Digest di policy atteso da fissare; vuoto non vincola |
SignaturePolicyDocument | Byte del documento di policy usati per il confronto dell'hash |
VerifySignaturePolicyDocumentHash | Quando True esegue l'hash di un documento di policy volutamente vuoto |
RejectUnknownSignaturePolicyHash | Fallisce la verifica quando l'hash di policy incorporato non corrisponde a nessun valore atteso |
SkipSignatureTimestampVerification | Si fida di un verdetto in cache per il token timestamp della firma incorporato durante la validazione in batch |
Default | Funzione di classe che restituisce un record azzerato con MaxSignerCount 256 e MaxCounterSignatureDepth 8 |
Note sull'utilizzo
- Parti sempre da
THPDFCMSVerifyOptions.Defaultinvece di un locale azzerato, così i limiti di firmatari e di profondità vengono davvero applicati - I campi di policy pinning si applicano solo ai valori SignerInfo primari; i campi attesi vuoti lasciano il corrispondente controllo di policy senza vincoli
- La validazione in batch imposta
SkipSignatureTimestampVerificationquando una cache di timestamp condivisa contiene già il verdetto del token; i timestamp del documento non prendono mai quella strada