CryptVerifyMessageSignature

署名済みメッセージの署名を検証する。

CryptVerifyMessageSignature pVerifyPara, dwSignerIndex, pbSignedBlob, cbSignedBlob, pbDecoded, pcbDecoded, ppSignerCert

pVerifyPara : [var] 検証パラメータを含む CRYPT_VERIFY_MESSAGE_PARA 構造体へのポインタ。
dwSignerIndex : [int] 目的の署名のインデックス。複数の署名がある場合がある。CryptVerifyMessageSignature を繰り返し呼び出し、毎回 dwSignerIndex を増分できる。最初の署名者、または署名者が 1 人しかいない場合、このパラメータを 0 に設定する。関数が FALSE を返し、GetLastError が CRYPT_E_NO_SIGNER を返す場合、前回の呼び出しでメッセージの最後の署名者を処理したことを示す。
pbSignedBlob : [var] 署名済みメッセージを含むバッファへのポインタ。
cbSignedBlob : [int] 署名済みメッセージバッファのサイズ (バイト単位)。
pbDecoded : [var] 復号されたメッセージを受け取るバッファへのポインタ。
pcbDecoded : [var] pbDecoded バッファのサイズ (バイト単位) を指定する DWORD 値へのポインタ。関数が戻ると、この DWORD には復号されたメッセージのサイズ (バイト単位) が含まれる。このパラメータが NULL の場合、復号されたメッセージは返されない。
ppSignerCert : [var] 署名者の証明書を受け取る CERT_CONTEXT 構造体へのポインタのアドレス。この構造体の使用が終了したら、このポインタを CertFreeCertificateContext 関数に渡して解放する。署名者の証明書が不要な場合、このパラメータは NULL にできる。

(プラグイン / モジュール : crypt32.dll)

解説

署名済みメッセージの署名を検証する。

[戻り値]
関数が成功した場合、関数は 0 以外を返す。これは必ずしも署名が検証されたことを意味しない。分離メッセージの場合、pcbDecoded
が指す変数は 0 を含む。この場合、この関数は 0
以外を返すが、署名は検証されない。分離メッセージの署名を検証するには、CryptVerifyDetachedMessageSignature
関数を使用する。関数が失敗した場合は 0 を返す。拡張エラー情報を取得するには GetLastError
を呼び出す。次の表に、GetLastError 関数で最も一般的に返されるエラーコードを示す。
(以下省略)

[備考]
検証済みの署名者とメッセージについて、ppSignerCert は署名者の CERT_CONTEXT で更新される。これは
CertFreeCertificateContext を呼び出して解放しなければならない。そうでない場合、ppSignerCert は
NULL に設定される。証明書と CRL のみを含むメッセージについては、pcbDecoded は NULL に設定される。

情報

プラグイン / モジュールcrypt32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の crypt32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_crypt32_gen2.hs