CryptGetUserKey 関数 (wincrypt.h)

大事な この API は非推奨です。 新規および既存のソフトウェアでは 、暗号化次世代 API の 使用を開始する必要があります。Microsoft は、今後のリリースでこの API を削除する可能性があります。
 
CryptGetUserKey 関数は、ユーザーの 2 つの公開キーと秘密キーのペアの 1 つのハンドルを取得します。 この関数は、公開キーと秘密キーのペアの所有者によってのみ使用され、 暗号化サービス プロバイダー (CSP) とそれに関連付けられた キー コンテナー のハンドルが使用可能な場合にのみ使用されます。 CSP ハンドルが使用できなく、ユーザーの証明書がである場合は、 CryptAcquireCertificatePrivateKey を使用します

構文

BOOL CryptGetUserKey(
  [in]  HCRYPTPROV hProv,
  [in]  DWORD      dwKeySpec,
  [out] HCRYPTKEY  *phUserKey
);

パラメーター

[in] hProv

CryptAcquireContext の呼び出しによって作成された暗号化サービス プロバイダー (CSP) の HCRYPTPROV ハンドル。

[in] dwKeySpec

キー コンテナーから使用する秘密キーを識別します。 AT_KEYEXCHANGEまたはAT_SIGNATUREできます。

さらに、一部のプロバイダーでは、この関数を使用して他のユーザー固有のキーへのアクセスを許可します。 詳細については、特定のプロバイダーに関するドキュメントを参照してください。

[out] phUserKey

取得したキーの HCRYPTKEY ハンドルへのポインター。 キーの使用が完了したら、 CryptDestroyKey 関数を呼び出してハンドルを削除します。

戻り値

関数が成功した場合、戻り値は 0 以外 (TRUE) になります。

関数が失敗した場合、戻り値は 0 (FALSE) になります。 拡張エラー情報については、 GetLastError を呼び出します。

"NTE" の前にあるエラー コードは、使用されている特定の CSP によって生成されます。 考えられるエラー コードの一部を次に示します。

リターン コード 説明
ERROR_INVALID_HANDLE
パラメーターの 1 つは、無効なハンドルを指定します。
ERROR_INVALID_PARAMETER
パラメーターの 1 つに無効な値が含まれています。 これは、ほとんどの場合、無効なポインターです。
NTE_BAD_KEY
dwKeySpec パラメーターに無効な値が含まれています。
NTE_BAD_UID
hProv パラメーターに有効なコンテキスト ハンドルが含まれていません。
NTE_NO_KEY
dwKeySpec パラメーターによって要求されたキーが存在しません。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー wincrypt.h
Library Advapi32.lib
[DLL] Advapi32.dll

こちらもご覧ください

CryptAcquireContext

CryptDestroyKey

CryptGenKey

キー生成と Exchange 関数