diff options
Diffstat (limited to 'crypto/chacha/chacha_riscv.c')
-rw-r--r-- | crypto/chacha/chacha_riscv.c | 11 |
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); } |