Libressl은 OpenBSD 프로젝트에서 개발 한 OpenSSL 1.0.1g의 포크입니다. 우리의 목표는 Codebase를 현대화하고 보안을 개선하며 OpenBSD에서 모범 사례 개발 프로세스를 적용하는 것입니다.
Libressl은 OpenSSL 1.1 API의 많은 부분을 제공합니다. OpenSSL 3 API는 현재 지원되지 않습니다. 프로젝트 사이의 비 호환성이 존재하며 다른 목표와 우선 순위로 발전하기 때문에 피할 수 없습니다. 가능한 경우 중요한 비 호환성이 해결 될 것이며 Libressl의 단순성, 보안 및 정신에 대한 목표에 너무 해롭지 않은 한 문제가 해결됩니다. 우리는 확실한 이유없이 새로운 기능, 암호 및 API를 추가하지 않으며 새로운 코드를 깨끗하고 고품질로해야합니다.
Libressl은 OpenSSL의 릴리스와 호환되거나 반드시 Libressl의 릴리스와 호환되지 않습니다. 주요 버전의 OpenSSL 사이를 이동하는 것처럼 프로그램을 Libressl에 다시 연결해야합니다. Libressl의 설치된 라이브러리 버전 번호는 ABI 및 API 변경을 설명하도록 증가합니다.
Libressl Portable Project는 OpenBSD에서 사용 가능한 API를 주로 개발하고 활용하는 동안 다른 운영 체제에 대한 대안을 제공하려고 시도하며 가능한 경우 OS- 구현 구현을 개선하는 데 도움이됩니다.
이 글을 쓰는 시점에서 Libressl은 다음을 구축하고 작업하는 것으로 알려져 있습니다.
Libressl은 다음과 같은 Windows 환경을 지원합니다.
공식 릴리스 Tarballs는 Directory Libressl의 친절한 동네 OpenBSD 거울에서 제공되지만 거울을 사용하는 것이 좋습니다.
Libressl 휴대용 빌드 프레임 워크도 Github에 반영됩니다.
Public [email protected] 메일 링리스트 또는 GitHub 문제 추적기에 버그를보고하십시오.
OpenSSL과의 조정이 필요한 심각한 취약점 또는 버그는 [email protected]의 핵심 팀으로 보낼 수 있습니다.
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 실행할 수 있습니다.
소스 트리를 준비한 후에는이 명령을 실행하여 빌드 및 설치합니다.
mkdir build
cd build
cmake ..
make
make test더 빠른 빌드를 위해서는 Ninja를 사용할 수 있습니다.
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)"맨 페이지를 참조하십시오.
export UNIX_STD=2003
./configure
makeLibressl은 비교적 최근 버전의 Mingw-W64에 비해 구축되며, 원래 mingw.org 프로젝트와 혼동되지 않도록합니다. Mingw-W64 3.2 이상이 작동해야합니다. 자세한 내용은 readme.mingw.md를 참조하십시오.
emscripten과 함께 사용하기 위해 libressl을 구성 할 때는 cmake 구성 명령으로 emcmake 선불로 설정하십시오. 구성되면 일반적인 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 line 후 다음을 추가하십시오.
find_package (LibreSSL REQUIRED) cmake에 libressl을 찾도록 지시하고 찾은 경우 CMakeLists.txt 파일에서 다음 3 개의 인터페이스를 사용할 수 있습니다.
예를 들어 테스트 프로그램에서 Libressl TLS 라이브러리를 사용하려면 그렇게 포함 시키십시오 (SSL과 Crypto는 TLS에 필요하며 자동으로 포함).
target_link_libraries ( test LibreSSL::TLS)Full example:
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 Rundo sudo make install 사용하여 Libressl을 컴파일하려는 위의 섹션의 안내서를 따라 Libressl을 /usr/local/ 폴더에 설치하며 find_package에서 자동으로 찾을 수 있습니다. 시스템을 다른 위치에 설치하거나 다른 위치에 직접 배치 한 경우 CMAKE 변수 LIBRESSL_ROOT_DIR 올바른 경로로 설정하여 CMAKE가 라이브러리를 찾는 데 도움이 될 수 있습니다.
라이브러리 파일을 C:/Program Files/LibreSSL/lib 에 배치하고 C:/Program Files/LibreSSL/include 에 포함 파일을 포함 시키면 cmake가 자동으로 찾을 수 있지만 cmake-gui를 사용하여 경로를 설정하는 것이 좋습니다. 선택한 폴더에 파일을 가질 수 있으므로 더 편리합니다.