1
0
mirror of https://github.com/veracrypt/VeraCrypt.git synced 2026-06-10 06:46:59 -05:00

Implement SHA256 acceleration on ARM64 platforms using CPU instructions

This commit is contained in:
Mounir IDRASSI
2025-01-26 16:21:13 +01:00
parent 5ff256a53d
commit 247c98d954
12 changed files with 267 additions and 0 deletions
+8
View File
@@ -50,6 +50,7 @@ ifneq "$(COMPILE_ASM)" "false"
OBJSEX += ../Crypto/Camellia_aesni_asm.oo
OBJSEX += ../Crypto/sha256-nayuki.oo
OBJSEX += ../Crypto/sha512-nayuki.oo
OBJSEX += ../Crypto/sha256_armv8.oo
OBJSEX += ../Crypto/sha256_avx1.oo
OBJSEX += ../Crypto/sha256_avx2.oo
OBJSEX += ../Crypto/sha256_sse4.oo
@@ -82,6 +83,7 @@ else ifeq "$(CPU_ARCH)" "x64"
else ifeq "$(CPU_ARCH)" "arm64"
OBJARMV8CRYPTO += ../Crypto/Aes_hw_armv8.oarmv8crypto
OBJS += ../Crypto/Aescrypt.o
OBJARMV8CRYPTO += ../Crypto/sha256_armv8.oarmv8crypto
else
OBJS += ../Crypto/Aescrypt.o
endif
@@ -150,6 +152,12 @@ ifneq "$(COMPILE_ASM)" "false"
$(CC) $(CFLAGS_X64) -c ../Crypto/Aes_hw_armv8.c -o ../Crypto/Aes_hw_armv8_x64.o
lipo -create ../Crypto/Aes_hw_armv8_arm64.o ../Crypto/Aes_hw_armv8_x64.o -output ../Crypto/Aes_hw_armv8.oo
rm -fr ../Crypto/Aes_hw_armv8_arm64.o ../Crypto/Aes_hw_armv8_x64.o
../Crypto/sha256_armv8.oo: ../Crypto/sha256_armv8.c
@echo Compiling $(<F)
$(CC) $(CFLAGS_ARM64) -c ../Crypto/sha256_armv8.c -o ../Crypto/sha256_armv8_arm64.o
$(CC) $(CFLAGS_X64) -c ../Crypto/sha256_armv8.c -o ../Crypto/sha256_armv8_x64.o
lipo -create ../Crypto/sha256_armv8_arm64.o ../Crypto/sha256_armv8_x64.o -output ../Crypto/sha256_armv8.oo
rm -fr ../Crypto/sha256_armv8_arm64.o ../Crypto/sha256_armv8_x64.o
../Crypto/Aes_asm.oo: ../Crypto/Aes_x86.asm ../Crypto/Aes_x64.asm
@echo Assembling $(<F)
$(AS) $(ASFLAGS32) -o ../Crypto/Aes_x86.o ../Crypto/Aes_x86.asm