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 | 検証する 0 起点の署名者 |
| SignerCount | CMS 内で見つかった署名者の数を受け取ります |
| NativeError | 大まかな失敗クラスを受け取ります。不正な入力は 13、ダイジェストの問題は 50、または失敗したプリミティブの CNG ステータス |
戻り値
| 0 | CMS は解析できるが署名アルゴリズムがモダンな集合の外。この検証側の管轄ではありません |
|---|---|
| 1 | 署名者の検証に成功 |
| 2 | 解析、ダイジェスト、プリミティブのいずれかのステップが失敗。理由は NativeError に入ります |
備考
メッセージダイジェストの比較は定数時間で、PSS パラメータは RFC 4056 に倣い SignerInfo と同じダイジェストを指名しなければなりません。結果 0 は、blob をプラットフォームの検証器へ渡すよう呼び出し側に伝えます
関連項目
PLBuildModernDetachedCMS, PLIsModernDetachedCMS, PLCertificateSubjectAndIssuer