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;

参数

CMSBytesDER 编码的 detached CMS SignedData
Data原始的被覆盖字节,即签名时被摘要的同一份输入
SignerIndex要验证的从零开始的签名者序号
SignerCount接收 CMS 中发现的签名者数量
NativeError接收粗粒度的失败类别:输入残缺为 13、摘要问题为 50,或失败基础组件的 CNG 状态码

返回值

0CMS 可解析但其签名算法不在现代集合内,本验证方无需负责
1签名者验证成功
2解析、摘要或基础组件步骤失败;原因在 NativeError 中

备注

消息摘要比较为常数时间,PSS 参数必须与 SignerInfo 指定同一摘要算法,与 RFC 4056 一致;结果 0 是在告诉调用方把 blob 转交平台验证器

另请参阅

PLBuildModernDetachedCMS, PLIsModernDetachedCMS, PLCertificateSubjectAndIssuer