]> git.baikalelectronics.ru Git - kernel.git/commit
crypto: arm64/aes - add NEON/Crypto Extensions CBCMAC/CMAC/XCBC driver
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Fri, 3 Feb 2017 14:49:37 +0000 (14:49 +0000)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sat, 11 Feb 2017 09:50:45 +0000 (17:50 +0800)
commit3e03d3ae93bf7e2d6d7c02e7eba5b1ac27015f74
treea7a31ae6b278e8fc9faef7183686ecad14220b8c
parent527d0c892a0f0d679a9ecec3de0bb48e3db5a7ba
crypto: arm64/aes - add NEON/Crypto Extensions CBCMAC/CMAC/XCBC driver

On ARMv8 implementations that do not support the Crypto Extensions,
such as the Raspberry Pi 3, the CCM driver falls back to the generic
table based AES implementation to perform the MAC part of the
algorithm, which is slow and not time invariant. So add a CBCMAC
implementation to the shared glue code between NEON AES and Crypto
Extensions AES, so that it can be used instead now that the CCM
driver has been updated to look for CBCMAC implementations other
than the one it supplies itself.

Also, given how these algorithms mostly only differ in the way the key
handling and the final encryption are implemented, expose CMAC and XCBC
algorithms as well based on the same core update code.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
arch/arm64/crypto/aes-glue.c
arch/arm64/crypto/aes-modes.S