CreateMD5SSOHash, fonction (winineti.h)

La fonction CreateMD5SSOHash obtient le mot de passe Microsoft Passport par défaut pour un compte ou un domaine spécifié, crée un hachage MD5 à partir de celui-ci à l’aide d’une chaîne de défi à caractères larges spécifiée et retourne le résultat sous la forme d’une chaîne d’octets de chiffres hexadécimaux.

Syntaxe

BOOL CreateMD5SSOHash(
  [in]  PWSTR pszChallengeInfo,
  [in]  PWSTR pwszRealm,
  [in]  PWSTR pwszTarget,
  [out] PBYTE pbHexHash
);

Paramètres

[in] pszChallengeInfo

Pointeur vers la chaîne de défi à caractères larges à utiliser pour le hachage MD5.

[in] pwszRealm

Pointeur vers une chaîne qui nomme un domaine pour lequel obtenir le mot de passe. Ce paramètre est ignoré, sauf si pwszTarget a la valeur NULL. Si pwszTarget et pwszRealm ont la valeur NULL, le domaine par défaut est utilisé.

[in] pwszTarget

Pointeur vers une chaîne qui nomme un compte pour lequel obtenir le mot de passe. Si pwszTarget a la valeur NULL, le domaine indiqué par pwszRealm est utilisé.

[out] pbHexHash

Pointeur vers une mémoire tampon de sortie dans laquelle le hachage MD5 est retourné au format de chaîne hexadécimale. Cette mémoire tampon doit avoir une longueur d’au moins 33 octets.

Valeur retournée

Retourne TRUE en cas de réussite, ou FALSE dans le cas contraire.

Remarques

Une fois que la fonction CreateMD5SSOHash a obtenu le mot de passe Microsoft Passport pour le compte ou le domaine spécifié, elle convertit la chaîne de requête et le mot de passe de caractères larges en caractères multioctets (généralement 8 bits), les concatène et utilise la bibliothèque RSA pour générer un hachage MD5 à partir de la clé résultante. Il convertit ensuite le hachage en chaîne terminée par null de chiffres hexadécimaux 8 bits (à l’aide de lettres minuscules) qu’il place dans la mémoire tampon vers laquelle pointe le paramètre pbHexHash .

La mémoire tampon de sortie pointée par pbHexHash doit donc être suffisamment longue pour accepter deux octets pour chacun des 16 octets du hachage, plus un caractère null de fin, pour un total de 33 octets.

Comme tous les autres aspects de l’API WinINet, cette fonction ne peut pas être appelée en toute sécurité à partir de DllMain ou des constructeurs et destructeurs d’objets globaux.

Note WinINet ne prend pas en charge les implémentations de serveur. En outre, il ne doit pas être utilisé à partir d’un service. Pour les implémentations de serveur ou les services, utilisez Microsoft Windows HTTP Services (WinHTTP).
 

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winineti.h (inclure Wininet.h)
Bibliothèque Wininet.lib
DLL Wininet.dll

Voir aussi

Gestion de l’authentification

Fonctions WinINet