Brainpool ECDSA 签名
HotPDF 通过既有的 ECDSA 签名 provider 管线和已加载签名管线,使用 brainpoolP256r1、brainpoolP384r1 和 brainpoolP512r1 证书创建并验证分离式 CMS 签名
允许的摘要组合
| 曲线 | 允许的摘要 |
|---|---|
brainpoolP256r1 | SHA-256、SHA-384、SHA-512、SHA3-256、SHA3-384、SHA3-512 |
brainpoolP384r1 | SHA-384、SHA-512、SHA3-384、SHA3-512 |
brainpoolP512r1 | SHA-512、SHA3-512 |
HPDFCMSBuildSignedDataEx、HPDFCMSBuildSignedDataWithProvider、外部 signer 工作流、流式签名以及多 signer 构造,都会在派发签名 callback 或 provider 之前校验这张矩阵
当 signer 摘要、摘要专属的 ECDSA 签名标识符或 Brainpool 曲线策略选出了不兼容的组合时,验证会报告摘要算法不匹配
严格的证书与签名编码
signer 证书必须在 SubjectPublicKeyInfo 中把 id-ecPublicKey 编码为恰好一个可识别的 ECParameters.namedCurve 对象标识符
显式或隐式曲线参数、拖尾的算法参数、未知曲线以及 ECDSA 签名 AlgorithmIdentifier 参数都会被拒绝,而不是被规整化
CMS 签名值使用规范的 DER ECDSA-Sig-Value 编码,包括最小化编码的正整数 r 和 s
Windows 加密 provider
本地验证通过 Windows CNG 通用 ECDSA provider 导入每个 Brainpool 公开点,并带上不可变的 ECCCurveName 属性
如果操作系统没有暴露所请求的命名曲线,HotPDF 会返回一个明确的 unsupported 或 provider 不可用结果,不会替换成其他曲线
周边的生产方与验证方契约参见 modern signature providers、SHA3 PDF signatures and timestamps 和 CMS digest-algorithm consistency