Função CryptCreateKeyIdentifierFromCSP (wincrypt.h)

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

Essa função converte um PUBLICKEYSTRUC de um CSP em uma estrutura X.509CERT_PUBLIC_KEY_INFO e a codifica. A estrutura codificada é então 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 certificado e mensagem combinando-os com uma operação OR 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 o OID ( identificador de objeto de chave pública). 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 como NULL.

[in] pPubKeyStruc

Um ponteiro para uma estrutura PUBLICKEYSTRUC . No caso padrão, o membro aiKeyAlg da estrutura apontada por pPubKeyStruc é usado para localizar o OID de chave pública. 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 hash da chave pública e o 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 de 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 o hash SHA1, o comprimento do buffer necessário é vinte.

Retornar valor

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
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

CryptEnumKeyIdentifierProperties

CryptGetKeyIdentifierProperty

CryptSetKeyIdentifierProperty

Funções de identificador de chave