PFXExportCertStoreEx, fonction (wincrypt.h)
La fonction PFXExportCertStoreEx exporte les certificats et, le cas échéant, leurs clés privées associées à partir du magasin de certificats référencé. Cette fonction remplace l’ancienne fonction PfxExportCertStore . Il doit être utilisé pour sa sécurité de clé privée renforcée. L’objet BLOB PFX créé par cette fonction est protégé par un mot de passe.
Syntaxe
BOOL PFXExportCertStoreEx(
[in] HCERTSTORE hStore,
[in, out] CRYPT_DATA_BLOB *pPFX,
[in] LPCWSTR szPassword,
[in] void *pvPara,
[in] DWORD dwFlags
);
Paramètres
[in] hStore
Handle du magasin de certificats contenant les certificats à exporter.
[in, out] pPFX
Pointeur vers une structure de CRYPT_DATA_BLOB contenant le paquet PFX avec les certificats et clés exportés. Si pPFX-pbData> a la valeur NULL, la fonction calcule le nombre d’octets nécessaires pour l’objet BLOB encodé et retourne cette valeur dans pPFX-cbData>. Lorsque la fonction est appelée avec pPFX-pbData> pointant vers une mémoire tampon allouée de la taille nécessaire, la fonction copie les octets codés dans la mémoire tampon et met à jourpPFX-cbData> avec la longueur d’octet encodée.
[in] szPassword
Mot de passe de chaîne utilisé pour chiffrer et vérifier le paquet PFX. Lorsque vous avez terminé d’utiliser le mot de passe, effacez le mot de passe de la mémoire en appelant la fonction SecureZeroMemory . Pour plus d’informations sur la protection des mots de passe, consultez Gestion des mots de passe.
[in] pvPara
Ce paramètre doit avoir la valeur NULL si le paramètre dwFlags ne contient pas PKCS12_PROTECT_TO_DOMAIN_SIDS ou PKCS12_EXPORT_PBES2_PARAMS. Avant Windows 8 et Windows Server 2012, ce paramètre doit donc être NULL.
À compter de Windows 8 et Windows Server 2012, si le paramètre dwFlags contient PKCS12_PROTECT_TO_DOMAIN_SIDS, vous pouvez définir le paramètre pvPara pour qu’il pointe vers une valeur NCRYPT_DESCRIPTOR_HANDLE pour identifier le principal Active Directory vers lequel le mot de passe PFX sera protégé à l’intérieur de l’objet BLOB PFX. Actuellement, le mot de passe peut être protégé pour un utilisateur, un ordinateur ou un groupe Active Directory. Pour plus d’informations sur les descripteurs de protection, consultez NCryptCreateProtectionDescriptor.
À compter de Windows 10 1709 (fall Creators update) et Windows Server 2019, si le paramètre dwFlags contient PKCS12_EXPORT_PBES2_PARAMS, vous devez définir le pvPara sur une valeur PKCS12_EXPORT_PBES2_PARAMS pour sélectionner l’algorithme de chiffrement basé sur un mot de passe à utiliser.
[in] dwFlags
Les valeurs d’indicateur peuvent être définies sur n’importe quelle combinaison des éléments suivants.
Valeur | Signification |
---|---|
|
Les clés privées sont exportées, ainsi que les certificats. |
|
Si vous rencontrez un certificat qui n’a pas de clé privée associée, la fonction retourne FALSE avec la dernière erreur définie sur CRYPT_E_NOT_FOUND ou NTE_NO_KEY. |
|
Si un certificat qui a une clé privée non exportable est rencontré, la fonction retourne FALSE et la dernière erreur définie sur NTE_BAD_KEY, NTE_BAD_KEY_STATE ou NTE_PERM. |
|
Exportez toutes les propriétés étendues sur le certificat.
Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
L’objet BLOB PFX contient un mot de passe incorporé qui sera protégé par le descripteur de protection Active Directory (AD) vers lequel pointe le paramètre pvPara . Si le paramètre szPassword n’est pas NULL ou vide, le mot de passe spécifié est protégé. Toutefois, si le paramètre szPassword a la valeur NULL ou une chaîne vide, un mot de passe aléatoire de quarante (40) caractères est créé et protégé.
PFXImportCertStore utilise le descripteur de protection spécifié pour déchiffrer le mot de passe incorporé, qu’il soit spécifié par l’utilisateur ou généré de manière aléatoire, puis utilise le mot de passe pour déchiffrer l’objet BLOB PFX. Windows 8 et Windows Server 2012 : la prise en charge de cet indicateur commence. |
|
Exportez à l’aide de l’algorithme de chiffrement basé sur passowrd spécifié par la valeur PKCS12_EXPORT_PBES2_PARAMS passée en tant que pvPara.
Windows 10 1709 (fall Creators update) et Windows Server 2019 : la prise en charge de cet indicateur commence. |
Valeur retournée
Retourne TRUE (différent de zéro) si la fonction réussit, et FALSE (zéro) si la fonction échoue. Pour obtenir des informations d’erreur étendues, appelez GetLastError.
Remarques
À compter de Windows 8 et Windows Server 2012, vous pouvez protéger le mot de passe PFX pour un utilisateur, un ordinateur ou un groupe Active Directory. Si vous choisissez de le faire, mais que vous ne créez pas de mot de passe, un mot de passe temporaire sera sélectionné de manière aléatoire. Le mot de passe est chiffré à l’aide du principal Active Directory, puis incorporé dans l’objet BLOB PFX. Pour plus d’informations, consultez le paramètre pvPara et l’indicateur PKCS12_PROTECT_TO_DOMAIN_SIDS .
À compter de Windows 10 1709 (fall Creators update) et Windows Server 2019, vous pouvez contrôler le nombre d’itérations de la fonction de hachage sur le mot de passe effectué par la fonction PFXExportCertStoreEx à l’aide de la clé de Registre suivante. La valeur de cette clé est de type REG_DWORD.
HKEY_LOCAL_MACHINE\Logiciel\Microsoft\Windows\Currentversion\PFX\PasswordIterationCount
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | wincrypt.h |
Bibliothèque | Crypt32.lib |
DLL | Crypt32.dll |