THPDFCSCSignatureProvider Class
THPDFCSCSignatureProvider = class(THPDFSignatureProvider)
function Sign(const Request: THPDFSignatureProviderRequest;
out Signature: TBytes): THPDFSignatureProviderStatus; override;
function SignHashBatch(const Requests: THPDFCSCSignatureRequests;
const OperationIdentifier: AnsiString;
out Signatures: THPDFCSCSignatures): THPDFSignatureProviderStatus;
function EstimateSignatureSize(const Request: THPDFSignatureProviderRequest;
out SignatureBytes: Integer): THPDFSignatureProviderStatus; override;
procedure Cancel(const OperationIdentifier: AnsiString); override;
function RefreshCredentialInfo(const OperationIdentifier: AnsiString = ''):
THPDFSignatureProviderStatus;
function GetCertificateChain: THPDFCSCCertificateChain;
function TimestampDigest(const Digest: TBytes;
const DigestAlgorithmOID, Nonce, OperationIdentifier: AnsiString;
out TimestampToken: TBytes): THPDFSignatureProviderStatus;
end;
The provider is serialized at the credential-operation boundary so a single-use SAD cannot race across concurrent signatures, while cancellation remains independently callable
SignHashBatch accepts a bounded ordered array of digest requests that share one digest and signature algorithm, then returns a positionally corresponding signature array
spcSafeSignRetry is advertised only when stable idempotency is enabled