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

550 Commits

Author SHA1 Message Date
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
James Yonan
a5c05a8e65 Comment update. 2013-02-28 17:35:06 +00:00
James Yonan
9f59e42be2 Client will report its protocol as UDPv4 or TCPv4_CLIENT in options
compatibility string even if running over IPv6 transport to maintain
compatibility with 2.x branch.
2013-02-19 19:15:52 +00:00
James Yonan
32e9c62db7 Support usage such as this:
remote foo.bar 1194 tcp-client
2013-02-19 06:54:12 +00:00
James Yonan
be3a573f66 Core change: provide logic for tunPerist that works with iOS-style
tun semantics, however this code has not been enabled yet on iOS
because it breaks in several ways:

1. network available/unavailable detection appears to break when
   tun interface is kept alive across transport connection sessions.

2. plugin session persistence appears to fail when these lines are not
   executed immediately after transport pause/resume:

     VPNTunnelSetStatus(tunnelRef, kVPNTunnelStatusReasserting, 0);
     VPNTunnelClearConfiguration(tunnelRef)

iOS Core change: change pause/reconnect delay to 3 seconds (from 2)
to reduce flapping.
2013-02-19 06:38:10 +00:00
James Yonan
7e03ddff3e Throw a fatal error if "secret" config file directive is used,
since static key mode is not supported.
2013-02-06 01:40:00 +00:00
James Yonan
a5ed5918de Allow "topology" directive to be pushed more than once, as long
as parameter is consistent.
2013-02-06 01:34:15 +00:00
James Yonan
f71e6c485e Minor test script move. 2013-01-31 15:05:24 +00:00
James Yonan
0ba6e76170 Added copyright to some straggler files. 2013-01-31 15:00:45 +00:00
James Yonan
8af477eb06 Additional file reorg in proto unit test. 2013-01-30 21:15:07 +00:00
James Yonan
77bd160a51 Updated proto unit test with fresh certs/keys. 2013-01-30 21:08:55 +00:00
James Yonan
ce8171fff1 Minor fixes related to open-sourcing process. 2013-01-30 20:17:30 +00:00
James Yonan
ce7c03b472 Java command-line client update. 2013-01-30 19:19:49 +00:00
James Yonan
0387c23486 Minor edits & file reorg to protocol unit test. 2013-01-30 16:24:37 +00:00
James Yonan
13db8d94ca Core: modified read_text_utf8 to remove the Windows UTF-8 BOM,
if present.
2013-01-30 13:36:53 +00:00
James Yonan
bcbc0ebe77 * Core: treat "comp-lzo adaptive" like "comp-lzo".
* Core: make fragment directive error indicate that server as well
  may not use fragment.

* FAQ updates.
2013-01-29 12:26:27 +00:00
James Yonan
f8f5d86b2b Android 1.1.9 build 34
* key-direction default can now be set through the ovpncli API,
  but generally defaults to -1 (bidirectional).
2013-01-28 01:11:28 +00:00
James Yonan
5c1bed795f Android 1.1.9 build 33.
iOS 1.0.1 build 57

Updated FAQ
2013-01-27 03:31:30 +00:00
James Yonan
b7a43cec47 Core: for tls-remote implementation, sanitize x509 name and
common name in the same way as OpenVPN 2.x.
2013-01-26 15:01:14 +00:00
James Yonan
aa9061f923 Need to back out change where TunBuilderBase is abstract base class
because it breaks cli.cpp.
2013-01-26 14:59:41 +00:00
James Yonan
d24d0b4aef On iOS with a split-tunnel, and at least one pushed DNS server:
1. route all DNS requests through pushed DNS server if no added
   search domains.

2. route selected DNS requests through pushed DNS server if at
   least one added search domain.

On Android, apparently there is no selective DNS routing, so all
DNS requests will be routed through pushed DNS server, if at least
one exists.

With redirect-gateway on both platforms, all DNS requests are always
routed through the VPN.
2013-01-26 06:53:31 +00:00