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

993 Commits

Author SHA1 Message Date
James Yonan
667297ffcc Added null tun class for testing which is defined when
either (a) the platform has no native tun class or
(b) OPENVPN_FORCE_TUN_NULL is defined.
2012-01-21 17:25:32 +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
75943dc2a4 Linux changes for new IP address classes. 2012-01-11 06:56:49 +00:00
James Yonan
bd4673c60f Added IP address classes for IPv4/v6.
Implemented get_default_gateway() for Mac OS X.
2012-01-11 06:15:32 +00:00
James Yonan
e5c2791c65 Ported cli.cpp to Mac. Still a couple fixmes to address. 2012-01-05 07:47:24 +00:00
James Yonan
648298d17a Completed client refactoring to make polymorphic abstraction
layer for transport and tun objects.
2012-01-04 15:58:31 +00:00
James Yonan
d7039586dd Made client transport layer polymorphic. 2012-01-03 08:04:41 +00:00
James Yonan
e4053d0bd9 More ReadHandler tweaks + lambda tests. 2012-01-02 07:08:00 +00:00
James Yonan
5c29216c63 Unvirtualize udp_read_handler and tun_read_handler. 2012-01-02 02:26:11 +00:00
James Yonan
a20651efbf Make DNS resolution asynchronous. 2012-01-02 01:58:00 +00:00
James Yonan
3f5c9c330c Redid tun/udp read handlers to use virtual functions rather
than function objects.
2012-01-01 22:53:38 +00:00
James Yonan
cd13bb745f Minor file reorg/cleanup:
* link renamed to transport
* moved common/addr.hpp and common/iostats.hpp to unused
2011-12-31 19:49:43 +00:00
James Yonan
a13f44199e minor changes to platform.hpp. 2011-12-31 19:44:50 +00:00
James Yonan
83f057b6db Temporarily factor out linkbase.hpp. 2011-12-31 18:47:18 +00:00
James Yonan
161bbb241d Added BidirObjBase + test code. 2011-12-30 02:05:07 +00:00
James Yonan
affa534dce Added enable_strict_openvpn_2x() method to ProtoContext. 2011-12-29 21:54:12 +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
e0b96357fb First working version of core (testcli.cpp). 2011-12-16 17:20:46 +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
a1033bc2a8 Extended dump_packet to handle DATA_V1 packets as well. 2011-12-15 09:14:56 +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
bade2e77f2 Added dirty bit to KeyContext. 2011-12-11 10:27:02 +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
3ed5459996 Minor fixes. 2011-12-05 21:00:43 +00:00
James Yonan
739b8d518f More test/reliable/ssl.cpp changes to bring in line with
real OpenVPN protocol:

* proto Session ID support
* support for tls_auth to be enabled or disabled
2011-12-05 09:13:55 +00:00
James Yonan
ee46876142 Added HMAC and Packet ID integrity checks to reliable/SSL test. 2011-12-05 06:11:51 +00:00
James Yonan
16f2021000 Add ssl_started differentiation to ProtoStackBase. 2011-12-04 20:50:24 +00:00
James Yonan
abf3df3039 Added PACKET abstraction to ProtoStackBase. 2011-12-04 10:55:28 +00:00
James Yonan
e4902ec958 Minor changes. 2011-12-04 06:05:34 +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
75e2ae5fc4 Minor linux fix for test/reliable/ssl.cpp.
Added NOTHREADS build arg.
2011-12-03 01:06:27 +00:00
James Yonan
d77746ce40 Allow test/reliable/ssl.cpp to be built with either
Apple SSL client and OpenSSL server, or OpenSSL
for both client and server (see README.txt).
2011-12-03 00:46:17 +00:00
James Yonan
3c57bf9b05 ProtoStack with Apple SSL client and OpenSSL server
successfully tested by test/reliable/ssl.cpp.
2011-12-02 22:00:56 +00:00
James Yonan
b67235fef5 Fixed minor build script regression on linux. 2011-11-30 19:59:47 +00:00
James Yonan
67304fc671 Initial implementation of class ProtoStackBase.
Compiles, but not yet tested.
2011-11-30 19:47:30 +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
8425a7e8ad Minor CF changes.
osx/ssl.cpp now obtains the client side ca/cert/key
via the keychain rather than try to load it directly
from pkcs12 file.
2011-11-28 03:37:10 +00:00
James Yonan
532c79e46e Added test/osx/ssl.cpp, simulates an SSL connection between
an Apple-crypto-based client and an OpenSSL server.
2011-11-27 11:33:27 +00:00
James Yonan
fc0635e657 Read PKCS#12 file using Apple crypto. 2011-11-26 11:33:39 +00:00
James Yonan
3903704788 Frame class changes:
* Take into account the actual alignment of the underlying
  buffer pointer.

* Added standardize_capacity method to set the capacity of
  a group of Context objects to the highest capacity of any
  one of the members.
2011-11-26 07:30:27 +00:00