mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 11:19:32 +03:00
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
79 lines
1.4 KiB
Makefile
79 lines
1.4 KiB
Makefile
include $(top_srcdir)/config/Rules.am
|
|
|
|
VPATH = \
|
|
$(top_srcdir)/module/icp \
|
|
$(top_srcdir)/lib/libicp
|
|
|
|
AM_CFLAGS += $(DEBUG_STACKFLAGS) $(FRAME_LARGER_THAN)
|
|
|
|
DEFAULT_INCLUDES += \
|
|
-I$(top_srcdir)/include \
|
|
-I$(top_srcdir)/module/icp/include \
|
|
-I$(top_srcdir)/lib/libspl/include
|
|
|
|
noinst_LTLIBRARIES = libicp.la
|
|
|
|
if TARGET_ASM_X86_64
|
|
ASM_SOURCES_C = asm-x86_64/aes/aeskey.c
|
|
ASM_SOURCES_AS = \
|
|
asm-x86_64/aes/aes_amd64.S \
|
|
asm-x86_64/aes/aes_intel.S \
|
|
asm-x86_64/modes/gcm_intel.S \
|
|
asm-x86_64/sha1/sha1-x86_64.S \
|
|
asm-x86_64/sha2/sha256_impl.S
|
|
endif
|
|
|
|
if TARGET_ASM_I386
|
|
ASM_SOURCES_C =
|
|
ASM_SOURCES_AS =
|
|
endif
|
|
|
|
if TARGET_ASM_GENERIC
|
|
ASM_SOURCES_C =
|
|
ASM_SOURCES_AS =
|
|
endif
|
|
|
|
USER_C =
|
|
|
|
USER_ASM =
|
|
|
|
KERNEL_C = \
|
|
spi/kcf_spi.c \
|
|
api/kcf_ctxops.c \
|
|
api/kcf_digest.c \
|
|
api/kcf_cipher.c \
|
|
api/kcf_miscapi.c \
|
|
api/kcf_mac.c \
|
|
algs/aes/aes_impl.c \
|
|
algs/aes/aes_modes.c \
|
|
algs/modes/modes.c \
|
|
algs/modes/cbc.c \
|
|
algs/modes/gcm.c \
|
|
algs/modes/ctr.c \
|
|
algs/modes/ccm.c \
|
|
algs/modes/ecb.c \
|
|
algs/sha1/sha1.c \
|
|
algs/sha2/sha2.c \
|
|
illumos-crypto.c \
|
|
io/aes.c \
|
|
io/sha1_mod.c \
|
|
io/sha2_mod.c \
|
|
os/modhash.c \
|
|
os/modconf.c \
|
|
core/kcf_sched.c \
|
|
core/kcf_prov_lib.c \
|
|
core/kcf_callprov.c \
|
|
core/kcf_mech_tabs.c \
|
|
core/kcf_prov_tabs.c \
|
|
$(ASM_SOURCES_C)
|
|
|
|
KERNEL_ASM = $(ASM_SOURCES_AS)
|
|
|
|
nodist_libicp_la_SOURCES = \
|
|
$(USER_C) \
|
|
$(USER_ASM) \
|
|
$(KERNEL_C) \
|
|
$(KERNEL_ASM)
|
|
|
|
libicp_la_LIBADD = -lrt
|