CryptGetKeyParam 関数 (wincrypt.h)
構文
BOOL CryptGetKeyParam(
[in] HCRYPTKEY hKey,
[in] DWORD dwParam,
[out] BYTE *pbData,
[in, out] DWORD *pdwDataLen,
[in] DWORD dwFlags
);
パラメーター
[in] hKey
クエリ対象のキーのハンドル。
[in] dwParam
作成するクエリの種類を指定します。
すべてのキー型に対して、このパラメーターには次のいずれかの値を含めることができます。
価値 | 意味 |
---|---|
|
キー アルゴリズムを取得します。
pbData パラメーターは、キーの作成時に指定されたアルゴリズムの識別子を受け取る ALG_ID 値へのポインターです。
CryptGenKey 関数の Algid パラメーターに AT_KEYEXCHANGE または AT_SIGNATURE が指定されている場合、キーの生成に使用されるアルゴリズム識別子は、使用されるプロバイダーによって異なります。 詳細については、ALG_IDを参照してください。 |
|
hKey パラメーターでセッション キーが指定されている場合は、キー暗号のブロック長を取得します。
pbData パラメーターは、ブロック長を受け取る DWORD 値へのポインターです (ビット単位)。
ストリーム暗号の場合、この値は常に 0 です。
|
|
pbData |
|
この値は使用されません。 |
|
キーの実際の長さを取得します。
pbData パラメーターは、キーの長さをビット単位で受け取る DWORD 値へのポインターです。
KP_KEYLEN を使用して、任意のキー型の長さを取得できます。 Microsoft 暗号化サービス プロバイダー (CSP) は、CALG_DESの場合は 64 ビット、CALG_3DES_112の場合は 128 ビット、CALG_3DESの場合は 192 ビットのキー長を返します。 これらの長さは、CryptGetProvParam 関数の dwParam 値を PP_ENUMALGSに設定してアルゴリズムを列挙するときに返される長さとは異なります。 この呼び出しによって返される長さは、キーに含まれるパリティ ビットを含む、キーの実際のサイズです。
CALG_CYLINK_MEKALG_ID をサポートする Microsoft CSP は、そのアルゴリズムの 64 ビットを返します。 CALG_CYLINK_MEK は 40 ビットのキーですが、キーの長さを 64 ビットにするためにパリティとゼロのキー ビットがあります。 |
|
キーの |
|
キーのアクセス許可を取得します。
pbData パラメーターは、キーのアクセス許可フラグを受け取る DWORD 値へのポインターです。
現在、次のアクセス許可識別子が定義されています。 キーのアクセス許可には、0 または次の値の 1 つ以上の組み合わせを指定できます。
|
Digital Signature Standard (DSS) キーが hKey パラメーターで指定されている場合は、dwParam 値を次のいずれかの値に設定することもできます。
ブロック暗号セッション キー が hKey パラメーターで指定されている場合は、dwParam 値を次のいずれかの値に設定することもできます。
価値 | 意味 |
---|---|
|
RC2 キーの有効なキー長を取得します。 pbData パラメーターは、有効なキーの長さを受け取る DWORD 値へのポインターです。 |
|
キーの初期化ベクトルを取得します。 pbData パラメーターは、初期化ベクトルを受け取る BYTE 配列へのポインターです。 この配列のサイズは、ブロック サイズ (バイト単位) です。 たとえば、ブロック長が 64 ビットの場合、初期化ベクトルは 8 バイトで構成されます。 |
|
パディング モードを取得します。 pbData パラメーターは、暗号で使用される 埋め込み メソッドを識別する数値識別子を受け取る DWORD 値へのポインターです。 次のいずれかの値を指定できます。 |
|
暗号モードのを取得します。
pbData パラメーターは、暗号モード識別子を受け取る DWORD 値へのポインターです。 暗号モードの詳細については、「データの暗号化と復号化の」を参照してください。
現在、次の暗号モード識別子が定義されています。 |
|
フィードバックするビット数を取得します。 pbData パラメーターは、OFB または CFB 暗号モードが使用されるときにサイクルごとに処理されるビット数を受け取る、DWORD 値へのポインターです。 |
価値 | 意味 |
---|---|
|
Diffie-Hellman アルゴリズムまたは DSA キーのパラメーターを検証します。 この関数は、キー パラメーターが有効な場合は 0 以外の値を返し、それ以外の場合は 0 を返します。 |
|
この値は使用されません。
Windows Vista、Windows Server 2003、Windows XP: インポートされた Diffie-Hellman アルゴリズムから秘密契約の値 種類のキー CALG_AGREEDKEY_ANY取得します。 pbData パラメーターは、シークレット アグリーメント値を受け取るバッファーのアドレスをリトル エンディアン形式で指定します。 このバッファーは、キーと同じ長さにする必要があります。 dwFlags パラメーターを 0xF42A19B6 に設定する必要があります。 このプロパティは、ローカル システム アカウントで実行されているスレッドによってのみ取得できます。このプロパティは、上記のオペレーティング システムで使用できます。 以降のバージョンでは、変更または使用できない場合があります。 |
hKeyで証明書
価値 | 意味 |
---|---|
|
DER でエンコードされた X.509 証明書を含むバッファー。 この関数は、キー パラメーターが有効な場合は 0 以外の値を返し、それ以外の場合は 0 を返します。 |
[out] pbData
データを受信するバッファーへのポインター。 このデータの形式は、dwParam
このバッファーのサイズがわからない場合は、このパラメーターに対して NULL
[in, out] pdwDataLen
pbData パラメーターが指すバッファーのサイズ (バイト単位) を含む、DWORD 値へのポインター。 関数から制御が戻るときに、DWORD 値にはバッファーに格納されているバイト数が含まれます。
[in] dwFlags
このパラメーターは将来使用するために予約されており、0 に設定する必要があります。
戻り値
関数が成功した場合、関数は 0 以外の値を返します。
関数が失敗すると、0 が返されます。 拡張エラー情報については、GetLastError
"NTE" で開始されるエラー コードは、使用されている特定の CSP によって生成されます。 考えられるエラー コードには、次のようなものがあります。
リターン コード | 形容 |
---|---|
|
パラメーターの 1 つは無効なハンドルを指定します。 |
|
パラメーターの 1 つに無効な値が含まれています。 これは、多くの場合、無効なポインターです。 |
|
|
|
dwFlags パラメーターは 0 以外です。 |
|
hKey パラメーターで指定されたキーが無効です。 |
|
dwParam パラメーターは、不明な値番号を指定します。 |
|
キーの作成時に指定された CSP コンテキスト が見つかりません。 |
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | wincrypt.h |
ライブラリ | Advapi32.lib |
DLL | Advapi32.dll |