Înregistrarea THPDFCMSVerifyOptions
Configurează limitele verificării semnăturilor CMS, furnizorii externi, fixarea politicii de semnătură și reverificarea timestamp-urilor
Declarație
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;
Unitate
HPDFSignVerify
Câmpuri
| Câmp | Scop |
|---|---|
SignatureProvider | THPDFSignatureProvider extern opțional folosit pentru primitivele de semnare și verificare; nil selectează implementarea predefinită |
AllowMLDSA | Permite semnături ML-DSA în timpul verificării |
OpenSSLLibraryPath | Directorul care conține bibliotecile OpenSSL când verificarea trece prin backend-ul OpenSSL |
MaxSignerCount | Limita superioară a semnatarilor primari procesați; Default setează 256 |
MaxCounterSignatureDepth | Limita de imbricare pentru contra-semnături; Default setează 8 |
RequireSignaturePolicy | Când este True, semnăturile fără politică de semnătură eșuează |
ExpectedSignaturePolicyOID | OID-ul de politică pe care un SignerInfo primar trebuie să-l prezinte; gol nu constrânge |
ExpectedSignaturePolicyHash | Digestul de politică așteptat, de fixat; gol nu constrânge |
SignaturePolicyDocument | Octeții documentului de politică folosiți pentru comparația de hash |
VerifySignaturePolicyDocumentHash | Calculează hash-ul unui document de politică intenționat gol când este True |
RejectUnknownSignaturePolicyHash | Face verificarea să eșueze când hash-ul de politică încorporat nu corespunde niciunei valori așteptate |
SkipSignatureTimestampVerification | Are încredere într-un verdict din cache pentru tokenul de timestamp al semnăturii încorporat, în timpul validării în lot |
Default | Funcție de clasă care returnează o înregistrare zeroizată cu MaxSignerCount 256 și MaxCounterSignatureDepth 8 |
Note de utilizare
- Plecați întotdeauna de la
THPDFCMSVerifyOptions.Defaultîn locul unei variabile locale zeroizate, astfel încât limitele de semnatari și de adâncime să fie efectiv aplicate - Câmpurile de fixare a politicii se aplică doar valorilor SignerInfo primare; câmpurile așteptate goale lasă verificarea de politică corespunzătoare neconstrânsă
- Validarea în lot setează
SkipSignatureTimestampVerificationcând un cache de timestamp partajat deține deja verdictul tokenului; timestamp-urile de document nu trec niciodată pe acea cale