Compartilhar via


Função CryptCreateKeyIdentifierFromCSP (wincrypt.h)

Importante essa API foi preterida. O software novo e existente deve começar a usar APIs de Próxima Geração da Criptografia. Microsoft pode remover essa API em versões futuras.
 
A função CryptCreateKeyIdentifierFromCSP cria um identificador de chave de um CSP ( provedor de serviços criptográficos) CRYPT_INTEGER_BLOBde chave pública.

Essa função converte um PUBLICKEYSTRUC de um CSP em uma estrutura deCERT_PUBLIC_KEY_INFO X.509 e a codifica. A estrutura codificada é hash com o algoritmo SHA1 para obter o identificador de chave.

Sintaxe

BOOL CryptCreateKeyIdentifierFromCSP(
  [in]      DWORD                dwCertEncodingType,
  [in]      LPCSTR               pszPubKeyOID,
  [in]      const PUBLICKEYSTRUC *pPubKeyStruc,
  [in]      DWORD                cbPubKeyStruc,
  [in]      DWORD                dwFlags,
  [in]      void                 *pvReserved,
  [out]     BYTE                 *pbHash,
  [in, out] DWORD                *pcbHash
);

Parâmetros

[in] dwCertEncodingType

Especifica o tipo de codificação usado. É sempre aceitável especificar os tipos de codificação de mensagens e certificados combinando-os com uma operação deOU bit a bit, conforme mostrado no exemplo a seguir:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

Os tipos de codificação definidos no momento são:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pszPubKeyOID

Um ponteiro para a chave pública de identificador de objeto (OID). Um valor que não é NULL substitui o OID padrão obtido do membro aiKeyAlg da estrutura apontada por pPubKeyStruc. Para usar o OID padrão, defina pszPubKeyOID para NULL.

[in] pPubKeyStruc

Um ponteiro para uma estrutura de PUBLICKEYSTRUC . No caso padrão, o aiKeyAlg membro da estrutura apontado por pPubKeyStruc é usado para localizar a chave pública OID. Quando o valor de pszPubKeyOID não é NULL, ele substitui o padrão.

[in] cbPubKeyStruc

O tamanho, em bytes, do PUBLICKEYSTRUC.

[in] dwFlags

Reservado para uso futuro e deve ser zero.

[in] pvReserved

Reservado para uso futuro e deve ser NULL.

[out] pbHash

Um ponteiro para um buffer para receber o de hash da chave pública e do identificador de chave.

Para obter o tamanho dessas informações para fins de alocação de memória, defina esse parâmetro como NULL. Para obter mais informações, consulte Recuperando dados dede comprimento desconhecido.

[in, out] pcbHash

Um ponteiro para um DWORD que especifica o tamanho, em bytes, do buffer apontado pelo parâmetro pbHash. Quando a função retorna, o DWORD contém o número de bytes armazenados no buffer. Usando hash SHA1, o comprimento do buffer necessário é de vinte.

Valor de retorno

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

Se a função falhar, ela retornará zero (false). Para obter informações de erro estendidas, chame GetLastError.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows XP [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2003 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho wincrypt.h
biblioteca Crypt32.lib
de DLL Crypt32.dll

Consulte também

CryptEnumKeyIdentifierProperties

CryptGetKeyIdentifierProperty

CryptSetKeyIdentifierProperty

Funções de identificador de chave