0
0
mirror of https://github.com/OpenVPN/openvpn3.git synced 2024-09-20 20:13:05 +02:00
OpenVPN 3 is a C++ class library that implements the functionality of an OpenVPN client, and is protocol-compatible with the OpenVPN 2.x branch.
Go to file
James Yonan 5c31950852 Added TLS version min override parameter to ClientAPI::Config:
// Override the minimum TLS version:
  //   disabled -- don't specify a minimum, and disable any minimum
  //               specified in profile
  //   default or ""  -- use profile minimum
  //   tls_1_0  -- use TLS 1.0 minimum (overrides profile)
  //   tls_1_1  -- use TLS 1.1 minimum (overrides profile)
  //   tls_1_2  -- use TLS 1.2 minimum (overrides profile)
  std::string tlsVersionMinOverride;
2015-02-04 20:29:43 -07:00
client Added TLS version min override parameter to ClientAPI::Config: 2015-02-04 20:29:43 -07:00
deps Updated OpenSSL to openssl-1.0.2 final. 2015-01-26 21:22:26 -07:00
doc OpenVPN Protocol extensions update. 2015-01-06 17:16:06 -07:00
javacli Added AltProxy API that allows for alternative proxy implementations 2015-02-02 23:11:51 -07:00
openvpn Added TLS version min override parameter to ClientAPI::Config: 2015-02-04 20:29:43 -07:00
scripts Minicrypto build fixes: 2015-01-19 17:48:10 -07:00
test Added TLS version min override parameter to ClientAPI::Config: 2015-02-04 20:29:43 -07:00
vars Updated Android build vars to use -std=c++11. 2014-12-21 11:02:33 -07:00
COPYING Added AGPL text in COPYING. 2014-08-28 15:05:23 -06:00
README.rst Added README.rst. Contains basic instructions for building 2014-08-31 14:05:13 -06:00

OpenVPN 3
=========

OpenVPN 3 is a C++ class library that implements the functionality
of an OpenVPN client, and is protocol-compatible with the OpenVPN
2.x branch.

OpenVPN 3 includes a minimal client wrapper (``cli``) that links in with
the library and provides basic command line functionality.

NOTE: As of 2014, OpenVPN 3 is primarily of interest to developers
because it does not yet replicate the full functionality of OpenVPN 2.

Building OpenVPN 3 client on Mac OS X
-------------------------------------

OpenVPN 3 should be built in a non-root Mac OS X account.
Make sure that Xcode is installed with optional command-line tools.
(These instructions have been tested with Xcode 5.1.1).

Create the directories ``~/src`` and ``~/src/mac``::

    mkdir -p ~/src/mac

Clone the OpenVPN 3 repo::

    cd ~/src
    mkdir ovpn3
    cd ovpn3
    git clone ... core

Export the shell variable ``O3`` to point to the OpenVPN 3 top level
directory::

    export O3=~/src/ovpn3

Download source tarballs (``.tar.gz`` or ``.tgz``) for these dependency
libraries into ``~/Downloads``

See the file ``$O3/core/deps/lib-versions`` for the expected
version numbers of each dependency.  If you want to use a different
version of the library than listed here, you can edit this file.

1. Boost -- http://www.boost.org/
2. PolarSSL (1.3.4 or higher) -- https://polarssl.org/
3. Snappy -- https://code.google.com/p/snappy/
4. LZ4 -- https://code.google.com/p/lz4/

Note that while LZO and OpenSSL are listed in lib-versions, they are
not required for Mac builds.

Build the dependencies::

    OSX_ONLY=1 $O3/core/scripts/mac/build-all

Now build the OpenVPN 3 client executable::

    cd $O3/core
    . vars/vars-osx
    . vars/setpath
    cd test/ovpncli
    STRIP=1 PSSL=1 SNAP=1 LZ4=1 build cli

This will build the OpenVPN 3 client library with a small client
wrapper (``cli``).  It will also statically link in all external
dependencies (Boost, PolarSSL,
LZ4, and Snappy), so ``cli`` may be distributed to other Macs and
will run as a standalone executable.

These build scripts will create a "fat" Mac OS X executable with
support for both **x86_x64** and **i386** architectures, with a minimum
deployment target of 10.6.x.  The Mac OS X tuntap driver is not
required, as OpenVPN 3 can use the integrated utun interface if
available.

To view the client wrapper options::

    ./cli -h

To connect::

    ./cli client.ovpn