Libressl é um garfo do OpenSSL 1.0.1g desenvolvido pelo projeto OpenBSD. Nosso objetivo é modernizar a base de código, melhorar a segurança e aplicar processos de desenvolvimento de melhores práticas do OpenBSD.
Libressl fornece grande parte da API OpenSSL 1.1. A API OpenSSL 3 não é suportada no momento. As incompatibilidades entre os projetos existem e são inevitáveis, pois evoluem com diferentes metas e prioridades. Incompatibilidades importantes serão abordadas, se possível, e desde que não sejam muito prejudiciais aos objetivos de simplicidade, segurança e sanidade da Libressl. Não adicionamos novos recursos, cifras e API sem um motivo sólido e exigimos que o novo código seja limpo e de alta qualidade.
Libressl não é compatível com qualquer lançamento do OpenSSL, ou necessariamente lançamentos anteriores do Libressl. Você precisará vincular seus programas ao Libressl para usá -lo, como se movendo entre as principais versões do OpenSSL. Os números de versão da biblioteca instalados da Libressl são incrementados para explicar as alterações da ABI e da API.
Enquanto desenvolvido principalmente e aproveitando as APIs disponíveis no OpenBSD, o projeto portátil da Libressl tenta fornecer alternativas de trabalho para outros sistemas operacionais e auxilia na melhoria das implementações nativas do OS, sempre que possível.
No momento da redação deste artigo, o Libressl é conhecido por construir e trabalhar em:
Libressl também suporta os seguintes ambientes do Windows:
Tarballs de lançamento oficial estão disponíveis no seu amigável espelho de bairro OpenBSD no diretório Libressl, embora sugeramos que você use um espelho.
A estrutura de construção portátil Libressl também é espelhada no GitHub.
Por favor, relate os bugs à lista pública de [email protected] ou ao rastreador de problemas do github
Vulnerabilidades graves ou bugs que exigem coordenação com o OpenSSL podem ser enviados para a equipe principal em [email protected].
Se você verificou essa fonte usando o GIT ou baixou um tarball de origem do Github, siga estas etapas iniciais para preparar a árvore de origem para a construção. NOTA: Sua construção falhará se você não seguir estas instruções! Se você não puder seguir estas instruções ou não puder atender a esses pré -requisitos, faça o download de uma distribuição oficial de lançamento em https://ftp.openbsd.org/pub/openbsd/libressl/. O uso de lançamentos oficiais é fortemente aconselhado se você não for um desenvolvedor.
./autogen.sh para preparar a árvore de origem para a construção. Depois de preparar a árvore de origem, execute esses comandos para construir e instalar:
./configure # see ./configure --help for configuration options
make check # runs builtin unit tests
make install # set DESTDIR= to install to an alternate location Como alternativa, é possível executar ./dist.sh para preparar um tarball.
Depois de preparar a árvore de origem, execute esses comandos para construir e instalar:
mkdir build
cd build
cmake ..
make
make testPara construções mais rápidas, você pode usar o Ninja:
mkdir build-ninja
cd build-ninja
cmake -G " Ninja " ..
ninja
ninja testOu outro sistema de construção suportado como o Visual Studio:
mkdir build-vs2022
cd build-vs2022
cmake -G " Visual Studio 17 2022 " ..| Nome da opção | Padrão | Descrição |
|---|---|---|
LIBRESSL_SKIP_INSTALL | OFF | permite pular as regras de instalação (). Pode ser especificado na linha de comando usando-DLIBRESSL_SKIP_INSTALL=ON |
LIBRESSL_APPS | ON | permite pular as compilações de aplicativos. Os aplicativos são necessários para executar testes |
LIBRESSL_TESTS | ON | permite pular os testes. Os testes estão disponíveis apenas em construções estáticas |
BUILD_SHARED_LIBS | OFF | Opção CMake para criar bibliotecas compartilhadas. |
ENABLE_ASM | ON | Construa regras otimizadas da montagem. |
ENABLE_EXTRATESTS | OFF | Ativar testes extras que podem não ser confiáveis em algumas plataformas |
ENABLE_NC | OFF | Permitir a instalação de NC habilitada para TLS (1) |
OPENSSLDIR | Em branco | Defina o diretório OpenSSL padrão. Pode ser especificado na linha de comando usando-DOPENSSLDIR=<dirname> |
Defina a variável de ambiente unix_std como 2003 antes de executar configure para criar com o compilador HP C/AC ++. Veja a página do homem "Padrões (5)" para obter mais detalhes.
export UNIX_STD=2003
./configure
makeO Libressl se baseia em versões relativamente recentes do Mingw-W64, não devem ser confundidas com o projeto Mingw.org original. Mingw-W64 3.2 ou posterior deve funcionar. Consulte Readme.mingw.md para obter mais informações.
Ao configurar o Libressl para uso com o EMScriptten, certifique -se de prender emcmake ao seu comando cmake Configuration. Uma vez configurado, você pode prosseguir com seus comandos habituais cmake . Por exemplo:
emcmake cmake . -Bbuild
cmake --build build --config Release
ctest --test-dir build -C Release --output-on-failure Faça uma nova pasta na raiz do seu projeto (onde está localizado o arquivo principal CMakeLists.txt ) chamado cmake. Copie o arquivo FindLibreSSL.cmake para essa pasta e adicione a seguinte linha aos seus principais CMakeLists.txt :
set ( CMAKE_MODULE_PATH " ${CMAKE_CURRENT_SOURCE_DIR} /CMake; ${CMAKE_MODULE_PATH} " ) Após sua linha add_executable ou add_library em seu arquivo CMakeLists.txt , adicione o seguinte:
find_package (LibreSSL REQUIRED) Ele dirá ao CMake encontrar o Libressl e, se encontrado, permitirá que você use as três interfaces a seguir em seu arquivo CMakeLists.txt :
Se você, por exemplo, deseja usar a biblioteca Libressl TLS em seu programa de teste, inclua -o como So (SSL e Crypto são exigidos pelo TLS e incluídos automaticamente também):
target_link_libraries ( test LibreSSL::TLS)Exemplo completo:
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) Seguindo o guia nas seções acima para compilar o Libressl usando o MAKE e a execução sudo make install instalará o Libressl na /usr/local/ pasta e será encontrado automaticamente por find_package. Se o seu sistema o instalar em outro local, ou você o colocou em um local diferente, poderá definir a variável CMake LIBRESSL_ROOT_DIR no caminho correto, para ajudar a CMake a encontrar a biblioteca.
A colocação dos arquivos da biblioteca em C:/Program Files/LibreSSL/lib e os arquivos de inclusão em C:/Program Files/LibreSSL/include deve deixar o CMake encontrá-los automaticamente, mas é recomendável que você use o Cmake-Gui para definir os caminhos. É mais conveniente, pois você pode ter os arquivos em qualquer pasta escolhida.