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.

Valor Significado
CERT_SET_KEY_PROV_HANDLE_PROP_ID/CERT_SET_KEY_CONTEXT_PROP_ID
Permite que el identificador del proveedor de claves se mantenga abierto para las llamadas posteriores a las funciones criptográficas.
CRYPT_MACHINE_KEYSET/NCRYPT_MACHINE_KEY_FLAG
El contenedor de claves contiene claves de máquina. Si esta marca no está presente, el contenedor de claves contiene claves de usuario.
CRYPT_SILENT/NCRYPT_SILENT_FLAG
El contenedor de claves intentará abrir las claves de forma silenciosa sin avisos de interfaz de usuario.
 

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
AT_KEYEXCHANGE
Claves usadas para cifrar o descifrar claves de sesión.
AT_SIGNATURE
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

Consulte también

CRYPT_KEY_PROV_PARAM

CertGetCertificateContextProperty

CertSetCertificateContextProperty