SetSignProcessContentsEstimate
安全和签名
描述
配置用于估计签名 /Contents 容量的材料大小和安全余量
在写入签名字段之前,估计器会将 CMS 基础大小与证书链、吊销和时间戳方面的需求合并计算
语法
Delphi
Function TPDFlib.SetSignProcessContentsEstimate(SignProcessID, CertificateChainBytes, CRLBytes, OCSPBytes, TimeStampTokenBytes, SafetyMarginPercent: Integer): Integer;
ActiveX
Function PDFlib::SetSignProcessContentsEstimate(SignProcessID As Long, CertificateChainBytes As Long, CRLBytes As Long, OCSPBytes As Long, TimeStampTokenBytes As Long, SafetyMarginPercent As Long) As Long
DLL
int DLSetSignProcessContentsEstimate(int InstanceID, int SignProcessID, int CertificateChainBytes, int CRLBytes, int OCSPBytes, int TimeStampTokenBytes, int SafetyMarginPercent);
参数
| SignProcessID | 由 NewSignProcessFrom* 函数返回的值 |
|---|---|
| CertificateChainBytes | 传入 -1 可从本地 Windows 缓存发现剩余证书链,传入 0 可省略额外链容量,或传入正值以提供预期编码大小 |
| CRLBytes | 计划的证书撤销列表所需 DER 字节总数 |
| OCSPBytes | 计划 OCSP 响应所需的 DER 字节总数 |
| TimeStampTokenBytes | 计划的 RFC 3161 时间戳令牌的预期 DER 大小 |
| SafetyMarginPercent | 对齐前应用的附加百分比,范围为 0 至 100 |
返回值
| 1 | 已接受估算配置 |
|---|---|
| 0 | 进程 ID、材料大小、聚合大小或百分比无效 |
备注
新的签名流程默认采用缓存链发现,不包含计划的撤销或时间戳材料,并保留 15% 的安全余量
本地 PFX 签名使用测得的 CMS 大小;系统存储、CNG、Ed25519 和外部摘要签名则从证书公钥推导最大签名大小,不调用私钥或回调
证书链发现仅使用缓存,绝不通过网络检索
结果按 256 字节对齐并限制为 64 MiB,SetSignProcessReserveContentsBytes 仍作为可额外添加的手动预留
另请参阅
GetSignProcessEstimatedContentsBytes, SetSignProcessReserveContentsBytes, SetPAdESSignatureTimeStampToken