summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/crypto/Kconfig2
-rw-r--r--lib/crypto/chacha20poly1305.c7
2 files changed, 3 insertions, 6 deletions
diff --git a/lib/crypto/Kconfig b/lib/crypto/Kconfig
index b09e78da959a..17322f871586 100644
--- a/lib/crypto/Kconfig
+++ b/lib/crypto/Kconfig
@@ -142,11 +142,9 @@ config CRYPTO_LIB_POLY1305
config CRYPTO_LIB_CHACHA20POLY1305
tristate "ChaCha20-Poly1305 AEAD support (8-byte nonce library version)"
- select CRYPTO
select CRYPTO_LIB_CHACHA
select CRYPTO_LIB_POLY1305
select CRYPTO_LIB_UTILS
- select CRYPTO_ALGAPI
config CRYPTO_LIB_SHA1
tristate
diff --git a/lib/crypto/chacha20poly1305.c b/lib/crypto/chacha20poly1305.c
index a839c0ac60b2..9cfa886f1f89 100644
--- a/lib/crypto/chacha20poly1305.c
+++ b/lib/crypto/chacha20poly1305.c
@@ -7,11 +7,10 @@
* Information: https://tools.ietf.org/html/rfc8439
*/
-#include <crypto/algapi.h>
#include <crypto/chacha20poly1305.h>
#include <crypto/chacha.h>
#include <crypto/poly1305.h>
-#include <crypto/scatterwalk.h>
+#include <crypto/utils.h>
#include <linux/unaligned.h>
#include <linux/kernel.h>
@@ -318,8 +317,8 @@ bool chacha20poly1305_crypt_sg_inplace(struct scatterlist *src,
if (unlikely(sl > -POLY1305_DIGEST_SIZE)) {
poly1305_final(&poly1305_state, b.mac[1]);
- scatterwalk_map_and_copy(b.mac[encrypt], src, src_len,
- sizeof(b.mac[1]), encrypt);
+ sg_copy_buffer(src, sg_nents(src), b.mac[encrypt],
+ sizeof(b.mac[1]), src_len, !encrypt);
ret = encrypt ||
!crypto_memneq(b.mac[0], b.mac[1], POLY1305_DIGEST_SIZE);
}