Função CertFindSubjectInCTL (wincrypt.h)

A função CertFindSubjectInCTL tenta localizar a entidade especificada em uma CTL ( lista de certificados confiáveis ). Uma entidade pode ser identificada por todo o contexto do certificado ou por qualquer identificador exclusivo da entidade do certificado, como o hash SHA1 do emissor do certificado e o número de série.

Sintaxe

PCTL_ENTRY CertFindSubjectInCTL(
  [in] DWORD         dwEncodingType,
  [in] DWORD         dwSubjectType,
  [in] void          *pvSubject,
  [in] PCCTL_CONTEXT pCtlContext,
  [in] DWORD         dwFlags
);

Parâmetros

[in] dwEncodingType

Especifica o tipo de codificação usado. Atualmente, apenas X509_ASN_ENCODING e PKCS_7_ASN_ENCODING estão sendo usados; no entanto, tipos de codificação adicionais podem ser adicionados no futuro. Para qualquer tipo de codificação atual, use:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.

[in] dwSubjectType

Especifica o tipo de assunto a ser pesquisado na CTL. Pode ser NULL para uma pesquisa padrão.

Valor Significado
CTL_CERT_SUBJECT_TYPE
Tipo de dados pvSubject: ponteiro para uma estrutura CERT_CONTEXT.

SubjectAlgorithm da CTL é examinado para determinar a representação da identidade do sujeito. Inicialmente, somente hashes SHA1 e MD5 têm suporte como valores para SubjectAlgorithm. A propriedade de hash apropriada é obtida da estrutura CERT_CONTEXT .

CTL_ANY_SUBJECT_TYPE
Tipo de dados pvSubject: ponteiro para uma estrutura CTL_ANY_SUBJECT_INFO.

O membro SubjectAlgorithm dessa estrutura deve corresponder ao tipo de algoritmo da CTL e o membro SubjectIdentifier deve corresponder a uma das entradas CTL.

 

O hash do certificado ou o membro SubjectIdentifier da estrutura CTL_ANY_SUBJECT_INFO é usado como a chave na pesquisa das entradas do assunto. Uma comparação de memória binária é feita entre a chave e o SubjectIdentifier da entrada.

Se dwSubjectType estiver definido como um dos valores anteriores, dwEncodingType não será usado.

[in] pvSubject

Ponteiro usado em conjunto com o parâmetro dwSubjectType .

[in] pCtlContext

Um ponteiro para a estrutura CTL_CONTEXT que está sendo pesquisada.

[in] dwFlags

Reservado para uso futuro e deve ser zero.

Retornar valor

Se a função for bem-sucedida, o valor retornado será a entrada, se for encontrada.

Se a função falhar, o valor retornado será NULL. 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
O assunto não foi encontrado na CTL.
E_INVALIDARG
O parâmetro dwSubjectType não foi CTL_CERT_SUBJECT_TYPE ou CTL_ANY_SUBJECT_TYPE.
NTE_BAD_ALGID
O membro SubjectAlgorithm da CTL não foi mapeado para SHA1 ou MD5.

Comentários

O hash do certificado ou o membro SubjectIdentifier da estrutura CTL_ANY_SUBJECT_INFO é usado como a chave na pesquisa das entradas do assunto. Uma comparação de memória binária é feita entre a chave e o SubjectIdentifier da entrada.

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

CERT_CONTEXT

CTL_ANY_SUBJECT_INFO

CTL_CONTEXT

CertFindCTLInStore

Funções de manutenção do repositório de certificados e certificados