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

62 Commits

Author SHA1 Message Date
James Yonan
84bfcd5430 core: in OpenSSL driver, added config option force_aes_cbc_ciphersuites
without actually implementing it.
2014-02-08 00:13:23 -07:00
James Yonan
494e6fae64 core: in OpenSSL driver, fix the external_pki->sign call to
pass the new sig_type parameter.
2014-02-08 00:13:23 -07: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
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
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
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
8085f0bb75 Core: allow clients to connect without a client certificate or
key, if the server allows it.  To enable, add the following to
the profile:

    setenv CLIENT_CERT 0

This is necessary to resolve an ambiguity when the profile
contains no client certificate or key, because otherwise
the client app can't know whether an external certificate/key
pair should be obtained from the Keychain, or whether the
server actually doesn't require a client certificate/key.
If the above directive is set to 1 or absent, the app will
assume that an external certificate/key pair should be obtained
from the Keychain

The option is given as a "setenv" to avoid breaking other
OpenVPN clients that might not recognize it.

----

Also, made subtle change to autologin determination, so that
community external PKI profiles will work properly with
autologin or userlogin based on the presence or absence of
auth-user-pass.
2013-01-21 09:42:18 +00:00
James Yonan
3b8ede216d Core: on PolarSSL, try to do string rendition of X509 subject
just like OpenSSL, so that tls-remote equality matches with the
X509 subject will be compatible.
2013-01-20 08:44:49 +00:00
James Yonan
409d71da47 Core: implemented tls-remote option (for PolarSSL and OpenSSL). 2013-01-19 09:31:55 +00:00
James Yonan
9f18b28f86 Misc build system changes to support OpenSSL. 2012-11-27 03:05:46 +00:00
James Yonan
e51e5421cf Updated OpenSSL driver to feature equivalance with
PolarSSL driver.

Updated Linux build.

Added badcert.ovpn test profile to trigger certificate
verification error.
2012-11-26 07:46:09 +00:00
James Yonan
4d9a751af2 Added head comments to all source files.
Minor reorganization of unicode code.
2012-11-23 06:18:43 +00:00
James Yonan
32a117242e More profile validation. 2012-11-14 02:35:50 +00:00
James Yonan
05aed22147 Allow multi-cert directives like ca and extra-certs to be specified
multiple times in the config file.
2012-11-12 16:17:25 +00:00
James Yonan
1c7f9e2577 Completed HTTP proxy backend implementation
in new client core:

* Added NTLMv2 authentication
2012-10-28 10:07:32 +00:00
James Yonan
48ab9cbbe9 Added our own system() implementation to allow args to be passed as
array instead of concatenated string, and to resolve issue on OS X
where signals were being ignored after system() was called.

C++ iterators incremented in a for statement should usually use
a preincrement syntax.
2012-09-12 04:24:05 +00:00
James Yonan
a6b6d487ef Global edit to add copyright notice at head of each source file. 2012-08-24 21:13:42 +00:00
James Yonan
7331ee349b Full iOS beta for OpenVPN Connect. 2012-08-01 12:28:13 +00:00
James Yonan
f91339e739 First working iOS build. 2012-07-01 15:37:46 +00:00
James Yonan
53fa94260f Added clang/LLVM support. 2012-05-22 12:25:33 +00:00
James Yonan
3c99b8976b C++ core fixes for Windows. 2012-04-21 04:47:30 +00:00
James Yonan
abbe662dcb Android 4 client changes:
* Allow protocol to be specified by "proto" directive instead
  of requiring it to be present in "remote" directive.

* Throw error if tls-remote is specified in client config file.

Updated Android client.txt notes.
2012-04-18 12:13:29 +00:00
James Yonan
ae1afc453d Fixed minor build regression. 2012-03-24 17:54:28 +00:00
James Yonan
ca680ba568 Added capability for PolarSSL to use OpenSSL ciphers/digests. 2012-03-23 20:04:33 +00:00
James Yonan
1531bb6f8f Implemented AppleCryptoAPI for Mac. 2012-03-15 12:13:16 +00:00
James Yonan
65eef6cb5d Android 4 client -- Added External PKI support for PolarSSL usage. 2012-03-14 10:37:19 +00:00
James Yonan
0146e7f262 First working version of Android 4 client with PolarSSL.
Added build-android-polar and supporting scripts.
2012-03-14 06:11:07 +00:00
James Yonan
c4d19c69ea Minor reorg in SSLContext classes. 2012-03-14 03:24:45 +00:00
James Yonan
1b0088ab2e PolarSSL support fully implemented (except for External PKI). 2012-03-14 00:51:40 +00:00
James Yonan
801bfae881 Added Polar SSL crypto support via PolarSSLCryptoAPI. 2012-03-13 04:51:52 +00:00
James Yonan
34dc950815 Core refactor to abstract random and crypto APIs using
static polymorphism.  Only OpenSSL crypto API is
presently implemented.  Still need to implement Apple
and PolarSSL.
2012-03-12 12:24:40 +00:00
James Yonan
74503a4efa Started PolarSSL port. Initially just add RNG support.
Because PolarSSL RNG requires state object, add state
objects for all other RNG providers (OpenSSL, Apple SSL)
to maintain a polymorphic model.
2012-03-11 12:09:25 +00:00
James Yonan
eca10fa23d Minor changes to Android 4 client and core:
* clear_auth() now clears username field.

* OpenSSL impl in core now logs TLS handshake details.

* Added build-openssl-small to build a trimmed-down version
  of OpenSSL.
2012-03-11 04:59:51 +00:00
James Yonan
d6be1cf2ee Android 4 client:
* Added OpenVPN log file page view in advanced preferences.

* Added OpenSSL verify_callback.

* Support ns-cert-type

* Sanitize logged data to remove Session ID.
2012-03-08 10:30:43 +00:00
James Yonan
deffceea7e Android 4 -- Implemented External PKI. 2012-03-06 06:06:54 +00:00
James Yonan
f13ed3e7a8 Implemented Java client using Swig. 2012-02-11 14:02:51 +00:00
James Yonan
aa35d332ff Initialize OpenSSL "auto" engine in InitProcess::init().
Workaround bug in OpenSSL <= 0.9.8 that caused class DH
compile fail.
2012-02-10 14:25:52 +00:00
James Yonan
7371bd8e14 First working version of cli that can be entirely driven from config
file.  Currently limited to UDP, runs only on Linux, and supports
pushed redirect-gateway but not route directives.
2011-12-18 10:50:08 +00:00
James Yonan
6260957c37 Added AES-NI support.
Disable logging in Packet ID code unless OPENVPN_DEBUG_PACKET_ID
is defined.
2011-12-17 05:06:39 +00:00
James Yonan
990231b226 First successful negotiation with AS.
Still need to parse and apply PUSH_REPLY options.
2011-12-16 10:02:15 +00:00
James Yonan
1b5fa38adb Comment additions.
Catch buffer exceptions and increment BUFFER_ERRORS.
2011-12-13 11:13:27 +00:00
James Yonan
f3e9239d80 Full-protocol unit test using ProtoContext, w/o soft resets.
Test in test/ssl/proto.cpp.
2011-12-11 08:28:55 +00:00
James Yonan
16f2021000 Add ssl_started differentiation to ProtoStackBase. 2011-12-04 20:50:24 +00:00
James Yonan
d21c7de80c Coded hmac2 methods, for dealing with HMAC operations where HMAC
signature exists within data range being signed.

In ProtoStack, add raw_write method sending raw packets
that will NOT be encrypted via SSL, but will still be
encapsulated and tracked via reliability layer.

Other misc changes.
2011-12-04 01:34:32 +00:00
James Yonan
2b7e81e55b Added new constructor to AppleSSLContext so it can be
initialized via an SSLConfig.
2011-11-29 05:38:19 +00:00
James Yonan
3e91be1849 Added AppleSSLContext.
Cleaned up test/osx/ssl.cpp.  Old (messy) version
moved to ssl1.cpp.
2011-11-28 06:53:44 +00:00
James Yonan
bfbed01e12 Work around an issue in older versions of OpenSSL
where DHparams_dup is defined as a macro.
2011-11-25 07:06:30 +00:00
James Yonan
f3ec4429ba Minor fixes related to previous commit. 2011-11-25 05:38:40 +00:00