proposal: Add a compat alg for ChaCha20Poly1305 with explicit key length
authorMartin Willi <martin@strongswan.org>
Tue, 8 May 2018 13:06:33 +0000 (15:06 +0200)
committerTobias Brunner <tobias@strongswan.org>
Tue, 22 May 2018 08:05:22 +0000 (10:05 +0200)
commitc58434aeff04feea4a7a92b4cc54b8b0b111923d
treeb250c244cf521d8d31444c00b484f840949b5615
parent10b8acb554d5873ef29641d593cce1573f89e2e1
proposal: Add a compat alg for ChaCha20Poly1305 with explicit key length

The keylength fix for ChaCha20Poly1305 (5a7b0be2) removes the keylength
attribute from the AEAD transform. This breaks compatibility between
versions with the patch and those without. The ChaCha20Poly1305 AEAD
won't match in proposals between such versions, and if no other algorithm
is available, negotiating SAs fails.

As a migration strategy, this patch introduces a new string identifier for a
ChaCha20Poly1305 proposal keyword which uses the explicit keylength, exactly
as it was used before the mentioned patch. Administrators that care about
the use of that AEAD with old clients can temporarily add this keyword to
the list of proposals, until all clients have been upgraded.

The used approach is the least invasive, as it just adds an additional
keyword that can't do any harm if not explicitly configured. Nontheless
allows it the administrator to smoothly keep ChaCha20Poly1305 working,
even if upgrading all peers simultaneously is not an option. It requires
manual configuration edits, though, but we assume that ChaCha20Poly1305
is not that widely used, and not as the only transform in proposals.

Removing the compat keyword in a future version is an option; it might
be helpful for other implementations, though, that falsely use an
explicit key length in ChaCha20Poly1305 AEAD transforms.
src/libstrongswan/crypto/proposal/proposal_keywords_static.txt