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
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
f3ec4429ba
Minor fixes related to previous commit.
2011-11-25 05:38:40 +00:00
James Yonan
e56f1c6b11
Added OpenSSLContext data transfer test.
2011-11-24 10:47:11 +00:00
James Yonan
71eaaaac9d
Started process of abstracting SSL Context object to be independent
...
of the underlying crypto library.
2011-11-24 02:09:11 +00:00
James Yonan
671df2bb14
Reorganized files so that all code that references OpenSSL
...
is either under openvpn/openssl (implementation) or
openvpn/gencrypto (generic crypto selector).
Reorganized applecrypto with evp files under crypto so
that we can eventually build out applecrypto as a full
crypto/ssl replacement for OpenSSL.
2011-11-23 06:08:26 +00:00
James Yonan
d0e1d06812
Ported tlsprf to CommonCrypto.
2011-11-23 03:35:51 +00:00
James Yonan
713fbab110
Extended Apple CommonCrypto support to full OpenVPN
...
data channel layer, so that encdec benchmark will
now run with only CommonCrypto (no OpenSSL linkage).
2011-11-22 09:13:22 +00:00
James Yonan
0d293533f5
Added OpenSSL-like HMAC API using Apple
...
CommonCrypto as backend.
2011-11-22 03:01:28 +00:00
James Yonan
d05decf3a9
Added OpenSSL-like EVP API (for digests only) and random
...
API using Apple CommonCrypto and Security/SecRandom APIs
as backend.
2011-11-21 22:39:33 +00:00
James Yonan
f585910019
Basic scripting changes for building on Mac OS X.
2011-11-21 06:58:55 +00:00
James Yonan
7dd61393ab
Move crypto random number headers out of openvpn/openssl
...
into openvpn/random. Also move boostrand.hpp into
openvpn/random.
2011-11-21 06:11:06 +00:00
James Yonan
6fcd683d46
Added align_block parameter to Frame::Context, since align_block isn't
...
necessarily going to always be sizeof(size_t). In some cases, we might
want it to be the cipher block size.
2011-11-21 05:45:29 +00:00
James Yonan
b45e9c2e15
Started on ProtoContext object (master OpenVPN protocol
...
context object).
Implemented TLS PRF functions.
2011-11-21 04:58:54 +00:00
James Yonan
673c214da4
time::now needs to be volatile.
2011-11-09 15:26:40 +00:00
James Yonan
f09b9ae12a
Added reltest.cpp for testing ReliableRecv and ReliableSend
...
objects by simulating an unreliable packet stream.
Modified packet_id code so that current time (now) is passed
via function calls rather than accessed as a global.
Added integer random number support via boost::random.
2011-11-09 05:52:52 +00:00
James Yonan
52c42fb5d2
Moved time source files to openvpn/time.
...
Added search/replace tool smod.
2011-11-05 17:02:16 +00:00
James Yonan
b1b313ec28
Implemented new time system based on Time and Time::Duration,
...
with Asio integration using boost::asio::time_traits<openvpn::Time>.
Started reliable receive class (ReliableRecv).
2011-11-01 13:00:49 +00:00
James Yonan
1fcf65fbda
Started PKI tree for wrapping OpenSSL PKI objects.
...
Started SSL Context class.
Implemented dgram & stream buffer queues that can operate as
OpenSSL BIOs.
Reworked Frame class to make it more flexible.
2011-10-25 17:32:26 +00:00
James Yonan
e5b9f303bc
Developed openvpn::time abstraction.
2011-10-16 07:51:07 +00:00
James Yonan
11be943cbb
Added MessageWindow class and test.
2011-10-10 07:27:20 +00:00
James Yonan
ab4c6ee28e
Added NowUpdater class to update "now" variable once per second.
...
Currently being used in static key tunnel (st.cpp).
2011-10-08 06:20:49 +00:00
James Yonan
918caca206
First working static key implementation.
...
Tested interoperability with OpenVPN in static key mode.
2011-10-07 05:47:49 +00:00
James Yonan
422cd204af
Added CryptoContext wrapper struct for Encrypt and Decrypt objects.
...
Modified build scripts to use -fwhole-program.
Added read_text function to read a text file into a string.
2011-10-06 17:22:37 +00:00
James Yonan
8a942b6d19
Pass Frame object around to other objects via a boost::shared_ptr.
2011-10-06 05:54:30 +00:00
James Yonan
32d9456035
Modified cleartun to use new Frame abstraction.
2011-10-06 05:19:28 +00:00
James Yonan
e3422bd755
Encrypt and Decrypt classes implemented for OpenVPN data channel protocol.
2011-10-06 00:18:46 +00:00
James Yonan
4453f890a0
Added Cipher and HMAC classes.
2011-10-04 05:34:04 +00:00
James Yonan
bcd127a7ce
Implemented buffer write/read/prepend.
2011-10-03 04:10:01 +00:00
James Yonan
7822e9e298
Make Buffer/BufferAllocated into BufferType/BufferAllocatedType
...
templates.
Obsolete SimpleArray (all SimpleArray functionality is now
supported by BufferAllocatedType).
2011-10-02 18:55:55 +00:00
James Yonan
23aaf02d71
Use class-private static const strings in OpenVPNStaticKey.
2011-10-01 02:22:52 +00:00
James Yonan
f2423aad9d
Misc fixes:
...
* Changes to make library more properly "header only".
* Make Allocator argument to SimpleArray a template parameter.
2011-09-30 23:20:30 +00:00
James Yonan
bba84f1692
Minor fix.
2011-09-30 16:47:28 +00:00
James Yonan
e4f9d20a0f
Added OpenVPN Static Key parser/renderer.
2011-09-30 15:25:38 +00:00
James Yonan
45cd55cb4d
Added allocators to SimpleArray to allow for a secure
...
allocator that zeros data before deallocation.
2011-09-30 01:01:01 +00:00
James Yonan
4d66859513
Added PRNG.
2011-09-29 22:42:37 +00:00
James Yonan
f25c9b37ef
Added SimpleArray class template.
...
Misc cleanup.
2011-09-29 06:35:23 +00:00
James Yonan
931a4b1a07
In Cleartun, revert to single-threaded mode only regardless of whether
...
Boost/Asio built in single-threaded mode. This is done due to the
revelation that Asio socket objects are not thread-safe.
Break out IOStats into two classes:
* IOStatsSingleThread
* IOStatsMultiThread
2011-09-29 03:01:36 +00:00
James Yonan
ff23d78fa9
Implemented OpenVPN Packet ID code.
2011-09-28 23:12:37 +00:00
James Yonan
fed617b613
Added cleartun optimizations:
...
* reuse buffer for next queue
* do 8 async_read_somes in parallel
* use hand-rolled function object instead of boost::bind
2011-09-26 21:02:13 +00:00
James Yonan
c90ba6937d
Added cleartun benchmark to demonstrate cleartext
...
tun-based VPN implemented in C++/Asio/Boost.
See test/cleartun/notes.txt.
2011-09-24 22:51:28 +00:00
James Yonan
f11af8460f
Commit of misc C/C++ code:
...
* test/cascli -- call AS client API from C++ by embedding python
* test/embed -- misc test code for embedding python
* test/dtls -- DTLS proof-of-concept code
* test/tunflood -- test boost::asio wrapper around linux tun/tap device
2010-09-23 09:01:19 +00:00
James Yonan
24a4eb3267
Initial checkin for OpenVPN 3 rewrite.
...
This very basic proof-of-concept implements a
boost::asio wrapper around the linux tun/tap device.
2010-09-13 08:52:18 +00:00