Função CryptGetKeyIdentifierProperty (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.
 
O CryptGetKeyIdentifierProperty adquire uma propriedade específica de um identificador de chave especificado.

Sintaxe

BOOL CryptGetKeyIdentifierProperty(
  [in]      const CRYPT_HASH_BLOB *pKeyIdentifier,
  [in]      DWORD                 dwPropId,
  [in]      DWORD                 dwFlags,
  [in]      LPCWSTR               pwszComputerName,
  [in]      void                  *pvReserved,
  [out]     void                  *pvData,
  [in, out] DWORD                 *pcbData
);

Parâmetros

[in] pKeyIdentifier

Um ponteiro para o CRYPT_HASH_BLOB que contém o identificador de chave.

[in] dwPropId

Identifica a propriedade a ser recuperada. O valor de dwPropId determina o tipo e o conteúdo do parâmetro pvData . Qualquer ID de propriedade de certificado pode ser usada.

[in] dwFlags

Os sinalizadores a seguir podem ser usados. Eles podem ser combinados com uma operação OR bit a bit.

Valor Significado
CRYPT_KEYID_MACHINE_FLAG
Pesquise a lista de identificadores de chave do LocalMachine (se pwszComputerName for NULL) ou computador remoto (se pwszComputerName não for NULL). Para obter mais informações, consulte pwszComputerName.
CRYPT_KEYID_ALLOC_FLAG
A função LocalAlloc() é chamada para alocar memória para pvData. *pvData é atualizado com um ponteiro para a memória alocada. LocalFree() deve ser chamado para liberar a memória alocada.

[in] pwszComputerName

Um ponteiro para o nome de um computador remoto a ser pesquisado. Se CRYPT_KEYID_MACHINE_FLAG sinalizador estiver definido, o procurará no computador remoto uma lista de identificadores de chave. Se o computador local deve ser pesquisado e não um computador remoto, defina pwszComputerName como NULL.

[in] pvReserved

Reservado para uso futuro e deve ser NULL.

[out] pvData

Um ponteiro para um buffer para receber os dados conforme determinado por dwPropId. Os elementos apontados por campos na estrutura pvData seguem a estrutura . Portanto, o tamanho contido em pcbData pode exceder o tamanho da estrutura.

Se dwPropId for CERT_KEY_PROV_INFO_PROP_ID, pvData apontará para uma estrutura CRYPT_KEY_PROV_INFO que contém a propriedade do identificador de chave.

Se dwPropId não for CERT_KEY_PROV_INFO_PROP_ID, pvData apontará para uma matriz de bytes que contém a propriedade do identificador de chave.

Para obter o tamanho dessas informações para fins de alocação de memória, esse parâmetro pode ser NULL quando o CRYPT_KEYID_ALLOC_FLAG não está definido. Para obter mais informações, consulte Recuperando dados de comprimento desconhecido.

Quando o CRYPT_KEYID_ALLOC_FLAG é definido, pvData é o endereço de um ponteiro para o buffer que será atualizado. Como a memória é alocada e seu ponteiro é armazenado em *pvData, pvData não deve ser NULL.

[in, out] pcbData

Um ponteiro para um DWORD que contém o tamanho, em bytes, do buffer apontado pelo parâmetro pvData . Quando a função retorna, o DWORD contém o número de bytes armazenados no buffer. O tamanho contido na variável apontada por pcbData pode indicar um tamanho maior que a estrutura de CRYPT_KEY_PROV_INFO porque a estrutura pode conter ponteiros para dados auxiliares. Esse tamanho é a soma do tamanho necessário para a estrutura e todos os dados auxiliares.

Quando o CRYPT_KEYID_ALLOC_FLAG é definido, pcbData é o endereço de um ponteiro para o DWORD que será atualizado.

Nota Ao processar os dados retornados no buffer, os aplicativos precisam usar o tamanho real dos dados retornados. O tamanho real pode ser ligeiramente menor do que o tamanho do buffer especificado na entrada. Na entrada, os tamanhos de buffer geralmente são especificados grandes o suficiente para garantir que os maiores dados de saída possíveis caibam no buffer. Na saída, a variável apontada por esse parâmetro é atualizada para refletir o tamanho real dos dados copiados para o buffer.
 

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

CryptSetKeyIdentifierProperty

Funções de identificador de chave