mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
Illumos Crypto Port module added to enable native encryption in zfs
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
This commit is contained in:
committed by
Brian Behlendorf
parent
be88e733a6
commit
0b04990a5d
@@ -0,0 +1,22 @@
|
||||
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])
|
||||
])
|
||||
@@ -1,19 +0,0 @@
|
||||
dnl #
|
||||
dnl # Set the target arch for libspl atomic implementation
|
||||
dnl #
|
||||
AC_DEFUN([ZFS_AC_CONFIG_USER_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])
|
||||
AC_MSG_RESULT([$TARGET_ASM_DIR])
|
||||
])
|
||||
@@ -7,7 +7,6 @@ AC_DEFUN([ZFS_AC_CONFIG_USER], [
|
||||
ZFS_AC_CONFIG_USER_SYSTEMD
|
||||
ZFS_AC_CONFIG_USER_SYSVINIT
|
||||
ZFS_AC_CONFIG_USER_DRACUT
|
||||
ZFS_AC_CONFIG_USER_ARCH
|
||||
ZFS_AC_CONFIG_USER_ZLIB
|
||||
ZFS_AC_CONFIG_USER_LIBUUID
|
||||
ZFS_AC_CONFIG_USER_LIBTIRPC
|
||||
|
||||
+1
-3
@@ -64,12 +64,10 @@ AC_DEFUN([ZFS_AC_CONFIG_ALWAYS], [
|
||||
ZFS_AC_CONFIG_ALWAYS_NO_UNUSED_BUT_SET_VARIABLE
|
||||
ZFS_AC_CONFIG_ALWAYS_NO_BOOL_COMPARE
|
||||
ZFS_AC_CONFIG_ALWAYS_TOOLCHAIN_SIMD
|
||||
ZFS_AC_CONFIG_ALWAYS_ARCH
|
||||
])
|
||||
|
||||
AC_DEFUN([ZFS_AC_CONFIG], [
|
||||
TARGET_ASM_DIR=asm-generic
|
||||
AC_SUBST(TARGET_ASM_DIR)
|
||||
|
||||
ZFS_CONFIG=all
|
||||
AC_ARG_WITH([config],
|
||||
AS_HELP_STRING([--with-config=CONFIG],
|
||||
|
||||
Reference in New Issue
Block a user