Fonction CryptQueryObject (wincrypt.h)
Syntaxe
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
);
Paramètres
[in] dwObjectType
Indique le type de l’objet à interroger. Il doit s’agir de l’une des valeurs suivantes.
Valeur | Signification |
---|---|
|
L’objet est stocké dans une structure en mémoire. |
|
L’objet est stocké dans un fichier. |
[in] pvObject
Pointeur vers l’objet à interroger. Le type de pointeur de données dépend du contenu du paramètre dwObjectType .
valeur dwObjectType | Signification |
---|---|
|
Ce paramètre est un pointeur vers une structure CERT_BLOB ou similaire qui contient l’objet à interroger. |
|
Ce paramètre est un pointeur vers une chaîne Unicode terminée par null qui contient le chemin d’accès et le nom du fichier à interroger. |
[in] dwExpectedContentTypeFlags
Indique le type de contenu attendu. Il peut s’agir de l’une des valeurs suivantes.
Valeur | Signification |
---|---|
|
Le contenu peut être n’importe quel type. Cela n’inclut pas l’indicateur CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD .
Si cet indicateur est spécifié, cette fonction tente d’obtenir des informations sur l’objet, en essayant différents types de contenu jusqu’à ce que le type de contenu approprié soit trouvé ou que les types de contenu soient épuisés. Cela est évidemment inefficace. Cet indicateur ne doit donc être utilisé que si le type de contenu n’est pas connu. |
|
Le contenu est un certificat unique. |
|
Le contenu est une X509_CERT_PAIR encodée ASN.1 ( Abstract Syntax Notation One ) (une paire de certificats encodée qui contient des certificats croisés en avant, en arrière ou inversé). |
|
Le contenu est une seule liste de révocation de révocation de certificats. |
|
Le contenu est une seule CTL. |
|
Le contenu est un paquet PFX (PKCS #12), mais il ne sera pas chargé par cette fonction. Vous pouvez utiliser la fonction PFXImportCertStore pour le charger dans un magasin. |
|
Le contenu est un paquet PFX (PKCS #12) qui sera chargé par cette fonction sous réserve des conditions spécifiées dans la note suivante.
Remarque
Si le paquet PFX contient un mot de passe incorporé qui n’est pas une chaîne vide ou NULL, et que le mot de passe n’a pas été protégé pour un principal Active Directory (AD) qui inclut l’utilisateur appelant, cette fonction ne sera pas en mesure de déchiffrer le paquet PFX. Le paquet peut toutefois être déchiffré si le mot de passe utilisé lors de la création du paquet PFX a été chiffré sur un principal AD et que l’utilisateur, dans le cadre de ce principal, a l’autorisation de déchiffrer le mot de passe. Pour plus d’informations, consultez le paramètre pvPara et l’indicateur PKCS12_PROTECT_TO_DOMAIN_SIDS de la fonction PFXExportCertStoreEx . Vous pouvez protéger les mots de passe PFX sur un principal AD à partir de Windows 8 et Windows Server 2012. |
|
Le contenu est un message signé PKCS #7. |
|
Le contenu est un message signé PKCS #7 incorporé. |
|
Le contenu est un message non signé PKCS #7. |
|
Le contenu est un message PKCS #10. |
|
Le contenu est un certificat unique sérialisé. |
|
Le contenu est une seule liste de révocation de révocation de certificats sérialisée. |
|
Le contenu est sérialisé avec une seule CTL. |
|
Le contenu est un magasin sérialisé. |
[in] dwExpectedFormatTypeFlags
Indique le format attendu du type retourné. Il peut s’agir de l’une des valeurs suivantes.
Valeur | Signification |
---|---|
|
Le contenu peut être retourné dans n’importe quel format. |
|
Le contenu doit être retourné au format hexadécimal ASCII avec un préfixe « {ASN} ». |
|
Le contenu doit être retourné au format encodé en Base64. |
|
Le contenu doit être retourné au format binaire. |
[in] dwFlags
Ce paramètre est réservé à une utilisation ultérieure et doit être défini sur zéro.
[out] pdwMsgAndCertEncodingType
Pointeur vers une valeur DWORD qui reçoit le type d’encodage utilisé dans le message. Si ces informations ne sont pas nécessaires, définissez ce paramètre sur NULL.
Ce paramètre peut recevoir une combinaison d’une ou plusieurs des valeurs suivantes.
Valeur | Signification |
---|---|
|
Spécifie l’encodage des messages PKCS 7. |
|
Spécifie l’encodage du certificat X.509. |
[out] pdwContentType
Pointeur vers une valeur DWORD qui reçoit le type réel du contenu. Si ces informations ne sont pas nécessaires, définissez ce paramètre sur NULL. Le type de contenu retourné peut être l’une des valeurs suivantes.
Valeur | Signification |
---|---|
|
Le contenu est un certificat unique. |
|
Le contenu est une X509_CERT_pair encodée ASN.1. |
|
Le contenu est une seule liste de révocation de révocation de certificats. |
|
Le contenu est une seule CTL. |
|
Le contenu est un paquet PFX (PKCS #12). Cette fonction vérifie uniquement que l’objet est un paquet PKCS #12. Le paquet PKCS #12 n’est pas chargé dans un magasin de certificats. |
|
Le contenu est un paquet PFX (PKCS #12) qui a été chargé dans un magasin de certificats.
Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
Le contenu est un message signé PKCS #7. |
|
Le contenu est un message signé PKCS #7 incorporé. |
|
Le contenu est un message non signé PKCS #7. |
|
Le contenu est un message PKCS #10. |
|
Le contenu est un certificat unique sérialisé. |
|
Le contenu est une seule liste de révocation de révocation de certificats sérialisée. |
|
Le contenu est une seule CTL sérialisée. |
|
Le contenu est un magasin sérialisé. |
[out] pdwFormatType
Pointeur vers une valeur DWORD qui reçoit le type de format réel du contenu. Si ces informations ne sont pas nécessaires, définissez ce paramètre sur NULL. Le type de format retourné peut être l’une des valeurs suivantes.
Valeur | Signification |
---|---|
|
Le contenu est au format hexadécimal ASCII avec un préfixe « {ASN} ». |
|
Le contenu est au format encodé en Base64. |
|
Le contenu est au format binaire. |
[out] phCertStore
Pointeur vers une valeur HCERTSTORE qui reçoit un handle vers un magasin de certificats qui inclut tous les certificats, LISTES de contrôle d’accès et CTL de l’objet.
Ce paramètre reçoit uniquement un handle de magasin de certificats lorsque le paramètre dwContentType reçoit l’une des valeurs suivantes. Ce paramètre reçoit la valeur NULL pour tous les autres types de contenu.
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
Une fois que vous avez terminé d’utiliser le handle, libérez-le en passant le handle à la fonction CertCloseStore .
Si ces informations ne sont pas nécessaires, définissez ce paramètre sur NULL.
[out] phMsg
Pointeur vers une valeur HCRYPTMSG qui reçoit le handle d’un message ouvert.
Ce paramètre reçoit uniquement un handle de message lorsque le paramètre dwContentType reçoit l’une des valeurs suivantes. Ce paramètre reçoit la valeur NULL pour tous les autres types de contenu.
CERT_QUERY_CONTENT_PKCS7_SIGNED
CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED
CERT_QUERY_CONTENT_PKCS7_UNSIGNED
Une fois que vous avez terminé d’utiliser le handle, libérez-le en passant le handle à la fonction CryptMsgClose .
Si ces informations ne sont pas nécessaires, définissez ce paramètre sur NULL.
[out] ppvContext
Pointeur vers un pointeur qui reçoit des informations supplémentaires sur l’objet.
Le format de ces données dépend de la valeur reçue par le paramètre dwContentType . Le tableau suivant répertorie le format des données pour la valeur dwContentType spécifiée.
valeur dwContentType | Signification |
---|---|
|
Ce paramètre reçoit un pointeur vers une structure CERT_CONTEXT . Lorsque vous avez terminé d’utiliser la structure, libérez-la en passant ce pointeur vers la fonction CertFreeCertificateContext . |
|
Ce paramètre reçoit un pointeur vers une structure CRL_CONTEXT . Lorsque vous avez terminé d’utiliser la structure, libérez-la en passant ce pointeur vers la fonction CertFreeCRLContext . |
|
Ce paramètre reçoit un pointeur vers une structure CTL_CONTEXT . Une fois la structure terminée, libérez-la en passant ce pointeur vers la fonction CertFreeCTLContext . |
|
Ce paramètre reçoit un pointeur vers une structure CERT_CONTEXT . Lorsque vous avez terminé d’utiliser la structure, libérez-la en passant ce pointeur vers la fonction CertFreeCertificateContext . |
|
Ce paramètre reçoit un pointeur vers une structure CRL_CONTEXT . Lorsque vous avez terminé d’utiliser la structure, libérez-la en passant ce pointeur vers la fonction CertFreeCRLContext . |
|
Ce paramètre reçoit un pointeur vers une structure CTL_CONTEXT . Une fois la structure terminée, libérez-la en passant ce pointeur vers la fonction CertFreeCTLContext . |
Si ces informations ne sont pas nécessaires, définissez ce paramètre sur NULL.
Valeur retournée
Si la fonction réussit, la fonction retourne une valeur différente de zéro.
Si la fonction échoue, elle retourne zéro. Pour obtenir des informations d’erreur étendues, appelez GetLastError.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | wincrypt.h |
Bibliothèque | Crypt32.lib |
DLL | Crypt32.dll |