Add chacha20-poly1305 support.

This is a rebase of https://git.libssh.org/users/aris/libssh.git/log/?h=chacha20
done by fidencio.

Some additional fixes are included, to make the tests pass, to compile under
Windows/Visual Studio and to make chacha20 be part of the default methods.

Alberto Aguirre (7):
  cmake: Avoid replicating torture_pki_ed25519 target
  packet_crypt: Avoid setting keys every time
  torture_packet: Use explicit_bzero
  torture_packet: Set encryption/decryption keys
  kex: Add chacha20 to default methods
  chacha: Use standard types
  chacha: Use #pragma pack

Aris Adamantiadis (11):
  cmake: add WITH_PACKET_DEBUG option
  packet: add more debugging
  buffer: ssh_buffer_allocate function
  ChaCha and Poly1305 implementations from OpenSSH
  cmake: detect "bounded" compiler attribute
  chacha: packet encryption
  chacha: packet decryption
  libgcrypt: make it compatible with chacha20
  tests: test for [email protected]
  tests: packet encryption unit testing
  tests: send more packets of various sizes

Jon Simons (2):
  pkd: add passes for [email protected] cipher
  pkd: move [email protected] tests to OPENSSHONLY section

 ConfigureChecks.cmake             |  10 ++
 DefineOptions.cmake               |   1 +
 config.h.cmake                    |   8 ++
 include/libssh/buffer.h           |   1 +
 include/libssh/chacha.h           |  44 ++++++++
 include/libssh/crypto.h           |  10 ++
 include/libssh/libcrypto.h        |   1 +
 include/libssh/libgcrypt.h        |   1 +
 include/libssh/packet.h           |   5 +-
 include/libssh/poly1305.h         |  23 ++++
 include/libssh/wrapper.h          |   3 +-
 src/CMakeLists.txt                |   3 +
 src/buffer.c                      |  31 ++++++
 src/chachapoly.c                  | 160 ++++++++++++++++++++++++++++
 src/dh.c                          |   4 +
 src/external/chacha.c             | 216 ++++++++++++++++++++++++++++++++++++++
 src/external/poly1305.c           | 157 +++++++++++++++++++++++++++
 src/kex.c                         |  10 +-
 src/libcrypto.c                   |  12 ++-
 src/libgcrypt.c                   |  15 +++
 src/packet.c                      | 143 +++++++++++++------------
 src/packet_crypt.c                | 128 +++++++++++++---------
 src/wrapper.c                     |  78 ++++++++++----
 tests/client/torture_algorithms.c |  21 +++-
 tests/pkd/pkd_hello.c             |  10 +-
 tests/unittests/CMakeLists.txt    |   1 +
 tests/unittests/torture_packet.c  | 205 ++++++++++++++++++++++++++++++++++++
 27 files changed, 1151 insertions(+), 150 deletions(-)
 create mode 100644 include/libssh/chacha.h
 create mode 100644 include/libssh/poly1305.h
 create mode 100644 src/chachapoly.c
 create mode 100644 src/external/chacha.c
 create mode 100644 src/external/poly1305.c
 create mode 100644 tests/unittests/torture_packet.c

-- 
2.14.1


Reply via email to