Libressl est une fourche d'OpenSSL 1.0.1G développée par le projet OpenBSD. Notre objectif est de moderniser la base de code, d'améliorer la sécurité et d'appliquer les processus de développement des meilleures pratiques à partir d'OpenBSD.
Libressl fournit une grande partie de l'API OpenSSL 1.1. L'API OpenSSL 3 n'est pas actuellement prise en charge. Les incompatibilités entre les projets existent et sont inévitables car les deux évoluent avec différents objectifs et priorités. Les incompatibilités importantes seront abordées si possible et tant qu'elles ne sont pas trop préjudiciables aux objectifs de simplicité, de sécurité et de santé mentale de Libressl. Nous n'ajoutons pas de nouvelles fonctionnalités, des chiffres et des API sans raison solide et exigeons que le nouveau code soit propre et de haute qualité.
Libressl n'est pas compatible avec une libération d'OpenSSL, ou des versions nécessairement antérieures de libressl. Vous devrez relier vos programmes à Libressl afin de l'utiliser, tout comme pour se déplacer entre les grandes versions d'OpenSSL. Les numéros de version de la bibliothèque installés de Libressl sont incrémentés pour tenir compte des modifications ABI et API.
Bien qu'il soit principalement développé sur et profitant des API disponibles sur OpenBSD, le projet portable Libressl tente de fournir des alternatives de travail pour d'autres systèmes d'exploitation et aide à améliorer les implémentations natives du système d'exploitation dans la mesure du possible.
Au moment d'écrire ces lignes, Libressl est connu pour construire et travailler sur:
Libressl prend également en charge les environnements Windows suivants:
Les tarballs à libération officielle sont disponibles dans votre amical OpenBSD de quartier dans le répertoire Libressl, bien que nous vous suggérions d'utiliser un miroir.
Le cadre de construction portable Libressl se reflète également sur GitHub.
Veuillez signaler des bogues soit à la liste de diffusion publique [email protected], soit au tracker du numéro GitHub
Des vulnérabilités ou des bogues graves nécessitant une coordination avec OpenSSL peuvent être envoyés à l'équipe de base à [email protected].
Si vous avez vérifié cette source à l'aide de Git ou que vous avez téléchargé une source de tarball à partir de GitHub, suivez ces étapes initiales pour préparer l'arbre source pour la construction. Remarque: votre version échouera si vous ne suivez pas ces instructions! Si vous ne pouvez pas suivre ces instructions ou ne pouvez pas répondre à ces conditions préalables, veuillez télécharger une distribution de version officielle à partir de https://ftp.openbsd.org/pub/openbsd/libressl/ à la place. L'utilisation de versions officielles est fortement conseillé si vous n'êtes pas développeur.
./autogen.sh pour préparer l'arbre source pour la construction. Une fois que l'arborescence source a préparé, exécutez ces commandes pour construire et installer:
./configure # see ./configure --help for configuration options
make check # runs builtin unit tests
make install # set DESTDIR= to install to an alternate location Alternativement, il est possible de courir ./dist.sh pour préparer un tarball.
Une fois que l'arborescence source a préparé, exécutez ces commandes pour construire et installer:
mkdir build
cd build
cmake ..
make
make testPour des constructions plus rapides, vous pouvez utiliser ninja:
mkdir build-ninja
cd build-ninja
cmake -G " Ninja " ..
ninja
ninja testOu un autre système de construction pris en charge comme Visual Studio:
mkdir build-vs2022
cd build-vs2022
cmake -G " Visual Studio 17 2022 " ..| Nom d'option | Défaut | Description |
|---|---|---|
LIBRESSL_SKIP_INSTALL | OFF | permet de sauter les règles Install (). Peut être spécifié à partir de la ligne de commande en utilisant-DLIBRESSL_SKIP_INSTALL=ON |
LIBRESSL_APPS | ON | permet de sauter les versions d'application. Les applications sont nécessaires pour exécuter des tests |
LIBRESSL_TESTS | ON | permet de sauter des tests. Les tests ne sont disponibles que dans des versions statiques |
BUILD_SHARED_LIBS | OFF | Option CMake pour la construction de bibliothèques partagées. |
ENABLE_ASM | ON | construit des règles optimisées de l'assemblage. |
ENABLE_EXTRATESTS | OFF | Activer des tests supplémentaires qui peuvent être peu fiables sur certaines plateformes |
ENABLE_NC | OFF | Activer l'installation de NC compatible TLS (1) |
OPENSSLDIR | Vide | Définissez le répertoire OpenSSL par défaut. Peut être spécifié à partir de la ligne de commande en utilisant-DOPENSSLDIR=<dirname> |
Définissez la variable d'environnement UNIX_STD sur 2003 avant d'exécuter configure pour construire avec le compilateur HP C / AC ++. Voir la page "Standards (5)" pour plus de détails.
export UNIX_STD=2003
./configure
makeLibressl se construit contre des versions relativement récentes de Mingw-W64, pour ne pas être confondus avec le projet Mingw.org d'origine. MINGW-W64 3.2 ou version ultérieure devrait fonctionner. Voir readme.mingw.md pour plus d'informations.
Lors de la configuration de Libressl pour une utilisation avec Emscripten, assurez-vous de représenter emcmake à votre commande cmake Configuration. Une fois configuré, vous pouvez procéder à vos commandes cmake habituelles. Par exemple:
emcmake cmake . -Bbuild
cmake --build build --config Release
ctest --test-dir build -C Release --output-on-failure Faites un nouveau dossier dans la racine de votre projet (où se trouve votre fichier principal CMakeLists.txt ) appelé CMake. Copiez le fichier FindLibreSSL.cmake dans ce dossier et ajoutez la ligne suivante à votre principal CMakeLists.txt :
set ( CMAKE_MODULE_PATH " ${CMAKE_CURRENT_SOURCE_DIR} /CMake; ${CMAKE_MODULE_PATH} " ) Après votre ligne add_executable ou add_library dans votre fichier CMakeLists.txt , ajoutez ce qui suit:
find_package (LibreSSL REQUIRED) Il dira à CMake de trouver Libressl et s'il vous est trouvé, vous permettra d'utiliser les 3 interfaces suivantes dans votre fichier CMakeLists.txt :
Si vous souhaitez par exemple utiliser la bibliothèque Libressl TLS dans votre programme de test, incluez-le comme SO (SSL et Crypto sont requis par TLS et inclus automatiquement):
target_link_libraries ( test LibreSSL::TLS)Exemple complet:
cmake_minimum_required ( VERSION 3.10.0)
set ( CMAKE_MODULE_PATH " ${CMAKE_CURRENT_SOURCE_DIR} /CMake; ${CMAKE_MODULE_PATH} " )
project ( test )
add_executable ( test Main.cpp)
find_package (LibreSSL REQUIRED)
target_link_libraries ( test LibreSSL::TLS) Suivant le guide dans les sections ci-dessus pour compiler libressl à l'aide de la fabrication et de l'installation sudo make install il installera libressl dans le /usr/local/ le dossier, et se trouvera automatiquement par find_package. Si votre système l'installe à un autre emplacement, ou si vous les avez placés vous-même à un endroit différent, vous pouvez définir la variable CMake LIBRESSL_ROOT_DIR sur le chemin correct, pour aider Cmake à trouver la bibliothèque.
Placer les fichiers de la bibliothèque dans C:/Program Files/LibreSSL/lib et les fichiers inclués dans les C:/Program Files/LibreSSL/include doivent laisser CMake les trouver automatiquement, mais il est recommandé d'utiliser CMake-Gui pour définir les chemins. Il est plus pratique car vous pouvez avoir les fichiers dans n'importe quel dossier que vous choisissez.