Registro THPDFCMSVerifyOptions
Configura límites de verificación de firmas CMS, proveedores externos, fijado de política de firma y reverificación de sellos de tiempo
Declaración
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;
Unidad
HPDFSignVerify
Campos
| Campo | Propósito |
|---|---|
SignatureProvider | THPDFSignatureProvider externo opcional usado para las primitivas de firma y verificación; nil selecciona la implementación integrada |
AllowMLDSA | Permite firmas ML-DSA durante la verificación |
OpenSSLLibraryPath | Directorio que contiene las bibliotecas OpenSSL cuando la verificación pasa por el backend OpenSSL |
MaxSignerCount | Límite superior de firmantes primarios procesados; Default fija 256 |
MaxCounterSignatureDepth | Límite de anidamiento para contrafirmas; Default fija 8 |
RequireSignaturePolicy | Cuando es True, las firmas sin política de firma fallan |
ExpectedSignaturePolicyOID | OID de política que un SignerInfo primario debe presentar; vacío no restringe |
ExpectedSignaturePolicyHash | Resumen de política esperado a fijar; vacío no restringe |
SignaturePolicyDocument | Bytes del documento de política usados para la comparación de hashes |
VerifySignaturePolicyDocumentHash | Cuando es True, calcula el hash de un documento de política vacío intencionadamente |
RejectUnknownSignaturePolicyHash | Hace fallar la verificación cuando el hash de política incrustado no coincide con ningún valor esperado |
SkipSignatureTimestampVerification | Confía en un veredicto en caché para el token de sello de tiempo de la firma incrustada durante la validación por lotes |
Default | Función de clase que devuelve un registro a cero con MaxSignerCount 256 y MaxCounterSignatureDepth 8 |
Notas de uso
- Parta siempre de
THPDFCMSVerifyOptions.Defaulten lugar de un local a cero, para que los límites de firmantes y de profundidad se apliquen de verdad - Los campos de fijado de política se aplican solo a valores SignerInfo primarios; los campos esperados vacíos dejan la comprobación de política correspondiente sin restringir
- La validación por lotes activa
SkipSignatureTimestampVerificationcuando una caché de sellos de tiempo compartida ya guarda el veredicto del token; los sellos de tiempo del documento nunca pasan por ahí