mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
This is a straight import of the OpenSSL/CRYPTOGAMS Poly1305 implementation for riscv authored by Andy Polyakov. The file 'poly1305-riscv.pl' is taken straight from https://github.com/dot-asm/cryptogams commit 5e3fba73576244708a752fa61a8e93e587f271bb. This patch was tested on SpacemiT X60, with 2~2.5x improvement over generic implementation. Signed-off-by: Chunyan Zhang <zhangchunyan@iscas.ac.cn> Signed-off-by: Zhihang Shao <zhihang.shao.iscas@gmail.com> [EB: ported to lib/crypto/riscv/] Reviewed-by: Ard Biesheuvel <ardb@kernel.org> Link: https://lore.kernel.org/r/20250829152513.92459-4-ebiggers@kernel.org Signed-off-by: Eric Biggers <ebiggers@kernel.org>
15 lines
534 B
C
15 lines
534 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* OpenSSL/Cryptogams accelerated Poly1305 transform for riscv
|
|
*
|
|
* Copyright (C) 2025 Institute of Software, CAS.
|
|
*/
|
|
|
|
asmlinkage void poly1305_block_init(struct poly1305_block_state *state,
|
|
const u8 raw_key[POLY1305_BLOCK_SIZE]);
|
|
asmlinkage void poly1305_blocks(struct poly1305_block_state *state,
|
|
const u8 *src, u32 len, u32 hibit);
|
|
asmlinkage void poly1305_emit(const struct poly1305_state *state,
|
|
u8 digest[POLY1305_DIGEST_SIZE],
|
|
const u32 nonce[4]);
|