CryptSetProvParam 関数 (wincrypt.h)
構文
BOOL CryptSetProvParam(
[in] HCRYPTPROV hProv,
[in] DWORD dwParam,
[in] const BYTE *pbData,
[in] DWORD dwFlags
);
パラメーター
[in] hProv
値を設定する CSP のハンドル。 このハンドルは、 CryptAcquireContext 関数を使用して既に作成されている必要があります。
[in] dwParam
設定するパラメーターを指定します。 これには、次のいずれかの値を指定できます。
値 | 意味 |
---|---|
|
プロバイダーが作成するダイアログ ボックスの親として使用するウィンドウ ハンドルを設定します。 pbData には、親ウィンドウ ハンドルを含む HWND へのポインターが含まれています。
CryptAcquireContext を呼び出すと、多くの CSP にユーザー インターフェイスが表示されるため、このパラメーターは CryptAcquireContext を呼び出す前に設定する必要があります。 hProv パラメーターに NULL を渡して、このプロセス内で後で取得されたすべての暗号化コンテキストに対してこのウィンドウ ハンドルを設定できます。 |
|
ハッシュ、暗号化、または検証コンテキストに関連付けられているエフェメラル キーを削除します。 これにより、メモリが解放され、キーに関連付けられているレジストリ設定がクリアされます。 |
|
この定数は使用されません。 |
|
キー交換 PIN が pbData に含まれていることを指定します。 PIN は null で終わる ASCII 文字列として表されます。 |
|
この定数は使用されません。 |
|
キー ストレージ コンテナーの セキュリティ記述子 を設定します。 pbData パラメーターは、キー ストレージ コンテナーの新しいセキュリティ記述子を含むSECURITY_DESCRIPTOR構造体のアドレスです。 |
|
ユーザーの PIN が要求されたときにユーザーに表示する代替プロンプト文字列を設定します。 pbData パラメーターは、null で終わる Unicode 文字列へのポインターです。 |
|
スマート カードのルート証明書ストアを設定します。 プロバイダーは、このストアからスマート カードにルート証明書をコピーします。
pbData パラメーターは、新しい証明書ストアのハンドルを含む HCERTSTORE 変数です。 プロバイダーは、この呼び出し中にストアから証明書をコピーするため、この関数が呼び出された後にこのストアを閉じても安全です。 Windows XP と Windows Server 2003: このパラメーターはサポートされていません。 |
|
この定数は使用されません。 |
|
署名 PIN を指定します。 pbData パラメーターは、PIN を表す null で終わる ASCII 文字列です。 |
|
この定数は使用されません。 |
|
スマート カード プロバイダーの場合は、スマート カードを挿入するためのプロンプトとしてユーザーに表示される検索文字列を設定します。 この文字列は、SCardUIDlgSelectCard 関数に渡されるOPENCARDNAME_EX構造体の lpstrSearchDesc メンバーとして渡されます。 この文字列は、呼び出し元プロセスの有効期間に使用されます。
pbData パラメーターは、null で終わる Unicode 文字列へのポインターです。 |
|
CSP がハードウェア乱数ジェネレーター (RNG) を排他的に使用する必要があることを指定します。 PP_USE_HARDWARE_RNGが設定されている場合、ランダムな値はハードウェア RNG から排他的に取得され、他のソースは使用されません。 ハードウェア RNG が CSP でサポートされており、排他的に使用できる場合、関数は成功し 、TRUE を返します。それ以外の場合、関数は失敗し、 FALSE を返します。 この値を使用する場合、 pbData パラメーターは NULL で、 dwFlags は 0 である必要があります。
現在、ハードウェア RNG の使用をサポートしている Microsoft CSP はありません。 |
|
スマート カードのユーザー証明書ストアを指定します。 この証明書ストアには、スマート カードに格納されているすべてのユーザー証明書が含まれています。 このストアの証明書は、PKCS_7_ASN_ENCODINGまたはX509_ASN_ENCODINGエンコードを使用してエンコードされ、 CERT_KEY_PROV_INFO_PROP_ID プロパティを含める必要があります。
pbData パラメーターは、メモリ内証明書ストアのハンドルを受け取る HCERTSTORE 変数です。 このハンドルが不要になった場合、呼び出し元は CertCloseStore 関数を使用して閉じる必要があります。 Windows Server 2003 および Windows XP: このパラメーターはサポートされていません。 |
|
暗号化されたキー交換 PIN が pbData に含まれていることを指定します。 pbData パラメーターには、DATA_BLOBが含まれています。 |
|
暗号化された署名 PIN が pbData に含まれていることを指定します。 pbData パラメーターには、DATA_BLOBが含まれています。 |
|
スマート カード リーダーの名前を指定します。 pbData パラメーターは、スマート カード リーダーの名前を含む null で終わる ANSI 文字列を含む ANSI 文字配列のアドレスです。
Windows Server 2003 および Windows XP: このパラメーターはサポートされていません。 |
|
スマート カードの識別子を指定します。 pbData パラメーターは、スマート カードの識別子を含む GUID 構造体のアドレスです。
Windows Server 2003 および Windows XP: このパラメーターはサポートされていません。 |
[in] pbData
プロバイダー パラメーターとして設定する値を含むデータ バッファーへのポインター。 このデータの形式は dwParam 値によって異なります。 dwParam にPP_USE_HARDWARE_RNGが含まれている場合、このパラメーターは NULL である必要があります。
[in] dwFlags
dwParam にPP_KEYSET_SEC_DESCRが含まれている場合、dwFlags には、プラットフォーム SDK で定義されているSECURITY_INFORMATION適用可能なビット フラグが含まれます。 キー コンテナーのセキュリティは、 SetFileSecurity と GetFileSecurity を使用して処理されます。
これらのビット フラグは、ビットごとの OR 演算を使用して組み合わせることができます。 詳細については、「 CryptGetProvParam」を参照してください。
dwParam がPP_USE_HARDWARE_RNGまたはPP_DELETEKEYの場合は、dwFlags を 0 に設定する必要があります。
戻り値
関数が成功した場合、戻り値は 0 以外 (TRUE) になります。
関数が失敗した場合、戻り値は 0 (FALSE) になります。 拡張エラー情報については、 GetLastError を呼び出します。
"NTE" の前に表示されるエラー コードは、使用されている特定の CSP によって生成されます。 エラー コードには、次のようなものがあります。
リターン コード | 説明 |
---|---|
|
現在、CSP コンテキストは別の プロセスで使用されています。 |
|
パラメーターの 1 つは、無効なハンドルを指定します。 |
|
パラメーターの 1 つに無効な値が含まれています。 これはほとんどの場合、無効なポインターです。 |
|
dwFlags パラメーターが 0 以外であるか、pbData バッファーに無効な値が含まれています。 |
|
dwParam パラメーターは、不明なパラメーターを指定します。 |
|
hKey キーの作成時に指定された CSP コンテキストが見つかりません。 |
|
関数が予期しない方法で失敗しました。 |
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | wincrypt.h |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |