0b04990a5d
A port of the Illumos Crypto Framework to a Linux kernel module (found in module/icp). This is needed to do the actual encryption work. We cannot use the Linux kernel's built in crypto api because it is only exported to GPL-licensed modules. Having the ICP also means the crypto code can run on any of the other kernels under OpenZFS. I ended up porting over most of the internals of the framework, which means that porting over other API calls (if we need them) should be fairly easy. Specifically, I have ported over the API functions related to encryption, digests, macs, and crypto templates. The ICP is able to use assembly-accelerated encryption on amd64 machines and AES-NI instructions on Intel chips that support it. There are place-holder directories for similar assembly optimizations for other architectures (although they have not been written). Signed-off-by: Tom Caputi <tcaputi@datto.com> Signed-off-by: Tony Hutter <hutter2@llnl.gov> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Issue #4329
23 lines
618 B
Plaintext
23 lines
618 B
Plaintext
dnl #
|
|
dnl # Set the target arch for libspl atomic implementation and the icp
|
|
dnl #
|
|
AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_ARCH], [
|
|
AC_MSG_CHECKING(for target asm dir)
|
|
TARGET_ARCH=`echo ${target_cpu} | sed -e s/i.86/i386/`
|
|
|
|
case $TARGET_ARCH in
|
|
i386|x86_64)
|
|
TARGET_ASM_DIR=asm-${TARGET_ARCH}
|
|
;;
|
|
*)
|
|
TARGET_ASM_DIR=asm-generic
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST([TARGET_ASM_DIR])
|
|
AM_CONDITIONAL([TARGET_ASM_X86_64], test $TARGET_ASM_DIR = asm-x86_64)
|
|
AM_CONDITIONAL([TARGET_ASM_I386], test $TARGET_ASM_DIR = asm-i386)
|
|
AM_CONDITIONAL([TARGET_ASM_GENERIC], test $TARGET_ASM_DIR = asm-generic)
|
|
AC_MSG_RESULT([$TARGET_ASM_DIR])
|
|
])
|