CryptExportPublicKeyInfo, fonction (wincrypt.h)

La fonction CryptExportPublicKeyInfo exporte les informations de clé publique associées à la clé privée correspondante du fournisseur. Pour obtenir une version mise à jour de cette fonction, consultez CryptExportPublicKeyInfoEx.

Syntaxe

BOOL CryptExportPublicKeyInfo(
  [in]      HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProvOrNCryptKey,
  [in]      DWORD                           dwKeySpec,
  [in]      DWORD                           dwCertEncodingType,
  [out]     PCERT_PUBLIC_KEY_INFO           pInfo,
  [in, out] DWORD                           *pcbInfo
);

Paramètres

[in] hCryptProvOrNCryptKey

Gérer le fournisseur de services de chiffrement (CSP) à utiliser lors de l’exportation des informations de clé publique. Ce handle doit être un handle HCRYPTPROV créé à l’aide de la fonction CryptAcquireContext ou d’un handle NCRYPT_KEY_HANDLE créé à l’aide de la fonction NCryptOpenKey . Les nouvelles applications doivent toujours passer le handle NCRYPT_KEY_HANDLE d’un fournisseur de services cloud CNG.

[in] dwKeySpec

Identifie la clé privée à utiliser à partir du conteneur du fournisseur. Il peut être AT_KEYEXCHANGE ou AT_SIGNATURE. Ce paramètre est ignoré si un NCRYPT_KEY_HANDLE est utilisé dans le paramètre hCryptProvOrNCryptKey .

[in] dwCertEncodingType

Spécifie le type d’encodage utilisé. Il est toujours acceptable de spécifier les types d’encodage de certificat et de message en les combinant avec une opération bitwise-OR, comme illustré dans l’exemple suivant :

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

Actuellement, les types d’encodage définis sont les suivants :

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[out] pInfo

Pointeur vers une structure CERT_PUBLIC_KEY_INFO pour recevoir les informations de clé publique à exporter.

Pour définir la taille de ces informations à des fins d’allocation de mémoire, ce paramètre peut être NULL. Pour plus d’informations, consultez Récupération des données de longueur inconnue.

[in, out] pcbInfo

Pointeur vers un DWORD qui contient la taille, en octets, de la mémoire tampon pointée par le paramètre pInfo . Lorsque la fonction retourne, DWORD contient le nombre d’octets nécessaires pour la mémoire tampon de retour.

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 sur l’entrée. (En entrée, les tailles de mémoire tampon sont généralement spécifiées suffisamment volumineuses pour s’assurer que les données de sortie les plus importantes possibles s’adapteront à 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 non-zéro (TRUE).

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

Note Les erreurs provenant des fonctions appelées CryptGetUserKey et CryptExportKey peuvent être propagées à cette fonction.
 
Cette fonction contient les codes d’erreur suivants.
Code de retour Description
ERROR_MORE_DATA
Si la mémoire tampon spécifiée par le paramètre pInfo n’est pas suffisamment volumineuse pour contenir les données retournées, la fonction définit le code ERROR_MORE_DATA et stocke la taille de mémoire tampon requise, en octets, dans la variable pointée par podInfo.
ERROR_FILE_NOT_FOUND
Type d’encodage de certificat non valide. Actuellement, seul X509_ASN_ENCODING est pris en charge.
 

Si la fonction échoue, GetLastError peut renvoyer une erreur d’encodage/décodage de syntaxe abstraite 1 (ASN.1). Pour plus d’informations sur ces erreurs, consultez valeurs d’encodage/décodage ASN.1.

Configuration requise

   
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

CryptImportPublicKeyInfo

fonctions Gestion des données