CryptSignHashW

データに署名する。(CryptSignHashW)

CryptSignHashW hHash, dwKeySpec, szDescription, dwFlags, pbSignature, pdwSigLen

hHash : [int] 署名するハッシュオブジェクトのハンドル。
dwKeySpec : [int] プロバイダのコンテナから使用する秘密鍵を識別する。AT_KEYEXCHANGE または AT_SIGNATURE を指定できる。
szDescription : [wstr] このパラメータは既に使用されておらず、セキュリティ上の脆弱性を防ぐために NULL に設定しなければならない。ただし、Microsoft Base Cryptographic Provider の後方互換性のため、引き続きサポートされている。
dwFlags : [int] 以下のフラグ値が定義されている。
pbSignature : [var] 署名データを受け取るバッファへのポインタ。
pdwSigLen : [var] pbSignature バッファのサイズ (バイト単位) を指定する DWORD 値へのポインタ。関数が戻るとき、DWORD 値にはバッファに格納されたバイト数が含まれる。

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

解説

データに署名する。(CryptSignHashW)

[戻り値]
関数が成功した場合は TRUE を返す。失敗した場合は FALSE を返す。拡張エラー情報を取得するには GetLastError
を呼び出す。「NTE」で始まるエラーコードは使用中の特定の CSP が生成する。以下のエラーコードが返される可能性がある。
(以下省略)

[備考]
この関数を呼び出す前に、CryptCreateHash 関数を呼び出してハッシュオブジェクトへのハンドルを取得しなければならない。続いて
CryptHashData または CryptHashSessionKey
関数を使用して、データまたはセッション鍵をハッシュオブジェクトに追加する。CryptSignHash 関数はハッシュを確定させる。DSS
CSP は MD5 および SHA ハッシュアルゴリズムによるハッシュ化をサポートしているが、DSS CSP で署名できるのは SHA
ハッシュのみである。この関数が呼び出された後は、ハッシュにデータを追加できない。CryptHashDataCryptHashSessionKey
の追加呼び出しは失敗する。アプリケーションがハッシュの使用を終えた後は、CryptDestroyHash
関数を呼び出してハッシュオブジェクトを破棄する。既定では、Microsoft の RSA プロバイダは署名に PKCS #1
パディング方式を使用する。署名の DigestInfo 要素内のハッシュ OID は、ハッシュオブジェクトに関連付けられたアルゴリズム
OID に自動的に設定される。CRYPT_NOHASHOID フラグを使用すると、この OID
が署名から省略される。ときどき、別の場所で生成されたハッシュ値に署名する必要がある。これは次の操作の順序で実行できる。
(以下省略)

情報

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