IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

problème avec <openssl/dh.h>


Sujet :

C

  1. #1
    Membre régulier Avatar de Tex-Twil
    Inscrit en
    Avril 2004
    Messages
    447
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 447
    Points : 122
    Points
    122
    Par défaut problème avec <openssl/dh.h>
    Bonjour,
    j'ai besoin de me servire de openssl pour gérer des clés de cryptage et plus précisement des paramètres Diffie Hellman. Je suis étonné par le peux d'exemples ou de tutoriels sur cette librairie sur le web

    Même si j'ai la doc sous les yeux je peine un peu à démarrer.
    http://www.openssl.org/docs/crypto/dh.html#

    J'ai notamment un problème à la compilation de ce code tout simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #include <stdio.h>
    #include <openssl/dh.h>
    #include <openssl/engine.h>
     
    int main()
    {
    	printf("Hello Word\n");
    	DH *myDH;
    	DH_size(myDH);
     
    }
    erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    nexus TEST $ gcc test.c -o test
    /tmp/cc0dRq7s.o: In function `main':
    test.c:(.text+0x2f): undefined reference to `DH_size'
    collect2: ld a retourné 1 code d'état d'exécution

    Il ne trouve pas la fonction DH_size() alors que la déclaration de la structure DH ne lui pose pas de pb.

    merci

  2. #2
    Membre régulier Avatar de Tex-Twil
    Inscrit en
    Avril 2004
    Messages
    447
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 447
    Points : 122
    Points
    122
    Par défaut
    j'ai trouvéééééééééé après des heures de recherche

    il faut lier la librairie ssl à la compilation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nexus TEST $ gcc test.c -o test -lcrypto

  3. #3
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: problème avec <openssl/dh.h>
    Citation Envoyé par Tex-Twil
    J'ai notamment un problème à la compilation de ce code tout simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #include <stdio.h>
    #include <openssl/dh.h>
    #include <openssl/engine.h>
     
    int main()
    {
    	printf("Hello Word\n");
    	DH *myDH;
    	DH_size(myDH);
     
    }
    Ce code est très faux. Tu passes une valeur indéterminée à une fonction, le comportement est indéfini.

    D'après

    http://www.openssl.org/docs/crypto/dh.html#

    C'est probablement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    #include <stdio.h>
    #include <openssl/dh.h>
    #include <openssl/engine.h>
     
    int main(void)
    {
       DH *myDH = DH_new();
       if (myDH != NULL)
       {
          printf ("size = %d"\n, int    DH_size(myDH);
     
          /* ... */
     
          DH_free(myDH);
       }
       return 0;
    }
    Je dis ça un peu au pif, parce que je ne connais pas role des fonctions, et je ne vois pas d'exemple d'utilisation... Mais une bibilothèque basée sur une approche 'objet' est quelque chose de très courant...
    Pas de Wi-Fi à la maison : CPL

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Tex-Twil
    j'ai trouvéééééééééé après des heures de recherche

    il faut lier la librairie ssl à la compilation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nexus TEST $ gcc test.c -o test -lcrypto
    Oui, ce n'est pas très nouveau. Quand on utilise une bibliothèque tierce, on doit les ses composants à l'application...
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Membre régulier Avatar de Tex-Twil
    Inscrit en
    Avril 2004
    Messages
    447
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 447
    Points : 122
    Points
    122
    Par défaut
    ok.
    maintenant autre question. Commet faire pour pouvoir programmer avec cette lib sous windows ?

  6. #6
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par Tex-Twil
    ok.
    maintenant autre question. Commet faire pour pouvoir programmer avec cette lib sous windows ?
    Faut créer un nouveau post dans le forum de Windows, ils seront plus apte à te répondre.

    Mais sinon, les grandes étapes:

    - Installe la bibliothèque sur windows
    - Mets les fichiers .h là où le compilateur pourra les trouver
    - Mets les fichiers .lib là où le compilateur pourra les trouver
    - Mets la dll là où l'exécutable pourra le trouver

    Jc

  7. #7
    Membre régulier Avatar de Tex-Twil
    Inscrit en
    Avril 2004
    Messages
    447
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 447
    Points : 122
    Points
    122

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec openssl
    Par olivpepette dans le forum C
    Réponses: 5
    Dernier message: 05/10/2011, 15h23
  2. Problème avec blowfish et OpenSSL
    Par HacKSpideR dans le forum C
    Réponses: 6
    Dernier message: 01/03/2009, 20h46
  3. Problème avec openssl
    Par nomatter dans le forum Débuter
    Réponses: 5
    Dernier message: 28/05/2008, 13h02
  4. Problème avec la commande "req" d'openssl
    Par crypto dans le forum Débuter
    Réponses: 0
    Dernier message: 14/03/2008, 23h28
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo