CryptAcquireCertificatePrivateKey

証明書の秘密鍵を取得する。

CryptAcquireCertificatePrivateKey pCert, dwFlags, pvParameters, phCryptProvOrNCryptKey, pdwKeySpec, pfCallerFreeProvOrNCryptKey

pCert : [var] 秘密鍵を取得する対象の証明書コンテキストを含む CERT_CONTEXT 構造体のアドレス。
dwFlags : [int] 
pvParameters : [intptr] CRYPT_ACQUIRE_WINDOW_HANDLE_FLAG が設定されている場合、これは HWND のアドレスとなる。CRYPT_ACQUIRE_WINDOW_HANDLE_FLAG が設定されていない場合、このパラメーターは NULL でなければならない。
phCryptProvOrNCryptKey : [var] CryptoAPI プロバイダーまたは CNG 鍵のハンドルを受け取る HCRYPTPROV_OR_NCRYPT_KEY_HANDLE 変数のアドレス。pdwKeySpec 変数が CERT_NCRYPT_KEY_SPEC フラグを受け取った場合、これは NCRYPT_KEY_HANDLE 型の CNG 鍵ハンドルとなり、そうでなければ HCRYPTPROV 型の CryptoAPI プロバイダーハンドルとなる。このハンドルをいつどのように解放するかについては、pfCallerFreeProvOrNCryptKey パラメーターの説明を参照。
pdwKeySpec : [var] 
pfCallerFreeProvOrNCryptKey : [var] phCryptProvOrNCryptKey 変数に返されたハンドルを呼び出し元が解放する必要があるかを示す値を受け取る BOOL 変数のアドレス。次のいずれかが真であれば FALSE が返される。

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

解説

証明書の秘密鍵を取得する。

[戻り値]
関数が成功した場合、戻り値は 0 以外 (TRUE) となる。関数が失敗した場合、戻り値は 0 (FALSE)
となる。拡張エラー情報を取得するには GetLastError を呼び出す。考えられるエラーコードの一つを以下に示す。
(以下省略)

[備考]
CRYPT_ACQUIRE_WINDOW_HANDLE_FLAG が設定されている場合、呼び出し元は HWND
が有効であることを保証しなければならない。HWND が有効でなくなった場合、CSP では呼び出し元が CryptSetProvParam
を PP_CLIENT_HWND フラグ、HWND に NULL、HCRYPTPROV に NULL を指定して呼び出す必要がある。KSP
では呼び出し元が ncrypt 鍵の NCRYPT_WINDOW_HANDLE_PROPERTY を NULL
に設定する必要がある。CRYPT_ACQUIRE_WINDOW_HANDLE_FLAG が KSP
に対して設定されている場合、NCRYPT_WINDOW_HANDLE_PROPERTY
はストレージプロバイダーと鍵の双方に設定される。両呼び出しとも失敗した場合、関数は失敗する。片方だけ失敗した場合、関数は成功する。HWND
を NULL に設定すると、実質的に HCRYPTPROV または ncrypt 鍵から HWND が取り除かれる点に注意。

情報

プラグイン / モジュール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