NCryptOpenKey 関数 (ncrypt.h)
NCryptOpenKey 関数は、指定された CNG キー ストレージ プロバイダーに存在するキーを開きます。
構文
SECURITY_STATUS NCryptOpenKey(
[in] NCRYPT_PROV_HANDLE hProvider,
[out] NCRYPT_KEY_HANDLE *phKey,
[in] LPCWSTR pszKeyName,
[in] DWORD dwLegacyKeySpec,
[in] DWORD dwFlags
);
パラメーター
[in] hProvider
キーを開くキー ストレージ プロバイダーのハンドル。
[out] phKey
キー ハンドルを受け取る NCRYPT_KEY_HANDLE 変数へのポインター。 このハンドルの使用が完了したら、 それを NCryptFreeObject 関数に渡して解放します。
[in] pszKeyName
取得するキーの名前を含む null で終わる Unicode 文字列へのポインター。
[in] dwLegacyKeySpec
キーの種類を指定するレガシ識別子。 次のいずれかの値を指定できます。
値 | 意味 |
---|---|
|
キーはキー交換キーです。 |
|
キーは署名キーです。 |
|
キーは、上記の種類のいずれもありません。 |
[in] dwFlags
関数の動作を変更するフラグ。 これは、0 または次の値の 1 つ以上の組み合わせにすることができます。
戻り値
関数の成功または失敗を示す状態コードを返します。
可能なリターン コードには、次のものが含まれますが、これらに限定されません。
リターン コード | 説明 |
---|---|
|
関数は成功しました。 |
|
dwFlags パラメーターに無効な値が含まれています。 |
|
指定したキーが見つかりませんでした。 |
|
hProvider パラメーターが無効です。 |
|
1 つ以上のパラメーターが無効です。 |
|
メモリ割り当てエラーが発生しました。 |
注釈
サービスは 、StartService 関数からこの関数を呼び出してはなりません。 サービスが StartService 関数からこの関数を呼び出すと、デッドロックが発生し、サービスが応答を停止する可能性があります。
パフォーマンス上の理由から、Microsoft ソフトウェア ベースの KSP は、キーのハンドルが開いている限り、秘密キーマテリアルをローカル セキュリティ機関 (LSA) にキャッシュします。 LSA は特権システム プロセスです。 そのため、他のユーザーは、ユーザーがシステムに対する管理者権限を持っている場合を除き、このキーのキャッシュされたコピーにアクセスできません。 この動作は、構成では変更できません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | ncrypt.h |
Library | Ncrypt.lib |
[DLL] | Ncrypt.dll |