Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1163 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [Resolu]OpenSSL erreur bizarre...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Resolu]OpenSSL erreur bizarre...

n°1767307
Bathou
Posté le 31-07-2008 à 15:03:37  profilanswer
 

Bonjour!
je me suis lancé dans OpenSSL et j'ai un gros problème lors de la compilation...
je me suis servie de ce site la : http://www-128.ibm.com/developerwo [...] enssl.html qui est plutot bien fait malgré que ça soit en anglais... donc j'ai fait un pitit programme tout basique : création, ouverture et femeture de la connexion SSL via le BIO
(au passage j'ai oublié de préciser que je travaillais sous linux)
et bref, quand je lance le make, il me dit :  

Code :
  1. /mc6500/v17.1b/tdd/Projet_SSL/src/client_essai1.c:25: undefined reference to `SSL_load_error_strings'
  2. /mc6500/v17.1b/tdd/Projet_SSL/src/client_essai1.c:26: undefined reference to `ERR_load_BIO_strings'
  3. /mc6500/v17.1b/tdd/Projet_SSL/src/client_essai1.c:27: undefined reference to `OPENSSL_add_all_algorithms_noconf'
  4. /mc6500/v17.1b/tdd/Projet_SSL/src/client_essai1.c:30: undefined reference to `BIO_new_connect'
  5. /mc6500/v17.1b/tdd/Projet_SSL/src/client_essai1.c:39: undefined reference to `BIO_ctrl'
  6. /mc6500/v17.1b/tdd/Projet_SSL/src/client_essai1.c:42: undefined reference to `ERR_print_errors_fp'
  7. /mc6500/v17.1b/tdd/Projet_SSL/src/client_essai1.c:43: undefined reference to `BIO_free_all'
  8. /mc6500/v17.1b/tdd/Projet_SSL/src/client_essai1.c:47: undefined reference to `BIO_free_all'


en gros, toutes les fonctions ssl et bio, il ne les connait pas alors que j'ai installé ssl et que j'ai précisé les chemins vers les headers dans mes include
bref, je suis assez perplexe, si quelqu'un pouvait m'aider...
merci par avance


Message édité par Bathou le 05-08-2008 à 10:18:59
mood
Publicité
Posté le 31-07-2008 à 15:03:37  profilanswer
 

n°1767349
olivthill
Posté le 31-07-2008 à 15:58:05  profilanswer
 

Les chemins dans les includes sont nécessaires pour la phase de la compilation.
Mais cette phase est suivie de la phase de l'édition des liens, et pour elle, il faut indiquer l'emplacement de la ou les bibliothèques.

n°1767353
Bathou
Posté le 31-07-2008 à 16:03:50  profilanswer
 

merci pour la réponse!  
mon souci c'est que je ne sais pas ou sont les bibliothèques... ni laquelle utilisée... j'ai trouvé dans usr/lib/openssl/engines des libblabla.so
est ce que ca serait ca...?
si oui, comment j'indique leur emplacement...? dans le .c ou dans le make...?
 
ps : j'ai trouvé libssl.a et libcrytpo.a c'est peut être plutôt ca non?


Message édité par Bathou le 31-07-2008 à 16:05:28
n°1767354
olivthill
Posté le 31-07-2008 à 16:09:24  profilanswer
 

Oui, les ".so" sont des shared object modules, donc des bibliothèques. Parfois ce sont aussi des ".a" ou des ".lib". (Edit : On peut utiliser des bibliothèques ".so" ou des bibliothèques ".a". Les deux marchent mais pour des utilisations un peu différentes, dont je ne me souviens plus très bien, mais qui est habituellement expliqué dans la documentation.)
 
Il faut les spécifier dans le makefile.
Comment ? Généralement on utilise l'option -l (lettre "elle" en minuscule). Mais ce n'est pas forcément évidemment. Le mieux est de s'inspirer d'exemples.


Message édité par olivthill le 31-07-2008 à 16:12:16
n°1767358
Bathou
Posté le 31-07-2008 à 16:17:14  profilanswer
 

alors, si j'ai compris, il faut que je rajoute une ligne dans mon fichier .mk
j'ai mis ca mais ca n'a pas changé... :

Code :
  1. LD=-l ../lib  -lssl -lcrypto


vu que je débute aussi en programmant sous linux, j'ai quelques difficultés...

n°1767483
sligor
Posté le 31-07-2008 à 20:45:15  profilanswer
 

si tu donnais le makefile ou le code ou une partie ça serais plus facile...

n°1767607
Bathou
Posté le 01-08-2008 à 09:20:36  profilanswer
 

alors, le makefile :  

Code :
  1. # --- make client_essai1.mk ---------------------------------------------
  2. # 31/07/2008 : -Creation pour Linux
  3. PRJ=tdd/Projet_SSL
  4. MKP=../../com/sys/linux/sys
  5. OPT= -D _GNU_SOURCE
  6. SRC=client_essai1.c
  7. INC=inc ../../com/sys/linux \
  8.        ../../../../usr/local/ssl/include\
  9. LD=-L /usr/local/ssl/lib -lsll\
  10.  
  11. DIR=src
  12. EXE=client_essai1
  13. include $(MKP)/make_EXE


 
et le code  :

Code :
  1. /*OpenSSL headers*/
  2. #include "openssl/ssl.h"
  3. #include "openssl/bio.h"
  4. #include "openssl/err.h"
  5. /*Other headers*/
  6. #include "stdio.h"
  7. #include "string.h"
  8. //****************************************************************************//
  9. //               //
  10. // Programme Principal             //
  11. //               //
  12. //****************************************************************************//
  13. int main()
  14. {
  15.   /*variable*/
  16.   BIO *bio;
  17.   /*Initializing OpenSSL*/
  18.   SSL_load_error_strings();
  19.   ERR_load_BIO_strings();
  20.   OpenSSL_add_all_algorithms();
  21.   /*Creating and Opening a connection*/
  22.   bio=BIO_new_connect("www.verisign.com:80" );/*cf nossl.c */
  23.   if (bio==NULL)
  24.   {
  25.     /*Handle the failure*/
  26.     printf("BIO is null\n" );
  27.     return;
  28.   }
  29.   if (BIO_do_connect(bio)<=0)
  30.   {
  31.     /*Handle failed connection*/
  32.     ERR_print_errors_fp(stderr);
  33.     BIO_free_all(bio);
  34.   }
  35.   /*Closing the connection*/
  36.   BIO_free_all(bio);
  37.   return(0);
  38. }

n°1769371
Bathou
Posté le 05-08-2008 à 10:14:25  profilanswer
 

c'est bon, j'ai trouvé, c'était en fait un problème d'installation de OpenSSL ^^


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [Resolu]OpenSSL erreur bizarre...

 

Sujets relatifs
[RESOLU]Petite appli php ou javascriptéquations mathml: bug bizarre
[RESOLU] VBA variable differente en fonction du bouton clicke[Résolu]Retour à la ligne dans cellule composante pear Spreadsheet
[C] conversion fichier binaire Big-Little Endian [RESOLU][RESOLU]Installation extension GD
[resolu] List et explosion de la conso mémoire[Résolu]Probleme Surlignement ligne avec Javascript
Erreur Mysql et jointure[Résolu] problème background-repeat
Plus de sujets relatifs à : [Resolu]OpenSSL erreur bizarre...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR