HomeFreeBSD

libcrypto: Update assembly build glue for x86 for OpenSSL 3.0.

Description

libcrypto: Update assembly build glue for x86 for OpenSSL 3.0.

Notably, define AES_ASM which is required for any AES acceleration
(OpenSSL 1.0 gated all AES acceleration on OPENSSL_CPUID_OBJ instead).
Enabling this exposed that new assembly files added in OpenSSL 3.0
needed to be included in the build (aes-x86-64.S and aes-586.S). Both
of these files supplant both aes_core.c and aes_cbc.c. The last file
had to be moved out of the MI SRCS line for aes and into each ASM_*
for non-x86.

As part of this I audited the generated configdata.pm for amd64, i386,
and aarch64 and found the following additional discrepecancies that are
fixed here as well:

  • Enabled BSAES_ASM on amd64 which requires bsase-x86_64.S
  • Enabled WHIRLPOOL_ASM on amd64 (asm sources already built)
  • Enabled CMLL_ASM on amd64 and i386 (asm sources already built)

aarch64 had no discreprecancies in configdata.pm, and no *.pl asm
generators were missing for aarch64 in Makefile.asm. I did not check
powerpc or armv7, but for armv7 all of the asm generators seem to be
present in Makefile.asm.

Reported by: gallatin (AES-GCM using plain software on amd64)
Reviewed by: gallatin, ngie, emaste
Differential Revision: https://reviews.freebsd.org/D41539

Details

Provenance
jhbAuthored on Aug 22 2023, 4:02 AM
Reviewer
gallatin
Differential Revision
D41539: libcrypto: Update assembly build glue for x86 for OpenSSL 3.0.
Parents
rG74d73bb743c7: libcrypto: Generate new files added in OpenSSL 3.0.
Branches
Unknown
Tags
Unknown