CRYPT_KEY_PROV_INFO構造体 (wincrypt.h)
CRYPT_KEY_PROV_INFO構造体には、暗号化サービス プロバイダー (CSP) 内のキー コンテナーに関する情報が含まれています。
構文
typedef struct _CRYPT_KEY_PROV_INFO {
LPWSTR pwszContainerName;
LPWSTR pwszProvName;
DWORD dwProvType;
DWORD dwFlags;
DWORD cProvParam;
PCRYPT_KEY_PROV_PARAM rgProvParam;
DWORD dwKeySpec;
} CRYPT_KEY_PROV_INFO, *PCRYPT_KEY_PROV_INFO;
メンバー
pwszContainerName
キー コンテナーの名前を含む null で終わる Unicode 文字列へのポインター。
dwProvType メンバーが 0 の場合、この文字列には CNG キー ストレージ プロバイダー内のキーの名前が含まれます。 この文字列は pwszKeyName パラメーターとして NCryptOpenKey 関数に渡されます。
pwszProvName
CSP の名前を含む null で終わる Unicode 文字列へのポインター。
dwProvType メンバーが 0 の場合、この文字列には CNG キー ストレージ プロバイダーの名前が含まれます。 この文字列は pwszProviderName パラメーターとして NCryptOpenStorageProvider 関数に渡されます。
dwProvType
CSP の種類を指定します。 これには、0 または 暗号化プロバイダーの種類のいずれかを指定できます。
このメンバーが 0 の場合、キー コンテナーは CNG キー ストレージ プロバイダーのいずれかです。
dwFlags
プロバイダーに関する追加情報を示すフラグのセット。 0 または次のいずれかの値を指定できます。
暗号化関数 CryptDecryptMessage、CryptSignMessage、CryptDecryptAndVerifyMessageSignature、および CryptSignAndEncryptMessage は、証明書のCRYPT_KEY_PROV_INFOを使用して内部的に CryptAcquireContext 操作を実行します。 CERT_SET_KEY_CONTEXT_PROP_IDまたはCERT_SET_KEY_PROV_HANDLE_PROP_ID フラグが設定されている場合、これらの暗号化関数は、CERT_KEY_CONTEXT_PROP_IDを使用して CertSetCertificateContextProperty を呼び出すことができます。 この呼び出しにより、キー プロバイダーへのハンドルは、同じ証明書を使用する前述の暗号化関数の後続の呼び出しに対して開いたままにすることができます。これにより、 CryptAcquireContext への追加の呼び出しを実行する必要がなくなり、効率が向上します。 また、一部のプロバイダーでは 、CryptAcquireContext の呼び出しにパスワードを入力する必要があるため、アプリケーションでは CryptAcquireContext 呼び出しの数を最小限に抑える必要があります。 開いたままにされたキー プロバイダーへのハンドルは、ストアが閉じられると自動的に解放されます。
たとえば、5 つの暗号化されたメッセージが受信され、すべて同じ証明書の公開キーで暗号化された電子メール アプリケーションがあるとします。 キー プロバイダーへのハンドルが最初のメッセージの処理後も開いたままになっている場合、残りの 4 つのメッセージに 対して CryptAcquireContext の呼び出しは必要ありません。
cProvParam
rgProvParam 配列内の要素の数。
dwProvType メンバーが 0 の場合、このメンバーは使用されず、0 である必要があります。
rgProvParam
キー コンテナーのパラメーターを含む CRYPT_KEY_PROV_PARAM 構造体の配列。 cProvParam メンバーには、この配列内の要素の数が含まれています。
dwProvType メンバーが 0 の場合、このメンバーは使用されず、NULL である必要があります。
dwKeySpec
取得する秘密キーの指定。
既定のプロバイダーには、次の値が定義されています。
dwProvType メンバーが 0 の場合、この値は dwLegacyKeySpec パラメーターとして NCryptOpenKey 関数に渡されます。
値 | 意味 |
---|---|
|
セッション キーの暗号化/暗号化解除に使用されるキー。 |
|
デジタル署名の作成と検証に使用されるキー。 |
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
Header | wincrypt.h |