estrutura CRYPT_KEY_PROV_INFO (wincrypt.h)
A estrutura CRYPT_KEY_PROV_INFO contém informações sobre um contêiner de chaves em um CSP ( provedor de serviços criptográficos ).
Sintaxe
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;
Membros
pwszContainerName
Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que contém o nome do contêiner de chave.
Quando o membro dwProvType é zero, essa cadeia de caracteres contém o nome de uma chave dentro de um provedor de armazenamento de chaves CNG. Essa cadeia de caracteres é passada como o parâmetro pwszKeyName para a função NCryptOpenKey .
pwszProvName
Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que contém o nome do CSP.
Quando o membro dwProvType é zero, essa cadeia de caracteres contém o nome de um provedor de armazenamento de chaves CNG. Essa cadeia de caracteres é passada como o parâmetro pwszProviderName para a função NCryptOpenStorageProvider .
dwProvType
Especifica o tipo CSP. Isso pode ser zero ou um dos tipos de provedor criptográfico.
Se esse membro for zero, o contêiner de chave será um dos provedores de armazenamento de chaves CNG.
dwFlags
Um conjunto de sinalizadores que indicam informações adicionais sobre o provedor. Isso pode ser zero ou um dos valores a seguir.
As funções criptográficas CryptDecryptMessage, CryptSignMessage, CryptDecryptAndVerifyMessageSignature e CryptSignAndEncryptMessage executam internamente operações CryptAcquireContext usando o CRYPT_KEY_PROV_INFO de um certificado. Quando o sinalizador CERT_SET_KEY_CONTEXT_PROP_ID ou CERT_SET_KEY_PROV_HANDLE_PROP_ID é definido, essas funções criptográficas podem chamar CertSetCertificateContextProperty com CERT_KEY_CONTEXT_PROP_ID. Essa chamada permite que o identificador para o provedor de chaves seja mantido aberto para chamadas subsequentes para as funções criptográficas mencionadas que usam esse mesmo certificado, o que elimina a necessidade de executar chamadas adicionais para CryptAcquireContext, melhorando a eficiência. Além disso, como alguns provedores podem exigir que uma senha seja inserida para chamadas para CryptAcquireContext, é desejável que os aplicativos minimizem o número de chamadas CryptAcquireContext feitas. Os identificadores para provedores de chaves que foram mantidos abertos são liberados automaticamente quando o repositório é fechado.
Por exemplo, considere um aplicativo de email em que cinco mensagens criptografadas foram recebidas, todas criptografadas com a chave pública do mesmo certificado. Se o identificador para o provedor de chaves for mantido aberto após o processamento da primeira mensagem, as chamadas para CryptAcquireContext não serão necessárias para as quatro mensagens restantes.
cProvParam
O número de elementos na matriz rgProvParam .
Quando o membro dwProvType é zero, esse membro não é usado e deve ser zero.
rgProvParam
Uma matriz de estruturas de CRYPT_KEY_PROV_PARAM que contêm os parâmetros do contêiner de chaves. O membro cProvParam contém o número de elementos nesta matriz.
Quando o membro dwProvType é zero, esse membro não é usado e deve ser NULL.
dwKeySpec
A especificação da chave privada a ser recuperada.
Os valores a seguir são definidos para o provedor padrão.
Quando o membro dwProvType é zero, esse valor é passado como o parâmetro dwLegacyKeySpec para a função NCryptOpenKey .
Valor | Significado |
---|---|
|
Chaves usadas para criptografar/descriptografar chaves de sessão. |
|
Chaves usadas para criar e verificar assinaturas digitais. |
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Cabeçalho | wincrypt.h |