Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.8.0 - Qt Creator : 4.3.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Installer librairie et headers OpenSSL sous windows 7

Bonjour,

Je viens vous voir ce soir car j'ai un problème concernant l'installation d'openSSL (librarie + headers) sous windows. Pour un projet j'ai en effet besoin d'installer cette librairie car j'utilise une ressource externe qui en a besoin, je ne peux donc pas utiliser les outils SSL de Qt.

J'ai cherché pas mal de temps un "tuto" simple et efficace pour installer openssl sous windows, mais je n'ai rien trouvé qui à marché .... Je m'en remet donc à vous. Est ce que vous connaissez une méthode simple pour installer cette fameuse librairie (ainsi que ses headers !) sous windows 7 64bits et puis comment la configurer dans QtCreator ?

Merci beaucoup pour vos futures réponses !

Réponses

  • Installation de OpenSSL :
    Télécharger (sur https://slproweb.com/products/Win32OpenSSL.html et installer OpenSSL. Perso j'ai instalé la version "Win32 OpenSSL v1.0.2d" dans le dossier C:\OpenSSL_Win32.
    Ce qui donne après installation par exemple :
    * C:\OpenSSL_Win32\lib
    * C:\OpenSSL_Win32\include

    Puis dans le fichier projet (.pro), ajouter le chemin des headers :
    INCLUDEPATH += C:/OpenSSL_Win32/include
    Ainsi que les fichiers de la librairie :
    LIBS += -LC:/OpenSSL_Win32/lib -llibeay32
    LIBS += -LC:/OpenSSL_Win32/lib -lssleay32
    Et il y a plus qu'à tester avec un programme de test :
    // main.cpp
    #include <QCoreApplication>
    #include <stdio.h>
    #include <string.h>
    #include <openssl/hmac.h>

    int main(int argc, char *argv[])
    {
    QCoreApplication a(argc, argv);

    // The key to hash
    char key[] = "012345678";

    // The data that we're going to hash using HMAC
    char data[] = "hello world";

    unsigned char* digest;

    // Using sha1 hash engine here.
    // You may use other hash engines. e.g EVP_md5(), EVP_sha224, EVP_sha512, etc
    digest = HMAC(EVP_sha1(), key, strlen(key), (unsigned char*)data, strlen(data), NULL, NULL);

    // Be careful of the length of string with the choosen hash engine. SHA1 produces a 20-byte hash value which rendered as 40 characters.
    // Change the length accordingly with your choosen hash engine
    char mdString[20];
    for(int i = 0; i < 20; i++)
    sprintf(&mdString[i*2], "%02x", (unsigned int)digest[i]);

    printf("HMAC digest: %s\n", mdString);

    return a.exec();
    }
    Voici le fichier projet (.pro) final :
    QT += core
    QT -= gui

    TARGET = test_openSSL
    CONFIG += console
    CONFIG -= app_bundle

    TEMPLATE = app

    SOURCES += main.cpp

    INCLUDEPATH += C:/OpenSSL_Win32/include
    LIBS += -LC:/OpenSSL_Win32/lib -llibeay32
    LIBS += -LC:/OpenSSL_Win32/lib -lssleay32
    N'oublier pas de changer les chemins au moment du déploiement du logiciel, en utilisant des chemins relatifs par exemple.
  • December 2015 modifié
    // Message non pertinent que je supprime donc.
  • Je me permets de réouvrir ce topique
    Il n'était pas fermé.
    Mais nous ne fonctionnons pas ainsi. Dans le forum, un sujet appartient à celui qui l'a ouvert (en l'occurrence @DeepSiderZ) en posant une question. Nul ne peut changer la question ou en poser une autre.
    Merci d'ouvrir un nouveau fil.
  • bonjour, tu peux compiler toi meme openssl.
    cf ma reponse a ce thread: http://forum.qtfr.org/discussion/18865/qt-static-et-openssl
    si tu utilises mingw il faut utiliser msys2 (une sorte de shell linux pour windows et mingw qui permet de compiler pas mal de projets).
    il faut mettre dans les variables d'environnement INCLUDE et LIB de windows le chemin des includes et des librairies win32 de mingw(important).
    avec visual studio ca se compile aussi (je l'ai fait une fois car j'utilise plutot mingw).
    pour le moment j'ai compilé jusqu à la version 1.0.2d,pas encore la nouvelle.
    voila....
  • Salut, merci pour l'info.
  • Pour revenir à ce sujet, outre ce que j'ai deja mentionné, si on compile avec mingw ou mingw 64 bits on peut rencontrer un probleme qui vient du make(mingw32-make de mingw) pour compiler openssl sous windows :

    cf https://github.com/openssl/openssl/issues/256
    et cf https://github.com/niXman/mingw-builds/issues/413

    -une solution mentionnée dans la premiere page et qui fonctionne est d'appliquer le script suivant en étant dans le repertoire racine d'openssl sous msys2 :

    find ./ -name Makefile | while read f; do echo >> $f; echo "%.o: %.c" >> $f; echo -e '\t$(COMPILE.c) $(OUTPUT_OPTION) $<;' >> $f; done
    -une autre solution est de recuperer un make plus recent :
    git.savannah.gnu.org/cgit/make.git/commit/?id=4a5377aef7a6093a8cc4ab76d5ad37ca3592b44c

    voila.
Connectez-vous ou Inscrivez-vous pour répondre.