Função CertGetCTLContextProperty (wincrypt.h)
A função CertGetCTLContextProperty recupera uma propriedade estendida de um contexto de CTL ( lista de certificados confiáveis ).
Sintaxe
BOOL CertGetCTLContextProperty(
[in] PCCTL_CONTEXT pCtlContext,
[in] DWORD dwPropId,
[out] void *pvData,
[in, out] DWORD *pcbData
);
Parâmetros
[in] pCtlContext
Um ponteiro para a estrutura CTL_CONTEXT .
[in] dwPropId
Identifica a propriedade a ser recuperada. Os identificadores definidos no momento e o tipo de dados a ser retornado no pvData estão listados na tabela a seguir.
Valor | Significado |
---|---|
|
Tipo de dados para pvData: ponteiro para um DWORD
Retorna um valor DWORD que indica se as operações de gravação no certificado são persistentes. O valor DWORD não será definido se o certificado estiver em um repositório de memória ou em um repositório baseado em registro aberto como somente leitura. |
|
Tipo de dados para pvData: NULL
Indica que o certificado é ignorado durante enumerações. Um certificado com esse conjunto de propriedades é encontrado com operações de pesquisa explícitas, como aquelas usadas para localizar um certificado com um hash específico ou um número de série. Nenhum dado em pvData está associado a essa propriedade. |
|
Tipo de dados para pvData: ponteiro para uma matriz BYTE Retorna uma cadeia de caracteres Unicode terminada em nulo nomeando o tipo de certificado para o qual o certificado foi registrado automaticamente. |
|
Tipo de dados para pvData: ponteiro para uma matriz BYTE Retorna uma matriz de bytes que contém uma estrutura de CTL_USAGE codificada em ASN.1 (Abstract Syntax Notation One). |
|
Tipo de dados para pvData: ponteiro para uma matriz BYTE Retorna a propriedade exibida pela interface do usuário do certificado. Essa propriedade permite que o usuário descreva o uso do certificado. |
|
Tipo de dados para pvData: ponteiro para uma matriz BYTE Retorna uma matriz de bytes que contém uma estrutura de CERT_ENHKEY_USAGE codificada em ASN.1. |
|
Tipo de dados para pvData: ponteiro para uma matriz BYTE Retorna uma cadeia de caracteres Unicode terminada em nulo que contém o nome de exibição da CTL. |
|
Tipo de dados para pvData: ponteiro para uma matriz BYTE Retorna o hash SHA1. Se o hash não existir, ele será calculado usando CryptHashCertificate. |
|
Tipo de dados para pvData: ponteiro para um CERT_KEY_CONTEXT
Retorna uma estrutura CERT_KEY_CONTEXT . |
|
Tipo de dados para pvData: ponteiro para uma matriz BYTE Se não existir, pesquisa a extensão szOID_SUBJECT_KEY_IDENTIFIER. Se isso falhar, um hash SHA1 será feito no membro SubjectPublicKeyInfo do certificado para produzir os valores do identificador. |
|
Tipo de dados para pvData: ponteiro para um HCRYPTPROV
Retorna o identificador do provedor obtido do CERT_KEY_CONTEXT_PROP_ID. |
|
Tipo de dados para pvData: ponteiro para uma estrutura CRYPT_KEY_PROV_INFO Retorna um ponteiro para um CRYPT_KEY_PROV_INFO. |
|
Tipo de dados para pvData: ponteiro para um DWORD
Retorna um valor DWORD especificando a chave privada obtida de CERT_KEY_CONTEXT_PROP_ID propriedade, se ela existir. Caso contrário, se CERT_KEY_PROV_INFO_PROP_ID existir, será a origem do dwKeySpec. |
|
Tipo de dados para pvData: ponteiro para uma matriz BYTE Retorna o hash MD5. Se o hash não existir, ele será calculado usando CryptHashCertificate. |
|
Tipo de dados para pvData: ponteiro para uma matriz BYTE Retorna a estrutura de CERT_ALT_NAME_INFO codificada em ASN.1. CERT_NEXT_UPDATE_LOCATION_PROP_ID atualmente é usado apenas com CTLs. |
|
Tipo de dados para pvData: ponteiro para uma matriz BYTE Retorna um Unicode com terminação nula, cadeia de caracteres largos especificando o nome do arquivo que contém a chave privada associada à chave pública do certificado. |
|
Tipo de dados para pvData: ponteiro para uma matriz BYTE Retorna o hash SHA1. Se o hash não existir, ele será calculado usando CryptHashCertificate. |
|
Tipo de dados para pvData: ponteiro para uma matriz BYTE Retorna o hash de assinatura. Se o hash não existir, ele será calculado com CryptHashToBeSigned. O comprimento do hash é de 20 bytes para SHA e 16 para MD5. |
Para todos os outros identificadores de propriedade, pvData aponta para uma matriz de bytes e não um CRYPT_DATA_BLOB como apontado pelo parâmetro pvData em CertSetCertificateContextProperty.
Para obter mais informações sobre cada identificador de propriedade, consulte a documentação sobre o parâmetro dwPropId em CertSetCertificateContextProperty. CERT_SHA1_HASH_PROP_ID e CERT_NEXT_UPDATE_LOCATION_PROP_ID são as propriedades predefinidas de maior interesse.
[out] pvData
Um ponteiro para um buffer para receber os dados conforme determinado por dwPropId. Estruturas apontadas por membros de uma estrutura retornada também são retornadas após a estrutura base. Portanto, o tamanho contido em pcbData geralmente excede o tamanho da estrutura base.
Esse parâmetro pode ser NULL para definir o tamanho das informações para fins de alocação de memória. Para obter mais informações, consulte Recuperando dados de comprimento desconhecido.
[in, out] pcbData
Um ponteiro para um valor DWORD que especifica o tamanho, em bytes, do buffer apontado pelo parâmetro pvData . Quando a função retorna, o valor DWORD contém o número de bytes a serem armazenados no buffer.
Retornar valor
Se a função for bem-sucedida, o valor retornado será TRUE.
Se a função falhar, o valor retornado será FALSE.
Erros da função chamada , CryptHashCertificate, podem ser propagados para essa função. Para obter informações de erro estendidas, chame GetLastError.
Alguns códigos de erro possíveis seguem.
Código de retorno | Descrição |
---|---|
|
A CTL não tem a propriedade especificada. |
|
Se o buffer especificado pelo parâmetro pvData não for grande o suficiente para manter os dados retornados, a função definirá o código ERROR_MORE_DATA e armazenará o tamanho do buffer necessário, em bytes, na variável apontada por pcbData. |
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [aplicativos da área de trabalho | aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | wincrypt.h |
Biblioteca | Crypt32.lib |
DLL | Crypt32.dll |