0
0
mirror of https://github.com/OpenVPN/openvpn.git synced 2024-09-20 12:02:28 +02:00
OpenVPN is an open source VPN daemon
Go to file
Steffan Karger 86d8cd6860 Migrate to mbed TLS 2.x
PolarSSL / mbed TLS 1.3 is going end-of-life by 2016-12-31, so let's move
the master branch on to the 2.x series.

This patch purges all references to polarssl, except for file names and
some comments referring to 1.2 and earlier, which were never released as
'mbed TLS'.  A separate patch for the file names follows, so the real
changes are easier to spot without git-fu.

This patch intends to not change any behaviour.

The vast majority of this patch is just renaming functions and structs.
There are some small changes in the implementation:
 * In ssl_polarssl.c: the debug callback prototype changed, so our
   implementation changed a bit too.
 * in ssl_polarssl.c: the old polarssl ssl_context is now split into a
   mbedtls_ssl_config and mbedtls_ssl_context.  The intention is that
   mbedtls_ssl_config is shared among connections, and mbedtls_ssl_context
   contains the per-connection state.  That doesn't work for us, because
   we use per-connection verify callback data, while the verify callback
   is registered on mbed_tls_config.  Therefore we still need to init a
   mbed_tls_config struct for each connection.
 * in ssl_polarssl.c: the mbed bio handling changed, so our
   implementation changed a bit too.
 * in ssl_polarssl.c and ssl_verify_polarssl.c: the mbedtls x509 parse
   functions now fail if we don't provide a NUL-terminated string, so use
   strlen()+1 as the length argument to include the terminating NUL.

I tested this patch to work with:
 * 'make check' (with 2.0.0 and 2.2.1, other tests just with 2.2.1)
 * static key mode
 * TLS mode with PEM key file
 * TLS mode with password protected PEM key file
 * TLS mode with management-external-key
 * TLS mode with PKCS#11
 * TLS mode with inline ca/key/cert/dh

Signed-off-by: Steffan Karger <steffan@karger.me>
Acked-by: Arne Schwabe <arne@rfc2549.org>
Message-Id: <1460918143-408-1-git-send-email-steffan@karger.me>
URL: http://article.gmane.org/gmane.network.openvpn.devel/11458
Signed-off-by: Gert Doering <gert@greenie.muc.de>
2016-04-28 14:31:01 +02:00
build Generate openvpn-plugin.h for MSVC build 2015-10-22 19:47:28 +02:00
contrib Fix OCSP_check.sh 2016-02-25 16:03:19 +01:00
debug build: standard directory layout 2012-03-22 22:07:08 +01:00
distro Include systemd units in the source tarball (make dist) 2014-12-02 21:42:11 +01:00
doc Implemented x509-track for PolarSSL. 2016-04-28 13:54:52 +02:00
include Migrate to mbed TLS 2.x 2016-04-28 14:31:01 +02:00
m4 build: ax_varargs.m4: fixups 2012-03-26 14:33:15 +02:00
sample sample-plugin: TLS Keying Material Exporter [RFC-5705] demonstration plug-in 2015-10-10 00:03:07 +02:00
src Migrate to mbed TLS 2.x 2016-04-28 14:31:01 +02:00
tests Revert "Enforce "serial-tests" behaviour for tests/Makefile" 2015-05-28 11:09:50 +02:00
.gitattributes cleanup: add .gitattributes to control eol style explicitly 2012-04-26 20:54:26 +02:00
.gitignore Ignore stamp-h2 we generate during build process 2016-01-08 15:10:20 +01:00
.mailmap Added mapping files from SVN commit ID to more descriptive commit IDs. 2010-10-21 11:31:26 +02:00
.svncommitters Added mapping files from SVN commit ID to more descriptive commit IDs. 2010-10-21 11:31:26 +02:00
AUTHORS This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
ChangeLog Preparing for v2.3_beta1 2012-09-12 16:12:28 +02:00
Changes.rst PolarSSL x509_get_sha1_hash now returns correct SHA1 fingerprint. 2016-04-28 13:52:24 +02:00
compat.m4 build: add git revision to --version output if build from git repository 2012-06-01 15:34:49 +02:00
config-msvc-version.h.in build: win-msvc: msbuild format 2012-03-22 22:53:39 +01:00
config-msvc.h Add lz4 support to MSVC. 2016-02-26 08:36:24 +01:00
configure.ac Migrate to mbed TLS 2.x 2016-04-28 14:31:01 +02:00
CONTRIBUTING.rst Add CONTRIBUTING.rst 2015-10-10 15:48:55 +02:00
COPYING Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
COPYRIGHT.GPL This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
INSTALL configure.ac: simplify crypto library configuration 2016-01-16 21:27:11 +01:00
INSTALL-win32.txt Added cross-compilation information INSTALL-win32.txt 2013-02-03 14:47:19 +01:00
Makefile.am Minor t_client.sh cleanups 2014-04-21 13:58:11 +02:00
msvc-build.bat build: msvc: chdir with change drive to script location 2012-06-29 10:26:15 +02:00
msvc-dev.bat build: msvc: chdir with change drive to script location 2012-06-29 10:26:15 +02:00
msvc-env.bat Continuation of MSVS fixes 2015-10-06 13:17:34 +02:00
NEWS This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
openvpn.sln build: msvc: upgrade to Visual Studio 2010 + fixups 2012-03-29 12:31:10 +02:00
PORTS Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
README Updated README 2013-02-03 14:47:28 +01:00
README.ec Add support for elliptic curve diffie-hellmann key exchange (ECDH) 2014-04-25 19:36:52 +02:00
README.IPv6 Update IPv6 related readme files 2014-01-03 16:01:12 +01:00
README.polarssl Update README.polarssl 2014-06-24 22:51:27 +02:00
TODO.IPv6 Update IPv6 related readme files 2014-01-03 16:01:12 +01:00
version.m4 Provide compile time OpenVPN version information to plug-ins 2015-07-27 20:48:46 +02:00
version.sh.in build: windows: install version.sh to allow installer read version 2012-03-24 00:14:23 +01:00

OpenVPN -- A Secure tunneling daemon

Copyright (C) 2002-2010 OpenVPN Technologies, Inc. This program is free software;
you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2
as published by the Free Software Foundation.

*************************************************************************

For the latest version of OpenVPN, go to:

	http://openvpn.net/

To Build and Install,

	./configure
	make
	make install

or see the file INSTALL for more info.

*************************************************************************

For detailed information on OpenVPN, including examples, see the man page
  http://openvpn.net/man.html

For a sample VPN configuration, see
  http://openvpn.net/howto.html

For a description of OpenVPN's underlying protocol,
  see the file ssl.h included in the source distribution.

*************************************************************************

Other Files & Directories:

* INSTALL-win32.txt -- installation instructions
  for Windows

* configure.ac -- script to rebuild our configure
  script and makefile.

* sample/sample-scripts/verify-cn

  A sample perl script which can be used with OpenVPN's
  --tls-verify option to provide a customized authentication
  test on embedded X509 certificate fields.

* sample/sample-keys/

  Sample RSA keys and certificates.  DON'T USE THESE FILES
  FOR ANYTHING OTHER THAN TESTING BECAUSE THEY ARE TOTALLY INSECURE.

* sample/sample-config-files/

  A collection of OpenVPN config files and scripts from
  the HOWTO at http://openvpn.net/howto.html

*************************************************************************

Note that easy-rsa and tap-windows are now maintained in their own subprojects.
Their source code is available here:

  https://github.com/OpenVPN/easy-rsa
  https://github.com/OpenVPN/tap-windows

The old cross-compilation environment (domake-win) and the Python-based
buildsystem have been replaced with openvpn-build:

  https://github.com/OpenVPN/openvpn-build

See the INSTALL file for usage information.