ハッシュオブジェクトの署名を検証する。(Unicode)
CryptVerifySignatureW hHash, pbSignature, dwSigLen, hPubKey, szDescription, dwFlags
hHash : [int] 検証するハッシュオブジェクトへのハンドル。 pbSignature : [var] 検証する署名データのアドレス。 dwSigLen : [int] pbSignature 署名データのバイト数。 hPubKey : [int] 署名を認証するために使用する公開鍵へのハンドル。この公開鍵は、元々デジタル署名を作成するために使用された鍵ペアに属している必要がある。 szDescription : [wstr] このパラメータはもはや使用すべきではなく、セキュリティ上の脆弱性を防ぐために NULL に設定しなければならない。ただし、Microsoft Base Cryptographic Provider の後方互換性のため、引き続きサポートされている。 dwFlags : [int] 以下のフラグ値が定義されている。
(プラグイン / モジュール : advapi32.dll)
ハッシュオブジェクトの署名を検証する。(Unicode) [戻り値] 関数が成功した場合、戻り値は TRUE となる。失敗した場合、戻り値は FALSE となる。拡張エラー情報を取得するには GetLastError を呼び出す。「NTE」で始まるエラーコードは使用中の特定の CSP が生成する。以下のエラーコードが返される可能性がある。 (以下省略) [備考] CryptVerifySignature 関数はハッシュを確定させる。この呼び出しの後は、ハッシュにデータを追加できない。CryptHashData や CryptHashSessionKey の追加呼び出しは失敗する。アプリケーションがハッシュの使用を終えた後は、CryptDestroyHash を呼び出してハッシュオブジェクトを破棄する。.NET Framework API で署名を生成し、それを CryptVerifySignature 関数で検証しようとすると、関数は失敗し GetLastError は NTE_BAD_SIGNATURE を返す。これはネイティブ Win32 API と .NET Framework API でバイト順序が異なるためである。ネイティブ暗号 API はリトルエンディアンのバイト順を使用するが、.NET Framework API はビッグエンディアンのバイト順を使用する。.NET Framework API で生成した署名を検証する場合は、CryptVerifySignature 関数を呼び出して署名を検証する前に、署名バイトの順序を入れ替えなければならない。
| プラグイン / モジュール | advapi32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の advapi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_advapi32_gen2.hs |