From: Ard Biesheuvel <ard.biesheuvel@linaro.org> To: linux-crypto@vger.kernel.org Cc: herbert@gondor.apana.org.au, linux-arm-kernel@lists.infradead.org, Ard Biesheuvel <ard.biesheuvel@linaro.org> Subject: [PATCH v2 0/7] crypto: ARM/arm64 - AES and ChaCha20 updates for v4.11 Date: Wed, 11 Jan 2017 16:41:48 +0000 [thread overview] Message-ID: <1484152915-26517-1-git-send-email-ard.biesheuvel@linaro.org> (raw) This adds ARM and arm64 implementations of ChaCha20, scalar AES and SIMD AES (using bit slicing). The SIMD algorithms in this series take advantage of the new skcipher walksize attribute to iterate over the input in the most efficient manner possible. Patch #1 adds a NEON implementation of ChaCha20 for ARM. Patch #2 adds a NEON implementation of ChaCha20 for arm64. Patch #3 modifies the existing NEON and ARMv8 Crypto Extensions implementations of AES-CTR to be available as a synchronous skcipher as well. This is intended for the mac80211 code, which uses synchronous encapsulations of ctr(aes) [ccm, gcm] in softirq context, during which arm64 supports use of SIMD code. Patch #4 adds a scalar implementation of AES for arm64, using the key schedule generation routines and lookup tables of the generic code in crypto/aes_generic. Patch #5 does the same for ARM, replacing existing scalar code that originated in the OpenSSL project, and contains redundant key schedule generation routines and lookup tables (and is slightly slower on modern cores) Patch #6 replaces the ARM bit sliced NEON code with a new implementation that has a number of advantages over the original code (which also originated in the OpenSSL project.) The performance should be identical. Patch #7 adds a port of the ARM bit-sliced AES code to arm64, in ECB, CBC, CTR and XTS modes. Due to the size of patch #7, it may be difficult to apply these patches from patchwork, so I pushed them here as well: git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git crypto-arm-v4.11 https://git.kernel.org/cgit/linux/kernel/git/ardb/linux.git/log/?h=crypto-arm-v4.11 Ard Biesheuvel (7): crypto: arm64/chacha20 - implement NEON version based on SSE3 code crypto: arm/chacha20 - implement NEON version based on SSE3 code crypto: arm64/aes-blk - expose AES-CTR as synchronous cipher as well crypto: arm64/aes - add scalar implementation crypto: arm/aes - replace scalar AES cipher crypto: arm/aes - replace bit-sliced OpenSSL NEON code crypto: arm64/aes - reimplement bit-sliced ARM/NEON implementation for arm64 arch/arm/crypto/Kconfig | 27 +- arch/arm/crypto/Makefile | 11 +- arch/arm/crypto/aes-armv4.S | 1089 --------- arch/arm/crypto/aes-cipher-core.S | 179 ++ arch/arm/crypto/aes-cipher-glue.c | 74 + arch/arm/crypto/aes-neonbs-core.S | 1021 ++++++++ arch/arm/crypto/aes-neonbs-glue.c | 405 ++++ arch/arm/crypto/aes_glue.c | 98 - arch/arm/crypto/aes_glue.h | 19 - arch/arm/crypto/aesbs-core.S_shipped | 2548 -------------------- arch/arm/crypto/aesbs-glue.c | 367 --- arch/arm/crypto/bsaes-armv7.pl | 2471 ------------------- arch/arm/crypto/chacha20-neon-core.S | 524 ++++ arch/arm/crypto/chacha20-neon-glue.c | 128 + arch/arm64/crypto/Kconfig | 17 + arch/arm64/crypto/Makefile | 9 + arch/arm64/crypto/aes-cipher-core.S | 127 + arch/arm64/crypto/aes-cipher-glue.c | 69 + arch/arm64/crypto/aes-glue.c | 25 +- arch/arm64/crypto/aes-neonbs-core.S | 963 ++++++++ arch/arm64/crypto/aes-neonbs-glue.c | 420 ++++ arch/arm64/crypto/chacha20-neon-core.S | 450 ++++ arch/arm64/crypto/chacha20-neon-glue.c | 127 + 23 files changed, 4549 insertions(+), 6619 deletions(-) delete mode 100644 arch/arm/crypto/aes-armv4.S create mode 100644 arch/arm/crypto/aes-cipher-core.S create mode 100644 arch/arm/crypto/aes-cipher-glue.c create mode 100644 arch/arm/crypto/aes-neonbs-core.S create mode 100644 arch/arm/crypto/aes-neonbs-glue.c delete mode 100644 arch/arm/crypto/aes_glue.c delete mode 100644 arch/arm/crypto/aes_glue.h delete mode 100644 arch/arm/crypto/aesbs-core.S_shipped delete mode 100644 arch/arm/crypto/aesbs-glue.c delete mode 100644 arch/arm/crypto/bsaes-armv7.pl create mode 100644 arch/arm/crypto/chacha20-neon-core.S create mode 100644 arch/arm/crypto/chacha20-neon-glue.c create mode 100644 arch/arm64/crypto/aes-cipher-core.S create mode 100644 arch/arm64/crypto/aes-cipher-glue.c create mode 100644 arch/arm64/crypto/aes-neonbs-core.S create mode 100644 arch/arm64/crypto/aes-neonbs-glue.c create mode 100644 arch/arm64/crypto/chacha20-neon-core.S create mode 100644 arch/arm64/crypto/chacha20-neon-glue.c -- 2.7.4
next reply other threads:[~2017-01-11 16:42 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-01-11 16:41 Ard Biesheuvel [this message] 2017-01-11 16:41 ` [PATCH v2 1/7] crypto: arm64/chacha20 - implement NEON version based on SSE3 code Ard Biesheuvel 2017-01-11 16:41 ` [PATCH v2 2/7] crypto: arm/chacha20 " Ard Biesheuvel 2017-01-11 16:41 ` [PATCH v2 3/7] crypto: arm64/aes-blk - expose AES-CTR as synchronous cipher as well Ard Biesheuvel 2017-01-11 16:41 ` [PATCH v2 4/7] crypto: arm64/aes - add scalar implementation Ard Biesheuvel 2017-01-11 16:41 ` [PATCH v2 5/7] crypto: arm/aes - replace scalar AES cipher Ard Biesheuvel 2017-01-11 16:41 ` [PATCH v2 7/7] crypto: arm64/aes - reimplement bit-sliced ARM/NEON implementation for arm64 Ard Biesheuvel 2017-01-12 16:45 ` [PATCH v2 0/7] crypto: ARM/arm64 - AES and ChaCha20 updates for v4.11 Herbert Xu 2017-01-12 16:48 ` Ard Biesheuvel 2017-01-13 10:28 ` Herbert Xu
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1484152915-26517-1-git-send-email-ard.biesheuvel@linaro.org \ --to=ard.biesheuvel@linaro.org \ --cc=herbert@gondor.apana.org.au \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-crypto@vger.kernel.org \ --subject='Re: [PATCH v2 0/7] crypto: ARM/arm64 - AES and ChaCha20 updates for v4.11' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).