Libressl es una bifurcación de OpenSSL 1.0.1g desarrollado por el proyecto OpenBSD. Nuestro objetivo es modernizar la base de código, mejorar la seguridad y aplicar procesos de desarrollo de mejores prácticas desde OpenBSD.
Libressl proporciona gran parte de la API OpenSSL 1.1. La API OpenSSL 3 no es compatible actualmente. Las incompatibilidades entre los proyectos existen y son inevitables, ya que ambos evolucionan con diferentes objetivos y prioridades. Las incompatibilidades importantes se abordarán si es posible y siempre que no sean demasiado perjudiciales para los objetivos de simplicidad, seguridad y cordura de Libressl. No agregamos nuevas características, cifrados y API sin una razón sólida y requerimos que el nuevo código esté limpio y de alta calidad.
Libressl no es compatible con ABI con ninguna liberación de OpenSSL, o necesariamente lanzamientos anteriores de libressl. Deberá volver a reembolsar sus programas a Libressl para usarlo, al igual que en moverse entre las principales versiones de OpenSSL. Los números de versión de la biblioteca instalados de Libressl se incrementan para tener en cuenta los cambios de ABI y API.
Si bien se desarrolló principalmente y aprovechó las API disponibles en OpenBSD, el proyecto portátil Libressl intenta proporcionar alternativas de trabajo para otros sistemas operativos, y ayuda a mejorar las implementaciones nativas del sistema operativo cuando sea posible.
En el momento de este escrito, se sabe que Libressl construye y trabaja en:
Libressl también admite los siguientes entornos de Windows:
Los tarballs de lanzamiento oficial están disponibles en su amigable vecindario OpenBsd Mirror en el directorio Libressl, aunque le sugerimos que use un espejo.
El marco de compilación portátil Libressl también se refleja en GitHub.
Informe a los errores al público [email protected] Lista de correo o al rastreador de problemas de GitHub
Las vulnerabilidades o errores severas que requieren coordinación con OpenSSL se pueden enviar al equipo central en [email protected].
Si ha revisado esta fuente usando GIT, o ha descargado un Tarball de origen de GitHub, siga estos pasos iniciales para preparar el árbol de origen para la construcción. Nota: ¡Su compilación fallará si no sigue estas instrucciones! Si no puede seguir estas instrucciones o no puede cumplir con estos requisitos previos, descargue una distribución de lanzamiento oficial de https://ftp.openbsd.org/pub/openbsd/libressl/ en su lugar. Se recomienda usar las versiones oficiales si no es un desarrollador.
./autogen.sh para preparar el árbol de origen para la construcción. Una vez que tenga el árbol de origen preparado, ejecute estos 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 Alternativamente, es posible correr ./dist.sh para preparar un tarball.
Una vez que tenga el árbol de origen preparado, ejecute estos comandos para construir e instalar:
mkdir build
cd build
cmake ..
make
make testPara construcciones más rápidas, puedes usar ninja:
mkdir build-ninja
cd build-ninja
cmake -G " Ninja " ..
ninja
ninja testU otro sistema de compilación compatible como Visual Studio:
mkdir build-vs2022
cd build-vs2022
cmake -G " Visual Studio 17 2022 " ..| Nombre de opción | Por defecto | Descripción |
|---|---|---|
LIBRESSL_SKIP_INSTALL | OFF | Permite omitir reglas de instalación (). Se puede especificar desde la línea de comandos usando-DLIBRESSL_SKIP_INSTALL=ON |
LIBRESSL_APPS | ON | Permite omitir compilaciones de aplicaciones. Se requieren aplicaciones para ejecutar pruebas |
LIBRESSL_TESTS | ON | Permite omitir pruebas. Las pruebas solo están disponibles en compilaciones estáticas |
BUILD_SHARED_LIBS | OFF | Opción CMake para construir bibliotecas compartidas. |
ENABLE_ASM | ON | Construye reglas optimizadas de ensamblaje. |
ENABLE_EXTRATESTS | OFF | Habilite pruebas adicionales que puedan ser poco confiables en algunas plataformas |
ENABLE_NC | OFF | Habilitar la instalación de NC habilitado para TLS (1) |
OPENSSLDIR | Blanco | Establezca el directorio OpenSSL predeterminado. Se puede especificar desde la línea de comandos usando-DOPENSSLDIR=<dirname> |
Establezca la variable de entorno UNIX_STD en 2003 antes de ejecutar configure para construir con el compilador HP C/AC ++. Consulte la página del hombre "Normas (5)" para obtener más detalles.
export UNIX_STD=2003
./configure
makeLibressl se basa en versiones relativamente recientes de MingW-W64, que no debe confundirse con el proyecto original Mingw.org. MingW-W64 3.2 o posterior debería funcionar. Consulte ReadMe.mingw.md para obtener más información.
Al configurar Libressl para usar con Emscripten, asegúrese de prepender emcmake en su comando de configuración cmake . Una vez configurado, puede continuar con sus comandos cmake habituales. Por ejemplo:
emcmake cmake . -Bbuild
cmake --build build --config Release
ctest --test-dir build -C Release --output-on-failure Haga una nueva carpeta en la raíz de su proyecto (donde se encuentra su archivo principal CMakeLists.txt ) llamado CMake. Copie el archivo FindLibreSSL.cmake a esa carpeta y agregue la siguiente línea a su CMakeLists.txt principal.txt:
set ( CMAKE_MODULE_PATH " ${CMAKE_CURRENT_SOURCE_DIR} /CMake; ${CMAKE_MODULE_PATH} " ) Después de su línea add_executable o add_library en su archivo CMakeLists.txt , agregue lo siguiente:
find_package (LibreSSL REQUIRED) Le dirá a CMake que encuentre libressl y, si se encuentra, le permitirá usar las siguientes 3 interfaces en su archivo CMakeLists.txt :
Si, por ejemplo, desea utilizar la biblioteca Libressl TLS en su programa de prueba, inclúyala como (TLS requiere SSL y Crypto son requeridos por TLS y se incluyen automáticamente también):
target_link_libraries ( test LibreSSL::TLS)Ejemplo 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) Seguir la guía en las secciones anteriores para compilar libressl usando la creación y ejecución sudo make install instalará libressl en el /usr/local/ carpeta, y se encontrará automáticamente por find_package. Si su sistema lo instala a otra ubicación, o los ha colocado usted mismo en una ubicación diferente, puede configurar la variable CMake LIBRESSL_ROOT_DIR en la ruta correcta, para ayudar a Cmake a encontrar la biblioteca.
Colocar los archivos de la biblioteca en C:/Program Files/LibreSSL/lib e incluir archivos en C:/Program Files/LibreSSL/include debe permitir que Cmake los encuentre automáticamente, pero se recomienda que use CMake-GUI para establecer las rutas. Es más conveniente ya que puede tener los archivos en cualquier carpeta que elija.