Función CryptQueryObject (wincrypt.h)
Sintaxis
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 el tipo del objeto que se va a consultar. Debe ser uno de los siguientes valores.
Valor | Significado |
---|---|
|
El objeto se almacena en una estructura en memoria. |
|
El objeto se almacena en un archivo. |
[in] pvObject
Puntero al objeto que se va a consultar. El tipo de puntero de datos depende del contenido del parámetro dwObjectType .
valor dwObjectType | Significado |
---|---|
|
Este parámetro es un puntero a un CERT_BLOB, o una estructura similar, que contiene el objeto que se va a consultar. |
|
Este parámetro es un puntero a una cadena Unicode terminada en null que contiene la ruta de acceso y el nombre del archivo que se va a consultar. |
[in] dwExpectedContentTypeFlags
Indica el tipo de contenido esperado. Puede ser uno de los siguientes valores.
Valor | Significado |
---|---|
|
El contenido puede ser cualquier tipo. Esto no incluye la marca CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD .
Si se especifica esta marca, esta función intentará obtener información sobre el objeto, intentando diferentes tipos de contenido hasta que se encuentre el tipo de contenido adecuado o se agoten los tipos de contenido. Esto es obviamente ineficaz, por lo que esta marca solo debe usarse si no se conoce el tipo de contenido. |
|
El contenido es un único certificado. |
|
El contenido es una notación de sintaxis abstracta uno (ASN.1) codificada X509_CERT_PAIR (un par de certificados codificado que contiene certificados cruzados reenviados, inversos o reenviados). |
|
El contenido es una única CRL. |
|
El contenido es un único CTL. |
|
El contenido es un paquete PFX (PKCS #12), pero esta función no la cargará. Puede usar la función PFXImportCertStore para cargarla en un almacén. |
|
El contenido es un paquete PFX (PKCS #12) y esta función se cargará según las condiciones especificadas en la nota siguiente.
Nota
Si el paquete PFX contiene una contraseña incrustada que no es una cadena vacía o NULL, y la contraseña no se protegió en una entidad de seguridad de Active Directory (AD) que incluya al usuario que realiza la llamada, esta función no podrá descifrar el paquete PFX. Sin embargo, el paquete se puede descifrar si la contraseña usada cuando se creó el paquete PFX se cifró en una entidad de seguridad de AD y el usuario, como parte de esa entidad de seguridad, tiene permiso para descifrar la contraseña. Para obtener más información, vea el parámetro pvPara y la marca PKCS12_PROTECT_TO_DOMAIN_SIDS de la función PFXExportCertStoreEx . Puede proteger las contraseñas PFX en una entidad de seguridad de AD a partir de Windows 8 y Windows Server 2012. |
|
El contenido es un mensaje firmado PKCS #7. |
|
El contenido es un mensaje PKCS #7 firmado incrustado. |
|
El contenido es un mensaje PKCS #7 sin firmar. |
|
El contenido es un mensaje PKCS #10. |
|
El contenido es un certificado único serializado. |
|
El contenido es una CRL única serializada. |
|
El contenido se serializa con un solo CTL. |
|
El contenido es un almacén serializado. |
[in] dwExpectedFormatTypeFlags
Indica el formato esperado del tipo devuelto. Puede ser uno de los siguientes valores.
Valor | Significado |
---|---|
|
El contenido se puede devolver en cualquier formato. |
|
El contenido debe devolverse en formato codificado hexadecimal ASCII con un prefijo "{ASN}". |
|
El contenido debe devolverse en formato codificado en Base64. |
|
El contenido debe devolverse en formato binario. |
[in] dwFlags
Este parámetro está reservado para uso futuro y debe establecerse en cero.
[out] pdwMsgAndCertEncodingType
Puntero a un valor DWORD que recibe el tipo de codificación usada en el mensaje. Si esta información no es necesaria, establezca este parámetro en NULL.
Este parámetro puede recibir una combinación de uno o varios de los valores siguientes.
Valor | Significado |
---|---|
|
Especifica la codificación de mensajes PKCS 7. |
|
Especifica la codificación de certificados X.509. |
[out] pdwContentType
Puntero a un valor DWORD que recibe el tipo real del contenido. Si esta información no es necesaria, establezca este parámetro en NULL. El tipo de contenido devuelto puede ser uno de los siguientes valores.
Valor | Significado |
---|---|
|
El contenido es un único certificado. |
|
El contenido es un X509_CERT_pair codificado asn.1. |
|
El contenido es una única CRL. |
|
El contenido es un único CTL. |
|
El contenido es un paquete PFX (PKCS #12). Esta función solo comprueba que el objeto es un paquete PKCS #12. El paquete PKCS #12 no se carga en un almacén de certificados. |
|
El contenido es un paquete PFX (PKCS #12) y se ha cargado en un almacén de certificados.
Windows Server 2003 y Windows XP: Este valor no se admite. |
|
El contenido es un mensaje firmado PKCS #7. |
|
El contenido es un mensaje PKCS #7 firmado incrustado. |
|
El contenido es un mensaje PKCS #7 sin firmar. |
|
El contenido es un mensaje PKCS #10. |
|
El contenido es un certificado único serializado. |
|
El contenido es una CRL única serializada. |
|
El contenido es un CTL único serializado. |
|
El contenido es un almacén serializado. |
[out] pdwFormatType
Puntero a un valor DWORD que recibe el tipo de formato real del contenido. Si no se necesita esta información, establezca este parámetro en NULL. El tipo de formato devuelto puede ser uno de los valores siguientes.
Valor | Significado |
---|---|
|
El contenido está en formato hexadecimal ASCII con un prefijo "{ASN}". |
|
El contenido está en formato codificado en Base64. |
|
El contenido está en formato binario. |
[out] phCertStore
Puntero a un valor HCERTSTORE que recibe un identificador de un almacén de certificados que incluye todos los certificados, CRL y CTL del objeto .
Este parámetro solo recibe un identificador de almacén de certificados cuando el parámetro dwContentType recibe uno de los valores siguientes. Este parámetro recibe NULL para todos los demás tipos de contenido.
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
Cuando haya terminado de usar el identificador, libere el identificador pasando el identificador a la función CertCloseStore .
Si no se necesita esta información, establezca este parámetro en NULL.
[out] phMsg
Puntero a un valor HCRYPTMSG que recibe el identificador de un mensaje abierto.
Este parámetro solo recibe un identificador de mensaje cuando el parámetro dwContentType recibe uno de los valores siguientes. Este parámetro recibe NULL para todos los demás tipos de contenido.
CERT_QUERY_CONTENT_PKCS7_SIGNED
CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED
CERT_QUERY_CONTENT_PKCS7_UNSIGNED
Cuando haya terminado de usar el identificador, libere el identificador pasando el identificador a la función CryptMsgClose .
Si no se necesita esta información, establezca este parámetro en NULL.
[out] ppvContext
Puntero a un puntero que recibe información adicional sobre el objeto.
El formato de estos datos depende del valor recibido por el parámetro dwContentType . En la tabla siguiente se muestra el formato de los datos para el valor dwContentType especificado.
valor dwContentType | Significado |
---|---|
|
Este parámetro recibe un puntero a una estructura CERT_CONTEXT . Cuando haya terminado de usar la estructura , libere este puntero a la función CertFreeCertificateContext . |
|
Este parámetro recibe un puntero a una estructura CRL_CONTEXT . Cuando haya terminado de usar la estructura , libere este puntero a la función CertFreeCRLContext . |
|
Este parámetro recibe un puntero a una estructura CTL_CONTEXT . Cuando haya terminado de usar la estructura , libere este puntero a la función CertFreeCTLContext . |
|
Este parámetro recibe un puntero a una estructura CERT_CONTEXT . Cuando haya terminado de usar la estructura , libere este puntero a la función CertFreeCertificateContext . |
|
Este parámetro recibe un puntero a una estructura CRL_CONTEXT . Cuando haya terminado de usar la estructura , libere este puntero a la función CertFreeCRLContext . |
|
Este parámetro recibe un puntero a una estructura CTL_CONTEXT . Cuando haya terminado de usar la estructura , libere este puntero a la función CertFreeCTLContext . |
Si no se necesita esta información, establezca este parámetro en NULL.
Valor devuelto
Si la función se ejecuta correctamente, la función devuelve un valor distinto de cero.
Si se produce un error en la función, devuelve cero. Para obtener información de error extendida, llame a GetLastError.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | wincrypt.h |
Library | Crypt32.lib |
Archivo DLL | Crypt32.dll |