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