[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 08/20] libgcrypt: make it compatible with chacha20
[Thread Prev] | [Thread Next]
- Subject: [PATCH 08/20] libgcrypt: make it compatible with chacha20
- From: Alberto Aguirre <albaguirre@xxxxxxxxx>
- Reply-to: libssh@xxxxxxxxxx
- Date: Wed, 28 Feb 2018 10:24:55 -0600
- To: libssh@xxxxxxxxxx
From: Aris Adamantiadis <aris@xxxxxxxxxxxx> --- include/libssh/libgcrypt.h | 1 + src/dh.c | 1 + src/libgcrypt.c | 15 +++++++++++++++ 3 files changed, 17 insertions(+) diff --git a/include/libssh/libgcrypt.h b/include/libssh/libgcrypt.h index ec353910..307920d3 100644 --- a/include/libssh/libgcrypt.h +++ b/include/libssh/libgcrypt.h @@ -88,6 +88,7 @@ ssh_string ssh_sexp_extract_mpi(const gcry_sexp_t sexp, #endif /* HAVE_LIBGCRYPT */ +void libgcrypt_init(void); struct ssh_cipher_struct *ssh_get_ciphertab(void); #endif /* LIBGCRYPT_H_ */ diff --git a/src/dh.c b/src/dh.c index f29627c5..1b5b9a47 100644 --- a/src/dh.c +++ b/src/dh.c @@ -190,6 +190,7 @@ int ssh_crypto_init(void) { p_group1 = NULL; return -1; } + libgcrypt_init(); #elif defined HAVE_LIBCRYPTO p_group1 = bignum_new(); diff --git a/src/libgcrypt.c b/src/libgcrypt.c index d9dd5be6..7f836aa1 100644 --- a/src/libgcrypt.c +++ b/src/libgcrypt.c @@ -35,6 +35,8 @@ #ifdef HAVE_LIBGCRYPT #include <gcrypt.h> +extern const struct ssh_cipher_struct chacha20poly1305_cipher; + struct ssh_mac_ctx_struct { enum ssh_mac_e mac_type; gcry_md_hd_t ctx; @@ -637,6 +639,9 @@ static struct ssh_cipher_struct ssh_ciphertab[] = { .encrypt = des1_1_encrypt, .decrypt = des1_1_decrypt }, + { + .name = "chacha20-poly1305@xxxxxxxxxxx" + }, { .name = NULL, .blocksize = 0, @@ -650,6 +655,16 @@ static struct ssh_cipher_struct ssh_ciphertab[] = { } }; +void libgcrypt_init(void){ + int i; + for (i=0; ssh_ciphertab[i].name != NULL; ++i){ + if(strcmp(ssh_ciphertab[i].name, "chacha20-poly1305@xxxxxxxxxxx") == 0){ + memcpy(&ssh_ciphertab[i], &chacha20poly1305_cipher, sizeof(struct ssh_cipher_struct)); + break; + } + } +} + struct ssh_cipher_struct *ssh_get_ciphertab(void) { return ssh_ciphertab; -- 2.14.1
[PATCH 00/20] Add chacha20-poly1305 support | Alberto Aguirre <albaguirre@xxxxxxxxx> |