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
ERROR_UNSUPPORTED_TYPE
Une fonction d’exportation qui peut être installée ou inscrite est introuvable.
ERROR_MORE_DATA
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

Voir aussi

CRYPT_PKCS8_EXPORT_PARAMS

CryptAcquireContext

CryptExportPKCS8

CryptImportPKCS8