Hi,

These patches add support for GCM mode ciphers to OpenVPN.  These are
originally inspired by the patch from kruton (trac #301, and
http://thread.gmane.org/gmane.network.openvpn.devel/7653), but most of the
original code has been rewritten.

As discussed in various IRC meetings and at the hackathons, we used this
opportunity to introduce a new - more efficient - packet format.  See
http://sourceforge.net/p/openvpn/mailman/message/33210313/ and the commit
message of patch 8 for more details.

The first patches (1-7) are refactoring in preparation of adding AEAD modes.
Not all of the changes are strictly required, but they made it easier for me to
understand what was going on and debug my AEAD code.  I think they improve the
understandability of the code.  These should not change any behaviour (apart
from adding better log messages).

Patch 8 actually adds the GCM cipher mode.  See it's commit message for more
information on the implementation.

Patch 9 provides polarssl/mbedtls and openssl config file interoperability.

Patch 10 adds a (very) preliminary version of cipher negotation.  I'm not
entirely sure if we should already apply this patch or wait for full cipher
negotiation support.  I'm also not sure when I will have proper negotiation
patches available.

This implementation has been verified to be compatible with openvpn 3 clients
and servers.  To test this you'll need to pretend to fully support IV_NCP and
IV_TCPNL, see e.g. https://github.com/syzzer/openvpn/tree/aead-cipher-modes13.

This has been a spare-time project, and did not yet receive any thorough review
or field testing.  So both are still very much needed.

-Steffan


Reply via email to