forked from pfsense/FreeBSD-src
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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 <[email protected]> Signed-off-by: Tony Hutter <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Issue #4329
- Loading branch information
1 parent
be88e73
commit 0b04990
Showing
90 changed files
with
35,834 additions
and
80 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -21,6 +21,7 @@ | |
*.swp | ||
.deps | ||
.libs | ||
.dirstamp | ||
.DS_Store | ||
modules.order | ||
Makefile | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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]) | ||
]) |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
SUBDIRS = fm fs | ||
SUBDIRS = fm fs crypto | ||
|
||
COMMON_H = \ | ||
$(top_srcdir)/include/sys/arc.h \ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
COMMON_H = \ | ||
$(top_srcdir)/include/sys/crypto/api.h \ | ||
$(top_srcdir)/include/sys/crypto/common.h \ | ||
$(top_srcdir)/include/sys/crypto/icp.h | ||
|
||
KERNEL_H = | ||
|
||
USER_H = | ||
|
||
EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H) | ||
|
||
if CONFIG_USER | ||
libzfsdir = $(includedir)/libzfs/sys/crypto | ||
libzfs_HEADERS = $(COMMON_H) $(USER_H) | ||
endif | ||
|
||
if CONFIG_KERNEL | ||
kerneldir = @prefix@/src/zfs-$(VERSION)/include/sys/crypto | ||
kernel_HEADERS = $(COMMON_H) $(KERNEL_H) | ||
endif |
Oops, something went wrong.