chachapoly: Use a function instead of an extern variable
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Этот коммит содержится в:
родитель
a19513b87a
Коммит
6dd9303729
@ -161,4 +161,6 @@ struct ssh_cipher_struct {
|
|||||||
void (*cleanup)(struct ssh_cipher_struct *cipher);
|
void (*cleanup)(struct ssh_cipher_struct *cipher);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const struct ssh_cipher_struct *ssh_get_chacha20poly1305_cipher(void);
|
||||||
|
|
||||||
#endif /* _CRYPTO_H_ */
|
#endif /* _CRYPTO_H_ */
|
||||||
|
@ -205,3 +205,8 @@ const struct ssh_cipher_struct chacha20poly1305_cipher = {
|
|||||||
.aead_decrypt = chacha20_poly1305_aead_decrypt,
|
.aead_decrypt = chacha20_poly1305_aead_decrypt,
|
||||||
.cleanup = chacha20_cleanup
|
.cleanup = chacha20_cleanup
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const struct ssh_cipher_struct *ssh_get_chacha20poly1305_cipher(void)
|
||||||
|
{
|
||||||
|
return &chacha20poly1305_cipher;
|
||||||
|
}
|
||||||
|
@ -60,7 +60,6 @@
|
|||||||
|
|
||||||
#include "libssh/crypto.h"
|
#include "libssh/crypto.h"
|
||||||
|
|
||||||
extern const struct ssh_cipher_struct chacha20poly1305_cipher;
|
|
||||||
struct ssh_mac_ctx_struct {
|
struct ssh_mac_ctx_struct {
|
||||||
enum ssh_mac_e mac_type;
|
enum ssh_mac_e mac_type;
|
||||||
union {
|
union {
|
||||||
@ -764,7 +763,7 @@ void libcrypto_init(void)
|
|||||||
cmp = strcmp(ssh_ciphertab[i].name, "chacha20-poly1305@openssh.com");
|
cmp = strcmp(ssh_ciphertab[i].name, "chacha20-poly1305@openssh.com");
|
||||||
if (cmp == 0) {
|
if (cmp == 0) {
|
||||||
memcpy(&ssh_ciphertab[i],
|
memcpy(&ssh_ciphertab[i],
|
||||||
&chacha20poly1305_cipher,
|
ssh_get_chacha20poly1305_cipher(),
|
||||||
sizeof(struct ssh_cipher_struct));
|
sizeof(struct ssh_cipher_struct));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -35,8 +35,6 @@
|
|||||||
#ifdef HAVE_LIBGCRYPT
|
#ifdef HAVE_LIBGCRYPT
|
||||||
#include <gcrypt.h>
|
#include <gcrypt.h>
|
||||||
|
|
||||||
extern const struct ssh_cipher_struct chacha20poly1305_cipher;
|
|
||||||
|
|
||||||
struct ssh_mac_ctx_struct {
|
struct ssh_mac_ctx_struct {
|
||||||
enum ssh_mac_e mac_type;
|
enum ssh_mac_e mac_type;
|
||||||
gcry_md_hd_t ctx;
|
gcry_md_hd_t ctx;
|
||||||
@ -544,7 +542,7 @@ void libgcrypt_init(void)
|
|||||||
cmp = strcmp(ssh_ciphertab[i].name, "chacha20-poly1305@openssh.com");
|
cmp = strcmp(ssh_ciphertab[i].name, "chacha20-poly1305@openssh.com");
|
||||||
if (cmp == 0) {
|
if (cmp == 0) {
|
||||||
memcpy(&ssh_ciphertab[i],
|
memcpy(&ssh_ciphertab[i],
|
||||||
&chacha20poly1305_cipher,
|
ssh_get_chacha20poly1305_cipher(),
|
||||||
sizeof(struct ssh_cipher_struct));
|
sizeof(struct ssh_cipher_struct));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -30,8 +30,6 @@
|
|||||||
#ifdef HAVE_LIBMBEDCRYPTO
|
#ifdef HAVE_LIBMBEDCRYPTO
|
||||||
#include <mbedtls/md.h>
|
#include <mbedtls/md.h>
|
||||||
|
|
||||||
extern const struct ssh_cipher_struct chacha20poly1305_cipher;
|
|
||||||
|
|
||||||
struct ssh_mac_ctx_struct {
|
struct ssh_mac_ctx_struct {
|
||||||
enum ssh_mac_e mac_type;
|
enum ssh_mac_e mac_type;
|
||||||
mbedtls_md_context_t ctx;
|
mbedtls_md_context_t ctx;
|
||||||
@ -964,7 +962,7 @@ void ssh_mbedtls_init(void)
|
|||||||
cmp = strcmp(ssh_ciphertab[i].name, "chacha20-poly1305@openssh.com");
|
cmp = strcmp(ssh_ciphertab[i].name, "chacha20-poly1305@openssh.com");
|
||||||
if (cmp == 0) {
|
if (cmp == 0) {
|
||||||
memcpy(&ssh_ciphertab[i],
|
memcpy(&ssh_ciphertab[i],
|
||||||
&chacha20poly1305_cipher,
|
ssh_get_chacha20poly1305_cipher(),
|
||||||
sizeof(struct ssh_cipher_struct));
|
sizeof(struct ssh_cipher_struct));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user