Função CryptGetUserKey (wincrypt.h)

Importante Essa API foi preterida. O software novo e existente deve começar a usar APIs de Próxima Geração de Criptografia. A Microsoft pode remover essa API em versões futuras.
 
A função CryptGetUserKey recupera um identificador de um dos dois pares de chaves públicas/privadas de um usuário. Essa função é usada somente pelo proprietário dos pares de chaves pública/privada e somente quando o identificador de um provedor de serviços criptográficos (CSP) e seu contêiner de chave associado estiverem disponíveis. Se o identificador CSP não estiver disponível e o certificado do usuário estiver, use CryptAcquireCertificatePrivateKey.

Sintaxe

BOOL CryptGetUserKey(
  [in]  HCRYPTPROV hProv,
  [in]  DWORD      dwKeySpec,
  [out] HCRYPTKEY  *phUserKey
);

Parâmetros

[in] hProv

Identificador HCRYPTPROV de um provedor de serviços criptográficos (CSP) criado por uma chamada para CryptAcquireContext.

[in] dwKeySpec

Identifica a chave privada a ser usada no contêiner de chaves. Pode ser AT_KEYEXCHANGE ou AT_SIGNATURE.

Além disso, alguns provedores permitem o acesso a outras chaves específicas do usuário por meio dessa função. Para obter detalhes, consulte a documentação sobre o provedor específico.

[out] phUserKey

Um ponteiro para o identificador HCRYPTKEY das chaves recuperadas. Quando terminar de usar a chave, exclua o identificador chamando a função CryptDestroyKey .

Retornar valor

Se a função for bem-sucedida, o valor retornado será diferente de zero (TRUE).

Se a função falhar, o valor retornado será zero (FALSE). Para obter informações de erro estendidas, chame GetLastError.

Os códigos de erro precedidos por "NTE" são gerados pelo CSP específico que está sendo usado. Alguns códigos de erro possíveis seguem.

Código de retorno Descrição
ERROR_INVALID_HANDLE
Um dos parâmetros especifica um identificador que não é válido.
ERROR_INVALID_PARAMETER
Um dos parâmetros contém um valor que não é válido. Geralmente, esse é um ponteiro que não é válido.
NTE_BAD_KEY
O parâmetro dwKeySpec contém um valor que não é válido.
NTE_BAD_UID
O parâmetro hProv não contém um identificador de contexto válido.
NTE_NO_KEY
A chave solicitada pelo parâmetro dwKeySpec não existe.

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 Advapi32.lib
DLL Advapi32.dll

Confira também

Cryptacquirecontext

Cryptdestroykey

Cryptgenkey

Geração de chaves e funções do Exchange