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

216 Commits

Author SHA1 Message Date
James Yonan
ae04729453 Updated serv.cpp for new template-free ProtoContext. 2014-10-22 12:24:14 -06:00
James Yonan
8a7cba4135 Support TransportMap seed randomization.
This is to prevent an attacker from using knowledge about the hash
table bucket hashing function to maliciously attempt to create
unbalanced hash buckets, which in turn could lead to DoS.
2014-10-22 12:24:14 -06:00
James Yonan
1017608878 Removed TransportServerParent, as it doesn't appear to be needed yet. 2014-10-22 12:24:14 -06:00
James Yonan
19ded1f0a3 Server development initial checkpoint:
1. UDP server
2. Client instance objects

No routing, authentication, or management.

Server will negotiate a client then push AUTH_FAILED.
2014-10-22 12:24:14 -06:00
James Yonan
0034d0690f Added serv.cpp stub. 2014-10-22 12:24:14 -06:00
James Yonan
733ab29479 Moved original serv.cpp proof-of-concept into unused. 2014-10-22 12:24:14 -06:00
James Yonan
3bb3673a35 Minor fixes so that serv.cpp will compile. 2014-10-22 12:24:14 -06:00
James Yonan
05a4dc3519 Server checkpoint. 2014-10-22 12:24:14 -06:00
James Yonan
20ce65f7ea Checkpoint for new core server implementation (not yet complete). 2014-10-22 12:24:14 -06:00
James Yonan
a15b680dbd Simplified CipherInfo and DigestInfo by not storing
the CryptoAlgs::Type in the object.

For AppleCrypto, delegate name functionality to
CipherAlgs::name().
2014-10-21 23:03:55 -06:00
James Yonan
05c2a1a56a Added some .gitignore files for compiled test binaries. 2014-10-21 16:55:32 -06:00
James Yonan
af0784b882 Doc Update
test/ovpncli/README.txt -- C++11 is the default mode, so
remove info about how to enable it.

test/ssl/README.txt -- include note about building proto
with Profile-Guided Optimization on Linux.
2014-10-21 16:48:05 -06:00
James Yonan
255b71958f Reversed polymorphic ProtoContext performance degradation.
* Performance degradation from recent commit was occurring
  in PRNG.

* Allow RNG to be used in place of PRNG.  For PolarSSL
  at least, this change completely reverses the
  polymorphic ProtoContext performance degradation
  and turns it into a net performance gain.

* Added bool prng to RNG constructors to allow
  the implementation to optimize for PRNG
  (only PolarSSL currently supports this).

Documented different use-cases for RNG vs. PRNG
in ProtoContext:

  RNG -- Random number generator.
  Use-cases demand highest cryptographic strength
  such as key generation.

  PRNG -- Pseudo-random number generator.
  Use-cases demand cryptographic strength
  combined with high performance.  Used for
  IV and ProtoSessionID generation.
2014-10-21 16:45:20 -06:00
James Yonan
c7983ffef3 Allow HYBRID=1 builds of proto.cpp. 2014-10-21 16:41:05 -06:00
James Yonan
243fd3feaa Updated test/ssl/proto.cpp to work with new dynamically
polymorphic ProtoContext.

Benchmarks show that polymorphic changes to ProtoContext
have produced a slowdown of 1.64%.
2014-10-20 20:30:13 -06:00
James Yonan
9145145b64 Checkpoint toward fully polymorphic data channel API. Added a
three-level factory model:

CryptoDCFactory   -- builds CryptoDCContext objects for a given
                     cipher/digest
CryptoDCContext   -- builds CryptoDCBase objects for a given key ID
CryptoDCBase      -- encrypt/decrypt data channel
2014-10-17 15:52:29 -06:00
James Yonan
f47ce33c48 Renamed CryptoContextBase to CryptoDCBase to emphasize
that this is the Data Channel crypto API.  Related factories,
derived classes, and typedefs also renamed.
2014-10-16 10:10:42 -06:00
James Yonan
12e3f20e92 Converted SSL_API from static to dynamic polymorphism
(using SSLFactoryAPI and SSLAPI as base classes).
2014-10-15 18:12:38 -06:00
James Yonan
8b71fa9800 Converted RAND_API from static to dynamic polymorphism
(using RandomAPI as base class).
2014-10-15 12:53:18 -06:00
James Yonan
ab7dfe6f05 Added CryptoContextBase abstraction to allow use of new
data channel modes and non-CBC ciphers such as AES-GCM.
2014-10-08 13:43:40 -06:00
James Yonan
55d6eff7ef Added AGPL copyrights to some misc source files. 2014-08-25 01:02:40 -06:00
James Yonan
b0ba64d3b8 Updated proto self-test README.txt doc. 2014-08-10 20:26:22 -06:00
James Yonan
2f593bd2eb Added OpenVPNClient::uninit_process() API method that calls
InitProcess::uninit().

In test/ovpncli/cli.cpp, move boost::thread* to higher scope.
2014-08-10 16:44:09 -06:00
James Yonan
df860644e8 Built ovpn3 cli tool on Linux (gcc 4.8.2) with some
minor edits:

* Don't build OpenSSL.
* Edited ovpncli/README.txt with updated build command.
* Enabled C++11 in compiler flags, and turned off
  some spurious warnings.
* Added CXX_COMPILER_FLAGS build flag to allow
  C++-only flags to be defined.

Changes to build script as well:

* Honor OTHER_COMPILER_FLAGS and CXX_COMPILER_FLAGS
  settings.
* For debug builds, DEBUG_BUILD=1 setting should be placed
  in vars-x.  Existing build DEBUG=1 setting now only
  sets -g.
* For clang builds, don't emit -fvisibility=hidden because
  that should be placed in OTHER_COMPILER_FLAGS in vars-x.
2014-07-28 12:08:49 -06:00
James Yonan
d5e72f7806 Updated dependencies and build scripts for building with Xcode 5.1:
* Updated lib-versions:

  lzo-2.08
  lz4-r119
  polarssl-1.3.8
  openssl-1.0.1h

* Turned off Minicrypto as it is broken on polarssl-1.3.8.
2014-07-09 17:51:03 -06:00
James Yonan
40a1842502 Implemented non-echoed console prompt for password in cli wrapper
(Unix platforms only).
2014-03-28 18:53:15 -06:00
James Yonan
91f82f1276 cli wrapper now handles SIGUSR1/SIGUSR2:
SIGUSR1: print stats
SIGUSR2: toggle pause/resume state
2014-03-24 16:53:19 -06:00
James Yonan
074dbafa27 Ported minicrypto lib to OS X for PolarSSL optimization.
These scripts

  scripts/mac/build-minicrypto
  scripts/mac/build-polarssl

will now build PolarSSL (on OSX) with libminicrypto linkage.
Currently, only SHA1/256/512 implementations from OpenSSL are
built in libminicrypto.  We leave the current PolarSSL AES
implementation as-is since it now implements AES-NI.

Also added portable openssl/build-openssl script.
2014-03-04 17:42:00 -07:00
James Yonan
ebd47cb635 Updated PolarSSL crypto self-test in the core for PolarSSL 1.3.x
using new shaX method names.  Also updated proto.cpp test suite
to run SelfTest::crypto_self_test on startup.
2014-03-04 10:42:07 -07:00
James Yonan
48fd793c4e Minor changes to test suite test/ssl/proto.cpp:
* On Windows, allow build parameters to be specified in
  protowin.h.

* For client and server, initialize tls_version_min to
  TLSVersion::UNDEF.
2014-03-03 18:43:13 -07:00
James Yonan
e1b91621e6 Fixed minor issue with test/ovpncli/cli.cpp on Windows where it
was not draining the keyboard input buffer after every sample
period, potentially causing delays in handling of keyboard events.
2014-03-03 15:48:52 -07:00
James Yonan
bd02377947 Changes to core self test test/ssl/proto.cpp :
* Fixed compile issue due to need to replace cc.enable_debug()
  with cc.ssl_debug_level = 1.

* Added RENEG var to control number of "virtual seconds" between
  SSL renegotiations.

* Doc changes in README.txt.
2014-03-03 14:43:38 -07:00
James Yonan
4491ce194f Added --google-dns, -g, enable Google DNS fallback option to
cli.cpp frontend.
2014-03-03 14:41:25 -07:00
James Yonan
d36ce05b23 Changed cli build doc to reflect the fact that HYBRID=1 build fails
on Mac OS X 10.6.  Going forward on OS X, we will probably need to
move away from HYBRID model to pure PolarSSL.  AES-NI support in
PolarSSL 1.3 helps us here.
2014-02-27 18:01:16 -07:00
James Yonan
b84b48fb75 Ported to Windows.
Implemented full TunClient class for Windows with TAP driver
support.  For now, we use netsh (rather than TAP driver DHCP)
to set all tunnel adapter properties, as this appears to work
great on Windows 7.

IPv6 is fully supported.

Known isues:

* netsh doesn't have a command for adding DNS search domains, so
  we don't support them yet.

* While we always try to remove routes and added properties from
  TAP adapter instance when we close out the session, for robustness,
  when we bring up TAP adapter, we should try to delete any stale
  routes on interface left over from previous session.

* Right now we call netsh with system().  For security and
  compatibility with Windows apps (not only console apps),
  we should use CreateProcess instead.
2014-02-16 01:13:26 -07:00
James Yonan
9ee894a427 Added cli option to enable tunPersist:
--persist-tun, -j    : keep TUN interface open across reconnects
2014-02-16 01:04:19 -07:00
James Yonan
0255621670 Added a getopt_long implementation for Windows, since MSVC does
not provide one.
2014-02-08 00:13:23 -07:00
James Yonan
ecc122feed In cli.cpp, avoid compiling signal stuff when on Windows. 2014-02-08 00:13:23 -07:00
James Yonan
33dd72bd01 Added -v flag to OpenVPN cli tool -- will output API
platform() string.
2014-01-14 16:34:03 -07:00
James Yonan
e46aa77826 Doc update for proto/ssl stress test. 2014-01-07 15:47:41 -07:00
James Yonan
b6df43fd88 Core: implemented IV_OPENVPN_GUI_VERSION.
Clients can set via guiVersion string in OpenVPN 3 API.
2014-01-07 11:49:48 -07:00
James Yonan
59653ea744 Added ./cli -m (merge) option. 2013-12-28 20:12:21 -07:00
James Yonan
2cbe310f35 OpenVPN 1.0.4 build 114 (iOS)
Dusted off LZ4 implementation and enabled in iOS
and cli.cpp builds.

Tested LZ4 as well with OpenVPN 3 acting as the client,
with a hacked AS and OpenVPN 2.3 (JY) acting as the server
(see lz4hack patches).
2013-12-27 22:21:22 -07:00
James Yonan
6496230177 OpenVPN 1.0.4 build 113 (iOS)
Core: Added forceAesCbcCiphersuites config flag.  When enabled,
the TLS implementation will not set a minimum TLS version for
peer negotiation (even if tls-version-min is specified), but
will instead force one of these two ciphersuites:

1. TLS_DHE_RSA_WITH_AES_256_CBC_SHA, or
2. TLS_DHE_RSA_WITH_AES_128_CBC_SHA

When forceAesCbcCiphersuites is disabled, no explicit set of
ciphersuites will be forced, but the TLS minimum version will
be set to 1.0 or (or higher if tls-version-min is specified).

Also added iOS preference and cli.cpp option to control the
forceAesCbcCiphersuites flag.
2013-12-27 15:16:05 -07:00
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
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
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
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
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
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
0387c23486 Minor edits & file reorg to protocol unit test. 2013-01-30 16:24:37 +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
dd377281a5 Added cachePassword boolean to ProvideCreds struct in core API.
Separated the functionality of replacePasswordWithSessionID
and cachePassword, and allow them to be used together,
in which case the session ID will be used as the password
until it expires or is invalidated, then the cached
password will be used to reauth.
2013-01-25 02:34:20 +00:00
James Yonan
6c0be1e1c0 iOS: 1.0.1 build 55
Android: 1.1.9 build 31

* Reverted key-direction back to a default of 1.

* Raise fatal error if "fragment" option is used.

* Made TunBuilderCapture more useful as a base class for
  tun construction on various platforms.

* Added disableClientCert flag at ovpncli.hpp API.

* Updated help FAQ with more details on how to
  properly set key-direction, and notes about
  possible network disconnect during voice calls.
2013-01-24 13:34:17 +00:00
James Yonan
923908c19a Minor doc update. 2012-11-27 04:00:30 +00:00
James Yonan
9f18b28f86 Misc build system changes to support OpenSSL. 2012-11-27 03:05:46 +00:00
James Yonan
5ea06010c5 Get PolarSSL-based client and test builds working on Linux again. 2012-11-26 18:53:12 +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
d5874f4684 Misc client and pre-server cleanup. 2012-11-26 01:51:24 +00:00
James Yonan
c3df841fa6 Core changes for password save support. 2012-11-18 18:53:10 +00:00
James Yonan
94680833e0 Implement options for allowPasswordSave:
setenv ALLOW_PASSWORD_SAVE 0|1
  allow-password-save 0|1

By default, allowPasswordSave is true.
2012-11-18 08:55:27 +00:00
James Yonan
34a2fd7047 Add error code for PEM_PASSWORD_FAIL for conveying error up
through client API.
2012-11-16 04:13:48 +00:00
James Yonan
06acd86d29 Added core support for PEM private key passwords. 2012-11-15 22:48:13 +00:00
James Yonan
5a5a18942a Added parser size validation constants in
openvpn/client/cliconstants.hpp
2012-11-12 01:52:03 +00:00
James Yonan
3ca3a857bd Initial HTTP proxy implementation in core, with support for
non-authenticated proxies and Basic Auth.

Includes new PROXY_ERROR and PROXY_NEED_CREDS events.

Still to do: Digest and NTLM auth.
2012-10-24 06:38:20 +00:00
James Yonan
0cb153f89b Minor additions/changes to test scripts/docs. 2012-10-07 08:55:51 +00:00
James Yonan
cf70bee986 In proto.cpp test code, default to OpenSSL server. 2012-09-26 01:33:41 +00:00
James Yonan
b88790efef iOS client changes:
* Updated to Xcode 4.5 and tested client build on iOS6.

* Note that it is no longer necessary to copy the private
  SystemConfiguration header files for the VPN API into the
  Xcode tree.  The OpenVPN Xcode project file will now
  reference them directly from the ovpn3 tree.

* Note that in Xcode 4.5, the iPhoneOSProductTypes.xcspec file that
  must be edited to allow bundle signing is now a binary plist.
  Use the Mac plutil tool to convert it to JSON so it can be edited
  then convert back to binary:

  $ cp iPhoneOSProductTypes.xcspec iPhoneOSProductTypes.xcspec.backup
  $ plutil -convert json -r iPhoneOSProductTypes.xcspec
  [ edit iPhoneOSProductTypes.xcspec according to instructions in
     ovpn3/doc/Build_VPN_App_and_Plugin.pdf ]
  $ plutil -convert binary1 iPhoneOSProductTypes.xcspec

* The ARM assembler provided in Xcode 4.5 is no longer able to
  assemble the Minicrypto ASM algorithms.  As a workaround, before
  updating to Xcode 4.5, preserve the previous clang binary by
  copying it to ~/clang3/clang -- the build-minicrypto script will
  expect it to exist.  This is the version of clang that must be used:

  $ ~/clang3/clang --version
  Apple clang version 3.0 (tags/Apple/clang-211.10.1) (based on LLVM 3.0svn)
  Target: x86_64-apple-darwin11.4.2
  Thread model: posix

* Make sure to update your PATH to include the new Xcode 4.5 clang and
  rebuild all libraries.  I found that updating to Xcode 4.5 left the
  old clang in /usr/bin.  The Xcode 4.5 clang should show this version
  info:

  $ clang --version
  Apple clang version 4.1 (tags/Apple/clang-421.11.65) (based on LLVM 3.1svn)
  Target: x86_64-apple-darwin11.4.2
  Thread model: posix

* Added $O3/scripts/mac/build-all script to build all Mac/iOS
  dependencies.
2012-09-25 21:04:27 +00:00
James Yonan
6037a4d488 Minor fix to test client. 2012-09-22 19:11:52 +00:00
James Yonan
dcd62a79e6 Allow test/ssl/proto.cpp to be run on Mac OS X with PolarSSL
used as both client and server implementation.

Added DH support to PolarSSL.

Added CLIENT_NO_RENEG and SERVER_NO_RENEG flags to test code
in proto.cpp to allow scenarios to be tested where either
the server, client, or both initiate renegotiation.

Updated test/ovpncli/cli.cpp with new command line options
and will now run on Mac OS X.

Updated Android and iOS build systems to no longer include
any LZO support, and to include Snappy support instead.
2012-09-15 06:56:18 +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
54a534d347 Fixed build script to work again on OS X.
Implement our own wrapper around ::system().
2012-09-11 23:51:37 +00:00
James Yonan
1ba895a6a0 Added NO_LZO preprocessor flag to disable inclusion of all LZO
functionality (including LZO-Asym) except for LZO stub:

NO_LZO   -- disable all LZO functionality except for stub
HAVE_LZO -- use LZO library for compression/decompression
default  -- use LZO-Asym decompressor (no compression)

Added init_process call to start of test/ovpncli/cli.cpp
2012-09-11 08:45:27 +00:00
James Yonan
58efad3b74 Updated linux scripts to work with latest core and library
organization.

Added scripts under scripts/linux for building dependent
libraries.

Added test/ovpncli/cli.cpp to provide a command line client that
exercises ovpncli.hpp API and can be built via build script.
2012-09-09 23:10:20 +00:00
James Yonan
da1ae7be57 More additions to debugging code for KeyContext state
transitions in proto.hpp.
2012-08-31 21:39:01 +00:00
James Yonan
0622cd2878 Minor refactoring to help bracket rare session invalidated
exception in proto.hpp.
2012-08-31 06:50:43 +00:00
James Yonan
7331ee349b Full iOS beta for OpenVPN Connect. 2012-08-01 12:28:13 +00:00
James Yonan
eccd2cf64f Extended build script to build static libraries.
First version of static libovpncli tested on
iPad (without tun support yet).
2012-05-29 21:15:28 +00:00
James Yonan
2206210562 Misc fixes to update PolarSSL support for 1.1.3. 2012-05-29 16:29:11 +00:00
James Yonan
7b55f4d767 Refactored Mac build scripts to easily switch between OS X, iOS, and iOS simulator. 2012-05-27 09:55:44 +00:00
James Yonan
dafe931877 Build script changes when CLANG=1:
* use -fvisibility=hidden
* use -O4 (LTO) by default
2012-05-23 04:45:01 +00:00
James Yonan
53fa94260f Added clang/LLVM support. 2012-05-22 12:25:33 +00:00
James Yonan
130364c1a5 Add sha2/sha4 to PolarSSL/OpenSSL bridge.
Clean up PolarSSL build scripts, allow testing target.
2012-03-25 22:07:45 +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
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
da248a8fbd Search/replace of:
std::exception& e

to:

  const std::exception& e
2012-02-17 19:28:44 +00:00
James Yonan
1f5e50d733 Implemented OpenVPNClient stats methods.
Simplified autologin sensing.
Java test client will now dump stats on exit.
2012-02-12 23:09:28 +00:00
James Yonan
f13ed3e7a8 Implemented Java client using Swig. 2012-02-11 14:02:51 +00:00
James Yonan
f57c9da3a8 Added QUIET option to proto.cpp.
Other minor fixes to proto.cpp.
2012-02-07 12:56:32 +00:00
James Yonan
e7a5d9f55b Start process of moving client logic out of cli.cpp into
general-purpose classes.

Rename ProtoStats to SessionStats and make it more flexible
by using an abstract base class model.

Add a client event queue for the beginnings of a client-backend
API.

Added logic to ProtoContext to invalidate session on certain
kinds of errors in TCP that would be normally be okay in UDP
such as HMAC_ERROR, DECRYPT_ERROR, etc.

Add some alignment adjustment logic for READ_LINK_TCP (3 bytes)
and READ_LINK_UDP (1 byte).
2012-02-04 10:24:54 +00:00
James Yonan
d9e8a028c8 Ported core to Windows except for TAP driver support. 2012-01-25 08:32:27 +00:00
James Yonan
29bc40bf09 Added TCP transport support.
Disable retransmission of control channel packets
when running in TCP mode.
2012-01-20 23:13:48 +00:00
James Yonan
ac32190acf Minor changes to proto.cpp on Apple to conform with new
SSL context Config class semantics.
2011-12-18 11:33:15 +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
fb163b65f4 ProtoContext object can now be reused via reset() method.
Fixed rare bug where client receives auth, goes ACTIVE, but the ACK
response back to the server is dropped causing the server to receive
post-ACTIVE app messages from the client while it's still stuck
in the S_WAIT_AUTH_ACK state.
2011-12-17 10:53:21 +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
c8f7b0ff2f Keepalive implementation. 2011-12-15 08:48:14 +00:00
James Yonan
3bcc32f696 Implemented auth methods in ProtoContext. 2011-12-14 16:20:07 +00:00
James Yonan
44ee74f374 Added compression framework.
Implemented LZO_STUB compressor.

Added methods to generate options and peer info strings.
2011-12-14 11:34:33 +00:00
James Yonan
3f73d56afb Added some string parsing classes/functions for parsing OpenVPN options
given as a comma-separated list.
2011-12-13 19:51:29 +00:00
James Yonan
1b5fa38adb Comment additions.
Catch buffer exceptions and increment BUFFER_ERRORS.
2011-12-13 11:13:27 +00:00
James Yonan
1aa65c259b Implemented soft reset in proto.hpp. 2011-12-13 04:46:56 +00:00
James Yonan
d2acef57e2 Minor README edit. 2011-12-11 08:34:26 +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
3684fe3c05 ssl.cpp test should include crypto-lib-independent
gencrypto/gensslctx.hpp instead of openssl/ssl/sslctx.hpp.
2011-11-25 06:08:19 +00:00
James Yonan
e56f1c6b11 Added OpenSSLContext data transfer test. 2011-11-24 10:47:11 +00:00