Hi all,
I just wanted to bump this to see if there is any feedback on the API?

Thanks!
Justin

Justin Henck
Product Manager
212-565-9811
google.com/jigsaw

PGP: EA8E 8C27 2D75 974D B357 482B 1039 9F2D 869A 117B


On Sun, Dec 30, 2018 at 6:30 AM Antonio Quartulli <a...@unstable.cc> wrote:

> From: Antonio Quartulli <anto...@openvpn.net>
>
> Dear all,
>
> This patchset implements a new API called "Transport API" which allows the
> core codebase to offload traffic/socket manipulations to an external
> plugin.
>
> To understand its potential, imagine you want to apply a specific
> "mutation" on any packet going out and apply the its inverse, on the
> receiver
> side, for any incoming packet.
> Without this patchset, achieving this result would require a big surgery
> through the OpenVPN code, and it would be the same for any new mutation one
> wants to implements. Thanks to this new API the deemed effort
> is drastically reduced.
>
> In a few words, OpenVPN becomes extendible on a new front, by cutting the
> need to touch the core codebase any longer.
>
> An easy to imagine use case for this new API would be any "traffic
> obfuscation
> technique": instead of patching the core code (like the famous "xor
> patch"), a developer is now allowed to implement an external obfuscation
> plugin and distribute/maintain it indepdendently.
>
> This patchset comes with a sample plugin (obfs-test) which can be used as
> starting point for new implementations.
>
> Any feedback is welcome!
>
> Note: the code has gone through the following tests with positive outcome:
> - uncrustify
> - GitLab-CI (with my configs)
> - openvpn community buildbots
>
> Since it is quite a change (even though most of the new code is fairly
> isolated in its own module - transport.c/h), I expect more
> comments/discussion/bugs to spark from here.
>
> In any case, please consider myself as direct contact point to discuss
> further changes and improvements (even though I am not the signer of the
> patches). I'll be in responsible for ensuring this code gets merged sooner
> rather than later.
>
> Thanks a lot!!
>
> == Credits ==
>
> This code has been developed by the Operator Foundation[1], under the
> umbrella project called "Jigsaw"[2], mainly promoted/sponsored by Google,
> Inc.
>
> Brandon, reading this email in CC, has been the contact point on
> the Operator Foundation's side, while Justin (in CC as well), managed the
> task on Google's behalf.
>
>
> OpenVPN, Inc. has offered its support to the cause by allowing its devs to
> allocate a number of hours to follow the project and ensure it could
> get all the guidance it required.
>
> [1] https://operatorfoundation.org/
> [2] https://jigsaw.google.com/
>
>
> Best Regards,
>
>
>
> Robin Tarsiger (4):
>   transport: introduce tranport API plugin codebase
>   socket: introduce INDIRECT transport protocol abstraction
>   options: add support for --transport-plugin
>   transport-plugin: add sample obfs-test plugin
>
>  configure.ac                              |   9 +
>  doc/openvpn.8                             |  40 ++
>  include/Makefile.am                       |   1 +
>  include/openvpn-plugin.h.in               |  31 +-
>  include/openvpn-transport.h               | 240 +++++++++
>  src/openvpn/Makefile.am                   |   1 +
>  src/openvpn/forward.c                     |   5 +
>  src/openvpn/init.c                        |   1 +
>  src/openvpn/options.c                     |  31 ++
>  src/openvpn/options.h                     |   1 +
>  src/openvpn/plugin.c                      |   4 +
>  src/openvpn/plugin.h                      |   1 +
>  src/openvpn/socket.c                      | 148 +++++-
>  src/openvpn/socket.h                      |  74 +++
>  src/openvpn/transport.c                   | 303 +++++++++++
>  src/openvpn/transport.h                   |  99 ++++
>  src/plugins/Makefile.am                   |   2 +-
>  src/plugins/obfs-test/Makefile.am         |  29 ++
>  src/plugins/obfs-test/README.obfs-test    |  26 +
>  src/plugins/obfs-test/obfs-test-args.c    |  60 +++
>  src/plugins/obfs-test/obfs-test-munging.c | 129 +++++
>  src/plugins/obfs-test/obfs-test-posix.c   | 207 ++++++++
>  src/plugins/obfs-test/obfs-test-win32.c   | 579 ++++++++++++++++++++++
>  src/plugins/obfs-test/obfs-test.c         |  94 ++++
>  src/plugins/obfs-test/obfs-test.exports   |   4 +
>  src/plugins/obfs-test/obfs-test.h         |  42 ++
>  26 files changed, 2155 insertions(+), 6 deletions(-)
>  create mode 100644 include/openvpn-transport.h
>  create mode 100644 src/openvpn/transport.c
>  create mode 100644 src/openvpn/transport.h
>  create mode 100644 src/plugins/obfs-test/Makefile.am
>  create mode 100644 src/plugins/obfs-test/README.obfs-test
>  create mode 100644 src/plugins/obfs-test/obfs-test-args.c
>  create mode 100644 src/plugins/obfs-test/obfs-test-munging.c
>  create mode 100644 src/plugins/obfs-test/obfs-test-posix.c
>  create mode 100644 src/plugins/obfs-test/obfs-test-win32.c
>  create mode 100644 src/plugins/obfs-test/obfs-test.c
>  create mode 100644 src/plugins/obfs-test/obfs-test.exports
>  create mode 100644 src/plugins/obfs-test/obfs-test.h
>
> --
> 2.19.2
>
>
_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to