Skip to content
  • Ard Biesheuvel's avatar
    crypto: arm/aes - replace bit-sliced OpenSSL NEON code · cc477bf6
    Ard Biesheuvel authored
    
    
    This replaces the unwieldy generated implementation of bit-sliced AES
    in CBC/CTR/XTS modes that originated in the OpenSSL project with a
    new version that is heavily based on the OpenSSL implementation, but
    has a number of advantages over the old version:
    - it does not rely on the scalar AES cipher that also originated in the
      OpenSSL project and contains redundant lookup tables and key schedule
      generation routines (which we already have in crypto/aes_generic.)
    - it uses the same expanded key schedule for encryption and decryption,
      reducing the size of the per-key data structure by 1696 bytes
    - it adds an implementation of AES in ECB mode, which can be wrapped by
      other generic chaining mode implementations
    - it moves the handling of corner cases that are non critical to performance
      to the glue layer written in C
    - it was written directly in assembler rather than generated from a Perl
      script
    
    Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    cc477bf6