PLVerifyModernDetachedCMS
密码学、数字签名
描述
针对原始数据字节验证现代 detached CMS 的某个签名者
验证方解析 SignedData,把已签名属性里的消息摘要与数据比对,然后用签名者证书的公钥校验原始签名:纯 Pascal 的 Ed25519、基于曲线参数的 ECDSA,或经 CNG 的 RSA PKCS#1 与 PSS
语法
Delphi
Function PLVerifyModernDetachedCMS(Const CMSBytes, Data: AnsiString;
SignerIndex: Integer; Out SignerCount: Integer;
Out NativeError: Cardinal): Integer;参数
| CMSBytes | DER 编码的 detached CMS SignedData |
|---|---|
| Data | 原始的被覆盖字节,即签名时被摘要的同一份输入 |
| SignerIndex | 要验证的从零开始的签名者序号 |
| SignerCount | 接收 CMS 中发现的签名者数量 |
| NativeError | 接收粗粒度的失败类别:输入残缺为 13、摘要问题为 50,或失败基础组件的 CNG 状态码 |
返回值
| 0 | CMS 可解析但其签名算法不在现代集合内,本验证方无需负责 |
|---|---|
| 1 | 签名者验证成功 |
| 2 | 解析、摘要或基础组件步骤失败;原因在 NativeError 中 |
备注
消息摘要比较为常数时间,PSS 参数必须与 SignerInfo 指定同一摘要算法,与 RFC 4056 一致;结果 0 是在告诉调用方把 blob 转交平台验证器
另请参阅
PLBuildModernDetachedCMS, PLIsModernDetachedCMS, PLCertificateSubjectAndIssuer