begin process at 2012 05 29 05:51:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Faire marcher CryptAcquireContext


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Faire marcher CryptAcquireContext

lundi 23 août 2004 à 03:07:05 | Faire marcher CryptAcquireContext

Nebula

Membre Club
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 :

HCRYPTPROV Provider = 0;
assert(CryptAcquireContext(&Provider, NULL, MS_DEF_PROV, PROV_RSA_FULL, 0) != 0);


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 ?
lundi 23 août 2004 à 03:31:43 | Re : Faire marcher CryptAcquireContext

Nebula

Membre Club
Après une recherche plus poussée, il faut apparemment définir le fournisseur désiré dans HKEY_CURRENT_USER, ainsi :

assert(CryptSetProvider(MS_DEF_PROV, PROV_RSA_SIG) != 0);


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 :

HCRYPTPROV Provider = 0;
assert(CryptAcquireContext(&Provider, NULL, MS_DEF_PROV, PROV_RSA_SIG, 0) != 0);


finit en :

D:\C\md5>md5 a
assertion failed on line 40 in file main.c
Le type de fournisseur ne correspond pas à la valeur inscrite.


Quid ?

Je précise que je suis sous Windows XP, et que ces fonctions sont documentées comme existant depuis Windows 95 OSR2 et NT 4.0 !
lundi 23 août 2004 à 13:30:18 | Re : Faire marcher CryptAcquireContext

Nebula

Membre Club
Réponse acceptée !
J'ai réussi ! Pour ceux que cela intéresse :

assert(CryptAcquireContext(&Provider, NULL, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT) != 0);


La constante indique qu'on utilise uniquement les fonctions de hash/vérification de clés, et qu'on en crée pas.


Cette discussion est classée dans : code, md5, provider, cryptacquirecontext, prov


Répondre à ce message

Sujets en rapport avec ce message

fonction de hachage md5 [ par iarachid70 ] bonjour; j'aimerai s'avoir les étapes en détail à suivre dés le téléchargement pour executer le code source de de fonction de hachage cryptographiq fonction de hachage md5 [ par iarachid70 ] Salut; j'aimerai s'avoir les étapes en détail à suivre dés le téléchargement pour executer le code source de de fonction de hachage cryptographique Retanscription de code Delphi en C++ [ par Guiling39 ] Bonjour à tous. Faisant de la programmation orienté objet en C++ Builder, j'ai réussi a avoir du code me permettant de faire un projet. Le souci est besion d'aide libxml [ par ar1du62 ] Bonjour , Voila, j’ai développé un programme utilisant libxml2 (j’utilise Windows, libxml2.dll etc.…) mais lorsque que je lance ce programme et que double free or corruption [ par BirD ] Hello tout le monde, voilà, j'ai un bête problème de pointeur dans mon code qui m'amène à une erreur de type [color=red]*** glibc detected *** ./per Code d'un mini compilateur en C [ par achrefpdg ] [^^happy10] Salut les amis y a t il quelqu' un qui peut m'aider de corriger ce code source de mini compilateur . Voila le lien http://www.4shared.com/ Demande code source d'un mini compilateur en C [ par achrefpdg ] [^^happy10] Slt , Svp ya t il qq un qui peut me donner un lien de code source d'un mini compilateur en C qui contient analyseur lexical , syntaxique e Envoyer un Clock Signale depuis un C++ Code [ par BaltaM ] Bonjour, Je crois que je suis sur la bonne section ici. je travaille sur un Projet a la fac avec MATLAB et une Carte PCI (DATA ACQUISITION Board). Arbre de Huffman : code d'un caractère [ par noname001 ] Bonjour à tous, Je suis entrain de travailler sur l'arbre de Huffman pour compresser une chaine de caractère. Pour le moment, j'ai réussi à construi


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales