mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
Instead of providing crypto_shash algorithms for the arch-optimized SHA-256 code, instead implement the SHA-256 library. This is much simpler, it makes the SHA-256 library functions be arch-optimized, and it fixes the longstanding issue where the arch-optimized SHA-256 was disabled by default. SHA-256 still remains available through crypto_shash, but individual architectures no longer need to handle it. Remove support for SHA-256 finalization from the ARMv8 CE assembly code, since the library does not yet support architecture-specific overrides of the finalization. (Support for that has been omitted for now, for simplicity and because usually it isn't performance-critical.) To match sha256_blocks_arch(), change the type of the nblocks parameter of the assembly functions from int or 'unsigned int' to size_t. Update the ARMv8 CE assembly function accordingly. The scalar and NEON assembly functions actually already treated it as size_t. While renaming the assembly files, also fix the naming quirks where "sha2" meant sha256, and "sha512" meant both sha256 and sha512. Reviewed-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
25 lines
774 B
Makefile
25 lines
774 B
Makefile
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
obj-$(CONFIG_CRYPTO_CHACHA20_NEON) += chacha-neon.o
|
|
chacha-neon-y := chacha-neon-core.o chacha-neon-glue.o
|
|
|
|
obj-$(CONFIG_CRYPTO_POLY1305_NEON) += poly1305-neon.o
|
|
poly1305-neon-y := poly1305-core.o poly1305-glue.o
|
|
AFLAGS_poly1305-core.o += -Dpoly1305_init=poly1305_block_init_arch
|
|
AFLAGS_poly1305-core.o += -Dpoly1305_emit=poly1305_emit_arch
|
|
|
|
obj-$(CONFIG_CRYPTO_SHA256_ARM64) += sha256-arm64.o
|
|
sha256-arm64-y := sha256.o sha256-core.o
|
|
sha256-arm64-$(CONFIG_KERNEL_MODE_NEON) += sha256-ce.o
|
|
|
|
quiet_cmd_perlasm = PERLASM $@
|
|
cmd_perlasm = $(PERL) $(<) void $(@)
|
|
|
|
$(obj)/%-core.S: $(src)/%-armv8.pl
|
|
$(call cmd,perlasm)
|
|
|
|
$(obj)/sha256-core.S: $(src)/sha2-armv8.pl
|
|
$(call cmd,perlasm)
|
|
|
|
clean-files += poly1305-core.S sha256-core.S
|