Fonction CryptUpdateProtectedState (dpapi.h)
La fonction CryptUpdateProtectedState migre les clés master de l’utilisateur actuel après la modification de l’identificateur de sécurité (SID) de l’utilisateur. Cette fonction peut être utilisée pour conserver des données chiffrées une fois qu’un utilisateur a été déplacé d’un domaine à un autre.
Syntaxe
DPAPI_IMP BOOL CryptUpdateProtectedState(
[in] PSID pOldSid,
[in] LPCWSTR pwszOldPassword,
[in] DWORD dwFlags,
[out] DWORD *pdwSuccessCount,
[out] DWORD *pdwFailureCount
);
Paramètres
[in] pOldSid
Adresse d’une structure SID qui contient le SID précédent de l’utilisateur. Ce SID est utilisé pour localiser les anciennes clés master. Si ce paramètre a la valeur NULL, les clés master pour le SID utilisateur actuel sont migrées.
Ce paramètre ou le paramètre pwszOldPassword peut être NULL, mais pas les deux.
[in] pwszOldPassword
Pointeur vers une chaîne Unicode terminée par un caractère Null qui contient le mot de passe de l’utilisateur avant la modification du SID. Ce mot de passe est utilisé pour déchiffrer les anciennes clés master. Si ce paramètre a la valeur NULL, le mot de passe de l’utilisateur actuel est utilisé.
Ce paramètre ou le paramètre pOldSid peut être NULL, mais pas les deux.
[in] dwFlags
Non utilisé. Doit être zéro.
[out] pdwSuccessCount
Adresse d’une variable DWORD qui reçoit le nombre de clés master qui ont été correctement migrées.
[out] pdwFailureCount
Adresse d’une variable DWORD qui reçoit le nombre de clés master qui n’ont pas pu être déchiffrées.
Il ne s’agit pas nécessairement d’une erreur si une ou plusieurs clés master ne peuvent pas être déchiffrées. Certains utilisateurs peuvent posséder des clés master qui sont stagnantes et qui n’ont pas pu être déchiffrées depuis longtemps. Cela peut se produire lorsque le mot de passe d’un utilisateur local a été réinitialisé administrativement.
Valeur retournée
Si la fonction réussit, la valeur de retour est TRUE.
Si la fonction échoue, la valeur de retour est FALSE. Pour obtenir des informations d’erreur étendues, appelez GetLastError. Voici quelques codes d’erreur possibles.
Code de retour | Description |
---|---|
|
L’un des paramètres contient une valeur qui n’est pas valide. |
|
Un échec d’allocation de mémoire s’est produit. |
|
Impossible de chiffrer l’ancien mot de passe. |
Remarques
Cette fonction déchiffre toutes les clés master de l’utilisateur dans l’ancien répertoire de clés master, à l’aide du mot de passe précédent, et les stocke dans le répertoire de clés master actuel de l’utilisateur, chiffré avec le mot de passe actuel de l’utilisateur.
Cette fonction doit être appelée à partir du compte d’utilisateur vers lequel les clés sont migrées.
Si cette fonction est en mesure de migrer correctement une ancienne clé master, elle supprime automatiquement l’ancienne clé master. Les clés principales qui ne peuvent pas être déchiffrées ne sont pas supprimées.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | dpapi.h |
Bibliothèque | Crypt32.lib |
DLL | Crypt32.dll |