On Sun, Nov 20, 2016 at 11:42:01AM +0000, Ard Biesheuvel wrote: > This integrates both the accelerated scalar and the NEON implementations > of SHA-224/256 as well as SHA-384/512 from the OpenSSL project. > > Relative performance compared to the respective generic C versions: > > | SHA256-scalar | SHA256-NEON* | SHA512 | > ------------+-----------------+--------------+----------+ > Cortex-A53 | 1.63x | 1.63x | 2.34x | > Cortex-A57 | 1.43x | 1.59x | 1.95x | > Cortex-A73 | 1.26x | 1.56x | ? | > > The core crypto code was authored by Andy Polyakov of the OpenSSL > project, in collaboration with whom the upstream code was adapted so > that this module can be built from the same version of sha512-armv8.pl. > > The version in this patch was taken from OpenSSL commit 32bbb62ea634 > ("sha/asm/sha512-armv8.pl: fix big-endian support in __KERNEL__ case.") > > * The core SHA algorithm is fundamentally sequential, but there is a > secondary transformation involved, called the schedule update, which > can be performed independently. The NEON version of SHA-224/SHA-256 > only implements this part of the algorithm using NEON instructions, > the sequential part is always done using scalar instructions. > > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> > --- > arch/arm64/crypto/Kconfig | 8 + > arch/arm64/crypto/Makefile | 17 + > arch/arm64/crypto/sha256-core.S_shipped | 2061 ++++++++++++++++++++ > arch/arm64/crypto/sha256-glue.c | 185 ++ > arch/arm64/crypto/sha512-armv8.pl | 778 ++++++++ > arch/arm64/crypto/sha512-core.S_shipped | 1085 +++++++++++ > arch/arm64/crypto/sha512-glue.c | 94 + > 7 files changed, 4228 insertions(+) If I build a kernel with this applied and CRYPTO_SHA{256,512}_ARM64=y, then I end up with untracked .S files according to git: $ git status Untracked files: arch/arm64/crypto/sha256-core.S arch/arm64/crypto/sha512-core.S Will -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html