0
0
mirror of https://github.com/OpenVPN/openvpn3.git synced 2024-09-20 20:13:05 +02:00
Commit Graph

420 Commits

Author SHA1 Message Date
James Yonan
1481327d72 OpenVPN 1.0.2 build 98 (iOS)
Ported iOS client and OpenVPN 3 core to ARM-64.
Now building a "fat binary" with Xcode 5.0.1 that
targets arm7, arm7s, and arm64.

Outstanding issues:

* IPv6 doesn't route through tunnel on iOS7
* Client doesn't install on iOS 5.1.1.
2013-11-11 12:33:35 -07:00
James Yonan
002a471b5a Commented-out debug symbol OPENVPN_SHOW_SESSION_TOKEN added. 2013-07-30 21:03:31 +00:00
James Yonan
aa438a77c6 Fixed core bug where pushed keepalive parms (ping, ping-restart)
would be ignored.
2013-07-29 21:19:37 +00:00
James Yonan
f290f9feee Extended IP.Addr class to handle extents as IP.Addr objects. This
extends the IP.Addr class to act more-or-less as a generic 128-bit
unsigned integer class.
2013-07-29 05:48:03 +00:00
James Yonan
a002dbb438 OpenVPN 1.0.2 build 92 (iOS)
Core: Allow password to be saved for static challenge/response
profiles.
2013-07-17 06:21:16 +00:00
James Yonan
ebad7a8bad Started a Mac OS X port of client using Mac VPN API.
Port is on hold pending VPN entitlement that must be
added (for Mac) to OpenVPN Tech. Apple Developer account.
2013-07-02 00:12:43 +00:00
James Yonan
0f17a169fc Added notes (doc/README.txt) describing OpenVPN 3 build process on
Mac OS X that is intended to be used with openvpn3.tar.gz
distribution.
2013-06-28 04:17:27 +00:00
James Yonan
e515e1a248 OpenVPN 1.0.1 build 90 (iOS)
OpenVPN 1.1.12 build 45 (Android)

Updated to PolarSSL 1.2.8.

Added registered trademark footer in UI.
2013-06-22 08:23:46 +00:00
James Yonan
b3999ab35b In core, support new PolarSSL return codes for bad/missing
passwords (i.e. POLARSSL_ERR_X509_PASSWORD_REQUIRED
and POLARSSL_ERR_X509_PASSWORD_MISMATCH).

Our private PolarSSL patch set has been reduced down to
only polarssl-minicrypto.patch.

Extended vars-android to fully set up NDK environment.

Added new test profile autopkp8v2.ovpn using PKCS#5 v2.0
private key.
2013-06-19 05:36:59 +00:00
James Yonan
226345a656 Added support for PKCS#8 private keys in PolarSSL 1.2.8.
Still waiting on PolarSSL PKCS#8 private key support to have
specialized error codes for no password or bad password.
2013-06-14 07:51:57 +00:00
James Yonan
415e383406 Added polarssl-minicrypto.patch. This patch adds minicrypto support
to PolarSSL 1.2.8 and higher.
2013-06-14 07:48:25 +00:00
James Yonan
7fe6fad18a Added crypto self test capability to core.
Added polarssl/bignum-arm.patch to resolve issue where
asm-optimized bignum code would crash on iOS.
2013-06-14 00:34:49 +00:00
James Yonan
dc10d6f541 Added scripts/linux/build-polarssl-ovpn2 to build OpenVPN 2.x with
PolarSSL.
2013-06-11 05:46:58 +00:00
James Yonan
a5210ce061 In ipv6-vps.ovpn, use the setenv opt form of the
tls-version-min directive:

  setenv opt tls-version-min 1.2 or-highest

In 3.0 core, properly set OPENVPN_VERSION to 3.0.

Updated make-community to automatically push at
end of build.
2013-06-11 02:04:07 +00:00
James Yonan
2734a74a62 Modification to tls-version-min to allow building with
older OpenSSL or PolarSSL libraries that don't implement
all TLS versions.
2013-06-10 23:21:26 +00:00
James Yonan
cf39be0516 Log unused options, i.e. options specified in config file that were
unrecognized, ignored, or unused.

This behavior is somewhat different (by design) to 2.x branch, which
will raise a fatal exception if an unrecognized option is
encountered.
2013-06-10 00:42:19 +00:00
James Yonan
906584ba3b Support "setenv opt" prefix before directives, where
its presence indicates that the directive is optional,
i.e. if a client doesn't understand the directive, it
should simply ignore it.
2013-06-08 16:10:35 +00:00
James Yonan
7d9921972e Fixed issue where minicrypto aes_crypt_cbc was not working correctly
if input and output were pointing to the same memory, as is often
the case with PolarSSL calls.

Removed minicrypto files (such as Blowfish) that are no longer used.
2013-06-08 04:41:03 +00:00
James Yonan
2a0d20b154 Extended build-polarssl-patch to also build
polarssl-crypto-alt.patch (i.e. the PolarSSL/OpenSSL
patch without the actual OpenSSL implementation code).
2013-06-07 23:57:30 +00:00
James Yonan
e59aa566e7 Reworked PolarSSL build scripts to place all configuration
parameters in include/polarssl/openvpn-polarssl.h which is then
included by config.h.

Previously we passed configuration parameters via
polarssl/CMakeLists.txt, but this creates a problem in that
the calling app can include headers from include/polarssl and
not get the right configuration parameters.
2013-06-07 23:23:10 +00:00
James Yonan
d22631f741 For iOS build, added "Live Simulator" build configuration -- this
will build the app as if it was running on the simulator, i.e. with
null tun device, but will build for an actual iOS device.

OPENVPN_SSL_DEBUG defined in ovpncli.cpp is now a debug level and
can be set to an integer value (or 0 to disable).
2013-06-07 21:55:54 +00:00
James Yonan
2198df06f2 Added tls-version-min directive:
tls-version-min <version> ['or-highest'] -- sets the minimum
TLS version we will accept from the peer.  Examples for version
include "1.0", "1.1", or "1.2".  If 'or-highest' is specified
and version is not recognized, we will only accept the highest TLS
version supported by the local SSL implementation.

Examples:

tls-version-min 1.1 -- fail the connection unless peer can
  connect at TLS 1.1 or higher.

tls-version-min 1.3 or-highest -- require that the peer
  connect at TLS 1.3 or higher, however if the local SSL
  implementation doesn't support TLS 1.3 (as it wouldn't in 2013
  since TLS 1.3 doesn't exist yet), reduce the minimum required
  version to the highest version supported by the local SSL
  implementation (such as TLS 1.2).  This is intended to allow
  client configurations to target higher TLS versions that are
  supported on the server, even if some older clients don't
  support these versions yet.
2013-06-06 22:18:17 +00:00
James Yonan
e92899c490 Relax options parser a bit and follow OpenVPN 2.x behavior
where if more than one instance of an option exists, and
a single instance of the option is required, use the last
instance.  Previously we would raise an exception in this case.
2013-06-03 06:31:22 +00:00
James Yonan
df0add63b0 Upgraded dependent libs:
snappy-1.1.0
  openssl-1.0.1e
  boost_1_53_0
2013-05-31 22:22:01 +00:00
James Yonan
f48aed317a Refactored polar-openssl.patch to make it easier for PolarSSL
team to merge.
2013-05-31 20:42:49 +00:00
James Yonan
e7b0794b31 Updated PolarSSL to 1.2.7.
Still to do: enable POLARSSL_HAVE_ASM in polarssl/config.h
after ARM bignum multiply is fixed.
2013-05-31 07:44:02 +00:00
James Yonan
926504ec4c Implemented "inactive" directive. 2013-05-25 01:19:50 +00:00
James Yonan
bbaaf65b0a Fixed options parsing issue if non-aggregate option was
specified in profile as well as pushed by server
(the pushed version should win).
2013-05-25 01:13:11 +00:00
James Yonan
d3c592c991 For iOS (and other platforms in the future), added the capability
for server to push proxy options, e.g.:

  push "dhcp-option PROXY_HTTP 10.144.5.14 3128"
  push "dhcp-option PROXY_HTTPS 10.144.5.14 3128"
  push "dhcp-option PROXY_BYPASS www.yonan.net staging.openvpn.net"
  push "dhcp-option PROXY_AUTO_CONFIG_URL http://www.yonan.net/proxy.pac"
2013-05-24 20:04:37 +00:00
James Yonan
32da215ce3 Added core support for tun-mtu directive. 2013-05-22 21:52:48 +00:00
James Yonan
26657012b6 Implemented "client-cert-not-required" directive as an alias for
"setenv CLIENT_CERT 0".
2013-05-22 08:12:35 +00:00
James Yonan
9262e131b7 "Session invalidated" errors will now explicitly reference a reason code. 2013-05-22 07:46:52 +00:00
James Yonan
82be8b0107 packet_id.hpp now logs errors to a SessionStats objects,
like the rest of the core.

Added verbose() method to class SessionStats so that clients can
know whether to pass extra text data to error() virtual method.
2013-05-22 05:13:11 +00:00
James Yonan
256ea8bfcc Fixed core bug that could cause reconnected TCP sessions to lock up
with repeating replay errors if server sends data channel packets
immediately after KeyContext goes ACTIVE but before tun object in
ClientProto is initialized.
2013-05-22 04:56:48 +00:00
James Yonan
67e686df00 Resolved the issue where iOS plugin was not able to fully enumerate
the cert chain from Keychain Identities.

Note that this solution is still not ideal because the iOS keychain
appears unable to import a PKCS#12 file as a bundle.  It only
imports the leaf cert/key and ignores the rest.

So for this fix to be effective, each of the root and intermediate
certs in the PKCS#12 file must be manually extracted and separately
imported as .crt files.

MERGE from -r8632 https://svn.openvpn.net/projects/openvpn/cs/openvpn/ovpn3.ios101
2013-05-21 19:12:23 +00:00
James Yonan
9092118c58 More IP changes for AS 2.0. 2013-05-21 04:10:22 +00:00
James Yonan
ffe53114ab Copy ProtoConfig for each connection within a client session so that
modifications due to server push will not persist across client
instantiations.

Added RCCopyable object, a variation on RC that allows copying and
assignment.
2013-04-21 20:29:14 +00:00
James Yonan
a0135a4fb9 Minor IP changes/additions for AS ovpn3 module. 2013-04-09 04:32:33 +00:00
James Yonan
964e9553b5 Added more functionality to IP:Addr classes so that they can be
wrapped by swig and used in the Access Server to represent IPv4
and IPv6 addresses.
2013-04-04 00:51:25 +00:00
James Yonan
010bfb529b OpenVPN 1.0.1 build 80 (iOS)
OpenVPN 1.1.11 build 43 (Android)

Fixed issue with NTLM proxy authentication where connections
through Squid proxies would produce the error "NTLM phase-2
Content-Length is not zero".
2013-03-26 17:07:38 +00:00
James Yonan
82d2dfb280 OpenVPN 1.0.1 build 79 (iOS)
OpenVPN 1.1.10 build 42 (Android)

Change to memcmp_secure: declare memory regions as volatile
to avoid potential compiler optimizations from leaking
timing info.
2013-03-22 18:02:45 +00:00
James Yonan
413498ae4f Android 1.1.10 build 39
iOS 1.0.1 build 73

Updated to PolarSSL 1.1.6
2013-03-14 07:15:28 +00:00
James Yonan
cebc610e8e Implemented route-nopull (second attempt). 2013-03-14 02:54:58 +00:00
James Yonan
3fdcfb4a88 Minor changes to polarssl/config.h for PolarSSL 1.1.6. 2013-03-14 00:21:44 +00:00
James Yonan
2801705911 Backed out route-nopull implementation from r8539 because it doesn't
differentiate between directives in the config file vs. pushed
directives.
2013-03-14 00:20:34 +00:00
James Yonan
6f7440e2f9 Implemented route-nopull. 2013-03-13 01:42:24 +00:00
James Yonan
9ed088a28b Implemented "auth none" and "cipher none". 2013-03-13 00:34:17 +00:00
James Yonan
de0da474ef Revamp remote-list handling so that DNS names that resolve to
multiple addresses will be treated as if each address was an
individual remote directive.

Fixed issue where UDP transport driver was calling socket
connect method synchronously.  This can cause exceptions
to be thrown in corner cases, such as "No route to host"
on OSX/iOS for connections to IPv6 addresses when no default
IPv6 route exists on system.  Refactoring UDP connect
operation to be asychronous fixes the issue.

Implemented remote-random.
2013-03-12 19:20:37 +00:00
James Yonan
842c93bfe9 Added capability to build Android development packages for customers. 2013-03-08 01:53:33 +00:00
James Yonan
9fdf215650 OpenVPN 1.0.1 build 71 (iOS)
Core: Log but don't raise a fatal error on connections where
server pushes an invalid route or dhcp-option.  In this case,
the offending pushed directive will be ignored.
2013-03-01 00:10:36 +00:00