Fonction CryptExportPKCS8Ex (wincrypt.h)
[La fonction CryptExportPKCS8Ex n’est plus disponible à partir de Windows Server 2008 et Windows Vista. Utilisez plutôt la fonction PFXExportCertStoreEx .]
La fonction CryptExportPKCS8Ex exporte la clé privée au format PKCS #8. Cette fonction n’a pas de bibliothèque d’importation associée. Vous devez utiliser les fonctions LoadLibrary et GetProcAddress pour établir un lien dynamique vers Crypt32.dll.
Syntaxe
BOOL CryptExportPKCS8Ex(
[in] CRYPT_PKCS8_EXPORT_PARAMS *psExportParams,
[in] DWORD dwFlags,
[in, optional] void *pvAuxInfo,
[out, optional] BYTE *pbPrivateKeyBlob,
[in, out] DWORD *pcbPrivateKeyBlob
);
Paramètres
[in] psExportParams
Pointeur vers une structure de CRYPT_PKCS8_EXPORT_PARAMS qui contient des informations sur la clé à exporter.
[in] dwFlags
Ce paramètre doit être égal à zéro si pbPrivateKeyBlob a la valeur NULL et 0x8000 dans le cas contraire.
[in, optional] pvAuxInfo
Ce paramètre doit avoir la valeur NULL.
[out, optional] pbPrivateKeyBlob
Pointeur vers un tableau de structures BYTE pour recevoir la clé privée à exporter.
La clé privée contiendra les informations d’un type PKCS #8 PrivateKeyInfo Abstract Syntax Notation One (ASN.1) trouvé dans la norme PKCS #8.
À des fins d’allocation de mémoire, vous pouvez obtenir la taille de la clé privée à exporter en définissant ce paramètre sur NULL. Pour plus d’informations, consultez Récupération de données de longueur inconnue.
[in, out] pcbPrivateKeyBlob
Pointeur vers un DWORD qui peut contenir, en entrée, la taille, en octets, de l’allocation de mémoire nécessaire pour contenir le pbPrivateKeyBlob. Si pbPrivateKeyBlob a la valeur NULL, ce paramètre retourne la taille de l’allocation de mémoire nécessaire pour un deuxième appel à la fonction. Pour plus d’informations, consultez Récupération de données de longueur inconnue.
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.
Les codes d’erreur suivants sont spécifiques à cette fonction.
Code de retour | Description |
---|---|
|
Une fonction d’exportation qui peut être installée ou inscrite est introuvable. |
|
Si la mémoire tampon spécifiée par le paramètre pbPrivateKeyBlob n’est pas assez grande 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 le paramètre pcbPrivateKeyBlob . |
Si la fonction échoue, GetLastError retourne une erreur d’encodage/décodage ASN.1. Pour plus d’informations sur ces erreurs, consultez Valeurs de retour d’encodage/décodage ASN.1.
Remarques
Cette fonction est uniquement prise en charge pour les clés asymétriques.
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 |
DLL | Crypt32.dll |