Go to file
2017-12-11 04:58:15 -06:00
apps Create correct directory in CMake install. 2017-11-06 11:52:03 -08:00
crypto Remove rsa/rsa_ssl.c 2017-09-01 23:37:09 +09:00
include Some CMake Fixes. 2017-09-10 11:54:23 -07:00
libtls-standalone Portable code part for callbacks in accept/connect 2016-06-28 03:29:54 +02:00
m4 Fixed getpagesize detection on Android 2017-11-23 15:28:25 +03:00
man Add *.5 manpages in libcrypto/man/ 2017-09-10 12:58:47 +09:00
patches netcat.c.patch: eliminate syntax error from patch 2017-12-05 15:22:15 -08:00
scripts adjust mingw package name 2016-11-13 13:10:42 -06:00
ssl Land #332, fix shared library dependencies with cmake for libssl/libtls 2017-08-12 09:46:19 -05:00
tests Remove NPN test coverage for Windows. 2017-08-13 19:10:46 +09:00
tls ssl/tls cmake: fix shared library dependencies 2017-07-24 15:26:29 -04:00
.gitignore Add *.5 manpages in libcrypto/man/ 2017-09-10 12:58:47 +09:00
.travis.yml update to trusty distro, remove 3rd-party PPAs for testing 2016-11-13 13:06:28 -06:00
autogen.sh -path isn't really needed for perms fixup, and not supported everywhere 2016-01-03 18:55:04 -06:00
ChangeLog add release notes 2017-12-11 04:58:15 -06:00
check-release.sh Add *.5 manpages in libcrypto/man/ 2017-09-10 12:58:47 +09:00
cmake_export_symbol.cmake cmake_export_symbol: Darwin compatibility 2017-06-25 18:19:20 -04:00
cmake_uninstall.cmake.in add cmake uninstall functionality 2016-04-09 13:37:09 -05:00
CMakeLists.txt Some CMake Fixes. 2017-09-10 11:54:23 -07:00
config Add an OpenSSL compatible ./config wrapper 2014-10-31 07:35:06 -05:00
configure.ac set SMALL_TIME_T when sizeof time_t == 4 2017-08-14 12:15:00 -05:00
dist-win.sh set windows binary OPENSSLDIR to something plausible 2016-03-21 04:37:01 -05:00
dist.sh Add *.5 manpages in libcrypto/man/ 2017-09-10 12:58:47 +09:00
gen-coverage-report.sh add branch coverage, skip coverage check of tests themselves 2015-05-07 07:56:19 -05:00
gen-openbsd-tags.sh add openbsd tag sync script + release verifier 2015-09-10 11:50:16 -05:00
libcrypto.pc.in Fix pkg-config metadata for libcrypto 2017-04-18 00:52:32 +10:00
libressl.pub Add the public signing key so it can be fetched from github 2014-07-14 20:50:52 -06:00
libssl.pc.in pc: add platform-specific libs to Libs.private 2016-05-31 15:24:22 +01:00
libtls.pc.in pc: add platform-specific libs to Libs.private 2016-05-31 15:24:22 +01:00
Makefile.am Add export symbol support to CMake 2017-01-18 00:34:20 +09:00
Makefile.am.common disable symbol hiding for now 2016-11-05 06:16:07 -05:00
OPENBSD_BRANCH tie master libressl branch to openbsd master 2014-07-31 22:08:30 -05:00
openssl.pc.in add platform libraries to libcompat's LIBADD list 2014-07-12 03:34:08 -05:00
README.md update VS prerequisites, refer to autogen.sh more 2017-09-04 16:32:43 -05:00
README.windows Document 32-bit time_t problem on minw-w64 toolchain and how to avoid it 2017-02-15 23:04:04 +01:00
tap-driver.sh bump to latest version of tap driver 2017-08-13 08:54:03 -05:00
update.sh fetch before update to grab new branches 2017-11-05 17:14:55 -06:00

LibreSSL image

Official portable version of LibreSSL

Build Status

LibreSSL is a fork of OpenSSL 1.0.1g developed by the OpenBSD project. Our goal is to modernize the codebase, improve security, and apply best practice development processes from OpenBSD.

Compatibility with OpenSSL:

LibreSSL is API compatible with OpenSSL 1.0.1, but does not yet include all new APIs from OpenSSL 1.0.2 and later. LibreSSL also includes APIs not yet present in OpenSSL. The current common API subset is OpenSSL 1.0.1.

LibreSSL is not ABI compatible with any release of OpenSSL, or necessarily earlier releases of LibreSSL. You will need to relink your programs to LibreSSL in order to use it, just as in moving between major versions of OpenSSL. LibreSSL's installed library version numbers are incremented to account for ABI and API changes.

Compatibility with other operating systems:

While primarily developed on and taking advantage of APIs available on OpenBSD, the LibreSSL portable project attempts to provide working alternatives for other operating systems, and assists with improving OS-native implementations where possible.

At the time of this writing, LibreSSL is know to build and work on:

  • Linux (kernel 3.17 or later recommended)
  • FreeBSD (tested with 9.2 and later)
  • NetBSD (7.0 or later recommended)
  • HP-UX (11i)
  • Solaris (11 and later preferred)
  • Mac OS X (tested with 10.8 and later)
  • AIX (5.3 and later)

LibreSSL also supports the following Windows environments:

  • Microsoft Windows (XP or higher, x86 and x64)
  • Wine (32-bit and 64-bit)
  • Builds with Mingw-w64, Cygwin, and Visual Studio

Official release tarballs are available at your friendly neighborhood OpenBSD mirror in directory LibreSSL, although we suggest that you use a mirror.

The LibreSSL portable build framework is also mirrored in Github.

Please report bugs either to the public libressl@openbsd.org mailing list, or to the github issue tracker

Severe vulnerabilities or bugs requiring coordination with OpenSSL can be sent to the core team at libressl-security@openbsd.org.

Building LibreSSL

Prerequisites when building from a Git checkout

If you have checked this source using Git, or have downloaded a source tarball from Github, follow these initial steps to prepare the source tree for building. Note: Your build will fail if you do not follow these instructions! If you cannot follow these instructions (e.g. Windows system using CMake) or cannot meet these prerequistes, please download an official release distribution from https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/ instead. Using official releases is strongly advised if you are not a developer.

  1. Ensure you have the following packages installed: automake, autoconf, git, libtool, perl
  2. Run './autogen.sh' to prepare the source tree for building or run './dist.sh' to prepare a tarball.

Steps that apply to all builds

Once you have a source tree, either by downloaded using git and having run the autogen.sh script above, or by downloading a release distribution from an OpenBSD mirror, run these commands to build and install the package on most systems:

./configure   # see ./configure --help for configuration options
make check    # runs builtin unit tests
make install  # set DESTDIR= to install to an alternate location

If you wish to use the CMake build system, use these commands:

mkdir build
cd build
cmake ..
make
make test

For faster builds, you can use Ninja as well:

mkdir build-ninja
cd build-ninja
cmake -G"Ninja" ..
ninja
ninja test

OS specific build information:

HP-UX (11i)

Set the UNIX_STD environment variable to '2003' before running 'configure' in order to build with the HP C/aC++ compiler. See the "standards(5)" man page for more details.

export UNIX_STD=2003
./configure
make

Windows - Mingw-w64

LibreSSL builds against relatively recent versions of Mingw-w64, not to be confused with the original mingw.org project. Mingw-w64 3.2 or later should work. See README.windows for more information

Windows - Visual Studio

LibreSSL builds using the CMake target "Visual Studio 12 2013" and newer. To generate a Visual Studio project, install CMake, enter the LibreSSL source directory and run:

 mkdir build-vs2013
 cd build-vs2013
 cmake -G"Visual Studio 12 2013" ..

Replace "Visual Studion 12 2013" with whatever version of Visual Studio you have installed. This will generate a LibreSSL.sln file that you can incorporate into other projects or build by itself.

Cmake - Additional Options

Option Name Default Description
LIBRESSL_SKIP_INSTALL OFF allows skipping install() rules. Can be specified from command line using
-DLIBRESSL_SKIP_INSTALL=ON
ENABLE_ASM ON builds assembly optimized rules.
ENABLE_EXTRATESTS OFF Enable extra tests that may be unreliable on some platforms
ENABLE_NC OFF Enable installing TLS-enabled nc(1)
ENABLE_VSTEST OFF Enable test on Visual Studio
OPENSSLDIR Blank Set the default openssl directory. Can be specified from command line using
-DOPENSSLDIR=<dirname>