Função CertGetCRLContextProperty (wincrypt.h)

A função CertGetCRLContextProperty obtém uma propriedade estendida para o contexto de CRL ( lista de certificados revogados ) especificado.

Sintaxe

BOOL CertGetCRLContextProperty(
  [in]      PCCRL_CONTEXT pCrlContext,
  [in]      DWORD         dwPropId,
  [out]     void          *pvData,
  [in, out] DWORD         *pcbData
);

Parâmetros

[in] pCrlContext

Um ponteiro para a estrutura CRL_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
CERT_ACCESS_STATE_PROP_ID
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.

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

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

CERT_CTL_USAGE_PROP_ID
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).

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

CERT_ENHKEY_USAGE_PROP_ID
Tipo de dados para pvData:

Retorna uma matriz de bytes que contém uma estrutura de CERT_ENHKEY_USAGE codificada em ASN.1.

CERT_FRIENDLY_NAME_PROP_ID
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 CRL.

CERT_ISSUER_CHAIN_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID
Tipo de dados para pvData: ponteiro para uma cadeia de caracteres Unicode terminada em nulo.

Retorna uma cadeia de caracteres que contém um conjunto de algoritmos de chave pública L"<PUBKEY>/<BITLENGTH>" e pares de comprimento de bit. O ponto e vírgula, L";", é usado como delimitador.

O <valor PUBKEY> identifica o algoritmo de chave pública CNG. Há suporte para os seguintes algoritmos:

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
Um parPUBKEY<BITLENGTH> é retornado para cada certificado na cadeia de emissores de CRL, excluindo a folha.></ Essa propriedade só é definida quando uma resposta OCSP com uma cadeia de signatários independente é convertida em uma CRL.
Nota Essa propriedade não pode ser recuperada para um certificado de signatário OCSP delegado. Um certificado de signatário delegado é assinado com a mesma chave usada para assinar o certificado de entidade e é verificado lá.
 
A seguir, é mostrado um exemplo:

: L"RSA/2048; RSA/4096"

CERT_ISSUER_CHAIN_SIGN_HASH_CNG_ALG_PROP_ID
Tipo de dados para pvData: ponteiro para uma cadeia de caracteres Unicode terminada em nulo.

Retorna uma cadeia de caracteres que contém um conjunto de pares de algoritmos L"<SIGNATURE>/<HASH>". O ponto e vírgula, L";", é usado como delimitador entre pares.

Essa propriedade é definida somente quando uma resposta OCSP é convertida em uma CRL. Para um certificado de signatário OCSP delegado, somente o par de algoritmos para o certificado do signatário é retornado. Para uma cadeia de certificados do signatário OCSP independente, um par de algoritmos é retornado para cada certificado na cadeia, excluindo a raiz.

O <valor SIGNATURE> identifica o algoritmo de chave pública CNG. Há suporte para os seguintes algoritmos:

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
O <valor hash> identifica o algoritmo de hash CNG. Há suporte para os seguintes algoritmos:
  • L"MD5" (BCRYPT_MD5_ALGORITHM)
  • L"SHA1" (BCRYPT_SHA1_ALGORITHM)
  • L"SHA256" (BCRYPT_SHA256_ALGORITHM)
  • L"SHA384" (BCRYPT_SHA384_ALGORITHM)
  • L"SHA512" (BCRYPT_SHA512_ALGORITHM)
Um exemplo é mostrado a seguir:
  • L"RSA/SHA256; RSA/SHA256"
CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID
Tipo de dados para pvData: ponteiro para um valor DWORD .

Retorna o comprimento, em bits, da chave pública no certificado do emissor da CRL. Essa propriedade também é aplicável a uma resposta OCSP que foi convertida em uma CRL.

Windows 8 e Windows Server 2012: o suporte para essa propriedade começa.

CERT_KEY_CONTEXT_PROP_ID
Tipo de dados para pvData: ponteiro para um CERT_KEY_CONTEXT

Retorna uma estrutura CERT_KEY_CONTEXT .

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

CERT_KEY_PROV_HANDLE_PROP_ID
Tipo de dados para pvData: ponteiro para um HCRYPTPROV

Retorna o identificador do provedor obtido do CERT_KEY_CONTEXT_PROP_ID.

CERT_KEY_PROV_INFO_PROP_ID
Tipo de dados para pvData: ponteiro para um CRYPT_KEY_PROV_INFO

Retorna um ponteiro para um CRYPT_KEY_PROV_INFO.

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

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

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

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

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

CERT_SIGN_HASH_CNG_ALG_PROP_ID
Tipo de dados de pvData: ponteiro para uma cadeia de caracteres Unicode terminada em nulo.

Retorna a cadeia de caracteres L"<SIGNATURE>/<HASH>" que representa a assinatura do certificado. O <valor SIGNATURE> identifica o algoritmo de chave pública CNG. Há suporte para os seguintes algoritmos:

  • L"RSA" (BCRYPT_RSA_ALGORITHM)
  • L"DSA" (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA" (SSL_ECDSA_ALGORITHM)
O <valor hash> identifica o algoritmo de hash CNG. Há suporte para os seguintes algoritmos:
  • L"MD5" (BCRYPT_MD5_ALGORITHM)
  • L"SHA1" (BCRYPT_SHA1_ALGORITHM)
  • L"SHA256" (BCRYPT_SHA256_ALGORITHM)
  • L"SHA384" (BCRYPT_SHA384_ALGORITHM)
  • L"SHA512" (BCRYPT_SHA512_ALGORITHM)
Estes são exemplos comuns:
  • L"RSA/SHA1"
  • L"RSA/SHA256"
  • L"ECDSA/SHA256"
Essa propriedade também é aplicável a uma resposta OCSP que foi convertida em uma CRL.

Windows 8 e Windows Server 2012: o suporte para essa propriedade começa.

CERT_SIGNATURE_HASH_PROP_ID
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 muitos identificadores de propriedade, pvData aponta para uma matriz de bytes e não um CRYPT_DATA_BLOB como apontado pelo parâmetro pvData em CertSetCRLContextProperty.

Para obter mais informações sobre cada identificador de propriedade, consulte a documentação sobre o parâmetro dwPropId em CertSetCertificateContextProperty.

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

Nota Ao processar os dados retornados no buffer, os aplicativos devem 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, o valor retornado será TRUE.

Se a função falhar, o valor retornado será FALSE.

Observe que 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
CRYPT_E_NOT_FOUND
A CRL não tem a propriedade especificada.
ERROR_MORE_DATA
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

Confira também

CertEnumCRLContextProperties

CertGetCertificateContextProperty

CryptHashCertificate

Funções de propriedade estendidas