SetSignProcessCustomSubFilter

安全和签名

描述

为数字签名流程以自定义字符串设置 SubFilter 条目,指定签名值的编码

类似于 SetSignProcessSubFilter,但 Subfilter 条目可自定义

当提供的字符串以 ETSI. 开头时(PAdES 基线签名通常为 ETSI.CAdES.detached,文档时间戳通常为 ETSI.RFC3161),库会按 ETSI EN 319 142-1 v1.2.1 §5.6 的要求,自动将 PAdES /Extensions /ESIC <</BaseVersion /1.7 /ExtensionLevel 2>> 条目添加到文档目录,对于通过 TPDFlib 创建的 PDF,还会同时添加等效的 Adobe 声明(/Extensions /ADBE,位于 /ExtensionLevel 8),该注入具有幂等性,且绝不会降低现有的更高扩展级别

选择 ETSI.CAdES.detached 还会启用 PAdES-B-B 签名路径:生成的 CMS 负载带有 content-type(id-data)和 signing-certificate-v2(RFC 5035 / RFC 5816)已认证属性,并且省略了 EN 319 142-1 表 1 禁止的 signing-time 属性,因为库会将自己的属性数组交给 CryptSignMessage。签名证书由其 SHA-256 摘要标识(当 SetSignProcessDigestAlgorithm 选择更大的哈希时为 SHA-384 / SHA-512),当前构建还包含可选的 IssuerSerial 元组(颁发者可分辨名称加序列号),以便更严格的 PAdES 验证器能将签名证书与候选证书链交叉核对

语法

Delphi

Function TPDFlib.SetSignProcessCustomSubFilter(SignProcessID: Integer; SubFilterStr: WideString): Integer;

ActiveX

Function PDFlib::SetSignProcessCustomSubFilter(SignProcessID As Long, SubFilterStr As String) As Long

DLL

int DLSetSignProcessCustomSubFilter(int InstanceID, int SignProcessID, const wchar_t * SubFilterStr);

参数

SignProcessID由 NewSignProcessFromFile、NewSignProcessFromStream 或 NewSignProcessFromString 函数返回的值
SubFilterStr自定义 SubFilter 字符串条目

返回值

0SignProcessID 参数无效,或 SubFilter 参数超出范围
1Success