SHA3 PDF 签名和时间戳
HotPDF 在分离的 CMS、签名属性、RSA 或 ECDSA 签名标识符、RFC 3161 消息摘要、签名时间戳、文档时间戳、Seed Value 字典和已加载签名验证中应用统一的摘要策略
摘要选择
THPDFCMSDigestAlgorithm 提供 cmsdaSHA256、cmsdaSHA384、cmsdaSHA512、cmsdaSHA3_256、cmsdaSHA3_384 和 cmsdaSHA3_512
Options := HPDFCMSDefaultOptions(palBaseline_B_T);
Options.DigestAlgorithm := cmsdaSHA3_384;
Options.SignatureScheme := cmsRSAPSS;
Options.PSSSaltLength := 48;
HPDFCMSBuildSignedDataEx、流签名函数、外部签名者和签名提供者都使用选定的摘要,而不回退到 SHA-256
RSA PKCS#1 v1.5 使用摘要特定的 DigestInfo,RSA-PSS 使用匹配的哈希和 MGF1 参数,cmsECDSA 为选定的摘要发出组合的 ECDSA 签名 OID
时间戳策略
GetContentTimeStamp 接收选定的文档摘要,GetSignatureTimeStamp 接收 CMS 签名值的选定摘要
返回的 RFC 3161 令牌被拒绝,除非消息摘要 OID 和字节都匹配选定的摘要策略
带 DigestAlgorithm 参数的 THotPDF.RenewPAdESLTATimestamp 重载将相同的策略应用于存档时间戳续期,而兼容性重载保持 SHA-256
PDF 声明和 Seed Values
在 THPDFPage.AttachPAdESSeedValue 中使用 SHA3-256、SHA3-384 或 SHA3-512 会自动声明 ISO 32001 PDF 2.0 开发者扩展
目录条目使用 /Extensions /ISO_,带 /BaseVersion /2.0、/ExtensionLevel 32001、/ExtensionRevision (:2022) 和 /Type /DeveloperExtensions
提供者要求
THPDFPKCS11SignatureProvider 将 SHA3 请求映射到相应的 PKCS#11 哈希和 MGF 标识符,并将原始 ECDSA 签名转换为 CMS DER
THPDFWindowsKeyStorageSignatureProvider 将选定的 SHA3 算法传递给 CNG,并将原始 ECDSA 签名转换为 CMS DER
未实现请求的 SHA3 算法的令牌、密钥存储提供者或 Windows 版本返回显式的不受支持状态
SignPDFWithSystemCertificate 对 Windows 证书存储密钥应用相同的 CNG 策略,而旧版 CryptoAPI 密钥显式拒绝 SHA3
未实现所请求 SHA3 算法的 token、密钥存储提供程序或 Windows 版本会返回明确的不支持状态
流式性能
PDF 字节范围以有界块进行哈希,SHA3 签名可以与 PDF MAC 生成共享相同的范围扫描,包括当两个策略选择相同算法时直接复用摘要