gnunet

Main GNUnet Logic
Log | Files | Refs | Submodules | README | LICENSE

commit 35fb28b9bc616b638d9a8de31633e2d68dca26d0
parent d552acf5e7114f92d8251276ef76827a9db92257
Author: Martin Schanzenbach <mschanzenbach@posteo.de>
Date:   Mon,  3 May 2021 20:46:46 +0200

-fix actually follow spec for Salsa encryption

Diffstat:
Msrc/gnsrecord/gnsrecord_crypto.c | 15+++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/gnsrecord/gnsrecord_crypto.c b/src/gnsrecord/gnsrecord_crypto.c @@ -99,7 +99,14 @@ eddsa_symmetric_decrypt ( const unsigned char *nonce, void *result) { - if (0 != crypto_secretbox_open_easy (result, block, size, nonce, key)) + ssize_t ctlen = size - crypto_secretbox_MACBYTES; + if (ctlen < 0) + return GNUNET_SYSERR; + if (0 != crypto_secretbox_open_detached (result, + block, // Ciphertext + ((unsigned char*)block) + ctlen, // TAG + ctlen, + nonce, key)) { return GNUNET_SYSERR; } @@ -115,7 +122,11 @@ eddsa_symmetric_encrypt ( const unsigned char *nonce, void *result) { - crypto_secretbox_easy (result, block, size, nonce, key); + if (size > crypto_secretbox_MESSAGEBYTES_MAX) + return GNUNET_SYSERR; + crypto_secretbox_detached (result, // Ciphertext + result + size, // TAG + block, size, nonce, key); return GNUNET_OK; }