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.
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.
Code de retour | Description |
---|---|
|
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. |
|
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 |