Libressl是OpenBSD项目开发的OpenSSL 1.0.1g的叉子。我们的目标是使代码库现代化,提高安全性并应用OpenBSD的最佳实践开发过程。
libressl提供了大部分OpenSSL 1.1 API。目前不支持OpenSSL 3 API。这些项目之间存在不兼容,并且是不可避免的,因为两者都以不同的目标和优先级发展。如果可能的话,重要的不兼容将被解决,只要它们对Libressl的简单,安全和理智的目标不利。我们不会没有充分的理由添加新功能,密码和API,并且要求新的代码干净且高质量。
libressl与任何释放openssl或必然是libressl发行的任何版本都不兼容。您需要将程序重新链接到libressl才能使用它,就像在主要版本OpenSSL之间移动一样。 Libressl的已安装库版本编号会增加以说明ABI和API更改。
虽然主要开发并利用OpenBSD上可用的API,但Libressl便携式项目试图为其他操作系统提供工作替代方案,并在可能的情况下协助改进OS-NATICATION实现。
在撰写本文时,众所周知,Libressl可以建立和工作:
libressl还支持以下Windows环境:
尽管我们建议您使用镜子,但在您友好的邻里OpenBSD镜子中提供官方发布的TARBALLS。
libressl便携式构建框架也在github上镜像。
请向public [email protected]邮件列表或GitHub Disears Tracker报告错误
可以通过[email protected]将需要与OPENSL协调的严重漏洞或漏洞发送给核心团队。
如果您已经使用git检查了此源,或者从Github下载了源粉末,请按照以下初始步骤准备构建源树。注意:如果您不遵循这些说明,则您的构建将失败!如果您不能遵循这些说明或无法满足这些先决条件,请从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来准备tarball。
准备好源树后,运行以下命令以构建和安装:
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> |
在运行配置之前,将UNIX_STD环境变量设置为2003 ,以便使用HP C/AC ++编译器configure 。有关更多详细信息,请参见“标准(5)”人页面。
export UNIX_STD=2003
./configure
makelibressl建立在相对较新的mingw-w64版本上,不要与原始的mingw.org项目相混淆。 MingW-W64 3.2或更高版本应起作用。有关更多信息,请参见readme.ming.md。
在配置libressl以与Emscripten一起使用时,请确保将emcmake预先置于您的cmake Configuration命令。配置后,您可以继续使用通常的cmake命令。例如:
emcmake cmake . -Bbuild
cmake --build build --config Release
ctest --test-dir build -C Release --output-on-failure在您的项目根部(主要CMakeLists.txt文件所在的位置)制作一个新文件夹,称为cmake。将FindLibreSSL.cmake文件复制到该文件夹,然后将以下行添加到您的主CMakeLists.txt :
set ( CMAKE_MODULE_PATH " ${CMAKE_CURRENT_SOURCE_DIR} /CMake; ${CMAKE_MODULE_PATH} " )在您的CMakeLists.txt中的add_executable或add_library行之后。txt文件添加以下内容:
find_package (LibreSSL REQUIRED)它将告诉CMAKE查找libressl,如果发现将让您使用CMakeLists.txt文件中的以下3个接口:
例如,如果您想在测试程序中使用Libressl TLS库,则将其包括在内(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 stun sudo make install编译Libressl,将安装libressl将libressl安装到/usr/local/ folder中,并将通过find_package自动找到。如果您的系统将其安装到另一个位置,或者您将它们放置在其他位置,则可以将CMAKE变量LIBRESSL_ROOT_DIR设置为正确的路径,以帮助CMAKE查找库。
将库文件放入C:/Program Files/LibreSSL/lib和C:/Program Files/LibreSSL/include中的包含文件应自动找到它们,但建议您使用cmake-gui设置路径。它更方便,因为您可以在选择的任何文件夹中使用文件。