Installation de MinGW pour Windows

Vous devez bien entendu disposer de MinGW pour Windows. Si ce n'est pas déjà le cas, il faudra l'installer. Téléchargez la dernière version en date de Automated MinGW Installer et installez la. Durant le processus d'installation, choisissez de télécharger et d'installer la version courante et au moment de choisir les composants de l'installation, sélectionnez compilateur g++ et MinGW Make. Enfin, choisissez C:\MinGW comme répertoire de destination. Une fois l'installation terminée, ajoutez C:\MinGW\bin à la variable d'environnement PATH.

Installation d'OpenSSL

Téléchargez la dernière version stable d'OpenSSL. La dernière version stable en date lors de l'écriture de ce tutoriel était la version 0.9.8l. Extrayez OpenSSL dans C:\tmp\openssl-0.9.8l. Faites attention aux sous-répertoires...

Pour compiler OpenSSL, il est nécessaire d'installer Perl. On utilisera pour cela ActivePerl, qui est très simple à installer. Téléchargez la dernière version d'ActivePerl et installez la. Conservez tous les paramètres par défaut, et cochez la case ajouter au PATH.

Une fois l'installation terminée, ouvrez une console, et faites un echo %PATH% pour vérifier que MinGW et Perl sont bien inclus dans le PATH.

Il est alors temps de compiler et d'installer OpenSSL. Vous n'avez qu'à suivre les étapes suivantes. Les lignes commençant par REM sont simplement des commentaires.

REM on se positionne dans le dossier désarchivé.
cd c:\tmp\openssl-0.9.8l
REM on lance de la compilation.
call ms\mingw32.bat
REM on lance les tests pour vérifier que tout est ok.
cd out
call ..\ms\test.bat

REM on installe les bibliothèques dans C:\openssl
cd ..
mkdir c:\openssl 
mkdir c:\openssl\mingw32
mkdir c:\openssl\mingw32\bin
mkdir c:\openssl\mingw32\lib
mkdir c:\openssl\mingw32\include
mkdir c:\openssl\mingw32\include\openssl
copy outinc\openssl\* c:\openssl\mingw32\include\openssl
copy /b libeay32.dll c:\openssl\mingw32\bin
copy /b libssl32.dll c:\openssl\mingw32\bin
copy /b out\openssl.exe c:\openssl\mingw32\bin
copy /b out\libcrypto.a c:\openssl\mingw32\lib
copy /b out\libssl.a c:\openssl\mingw32\lib
copy /b out\libeay32.a c:\openssl\mingw32\lib
copy /b out\libssl32.a c:\openssl\mingw32\lib

Tout est maintenant installé dans C:\openssl.

Utilisation d'OpenSSL

libcrypto.a et libssl.a sont les bibliothèques statiques, elles nécessitent l'utilisation de la bibliothèque Windows gdi32. libeay32.a et libssl32.a sont les bibliothèques dynamiques, l'exécutable créé aura besoin des DLL libeay32.dll et libeay32.dll.

Ainsi pour compiler en dynamique, on ajoutera à la commande gcc les options suivantes :

-IC:/openssl/mingw32/include -LC:/openssl/mingw32/lib -lssl32 -leay32

Et pour compiler en statique, on utilisera les options suivantes :

-IC:/openssl/mingw32/include -LC:/openssl/mingw32/lib -lssl -lcrypto -lgdi32

Pour tester, nous utiliserons un des exemples fournis avec OpenSSL. Cet exemple a été légèrement modifié pour compiler sous Windows. Deux versions sont disponibles, une première en statique, et une seconde en dynamique. Pour compiler, il suffira de se placer dans les répertoires décompressés et de lancer la commande mingw32-make. L'archive est disponible en fin de tutoriel.

Conclusion

Vous voilà normalement paré pour développer de superbes applications libres utilisant OpenSSL. N'hésitez pas à poster des commentaires si vous avez des astuces ou si vous avez des problèmes de compilation.