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)
commit4860620da7e5752d916737472c40be573aec1869
treea7a31ae6b278e8fc9faef7183686ecad14220b8c
parentf15f05b0a5de667c821a9727c33bce9d1d9b26dd
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