GMP + courbes elliptiques

Résolu
trunk2005
Messages postés
15
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
25 octobre 2006
- 25 sept. 2006 à 15:03
cs_sidina
Messages postés
6
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
17 janvier 2007
- 17 janv. 2007 à 14:48
Salut tous,

<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>








 






J’aimerais savoir si qqn de vous aurait déjà travailler avec la librairie GMP (Gnu Multiple Précision)  a réussi à compiler l’exemple  ‘ecdsa.c’ fourni dans ecc-lib-2.0 dans visual studio (6 ou .net.)






 






J’ai des erreurs malgré les références vers les dossiers ‘include’ et ‘lib’ de ecc-lib-2.0.






 






Rq : J’ai déjà installé la librairie GMP et j’ai pu compiler qq exemples qui utilisent des fonctions de cette dernière.






      





Merci d’avance.

6 réponses

trunk2005
Messages postés
15
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
25 octobre 2006

3 oct. 2006 à 17:00
En fin j'ai réussi exécuter l'exemple de signature numerique avec les courbes elliptiques «ECDSA», il m’a fallait juste un peu de temps pour s'adapter au C++.



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




A+. 
3
trunk2005
Messages postés
15
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
25 octobre 2006

28 sept. 2006 à 13:10
Apparemment je n’ai pas bien expliqué mon sujet, en fait j’aimerai utiliser la cryptographie avec les courbes elliptiques. J’ai téléchargé  la librairie ecc-lib-2.0 http://www.ceid.upatras.gr/faculty/zaro/software/ecc-lib/ qui est une librairie pour la cryptographie avec les courbes elliptiques écrite en C et elle utilise la librairie Gnu Multiple Précision (GMP)  pour l’arithmétique des nombres flottants haute-précision :<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>






 







Le dossier ecc-lib-2.0 contient les dossiers : ‘include’, ‘lib’ et un fichier de test ecdsa.c, j’ai essayé plusieurs méthodes (mettre le contenu des dossiers dans le projet ou les référencés dans le projet…) pour compilé cette source sous Visual Studio 6 mais j’ai tjrs des erreurs de ‘Linking’ :






 







 






Linking...





ecdsa.obj : error LNK2001: unresolved external symbol ___gmpz_clear





ecdsa.obj : error LNK2001: unresolved external symbol _file_create_signature





ecdsa.obj : error LNK2001: unresolved external symbol _create_priv_and_public





ecdsa.obj : error LNK2001: unresolved external symbol _domain_parameters





ecdsa.obj : error LNK2001: unresolved external symbol _CMmethod





ecdsa.obj : error LNK2001: unresolved external symbol ___gmp_randseed





ecdsa.obj : error LNK2001: unresolved external symbol ___gmpz_set_ui





ecdsa.obj : error LNK2001: unresolved external symbol ___gmpz_init





Debug/ECDSA.exe : fatal error LNK1120: 8 unresolved externals





Error executing link.exe.       






 





Je suis nouveau dans Visual Studio 6 et je pense que le problème est que je n’arrive pas utilisé les sources que j’ai convenablement .

Merci
0
Camsh
Messages postés
1
Date d'inscription
vendredi 16 juin 2006
Statut
Membre
Dernière intervention
23 octobre 2006

23 oct. 2006 à 14:45
Hello

J'ai le meme probleme de linkage alors j'aurai aimé savoir comment tu l'as résolu ! :)

Merci
0
trunk2005
Messages postés
15
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
25 octobre 2006

25 oct. 2006 à 09:53
Salut, désolé pour le retard
Bon je détail comment j’avais bidouiller mais c’est peut être pas la meilleure solution :<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>













J’ai téléchargé le fichier ‘gmp-dynamic-vc-4.1.2.zip’ dans laquel se trouve gmp.dll, gmpDebug.dll, gmp.lib et gmpDebug.lib.








J'ai ajouter gmp.dll et gmpDebug.dll dans le dossier system32 de WINDOWS 








J'ai téléchargé  fichier ‘ecc-lib-2.0.zip’ où se trouvent les codes sources de l’exemple ECDSA.






 






J’ai ajouter tous les codes sources dans Visual studio .Net (ou Visual studio 6.0)






 






Dans la classe ‘ecdsa.c’ j’ai ajouté :






 






#pragma

comment
(
lib
,
"gmpDebug.lib"
) ou
#pragma
comment
(
lib
,
"gmp.lib"
)


 










 






Tu peux aussi mettre en commentaire la directive
//#include











 






Quand j’ai exécuter l’exemple j’avait des erreurs dans ‘protocols.c’ a cause de la fonction
mpz_out_str(stdout,10,r/s) j’ai juste mi 0 a la place stdout je sai pas pourquoi.






 






Aussi la fonction mpz_out_str(fpo,10,r/s) qui permet d'ecrire la signature(les valeurs de r et s) generée dans un fichier ‘signature’ :






 






Voila ce que j’avait fait pour afficher le resultat dans le console et l’ecrire dans le fichier ‘signature’ :






 
dans protocols.c






char
*
buffr;






     
char
* buffs;





.





.





.






 






buffr = malloc(sizeof(r));






      buffs = malloc(sizeof(s));






      mpz_out_str(0, 10, r);






      mpz_get_str(buffr,10,r);






      fprintf(fpo,"%s",buffr);






      fputc(' ', fpo);






      printf(" ");






      mpz_out_str(0, 10, s);






      mpz_get_str(buffs,10,s);






     

fprintf(fpo,"%s",buffs);    

 






je sai pa si c la bonne solution parce qe ça prend environ 4 ou 5 second pour générer la signature du fichier 'README' fourni dans ecc-lib-2.0 (6 ko).

j'espere qe ce qe j'avais ecrit peut t'aider a resoudre ton probleme.

bon courage.   
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
trunk2005
Messages postés
15
Date d'inscription
samedi 11 novembre 2000
Statut
Membre
Dernière intervention
25 octobre 2006

25 oct. 2006 à 16:38
ah j'ai oublier il faut aussi ajouter gmp.h qui se trouve dans 'gmp-dynamic-vc-4.1.2' dans VS.

a+.
0
cs_sidina
Messages postés
6
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
17 janvier 2007

17 janv. 2007 à 14:48
j'ai travaillé sur le GMP mais avec Builder C++ et C sur l'environement Windows et tout est marcher avec une exception sur quelque opérations qui plante les processeurs de type Puntium mais c'est excelent pour les AMD.

OULDDAH
0