Go to file
Brent Cook 0197a58969 Windows compatibility fixes
VS2013 has trouble with relative include paths for apps/openssl, so move
certhash_win/apps_win.c back to apps/openssl.

gmtime_r on mingw64 fails with negative time_t, override

gmtime_s fails all of the time unit tests, override

SHUT_RD/WR are defined in newer mingw64 headers, check before overriding
2015-10-18 09:28:10 -05:00
apps Windows compatibility fixes 2015-10-18 09:28:10 -05:00
crypto Windows compatibility fixes 2015-10-18 09:28:10 -05:00
include Windows compatibility fixes 2015-10-18 09:28:10 -05:00
libtls-standalone updates for MSVC 2015's degenerate headers 2015-09-09 06:02:28 -05:00
m4 disable some tests with 32-bit time_t systems 2015-10-17 22:57:59 -05:00
man update man links 2015-10-15 09:16:38 -05:00
patches disable some tests with 32-bit time_t systems 2015-10-17 22:57:59 -05:00
scripts test cmake builds on osx as well 2015-09-17 05:48:09 -05:00
ssl remove more deleted files 2015-09-11 18:46:36 -05:00
tests include warnings about small time_t 2015-10-17 23:32:21 -05:00
tls include new tls headers 2015-09-13 03:48:46 -05:00
.gitignore Windows compatibility fixes 2015-10-18 09:28:10 -05:00
.travis.yml remove builtin travis cmake because it is too old 2015-09-09 07:01:26 -05:00
autogen.sh fix libtool 2.4.2 stack-protector flag handling 2015-06-13 22:26:58 -05:00
ChangeLog update changelog for SHA-0 removal 2015-09-16 02:21:20 -05:00
check-release.sh add openbsd tag sync script + release verifier 2015-09-10 11:50:16 -05:00
CMakeLists.txt check for timegm in cmake builds 2015-10-15 14:32:16 -05:00
config Add an OpenSSL compatible ./config wrapper 2014-10-31 07:35:06 -05:00
configure.ac include warnings about small time_t 2015-10-17 23:32:21 -05:00
dist-win.sh revise how headers are patched for windows, remove sed scripts 2015-09-21 22:08:12 -05:00
dist.sh ensure headers are sanitized before release 2015-09-10 11:50:03 -05: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 update pc files to use the package version, not library ABI version 2015-08-19 19:18:20 -05: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 update pc files to use the package version, not library ABI version 2015-08-19 19:18:20 -05:00
libtls.pc.in update pc files to use the package version, not library ABI version 2015-08-19 19:18:20 -05:00
Makefile.am add initial CMake and Visual Studio build support 2015-07-21 12:08:18 -05:00
Makefile.am.common Use bundled headers instead of installed headers when building 2015-10-14 16:33:39 -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 Small README typo 2015-09-11 03:24:14 -05:00
README.windows update messages about Cygwin support 2015-09-07 00:33:55 -05:00
update.sh Windows compatibility fixes 2015-10-18 09:28:10 -05: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 (tested with 6.1.5)
  • 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.

Prerequisites when building from git

If you have checked this source using Git, follow these initial steps to prepare the source tree for building:

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

Building LibreSSL

Once you have a source tree from Git or FTP, 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 may build against older/newer targets as well. 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" ..

This will generate a LibreSSL.sln file that you can incorporate into other projects or build by itself.