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