Implement aes_ctr128 and prefer it over RC4.
authorAndre Noll <maan@systemlinux.org>
Mon, 2 Dec 2013 21:18:57 +0000 (22:18 +0100)
committerAndre Noll <maan@systemlinux.org>
Thu, 9 Jan 2014 16:18:59 +0000 (16:18 +0000)
commit62a2e10a42e4f9b6556ba7e58f70f52ffa3dfa99
tree1a0ef71347f97ae2bdadeb8b6d3c4da1cd6e0aca
parent820ae21f7a453408dca3faa9ff1d28ca94d60009
Implement aes_ctr128 and prefer it over RC4.

This adds the aes_ctr128 stream cipher to para_server, para_client
and para_audiod. para_server now announces this cipher as a supported
feature and para_client requests an aes_ctr128-encrypted session
if the server supports it. If one or both sides don't understand
the new feature, the RC4 fallback applies. So this change is
backwards-compatible.

Both gcrypt and openssl support aes_ctr128, and the two implementations
are compatible to each other: a para_client linked against openssl can
talk to a para_server which was linked against libgcrypt and vice versa.

This patch also updates the documentation to talk about stream
ciphers and session keys rather than to mention RC4 explicitly. A
short section on AES is added which also explains how counter mode
turns a block cipher into a stream cipher.
client_common.c
command.c
crypt.c
crypt.h
crypt_backend.h
gcrypt.c
web/manual.m4