summaryrefslogtreecommitdiffstats
path: root/crypto/chacha/chacha_riscv.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/chacha/chacha_riscv.c')
-rw-r--r--crypto/chacha/chacha_riscv.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/crypto/chacha/chacha_riscv.c b/crypto/chacha/chacha_riscv.c
index 729a6282d2..8873460e5e 100644
--- a/crypto/chacha/chacha_riscv.c
+++ b/crypto/chacha/chacha_riscv.c
@@ -40,15 +40,16 @@
#include "crypto/chacha.h"
#include "crypto/riscv_arch.h"
-void ChaCha20_ctr32_zvkb(unsigned char *out, const unsigned char *inp,
- size_t len, const unsigned int key[8],
- const unsigned int counter[4]);
+void ChaCha20_ctr32_zbb_zvkb(unsigned char *out, const unsigned char *inp,
+ size_t len, const unsigned int key[8],
+ const unsigned int counter[4]);
void ChaCha20_ctr32(unsigned char *out, const unsigned char *inp, size_t len,
const unsigned int key[8], const unsigned int counter[4])
{
- if (RISCV_HAS_ZVKB() && riscv_vlen() >= 128) {
- ChaCha20_ctr32_zvkb(out, inp, len, key, counter);
+ if (len > CHACHA_BLK_SIZE && RISCV_HAS_ZVKB() && RISCV_HAS_ZBB() &&
+ riscv_vlen() >= 128) {
+ ChaCha20_ctr32_zbb_zvkb(out, inp, len, key, counter);
} else {
ChaCha20_ctr32_c(out, inp, len, key, counter);
}