Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove dead tail code from (non-SHA3) AES-GCM AArch64 kernel #1639

Merged
merged 4 commits into from
Jul 8, 2024

Commits on Jun 22, 2024

  1. Document prologue of aarch64 AES-GCM kernel for block-aligned data

    On AArch64 systems without support for EOR3, assembly kernels
    `aes_gcm_enc_kernel` and `aes_gcm_dec_kernel` from `aesv8-gcm-armv8.pl`
    are used for the bulk of AES-GCM processing. These kernels have dedicated
    tail code for handling inputs whose size is not a multiple of the
    block size (16 bytes).
    
    However, the unique call-site for `aes_gcm_enc_kernel` and
    `aes_gcm_dec_kernel` in gcm.c only invokes them with data of
    size a multiple of 16 bytes. This renders the tail code in
    `aesv8-gcm-armv8.pl` dead.
    
    Moreover, simply removing the truncation to 16-byte aligned data
    in `gcm.c` -- that is, attempting to let `aes_gcm_{dec,enc}_kernel`
    process the entire data -- leads to tests failing, which begs the
    question whether the assembly is correct in this case.
    
    This commit is a first step towards removing the tail code from
    `aes_gcm_enc_kernel` and `aes_gcm_dec_kernel`, by reading it carefully
    and checking how instructions simplify in the case of block-sized
    data.
    hanno-becker committed Jun 22, 2024
    Configuration menu
    Copy the full SHA
    caddfb1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8343155 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    19018fa View commit details
    Browse the repository at this point in the history

Commits on Jul 6, 2024

  1. Configuration menu
    Copy the full SHA
    1ed3d56 View commit details
    Browse the repository at this point in the history