SetSignProcessExternalDigestSigner
安全和签名
描述
将 DER 编码的 X.509 证书和外部摘要签名格式附加到 PDF 签名流程
库构建分离的 CMS 对象,并只将其已认证属性的最终摘要发送给注册回调
语法
Delphi
Function TPDFlib.SetSignProcessExternalDigestSigner(SignProcessID: Integer; Const CertificateDER: AnsiString; SignatureAlgorithm, SignatureReserveBytes: Integer): Integer;
ActiveX
Function PDFlib::SetSignProcessExternalDigestSigner(SignProcessID As Long, CertificateDER As Variant, SignatureAlgorithm As Long, SignatureReserveBytes As Long) As Long
DLL
int DLSetSignProcessExternalDigestSigner(int InstanceID, int SignProcessID, const char* CertificateDER, int CertificateLength, int SignatureAlgorithm, int SignatureReserveBytes);
参数
| SignProcessID | 由 NewSignProcessFrom* 函数返回的值 |
|---|---|
| CertificateDER | 与外部私钥对应的完整 DER 编码 RSA 或 ECDSA X.509 证书 |
| SignatureAlgorithm | 1 表示 RSA PKCS#1 v1.5,2 表示 DER 编码的 ECDSA,3 表示 ECDSA P1363 r || s |
| SignatureReserveBytes | 原始签名的预期上限,或使用 0 从证书公钥推导该上限 |
返回值
| 1 | 已附加外部身份配置 |
|---|---|
| 0 | 进程 ID、证书、算法或保留大小无效 |
备注
在结束签名流程前,分配 OnExternalDigestSign,调用 DLSetExternalDigestSignCallback,或通过 SetExternalDigestSignCallback 提供 ActiveX 回调对象
调整 /Contents 占位符大小时不会调用回调,最终签名时恰好调用一次
在接受 PDF 前,会依据 CertificateDER 验证返回的签名字节
当进程仍使用旧版 adbe.pkcs7.sha1 默认值时,此方法会自动选择 adbe.pkcs7.detached
另请参阅
OnExternalDigestSign、SetExternalDigestSignCallback、SetSignProcessContentsEstimate、SetSignProcessExternalDigestSignerFromFile