Fonction PFXExportCertStoreEx (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 amélioré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
Un pointeur vers une structure CRYPT_DATA_BLOB pour contenir 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 le retourne 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 encodés dans la mémoire tampon et met à jourpPFX-cbData> avec la longueur d’octet encode.
[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 ni PKCS12_PROTECT_TO_DOMAIN_SIDS ni PKCS12_EXPORT_PBES2_PARAMS. Avant Windows 8 et Windows Server 2012, ce paramètre doit donc être NULL.
À compter de Windows 8 et De 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 auquel 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 un certificat qui n’a pas de clé privée associée est rencontré, la fonction retourne FALSE avec le dernier paramètre d’erreur défini sur CRYPT_E_NOT_FOUND ou NTE_NO_KEY. |
|
Si un certificat avec 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 du 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) pointé vers 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 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 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
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 |
Voir aussi
Commentaires
Envoyer et afficher des commentaires pour