Função CryptQueryObject (wincrypt.h)
Sintaxe
BOOL CryptQueryObject(
[in] DWORD dwObjectType,
[in] const void *pvObject,
[in] DWORD dwExpectedContentTypeFlags,
[in] DWORD dwExpectedFormatTypeFlags,
[in] DWORD dwFlags,
[out] DWORD *pdwMsgAndCertEncodingType,
[out] DWORD *pdwContentType,
[out] DWORD *pdwFormatType,
[out] HCERTSTORE *phCertStore,
[out] HCRYPTMSG *phMsg,
[out] const void **ppvContext
);
Parâmetros
[in] dwObjectType
Indica o tipo do objeto a ser consultado. Esse deve ser um dos valores a seguir.
Valor | Significado |
---|---|
|
O objeto é armazenado em uma estrutura na memória. |
|
O objeto é armazenado em um arquivo. |
[in] pvObject
Um ponteiro para o objeto a ser consultado. O tipo de ponteiro de dados depende do conteúdo do parâmetro dwObjectType .
valor dwObjectType | Significado |
---|---|
|
Esse parâmetro é um ponteiro para uma estrutura CERT_BLOB ou semelhante que contém o objeto a ser consultado. |
|
Esse parâmetro é um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que contém o caminho e o nome do arquivo a ser consultado. |
[in] dwExpectedContentTypeFlags
Indica o tipo de conteúdo esperado. Esse pode ser um dos valores a seguir.
Valor | Significado |
---|---|
|
O conteúdo pode ser qualquer tipo. Isso não inclui o sinalizador CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD .
Se esse sinalizador for especificado, essa função tentará obter informações sobre o objeto, tentando tipos de conteúdo diferentes até que o tipo de conteúdo adequado seja encontrado ou os tipos de conteúdo sejam esgotados. Isso é obviamente ineficiente, portanto, esse sinalizador só deve ser usado se o tipo de conteúdo não for conhecido. |
|
O conteúdo é um único certificado. |
|
O conteúdo é uma notação de sintaxe abstrata uma (ASN.1) codificada X509_CERT_PAIR (um par de certificados codificado que contém certificados cruzados encaminhados, reversos ou encaminhados e reversos). |
|
O conteúdo é uma única CRL. |
|
O conteúdo é uma única CTL. |
|
O conteúdo é um pacote PFX (PKCS nº 12), mas não será carregado por essa função. Você pode usar a função PFXImportCertStore para carregá-la em um repositório. |
|
O conteúdo é um pacote PFX (PKCS #12) e será carregado por essa função sujeito às condições especificadas na observação a seguir.
Observação
Se o pacote PFX contiver uma senha inserida que não seja uma cadeia de caracteres vazia ou NULL e a senha não estiver protegida para uma entidade de segurança do Active Directory (AD) que inclua o usuário que está chamando, essa função não poderá descriptografar o pacote PFX. No entanto, o pacote poderá ser descriptografado se a senha usada quando o pacote PFX foi criado for criptografada para uma entidade de segurança do AD e o usuário, como parte dessa entidade de segurança, tiver permissão para descriptografar a senha. Para obter mais informações, consulte o parâmetro pvPara e o sinalizador PKCS12_PROTECT_TO_DOMAIN_SIDS da função PFXExportCertStoreEx . Você pode proteger senhas PFX para uma entidade de segurança do AD começando em Windows 8 e Windows Server 2012. |
|
O conteúdo é uma mensagem assinada PKCS nº 7. |
|
O conteúdo é uma mensagem assinada PKCS nº 7 inserida. |
|
O conteúdo é uma mensagem sem sinal PKCS nº 7. |
|
O conteúdo é uma mensagem PKCS nº 10. |
|
O conteúdo é um certificado único serializado. |
|
O conteúdo é uma CRL única serializada. |
|
O conteúdo é uma CTL única serializada. |
|
O conteúdo é um repositório serializado. |
[in] dwExpectedFormatTypeFlags
Indica o formato esperado do tipo retornado. Esse pode ser um dos valores a seguir.
Valor | Significado |
---|---|
|
O conteúdo pode ser retornado em qualquer formato. |
|
O conteúdo deve ser retornado no formato codificado em hexadecimais ASCII com um prefixo "{ASN}". |
|
O conteúdo deve ser retornado no formato codificado em Base64. |
|
O conteúdo deve ser retornado em formato binário. |
[in] dwFlags
Esse parâmetro é reservado para uso futuro e deve ser definido como zero.
[out] pdwMsgAndCertEncodingType
Um ponteiro para um valor DWORD que recebe o tipo de codificação usado na mensagem. Se essas informações não forem necessárias, defina esse parâmetro como NULL.
Esse parâmetro pode receber uma combinação de um ou mais dos valores a seguir.
Valor | Significado |
---|---|
|
Especifica a codificação de mensagens PKCS 7. |
|
Especifica a codificação de certificado X.509. |
[out] pdwContentType
Um ponteiro para um valor DWORD que recebe o tipo real do conteúdo. Se essas informações não forem necessárias, defina esse parâmetro como NULL. O tipo de conteúdo retornado pode ser um dos valores a seguir.
Valor | Significado |
---|---|
|
O conteúdo é um único certificado. |
|
O conteúdo é um X509_CERT_pair codificado em ASN.1. |
|
O conteúdo é uma única CRL. |
|
O conteúdo é uma única CTL. |
|
O conteúdo é um pacote PFX (PKCS nº 12). Essa função verifica apenas se o objeto é um pacote PKCS nº 12. O pacote PKCS nº 12 não é carregado em um repositório de certificados. |
|
O conteúdo é um pacote PFX (PKCS nº 12) e foi carregado em um repositório de certificados.
Windows Server 2003 e Windows XP: Não há suporte para esse valor. |
|
O conteúdo é uma mensagem assinada PKCS nº 7. |
|
O conteúdo é uma mensagem assinada PKCS nº 7 inserida. |
|
O conteúdo é uma mensagem sem sinal PKCS nº 7. |
|
O conteúdo é uma mensagem PKCS nº 10. |
|
O conteúdo é um certificado único serializado. |
|
O conteúdo é uma CRL única serializada. |
|
O conteúdo é uma CTL única serializada. |
|
O conteúdo é um repositório serializado. |
[out] pdwFormatType
Um ponteiro para um valor DWORD que recebe o tipo de formato real do conteúdo. Se essas informações não forem necessárias, defina esse parâmetro como NULL. O tipo de formato retornado pode ser um dos valores a seguir.
Valor | Significado |
---|---|
|
O conteúdo está no formato codificado em hexadecimais ASCII com um prefixo "{ASN}". |
|
O conteúdo está no formato codificado em Base64. |
|
O conteúdo está em formato binário. |
[out] phCertStore
Um ponteiro para um valor HCERTSTORE que recebe um identificador para um repositório de certificados que inclui todos os certificados, CRLs e CTLs no objeto .
Esse parâmetro recebe apenas um identificador de repositório de certificados quando o parâmetro dwContentType recebe um dos valores a seguir. Esse parâmetro recebe NULL para todos os outros tipos de conteúdo.
CERT_QUERY_CONTENT_CERT
CERT_QUERY_CONTENT_CRL
CERT_QUERY_CONTENT_CTL
CERT_QUERY_CONTENT_PFX_AND_LOAD
CERT_QUERY_CONTENT_PKCS7_SIGNED
CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED
CERT_QUERY_CONTENT_SERIALIZED_CERT
CERT_QUERY_CONTENT_SERIALIZED_CRL
CERT_QUERY_CONTENT_SERIALIZED_CTL
CERT_QUERY_CONTENT_SERIALIZED_STORE
Quando terminar de usar o identificador, libere-o passando o identificador para a função CertCloseStore .
Se essas informações não forem necessárias, defina esse parâmetro como NULL.
[out] phMsg
Um ponteiro para um valor HCRYPTMSG que recebe o identificador de uma mensagem aberta.
Esse parâmetro recebe apenas um identificador de mensagem quando o parâmetro dwContentType recebe um dos valores a seguir. Esse parâmetro recebe NULL para todos os outros tipos de conteúdo.
CERT_QUERY_CONTENT_PKCS7_SIGNED
CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED
CERT_QUERY_CONTENT_PKCS7_UNSIGNED
Quando terminar de usar o identificador, libere-o passando o identificador para a função CryptMsgClose .
Se essas informações não forem necessárias, defina esse parâmetro como NULL.
[out] ppvContext
Um ponteiro para um ponteiro que recebe informações adicionais sobre o objeto.
O formato desses dados depende do valor recebido pelo parâmetro dwContentType . A tabela a seguir lista o formato dos dados para o valor dwContentType especificado.
valor dwContentType | Significado |
---|---|
|
Esse parâmetro recebe um ponteiro para uma estrutura de CERT_CONTEXT . Quando terminar de usar a estrutura, libere-a passando esse ponteiro para a função CertFreeCertificateContext . |
|
Esse parâmetro recebe um ponteiro para uma estrutura de CRL_CONTEXT . Quando terminar de usar a estrutura, libere-a passando esse ponteiro para a função CertFreeCRLContext . |
|
Esse parâmetro recebe um ponteiro para uma estrutura de CTL_CONTEXT . Quando terminar de usar a estrutura, libere-a passando esse ponteiro para a função CertFreeCTLContext . |
|
Esse parâmetro recebe um ponteiro para uma estrutura de CERT_CONTEXT . Quando terminar de usar a estrutura, libere-a passando esse ponteiro para a função CertFreeCertificateContext . |
|
Esse parâmetro recebe um ponteiro para uma estrutura de CRL_CONTEXT . Quando terminar de usar a estrutura, libere-a passando esse ponteiro para a função CertFreeCRLContext . |
|
Esse parâmetro recebe um ponteiro para uma estrutura de CTL_CONTEXT . Quando terminar de usar a estrutura, libere-a passando esse ponteiro para a função CertFreeCTLContext . |
Se essas informações não forem necessárias, defina esse parâmetro como NULL.
Retornar valor
Se a função for bem-sucedida, a função retornará diferente de zero.
Se a função falhar, ela retornará zero. Para obter informações de erro estendidas, chame GetLastError.
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 |