Am 2019-05-07 22:17, schrieb David Sommerseth:
On 06/05/2019 19:39, Michael Fritscher wrote:
[...snip...]
My usecase is to use the whole "backend" of OpenVPN (crypto,
authentification, key management, control/data channel management,
adaptive compression etc.) for a set of self-made applications. I
could
adapt the applications to every kind of connection which is needed to
"speak" with OpenVPN.
So, the diagram would be something like
<self made Programs>-(*)-<openVPN>----"Internet"
and the other way around. The missing link is (*) - as I said it could
be almost everything (while I'm preferring something at least packet
orientated...). If this interface can only handle one connection - ok
for me, then I'll build a combiner. If would speak e.g. SLI(R)P - ok
for
me as well.
Your "missing link" sounds like OpenVPN 3; which is basically a C++
library
implementing the OpenVPN protocol. Using this you can decode the
packets
which would normally go to the TUN device and feed it directly to your
own
program. But this will be IP packets you need to handle somehow.
More details: <https://github.com/OpenVPN/openvpn3/>
The test program in test/ssl/proto.cpp basically implements a very
simplistic
client and server and runs them in different threads, passing encrypted
traffic over a local socket and feeding the "tun" side data into a
worker
thread. This makes it possible to run a wire test without admin
privileges
while testing most of the OpenVPN stack.
That said, this proto.cpp test program won't work for you use case
out-of-the-box; but should contain most of the pieces you would need to
fill
your (*).
Hello David,
thanks for your hint! Yes, this is what I hoped to find :-)
The proto.cpp is a very good start also for getting an overview how to
use the lib, and it doesn't seem to be very complicated.
Best regards,
Michael Fritscher
_______________________________________________
Openvpn-users mailing list
Openvpn-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-users