Brainpool ECDSA 签名

HotPDF 通过既有的 ECDSA 签名 provider 管线和已加载签名管线,使用 brainpoolP256r1、brainpoolP384r1 和 brainpoolP512r1 证书创建并验证分离式 CMS 签名

允许的摘要组合

曲线允许的摘要
brainpoolP256r1SHA-256、SHA-384、SHA-512、SHA3-256、SHA3-384、SHA3-512
brainpoolP384r1SHA-384、SHA-512、SHA3-384、SHA3-512
brainpoolP512r1SHA-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