THPDFCMSVerifyOptions Record
Configura limites de verificação de assinatura CMS, providers externos, pinning de política de assinatura e reverificação de timestamp
Declaração
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;
Unidade
HPDFSignVerify
Campos
| Campo | Finalidade |
|---|---|
SignatureProvider | THPDFSignatureProvider externo opcional usado para as primitivas de assinar e verificar; nil seleciona a implementação built-in |
AllowMLDSA | Permite assinaturas ML-DSA durante a verificação |
OpenSSLLibraryPath | Diretório que contém as bibliotecas OpenSSL quando a verificação passa pelo backend OpenSSL |
MaxSignerCount | Limite superior de signers primários processados; Default define 256 |
MaxCounterSignatureDepth | Limite de aninhamento para counter-signatures; Default define 8 |
RequireSignaturePolicy | Quando True, assinaturas sem política de assinatura falham |
ExpectedSignaturePolicyOID | OID de política que um SignerInfo primário deve apresentar; vazio não restringe |
ExpectedSignaturePolicyHash | Digest de política esperado para fixar; vazio não restringe |
SignaturePolicyDocument | Bytes do documento de política usados para comparação de hash |
VerifySignaturePolicyDocumentHash | Hasheia um documento de política intencionalmente vazio quando True |
RejectUnknownSignaturePolicyHash | Faz a verificação falhar quando o hash de política embutido não corresponde a nenhum valor esperado |
SkipSignatureTimestampVerification | Confia em um veredito em cache para o token de timestamp de assinatura embutido durante a validação em lote |
Default | Class function que retorna um record zerado com MaxSignerCount 256 e MaxCounterSignatureDepth 8 |
Notas de uso
- Sempre parta de
THPDFCMSVerifyOptions.Defaultem vez de um local zerado, para que os limites de signer e profundidade sejam de fato aplicados - Os campos de pinning de política se aplicam apenas a valores SignerInfo primários; campos esperados vazios deixam a checagem de política correspondente sem restrição
- A validação em lote define
SkipSignatureTimestampVerificationquando um cache de timestamp compartilhado já guarda o veredito do token; timestamps de documento nunca seguem esse caminho