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.

Valor Significado
CERT_SET_KEY_PROV_HANDLE_PROP_ID/CERT_SET_KEY_CONTEXT_PROP_ID
Permite que o identificador para o provedor de chaves seja mantido aberto para chamadas subsequentes para as funções criptográficas.
CRYPT_MACHINE_KEYSET/NCRYPT_MACHINE_KEY_FLAG
O contêiner de chaves contém chaves de computador. Se esse sinalizador não estiver presente, o contêiner de chaves conterá chaves de usuário.
CRYPT_SILENT/NCRYPT_SILENT_FLAG
O contêiner de chaves tentará abrir todas as chaves silenciosamente sem nenhum prompt de interface do usuário.
 

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
AT_KEYEXCHANGE
Chaves usadas para criptografar/descriptografar chaves de sessão.
AT_SIGNATURE
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

Confira também

CRYPT_KEY_PROV_PARAM

CertGetCertificateContextProperty

CertSetCertificateContextProperty