次の方法で共有


NCryptTranslateHandle 関数 (ncrypt.h)

NCryptTranslateHandle 関数は、CryptoAPI ハンドルを CNG キー ハンドルに変換します。

構文

SECURITY_STATUS NCryptTranslateHandle(
  [out, optional] NCRYPT_PROV_HANDLE *phProvider,
  [out]           NCRYPT_KEY_HANDLE  *phKey,
  [in]            HCRYPTPROV         hLegacyProv,
  [in, optional]  HCRYPTKEY          hLegacyKey,
  [in, optional]  DWORD              dwLegacyKeySpec,
  [in]            DWORD              dwFlags
);

パラメーター

[out, optional] phProvider

phKeyパラメーターに配置された CNG キーを所有する CNG キー ストレージ プロバイダーのハンドルを受け取るNCRYPT_PROV_HANDLE変数へのポインター。 このハンドルが必要ない場合、このパラメーターは NULL にすることができます。

[out] phKey

CNG キー ハンドルを受け取る NCRYPT_KEY_HANDLE 変数へのポインター。

[in] hLegacyProv

変換するキーを含む CryptoAPI プロバイダーのハンドル。 この関数は、このプロバイダーのコンテナーにある CryptoAPI キーを変換します。

[in, optional] hLegacyKey

返されるキーのキー仕様を決定するために使用する CryptoAPI キーのハンドル。 dwLegacyKeySpec パラメーターに 0 以外の値が含まれている場合、このパラメーターは無視されます。

hLegacyKeyNULL、dwLegacyKeySpec が 0 の場合、この関数は hLegacyProv ハンドルからキーの指定を決定しようとします。

[in, optional] dwLegacyKeySpec

キーのキー指定を指定します。 これには、次のいずれかの値を指定できます。

意味
0
キーは以下のどの型でもありません。
AT_KEYEXCHANGE
1
キーはキー交換キーです。
AT_SIGNATURE
2
キーは署名キーです。
 

hLegacyKeyNULL、dwLegacyKeySpec が 0 の場合、この関数は hLegacyProv ハンドルからキーの指定を決定しようとします。

[in] dwFlags

この関数の動作を変更するフラグのセット。 この関数にはフラグは定義されていません。

戻り値

関数の成功または失敗を示す状態コードを返します。

可能なリターン コードには、次のものが含まれますが、これらに限定されません。

リターン コード 説明
ERROR_SUCCESS
関数は成功しました。
NTE_BAD_FLAGS
dwFlags パラメーターに無効な値が含まれています。
NTE_INVALID_PARAMETER
1 つ以上のパラメーターが無効です。
NTE_NO_MEMORY
メモリ割り当てエラーが発生しました。

注釈

これは、現在 CryptoAPI を使用して CNG を使用して正常に移行するアプリケーションとシステム コンポーネントを支援することを目的としたヘルパー関数です。

この関数は、CNG キー ストレージ プロバイダーが、hLegacyProv パラメーターによって参照される暗号化サービス プロバイダー (CSP) の名前と同じ名前またはエイリアスで登録されている場合にのみ成功します。

この関数は、次の手順を実行して、CSP ハンドルを CNG キー ハンドルに変換します。

  1. hLegacyProv ハンドルから CSP の名前を取得します。
  2. CSP 名と同じ名前またはエイリアスを持つ CNG プロバイダーを開きます。
  3. CSP の現在のキー コンテナーの名前を取得します。
  4. CryptoAPI キーを取得し、CNG キーに変換し、 phKey パラメーターで返します。
サービスは 、StartService 関数からこの関数を呼び出してはなりません。 サービスが StartService 関数からこの関数を呼び出すと、デッドロックが発生し、サービスが応答を停止する可能性があります。

要件

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