Função CryptFindCertificateKeyProvInfo (wincrypt.h)

A função CryptFindCertificateKeyProvInfo enumera os provedores criptográficos e seus contêineres para localizar a chave privada que corresponde à chave pública do certificado.

Sintaxe

BOOL CryptFindCertificateKeyProvInfo(
  [in] PCCERT_CONTEXT pCert,
  [in] DWORD          dwFlags,
  [in] void           *pvReserved
);

Parâmetros

[in] pCert

Um ponteiro para a estrutura CERT_CONTEXT do certificado a ser usado ao exportar informações de chave pública.

[in] dwFlags

Um conjunto de sinalizadores que modificam o comportamento dessa função. Isso pode ser zero ou um dos valores a seguir.

Valor Significado
CRYPT_FIND_USER_KEYSET_FLAG
Restringe a pesquisa ao contêiner do usuário. O padrão é pesquisar os contêineres de usuário e computador.
CRYPT_FIND_MACHINE_KEYSET_FLAG
Restringe a pesquisa ao contêiner do computador. O padrão é pesquisar os contêineres de usuário e computador.
CRYPT_FIND_SILENT_KEYSET_FLAG
O aplicativo solicita que o CSP não exiba nenhuma interface do usuário (interface do usuário) para esse contexto. Se o CSP precisar exibir a interface do usuário para operar, a chamada falhará e o código de erro NTE_SILENT_CONTEXT será definido como o último erro.
 

Os sinalizadores a seguir determinam qual tecnologia é usada para obter a chave. Se nenhum desses sinalizadores estiver presente, essa função tentará apenas obter a chave usando CryptoAPI.

Windows Server 2003 e Windows XP: Não há suporte para esses sinalizadores.

Valor Significado
CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG
Essa função tentará obter a chave usando CryptoAPI. Se isso falhar, essa função tentará obter a chave usando a API de Criptografia: CNG (Próxima Geração).

A propriedade CERT_KEY_PROV_INFO_PROP_ID do certificado será definida como zero se CNG for usado para obter a chave.

CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG
Essa função só tentará obter a chave usando CNG e não usará CryptoAPI para obter a chave.

A propriedade CERT_KEY_PROV_INFO_PROP_ID do certificado será definida como zero se CNG for usado para obter a chave.

CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG
Essa função tentará obter a chave usando CNG. Se isso falhar, essa função tentará obter a chave usando CryptoAPI.

A propriedade CERT_KEY_PROV_INFO_PROP_ID do certificado será definida como zero se CNG for usado para obter a chave.

[in] pvReserved

Reservado para uso futuro e deve ser NULL.

Retornar valor

TRUE se a função encontrar uma chave privada que corresponda à chave pública do certificado em um contêiner pesquisado; FALSE se a função não encontrar um contêiner ou uma chave privada dentro de um contêiner.

GetLastError retorna o seguinte erro:

Código de retorno Descrição
NTE_NO_KEY
Nenhum contêiner encontrado.

Comentários

Essa função enumera os provedores criptográficos e seus contêineres para localizar a chave privada que corresponde à chave pública do certificado. Para uma correspondência, a função atualiza a propriedade CERT_KEY_PROV_INFO_PROP_ID do certificado. Se o CERT_KEY_PROV_INFO_PROP_ID já estiver definido, será verificado se ele corresponde à chave pública do provedor. Para uma correspondência, a função ignora a enumeração mencionada anteriormente.

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]
Plataforma de Destino Windows
Cabeçalho wincrypt.h
Biblioteca Crypt32.lib
DLL Crypt32.dll

Confira também

Funções Gerenciamento de Dados