Libresslは、OpenBSDプロジェクトによって開発されたOpenSSL 1.0.1gのフォークです。私たちの目標は、コードベースを近代化し、セキュリティを改善し、OpenBSDからベストプラクティス開発プロセスを適用することです。
libresslは、OpenSSL 1.1 APIの多くを提供します。 OpenSSL 3 APIは現在サポートされていません。プロジェクト間の非互換性は存在し、両方が異なる目標と優先順位で進化するため、避けられません。可能であれば、重要な互換性が対処され、Libresslのシンプルさ、セキュリティ、正気という目標にそれほど有害ではない限り、対処されます。確かな理由なしに新しい機能、暗号、APIを追加することはなく、新しいコードがクリーンで高品質であることを要求します。
libresslは、OpenSSLの放出、または必然的にLibresslの以前のリリースとABI互換性がありません。 OpenSSLの主要なバージョン間を移動するのと同じように、それを使用するために、プログラムをLibresslに再リンクする必要があります。 Libresslのインストールされているライブラリバージョン番号は、ABIおよびAPIの変更を考慮して増分します。
Libresslポータブルプロジェクトは、主にOpenBSDで利用可能なAPIを利用して開発しましたが、他のオペレーティングシステムに実用的な代替品を提供しようとし、可能な限りOS-Nativeの実装の改善を支援します。
この執筆時点で、libresslは次のように構築して作業することが知られています。
Libresslは、次のWindows環境もサポートしています。
公式リリースのターボールは、ディレクトリLibresslのフレンドリーな近所のOpenBSDミラーで入手できますが、ミラーを使用することをお勧めします。
LibresslポータブルビルドフレームワークもGitHubにミラーリングされています。
bugsを公開[email protected]メーリングリスト、またはgithub issoトラッカーに報告してください
OpenSSLとの調整を必要とする深刻な脆弱性またはバグは、[email protected]のコアチームに送信できます。
GITを使用してこのソースをチェックアウトした場合、またはGitHubからソースTarballをダウンロードした場合は、これらの最初の手順に従って、ソースツリーを構築する準備をします。注:これらの指示に従わないと、ビルドが失敗します!これらの指示に従うことができない場合、またはこれらの前提条件を満たすことができない場合は、代わりにhttps://ftp.openbsd.org/pub/openbsd/libressl/から公式リリースの配布をダウンロードしてください。開発者でない場合は、公式リリースを使用することを強くお勧めします。
./autogen.shを実行して、ソースツリーを構築するために準備します。 ソースツリーを準備したら、これらのコマンドを実行してビルドおよびインストールします。
./configure # see ./configure --help for configuration options
make check # runs builtin unit tests
make install # set DESTDIR= to install to an alternate locationまたは、ターボールを準備するために./dist.shを実行することができます。
ソースツリーを準備したら、これらのコマンドを実行してビルドおよびインストールします。
mkdir build
cd build
cmake ..
make
make testより速いビルドを使用するには、忍者を使用できます。
mkdir build-ninja
cd build-ninja
cmake -G " Ninja " ..
ninja
ninja testまたは、Visual Studioのような別のサポートされているビルドシステム:
mkdir build-vs2022
cd build-vs2022
cmake -G " Visual Studio 17 2022 " ..| オプション名 | デフォルト | 説明 |
|---|---|---|
LIBRESSL_SKIP_INSTALL | OFF | インストール()ルールのスキップが可能になります。コマンドラインを使用して指定できます-DLIBRESSL_SKIP_INSTALL=ON |
LIBRESSL_APPS | ON | アプリケーションビルドをスキップできます。テストを実行するにはアプリが必要です |
LIBRESSL_TESTS | ON | テストをスキップできます。テストは静的ビルドでのみ利用可能です |
BUILD_SHARED_LIBS | OFF | 共有ライブラリを構築するためのcmakeオプション。 |
ENABLE_ASM | ON | アセンブリ最適化されたルールを構築します。 |
ENABLE_EXTRATESTS | OFF | 一部のプラットフォームで信頼できない可能性のある追加のテストを有効にする |
ENABLE_NC | OFF | TLS対応NCのインストールを有効にする(1) |
OPENSSLDIR | 空白 | デフォルトのopenSSLディレクトリを設定します。コマンドラインを使用して指定できます-DOPENSSLDIR=<dirname> |
HP C/AC ++コンパイラで構築するために、 configureを実行する前にUNIX_STD環境変数を2003に設定します。詳細については、「標準(5)」Manページを参照してください。
export UNIX_STD=2003
./configure
makeLibresslは、MingW-W64の比較的最近のバージョンに対して構築されており、元のmingw.orgプロジェクトと混同しないでください。 MINGW-W64 3.2以降は機能するはずです。詳細については、readme.mingw.mdを参照してください。
emscriptenで使用するためにLibresslを構成する場合は、 emcmake cmake Configurationコマンドに予備してください。構成したら、通常のcmakeコマンドを続行できます。例えば:
emcmake cmake . -Bbuild
cmake --build build --config Release
ctest --test-dir build -C Release --output-on-failure cmakeと呼ばれるプロジェクトルート(メインのCMakeLists.txtファイルが配置されている場所)に新しいフォルダーを作成します。 FindLibreSSL.cmakeファイルをそのフォルダーにコピーし、メインのCMakeLists.txtに次の行を追加します。
set ( CMAKE_MODULE_PATH " ${CMAKE_CURRENT_SOURCE_DIR} /CMake; ${CMAKE_MODULE_PATH} " ) CMakeLists.txtファイルのadd_executableまたはadd_library行の後、以下を追加します。
find_package (LibreSSL REQUIRED) cmakeにlibresslを見つけるように指示し、見つかった場合はCMakeLists.txtファイルで次の3つのインターフェイスを使用できます。
たとえば、テストプログラムでLibressl TLSライブラリを使用する場合は、SOのように含めます(SSLとCryptoはTLSに必要であり、自動的に含まれています):
target_link_libraries ( test LibreSSL::TLS)完全な例:
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)上記のセクションのガイドに従って、Make and Running sudo make installを使用してLibresslをコンパイルするために、libresslが/usr/local/ folderにインストールされ、find_packageによって自動的に見つかります。システムが別の場所にインストールする場合、または自分で別の場所に配置した場合、CMake LIBRESSL_ROOT_DIRを正しいパスに設定して、CMakeがライブラリを見つけるのを支援できます。
ライブラリファイルをC:/Program Files/LibreSSL/libに配置し、 C:/Program Files/LibreSSL/includeする必要がありますが、cmake-guiを使用してパスを設定することをお勧めします。選択したフォルダーにファイルを入手できるため、より便利です。