Partager via


Fonction CryptGetKeyIdentifierProperty (wincrypt.h)

Important Cette API est déconseillée. Les logiciels nouveaux et existants doivent commencer à utiliser les API de nouvelle génération de chiffrement. Microsoft peut supprimer cette API dans les versions ultérieures.
 
CryptGetKeyIdentifierProperty acquiert une propriété spécifique à partir d’un identificateur de clé spécifié.

Syntaxe

BOOL CryptGetKeyIdentifierProperty(
  [in]      const CRYPT_HASH_BLOB *pKeyIdentifier,
  [in]      DWORD                 dwPropId,
  [in]      DWORD                 dwFlags,
  [in]      LPCWSTR               pwszComputerName,
  [in]      void                  *pvReserved,
  [out]     void                  *pvData,
  [in, out] DWORD                 *pcbData
);

Paramètres

[in] pKeyIdentifier

Pointeur vers le CRYPT_HASH_BLOB qui contient l’identificateur de clé.

[in] dwPropId

Identifie la propriété à récupérer. La valeur de dwPropId détermine le type et le contenu du paramètre pvData . N’importe quel ID de propriété de certificat peut être utilisé.

[in] dwFlags

Les indicateurs suivants peuvent être utilisés. Ils peuvent être combinés avec une opération or au niveau du bit.

Valeur Signification
CRYPT_KEYID_MACHINE_FLAG
Recherchez la liste des identificateurs de clé de LocalMachine (si pwszComputerName a la valeur NULL) ou de l’ordinateur distant (si pwszComputerName n’a pas la valeur NULL). Pour plus d’informations, consultez pwszComputerName.
CRYPT_KEYID_ALLOC_FLAG
La fonction LocalAlloc() est appelée pour allouer de la mémoire pour pvData. *pvData est mis à jour avec un pointeur vers la mémoire allouée. LocalFree() doit être appelé pour libérer la mémoire allouée.

[in] pwszComputerName

Pointeur vers le nom d’un ordinateur distant à rechercher. Si CRYPT_KEYID_MACHINE_FLAG indicateur est défini, recherche une liste d’identificateurs de clé sur l’ordinateur distant. Si l’ordinateur local doit faire l’objet d’une recherche et non un ordinateur distant, définissez pwszComputerName sur NULL.

[in] pvReserved

Réservé pour une utilisation ultérieure et doit avoir la valeur NULL.

[out] pvData

Pointeur vers une mémoire tampon pour recevoir les données déterminées par dwPropId. Les éléments pointés par les champs de la structure pvData suivent la structure. Par conséquent, la taille contenue dans pcbData peut dépasser la taille de la structure.

Si dwPropId est CERT_KEY_PROV_INFO_PROP_ID, pvData pointe vers une structure CRYPT_KEY_PROV_INFO qui contient la propriété de l’identificateur de clé.

Si dwPropId n’est pas CERT_KEY_PROV_INFO_PROP_ID, pvData pointe vers un tableau d’octets qui contient la propriété de l’identificateur de clé.

Pour obtenir la taille de ces informations à des fins d’allocation de mémoire, ce paramètre peut avoir la valeur NULL lorsque le CRYPT_KEYID_ALLOC_FLAG n’est pas défini. Pour plus d’informations, consultez Récupération de données de longueur inconnue.

Lorsque le CRYPT_KEYID_ALLOC_FLAG est défini, pvData est l’adresse d’un pointeur vers la mémoire tampon qui sera mise à jour. Étant donné que la mémoire est allouée et que son pointeur est stocké dans *pvData, pvData ne doit pas avoir la valeur NULL.

[in, out] pcbData

Pointeur vers un DWORD qui contient la taille, en octets, de la mémoire tampon pointée par le paramètre pvData . Lorsque la fonction retourne, le DWORD contient le nombre d’octets stockés dans la mémoire tampon. La taille contenue dans la variable pointée par pcbData peut indiquer une taille supérieure à la structure CRYPT_KEY_PROV_INFO , car la structure peut contenir des pointeurs vers des données auxiliaires. Cette taille est la somme de la taille nécessaire à la structure et à toutes les données auxiliaires.

Lorsque le CRYPT_KEYID_ALLOC_FLAG est défini, pcbData est l’adresse d’un pointeur vers le DWORD qui sera mis à jour.

Note Lors du traitement des données retournées dans la mémoire tampon, les applications doivent utiliser la taille réelle des données retournées. La taille réelle peut être légèrement inférieure à la taille de la mémoire tampon spécifiée lors de l’entrée. En entrée, les tailles de mémoire tampon sont généralement spécifiées suffisamment grandes pour garantir que les données de sortie les plus volumineuses possibles s’intègrent dans la mémoire tampon. En sortie, la variable pointée par ce paramètre est mise à jour pour refléter la taille réelle des données copiées dans la mémoire tampon.
 

Valeur retournée

Si la fonction réussit, la fonction retourne une valeur différente de zéro (TRUE).

Si la fonction échoue, elle retourne zéro (FALSE). Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête wincrypt.h
Bibliothèque Crypt32.lib
DLL Crypt32.dll

Voir aussi

CryptEnumKeyIdentifierProperties

CryptSetKeyIdentifierProperty

Fonctions d’identificateur de clé