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