estructura CRYPT_KEY_PROV_INFO (wincrypt.h)
La estructura CRYPT_KEY_PROV_INFO contiene información sobre un contenedor de claves dentro de un proveedor de servicios criptográficos (CSP).
Sintaxis
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;
Miembros
pwszContainerName
Puntero a una cadena Unicode terminada en null que contiene el nombre del contenedor de claves.
Cuando el miembro dwProvType es cero, esta cadena contiene el nombre de una clave dentro de un proveedor de almacenamiento de claves CNG. Esta cadena se pasa como el parámetro pwszKeyName a la función NCryptOpenKey .
pwszProvName
Puntero a una cadena Unicode terminada en null que contiene el nombre del CSP.
Cuando el miembro dwProvType es cero, esta cadena contiene el nombre de un proveedor de almacenamiento de claves CNG. Esta cadena se pasa como parámetro pwszProviderName a la función NCryptOpenStorageProvider .
dwProvType
Especifica el tipo de CSP. Puede ser cero o uno de los tipos de proveedor criptográfico.
Si este miembro es cero, el contenedor de claves es uno de los proveedores de almacenamiento de claves CNG.
dwFlags
Conjunto de marcas que indican información adicional sobre el proveedor. Puede ser cero o uno de los valores siguientes.
Las funciones criptográficas CryptDecryptMessage, CryptSignMessage, CryptDecryptAndVerifyMessageSignature y CryptSignAndEncryptMessage realizan internamente Operaciones CryptAcquireContext mediante el CRYPT_KEY_PROV_INFO de un certificado. Cuando se establece la marca CERT_SET_KEY_CONTEXT_PROP_ID o CERT_SET_KEY_PROV_HANDLE_PROP_ID , estas funciones criptográficas pueden llamar a CertSetCertificateContextProperty con CERT_KEY_CONTEXT_PROP_ID. Esta llamada permite que el identificador del proveedor de claves se mantenga abierto para las llamadas posteriores a las funciones criptográficas mencionadas que usan ese mismo certificado, lo que elimina la necesidad de realizar llamadas adicionales a CryptAcquireContext, lo que mejora la eficacia. Además, dado que algunos proveedores pueden requerir que se escriba una contraseña para las llamadas a CryptAcquireContext, es conveniente que las aplicaciones minimicen el número de llamadas a CryptAcquireContext realizadas. Los identificadores de los proveedores de claves que se mantienen abiertos se liberan automáticamente cuando se cierra el almacén.
Por ejemplo, considere una aplicación de correo electrónico donde se han recibido cinco mensajes cifrados, todos cifrados con la clave pública del mismo certificado. Si el identificador del proveedor de claves se mantiene abierto después de procesar el primer mensaje, las llamadas a CryptAcquireContext no son necesarias para los cuatro mensajes restantes.
cProvParam
Número de elementos de la matriz rgProvParam .
Cuando el miembro dwProvType es cero, este miembro no se usa y debe ser cero.
rgProvParam
Matriz de estructuras de CRYPT_KEY_PROV_PARAM que contienen los parámetros del contenedor de claves. El miembro cProvParam contiene el número de elementos de esta matriz.
Cuando el miembro dwProvType es cero, este miembro no se usa y debe ser NULL.
dwKeySpec
Especificación de la clave privada que se va a recuperar.
Los valores siguientes se definen para el proveedor predeterminado.
Cuando el miembro dwProvType es cero, este valor se pasa como parámetro dwLegacyKeySpec a la función NCryptOpenKey .
Valor | Significado |
---|---|
|
Claves usadas para cifrar o descifrar claves de sesión. |
|
Claves usadas para crear y comprobar firmas digitales. |
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Encabezado | wincrypt.h |