cs_Nebula
Messages postés787Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention 7 juin 2007
-
23 août 2004 à 03:07
cs_Nebula
Messages postés787Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention 7 juin 2007
-
23 août 2004 à 13:30
Bonsoir à tous !
J'essaie actuellement d'utiliser les fonctions de cryptographie de Windows (ce qui m'intéresse est le calcul de hash MD5 ou SHA, pour stocker des mots de passe). Partant de l'exemple de la doc, j'essaie d'obtenir un handle vers le CSP par défaut de Windows (celui de Microsoft, vous l'aviez deviné ?) ainsi :
La macro assert n'est là que pour s'assurer du résultat, qui est d'ailleurs mauvais puisque mon programme se termine ainsi :
D:\C\md5>md5 a
assertion failed on line 37 in file main.c
Le jeu de clés n'existe pas.
Alors que le code original de l'aide est le suivant :
// Get handle to the Microsoft RSA Base Provider and the
// "Foo" key container.
if(!CryptAcquireContext(&hProv, TEXT("Foo"), MS_DEF_PROV,
PROV_RSA_FULL, 0)) {
printf("Error %x during CryptAcquireContext!\n", GetLastError());
return;
}
Alors je m'interroge. Qu'ai-je de faux ? Y'a t'il une manipulation exotique à faire ? Je précise que j'ai essayé aussi avec un texte à la place de NULL, mais la même erreur survient... Quid ?
Ce code fonctionne très bien (vérifié avec regedit), et PROV_RSA_SIG permet de n'avoir que les hash MD5/SHA, ce qui me convient. Mais à l'exécution du programme, ce code :