xref: /freebsd/sys/modules/crypto/Makefile (revision eea7c61590ae8968b3f1f609cf0bc8633222a94f)
1# $FreeBSD$
2
3LIBSODIUM=${SRCTOP}/sys/contrib/libsodium/src/libsodium
4
5.PATH:	${SRCTOP}/sys/opencrypto
6.PATH:	${SRCTOP}/sys/crypto
7.PATH:	${SRCTOP}/sys/crypto/camellia
8.PATH:	${SRCTOP}/sys/crypto/des
9.PATH:	${SRCTOP}/sys/crypto/rijndael
10.PATH:	${SRCTOP}/sys/crypto/sha2
11.PATH:	${SRCTOP}/sys/crypto/siphash
12.PATH:	${SRCTOP}/sys/crypto/skein
13.PATH:	${SRCTOP}/sys/crypto/blake2
14.PATH:	${SRCTOP}/sys/crypto/chacha20
15.PATH:	${SRCTOP}/sys/contrib/libb2
16.PATH:	${LIBSODIUM}/crypto_core/hchacha20
17.PATH:	${LIBSODIUM}/crypto_onetimeauth/poly1305
18.PATH:	${LIBSODIUM}/crypto_onetimeauth/poly1305/donna
19.PATH:	${LIBSODIUM}/crypto_stream/chacha20
20.PATH:	${LIBSODIUM}/crypto_stream/chacha20/ref
21.PATH:	${LIBSODIUM}/crypto_verify/sodium
22.PATH:	${SRCTOP}/sys/crypto/libsodium
23
24KMOD	= crypto
25SRCS	= crypto.c cryptodev_if.c
26SRCS	+= criov.c cryptosoft.c xform.c
27SRCS	+= cryptodeflate.c rmd160.c rijndael-alg-fst.c rijndael-api.c rijndael-api-fst.c
28SRCS	+= camellia.c camellia-api.c
29SRCS	+= des_ecb.c des_enc.c des_setkey.c
30SRCS	+= sha1.c sha256c.c sha512c.c
31SRCS	+= skein.c skein_block.c
32# unroll the 256 and 512 loops, half unroll the 1024
33CFLAGS.skein_block.c	+= -DSKEIN_LOOP=995
34.if exists(${MACHINE_ARCH}/skein_block_asm.S)
35.PATH:	${SRCTOP}/sys/crypto/skein/${MACHINE_ARCH}
36SRCS	+= skein_block_asm.S
37CFLAGS	+= -DSKEIN_ASM -DSKEIN_USE_ASM=1792 # list of block functions to replace with assembly: 256+512+1024 = 1792
38ACFLAGS	+= -DELF -Wa,--noexecstack
39# Fully unroll all loops in the assembly optimized version
40ACFLAGS	+= -DSKEIN_LOOP=0
41# 20201002 Add explict Makefile dependency for reenabled assembly optimized
42# version. SKEIN_USE_ASM determines which routines should come from the assembly
43# vs C versions, and skein_block needs to be rebuilt if it changes.
44skein_block.o: Makefile
45.endif
46SRCS	+= siphash.c
47SRCS	+= gmac.c gfmult.c
48SRCS	+= blake2b-ref.c
49SRCS	+= blake2s-ref.c
50SRCS	+= blake2-sw.c
51CFLAGS.blake2b-ref.c	+= -I${SRCTOP}/sys/crypto/blake2 -DSUFFIX=_ref
52CFLAGS.blake2s-ref.c	+= -I${SRCTOP}/sys/crypto/blake2 -DSUFFIX=_ref
53CFLAGS.blake2-sw.c	+= -I${SRCTOP}/sys/crypto/blake2
54CWARNFLAGS.blake2b-ref.c	+= -Wno-cast-qual -Wno-unused-function
55CWARNFLAGS.blake2s-ref.c	+= -Wno-cast-qual -Wno-unused-function
56SRCS	+= chacha.c
57SRCS	+= chacha-sw.c
58SRCS	+= chacha20_poly1305.c
59
60LIBSODIUM_INC=${LIBSODIUM}/include
61LIBSODIUM_COMPAT=${SRCTOP}/sys/crypto/libsodium
62SRCS	+= xform_chacha20_poly1305.c
63CFLAGS.xform_chacha20_poly1305.c+= -I${LIBSODIUM_INC} -I${LIBSODIUM_COMPAT}
64SRCS	+= xform_poly1305.c
65CFLAGS.xform_poly1305.c		+= -I${LIBSODIUM_INC} -I${LIBSODIUM_COMPAT}
66SRCS	+= core_hchacha20.c
67CFLAGS.core_hchacha20.c		+= -I${LIBSODIUM_INC}/sodium -I${LIBSODIUM_COMPAT}
68SRCS	+= onetimeauth_poly1305.c
69CFLAGS.onetimeauth_poly1305.c	+= -I${LIBSODIUM_INC}/sodium -I${LIBSODIUM_COMPAT}
70SRCS	+= poly1305_donna.c
71CFLAGS.poly1305_donna.c		+= -I${LIBSODIUM_INC}/sodium -I${LIBSODIUM_COMPAT}
72SRCS	+= stream_chacha20.c
73CFLAGS.stream_chacha20.c	+= -I${LIBSODIUM_INC}/sodium -I${LIBSODIUM_COMPAT}
74SRCS	+= chacha20_ref.c
75CFLAGS.chacha20_ref.c		+= -I${LIBSODIUM_INC}/sodium -I${LIBSODIUM_COMPAT}
76SRCS	+= verify.c
77CFLAGS.verify.c			+= -I${LIBSODIUM_INC}/sodium -I${LIBSODIUM_COMPAT}
78SRCS	+= randombytes.c
79CFLAGS.randombytes.c		+= -I${LIBSODIUM_INC} -I${LIBSODIUM_COMPAT}
80SRCS	+= utils.c
81CFLAGS.utils.c			+= -I${LIBSODIUM_INC} -I${LIBSODIUM_COMPAT}
82
83SRCS	+= opt_param.h cryptodev_if.h bus_if.h device_if.h
84SRCS	+= opt_compat.h
85SRCS	+= opt_ddb.h
86SRCS	+= cbc_mac.c
87SRCS	+= xform_cbc_mac.c
88
89.include <bsd.kmod.mk>
90