BCryptImportKeyPairFn
コールバックシグネチャ
NTSTATUS BCryptImportKeyPairFn(
BCRYPT_ALG_HANDLE hAlgorithm,
BCRYPT_KEY_HANDLE hImportKey,
LPWSTR pszBlobType,
BCRYPT_KEY_HANDLE* phKey,
BYTE* pbInput,
DWORD cbInput,
DWORD dwFlags
);パラメーター
| フィールド | 型 | 説明 | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| hAlgorithm | BCRYPT_ALG_HANDLE | 非対称キーのペアを使用するアルゴリズムプロバイダーのハンドルです。アルゴリズムの種類の例としては、署名、非対称暗号化、キー合意、キーカプセル化メカニズムなどがあります。このハンドルは BCryptOpenAlgorithmProvider 関数を呼び出して取得します。CNG アルゴリズム疑似ハンドルを指定することもできます。 | ||||||||||||||||||||||||||||||||||||||||||||||||
| hImportKey | BCRYPT_KEY_HANDLE | このパラメーターは現在使用されていません。NULL を指定してください。 | ||||||||||||||||||||||||||||||||||||||||||||||||
| pszBlobType | LPWSTR | pbInput バッファーに格納されている BLOB の種類を指定する識別子を含む、null 終端の Unicode 文字列です。次のいずれかの値を指定できます。
| ||||||||||||||||||||||||||||||||||||||||||||||||
| phKey | BCRYPT_KEY_HANDLE* | インポートされたキーのハンドルを受け取る BCRYPT_KEY_HANDLE へのポインターです。このハンドルは、BCryptSignHash など、キーを必要とする後続の関数で使用します。このハンドルは、不要になった時点で BCryptDestroyKey 関数に渡して解放する必要があります。 | ||||||||||||||||||||||||||||||||||||||||||||||||
| pbInput | BYTE* | インポートするキー BLOB を格納したバッファーのアドレスです。cbInput パラメーターには、このバッファーのサイズを指定します。pszBlobType パラメーターは、このバッファーに格納されているキー BLOB の種類を指定します。 | ||||||||||||||||||||||||||||||||||||||||||||||||
| cbInput | DWORD | pbInput バッファーのサイズ (バイト単位) です。 | ||||||||||||||||||||||||||||||||||||||||||||||||
| dwFlags | DWORD | この関数の動作を変更するフラグのセットです。 ゼロまたは次の値を指定できます。
|
公式ドキュメント
BCryptImportKeyPair 関数は、公開キー/秘密キーのペアをキー BLOB からインポートします。対称キーをインポートするには、BCryptImportKey 関数を使用します。
戻り値
関数の成功または失敗を示すステータスコードを返します。
返される可能性のあるコードには、次のようなものがあります (これらに限定されません)。
| 戻り値 | 説明 |
|---|---|
| STATUS_SUCCESS | 関数は成功しました。 |
| STATUS_INVALID_BUFFER_SIZE | hAlgorithm と pszBlobType の組み合わせに対して、バッファー pbInput のサイズが正しくありません。 |
| STATUS_INVALID_HANDLE | hAlgorithm パラメーターのアルゴリズムハンドルが無効です。 |
| STATUS_INVALID_PARAMETER | 1 つ以上のパラメーターが無効です。 |
| STATUS_NOT_SUPPORTED | hAlgorithm パラメーターで指定されたアルゴリズムプロバイダーは、pszBlobType パラメーターで指定された BLOB 型をサポートしていません。 |
解説(Remarks)
サポートされているアルゴリズムプロバイダーを使用する場合、BCryptImportKeyPair はユーザーモードとカーネルモードのどちらからでも呼び出せます。カーネルモードの呼び出し元は、PASSIVE_LEVEL IRQL または DISPATCH_LEVEL IRQL のいずれでも実行できます。現在の IRQL レベルが DISPATCH_LEVEL の場合、hAlgorithm パラメーターに指定するハンドルは BCRYPT_PROV_DISPATCH フラグを使用して開かれている必要があり、BCryptImportKeyPair 関数に渡すポインターはすべて、ページング不可 (またはロックされた) メモリを参照している必要があります。
呼び出し元は、キーが不要になった時点で BCryptDestroyKey を使用して hKey を解放してください。
この関数をカーネルモードで呼び出すには、Driver Development Kit (DDK) に含まれる Cng.lib を使用します。Windows Server 2008 および Windows Vista: この関数をカーネルモードで呼び出すには、Ksecdd.lib を使用します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)