mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
crypto: arm64 - move library functions to arch/arm64/lib/crypto/
Continue disentangling the crypto library functions from the generic crypto infrastructure by moving the arm64 ChaCha and Poly1305 library functions into a new directory arch/arm64/lib/crypto/ that does not depend on CRYPTO. This mirrors the distinction between crypto/ and lib/crypto/. Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
714656a846
commit
cc16e228a2
11 changed files with 39 additions and 21 deletions
|
@ -25,12 +25,6 @@ config CRYPTO_NHPOLY1305_NEON
|
||||||
Architecture: arm64 using:
|
Architecture: arm64 using:
|
||||||
- NEON (Advanced SIMD) extensions
|
- NEON (Advanced SIMD) extensions
|
||||||
|
|
||||||
config CRYPTO_POLY1305_NEON
|
|
||||||
tristate
|
|
||||||
depends on KERNEL_MODE_NEON
|
|
||||||
select CRYPTO_ARCH_HAVE_LIB_POLY1305
|
|
||||||
default CRYPTO_LIB_POLY1305_INTERNAL
|
|
||||||
|
|
||||||
config CRYPTO_SHA1_ARM64_CE
|
config CRYPTO_SHA1_ARM64_CE
|
||||||
tristate "Hash functions: SHA-1 (ARMv8 Crypto Extensions)"
|
tristate "Hash functions: SHA-1 (ARMv8 Crypto Extensions)"
|
||||||
depends on KERNEL_MODE_NEON
|
depends on KERNEL_MODE_NEON
|
||||||
|
@ -180,13 +174,6 @@ config CRYPTO_AES_ARM64_NEON_BLK
|
||||||
Architecture: arm64 using:
|
Architecture: arm64 using:
|
||||||
- NEON (Advanced SIMD) extensions
|
- NEON (Advanced SIMD) extensions
|
||||||
|
|
||||||
config CRYPTO_CHACHA20_NEON
|
|
||||||
tristate
|
|
||||||
depends on KERNEL_MODE_NEON
|
|
||||||
select CRYPTO_LIB_CHACHA_GENERIC
|
|
||||||
select CRYPTO_ARCH_HAVE_LIB_CHACHA
|
|
||||||
default CRYPTO_LIB_CHACHA_INTERNAL
|
|
||||||
|
|
||||||
config CRYPTO_AES_ARM64_BS
|
config CRYPTO_AES_ARM64_BS
|
||||||
tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)"
|
tristate "Ciphers: AES, modes: ECB/CBC/CTR/XCTR/XTS modes (bit-sliced NEON)"
|
||||||
depends on KERNEL_MODE_NEON
|
depends on KERNEL_MODE_NEON
|
||||||
|
|
|
@ -62,13 +62,6 @@ sha256-arm64-y := sha256-glue.o sha256-core.o
|
||||||
obj-$(CONFIG_CRYPTO_SHA512_ARM64) += sha512-arm64.o
|
obj-$(CONFIG_CRYPTO_SHA512_ARM64) += sha512-arm64.o
|
||||||
sha512-arm64-y := sha512-glue.o sha512-core.o
|
sha512-arm64-y := sha512-glue.o sha512-core.o
|
||||||
|
|
||||||
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_init_arm64
|
|
||||||
|
|
||||||
obj-$(CONFIG_CRYPTO_NHPOLY1305_NEON) += nhpoly1305-neon.o
|
obj-$(CONFIG_CRYPTO_NHPOLY1305_NEON) += nhpoly1305-neon.o
|
||||||
nhpoly1305-neon-y := nh-neon-core.o nhpoly1305-neon-glue.o
|
nhpoly1305-neon-y := nh-neon-core.o nhpoly1305-neon-glue.o
|
||||||
|
|
||||||
|
@ -87,4 +80,4 @@ $(obj)/%-core.S: $(src)/%-armv8.pl
|
||||||
$(obj)/sha256-core.S: $(src)/sha512-armv8.pl
|
$(obj)/sha256-core.S: $(src)/sha512-armv8.pl
|
||||||
$(call cmd,perlasm)
|
$(call cmd,perlasm)
|
||||||
|
|
||||||
clean-files += poly1305-core.S sha256-core.S sha512-core.S
|
clean-files += sha256-core.S sha512-core.S
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
|
||||||
|
obj-y += crypto/
|
||||||
|
|
||||||
lib-y := clear_user.o delay.o copy_from_user.o \
|
lib-y := clear_user.o delay.o copy_from_user.o \
|
||||||
copy_to_user.o copy_page.o \
|
copy_to_user.o copy_page.o \
|
||||||
clear_page.o csum.o insn.o memchr.o memcpy.o \
|
clear_page.o csum.o insn.o memchr.o memcpy.o \
|
||||||
|
|
2
arch/arm64/lib/crypto/.gitignore
vendored
Normal file
2
arch/arm64/lib/crypto/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
poly1305-core.S
|
14
arch/arm64/lib/crypto/Kconfig
Normal file
14
arch/arm64/lib/crypto/Kconfig
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
|
||||||
|
config CRYPTO_CHACHA20_NEON
|
||||||
|
tristate
|
||||||
|
depends on KERNEL_MODE_NEON
|
||||||
|
default CRYPTO_LIB_CHACHA_INTERNAL
|
||||||
|
select CRYPTO_LIB_CHACHA_GENERIC
|
||||||
|
select CRYPTO_ARCH_HAVE_LIB_CHACHA
|
||||||
|
|
||||||
|
config CRYPTO_POLY1305_NEON
|
||||||
|
tristate
|
||||||
|
depends on KERNEL_MODE_NEON
|
||||||
|
default CRYPTO_LIB_POLY1305_INTERNAL
|
||||||
|
select CRYPTO_ARCH_HAVE_LIB_POLY1305
|
16
arch/arm64/lib/crypto/Makefile
Normal file
16
arch/arm64/lib/crypto/Makefile
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
# 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_init_arm64
|
||||||
|
|
||||||
|
quiet_cmd_perlasm = PERLASM $@
|
||||||
|
cmd_perlasm = $(PERL) $(<) void $(@)
|
||||||
|
|
||||||
|
$(obj)/%-core.S: $(src)/%-armv8.pl
|
||||||
|
$(call cmd,perlasm)
|
||||||
|
|
||||||
|
clean-files += poly1305-core.S
|
|
@ -159,6 +159,9 @@ if !KMSAN # avoid false positives from assembly
|
||||||
if ARM
|
if ARM
|
||||||
source "arch/arm/lib/crypto/Kconfig"
|
source "arch/arm/lib/crypto/Kconfig"
|
||||||
endif
|
endif
|
||||||
|
if ARM64
|
||||||
|
source "arch/arm64/lib/crypto/Kconfig"
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
Loading…
Add table
Reference in a new issue