Libressl - это вилка OpenSSL 1.0.1g, разработанная проектом OpenBSD. Наша цель - модернизировать кодовую базу, улучшить безопасность и применять процессы разработки передовой практики от OpenBSD.
Libressl предоставляет большую часть API OpenSSL 1.1. The OpenSSL 3 API is not currently supported. Несовместимость между проектами существует и неизбежна, поскольку оба развиваются с различными целями и приоритетами. Важные несовместимости будут рассмотрены, если это возможно, и до тех пор, пока они не слишком вредны для целей Libressl в простоте, безопасности и здравомыслии. Мы не добавляем новые функции, Ciphers и API без веской причины и требуем, чтобы новый код был чистым и высоким качеством.
Libressl не совместим с каким -либо выпуском OpenSSL или обязательно более ранним выпусками Libressl. Вам нужно будет переосмыслить свои программы в Libressl, чтобы использовать их, так же, как в перемещении между основными версиями OpenSSL. Установленные номера версий библиотеки Libressl увеличиваются для учета изменений ABI и API.
В основном разработанные и воспользовавшись преимуществами API, доступных на OpenBSD, портативный проект Libressl пытается предоставить рабочие альтернативы для других операционных систем, и помогает улучшить реализации OS-носителей, где это возможно.
На момент написания этой статьи Libressl, как известно, строит и работает над:
Libressl также поддерживает следующие среды Windows:
Официальный выпуск Tarballs доступен в вашем дружелюбном районе OpenBSD зеркало в каталоге Libressl, хотя мы предлагаем вам использовать зеркало.
Структура портативной сборки Libressl также отражается на GitHub.
Пожалуйста, сообщите об ошибках либо в список рассылки public [email protected], либо в The Github. Tracker Tracker
Суровые уязвимости или ошибки, требующие координации с OpenSSL, могут быть отправлены в основную команду по адресу [email protected].
Если вы проверили этот источник, используя GIT, или загрузили источник Tarball из 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 , чтобы подготовить тарбол.
Как только вы подготовьте исходное дерево, запустите эти команды, чтобы построить и установить:
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 | Позволяет пропустить правила install (). Может быть указан из командной строки, используя-DLIBRESSL_SKIP_INSTALL=ON |
LIBRESSL_APPS | ON | Позволяет пропустить сборки приложения. Приложения необходимы для запуска тестов |
LIBRESSL_TESTS | ON | позволяет пропустить тесты. Тесты доступны только в статических сборках |
BUILD_SHARED_LIBS | OFF | Вариант Cmake для создания общих библиотек. |
ENABLE_ASM | ON | Создает оптимизированные правила сборки. |
ENABLE_EXTRATESTS | OFF | Включить дополнительные тесты, которые могут быть ненадежными на некоторых платформах |
ENABLE_NC | OFF | Включить установку NC с поддержкой TLS (1) |
OPENSSLDIR | Пустой | Установите каталог по умолчанию OpenSSL. Может быть указан из командной строки, используя-DOPENSSLDIR=<dirname> |
Установите переменную среды UNIX_STD на 2003 , прежде чем запустить configure , чтобы построить компилятор HP C/AC ++. Смотрите страницу «Стандарты (5)» для более подробной информации.
export UNIX_STD=2003
./configure
makeLibressl строится против относительно недавних версий Mingw-W64, чтобы не путать с оригинальным проектом mingw.org. Mingw-W64 3.2 или позже должен работать. См. Readme.mongw.md для получения дополнительной информации.
При настройке Libressl для использования с Emscripten убедитесь, что emcmake к команде конфигурации cmake . После настройки вы можете продолжить свои обычные команды 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} " ) После вашей линии add_executable или add_library в вашем файле CMakeLists.txt добавьте следующее:
find_package (LibreSSL REQUIRED) Он скажет Cmake найти Libressl и, если найдет, позволит вам использовать следующие 3 интерфейса в вашем файле CMakeLists.txt :
Если вы, например, хотите использовать библиотеку 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) Следуя руководству в разделах выше, чтобы скомпилировать Libressl с использованием Make and Clain sudo make install установит Libressl в папку /usr/local/ и будет автоматически найден с помощью find_package. Если ваша система устанавливает его в другое место, или вы сами поместили их в другое место, вы можете установить переменную Cmake LIBRESSL_ROOT_DIR на правильный путь, чтобы помочь Cmake найти библиотеку.
Размещение библиотечных файлов в C:/Program Files/LibreSSL/lib и включающие файлы в C:/Program Files/LibreSSL/include должны позволить Cmake находить их автоматически, но рекомендуется использовать Cmake-Gui для установки путей. Это удобнее, так как вы можете иметь файлы в любой папке, которую вы выбираете.