Skip to content

Commit

Permalink
linux: update crypto.mk
Browse files Browse the repository at this point in the history
  • Loading branch information
coolsnowwolf committed Mar 13, 2020
1 parent 9db10a8 commit 9a13258
Showing 1 changed file with 22 additions and 94 deletions.
116 changes: 22 additions & 94 deletions package/kernel/linux/modules/crypto.mk
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,8 @@ define KernelPackage/crypto-crc32
DEPENDS:=+kmod-crypto-hash
KCONFIG:=CONFIG_CRYPTO_CRC32
HIDDEN:=1
FILES:=$(LINUX_DIR)/crypto/crc32_generic.ko@ge4.9
AUTOLOAD:=$(call AutoLoad,04,crc32_generic@ge4.9,1)
FILES:=$(LINUX_DIR)/crypto/crc32_generic.ko
AUTOLOAD:=$(call AutoLoad,04,crc32_generic,1)
$(call AddDepends/crypto)
endef

Expand All @@ -132,7 +132,7 @@ $(eval $(call KernelPackage,crypto-crc32c))

define KernelPackage/crypto-ctr
TITLE:=Counter Mode CryptoAPI module
DEPENDS:=+kmod-crypto-manager +kmod-crypto-seqiv +kmod-crypto-iv
DEPENDS:=+kmod-crypto-manager +kmod-crypto-seqiv
KCONFIG:=CONFIG_CRYPTO_CTR
FILES:=$(LINUX_DIR)/crypto/ctr.ko
AUTOLOAD:=$(call AutoLoad,09,ctr)
Expand All @@ -156,7 +156,7 @@ $(eval $(call KernelPackage,crypto-cts))

define KernelPackage/crypto-deflate
TITLE:=Deflate compression CryptoAPI module
DEPENDS:=+kmod-lib-zlib-inflate +kmod-lib-zlib-deflate +!LINUX_4_9:kmod-crypto-acompress
DEPENDS:=+kmod-lib-zlib-inflate +kmod-lib-zlib-deflate +kmod-crypto-acompress
KCONFIG:=CONFIG_CRYPTO_DEFLATE
FILES:=$(LINUX_DIR)/crypto/deflate.ko
AUTOLOAD:=$(call AutoLoad,09,deflate)
Expand All @@ -169,7 +169,9 @@ $(eval $(call KernelPackage,crypto-deflate))
define KernelPackage/crypto-des
TITLE:=DES/3DES cipher CryptoAPI module
KCONFIG:=CONFIG_CRYPTO_DES
FILES:=$(LINUX_DIR)/crypto/des_generic.ko
FILES:= \
$(LINUX_DIR)/crypto/des_generic.ko \
$(LINUX_DIR)/lib/crypto/[email protected]
AUTOLOAD:=$(call AutoLoad,09,des_generic)
$(call AddDepends/crypto)
endef
Expand All @@ -194,7 +196,8 @@ define KernelPackage/crypto-ecdh
DEPENDS:=+kmod-crypto-kpp
KCONFIG:= CONFIG_CRYPTO_ECDH
FILES:= \
$(LINUX_DIR)/crypto/ecdh_generic.ko
$(LINUX_DIR)/crypto/ecdh_generic.ko \
$(LINUX_DIR)/crypto/[email protected]
AUTOLOAD:=$(call AutoLoad,10,ecdh_generic)
$(call AddDepends/crypto)
endef
Expand Down Expand Up @@ -308,7 +311,7 @@ $(eval $(call KernelPackage,crypto-hmac))

define KernelPackage/crypto-hw-ccp
TITLE:=AMD Cryptographic Coprocessor
DEPENDS:=+kmod-crypto-authenc +kmod-crypto-hash +kmod-crypto-manager +kmod-random-core +kmod-crypto-sha1 +kmod-crypto-sha256 +!LINUX_4_9:kmod-crypto-rsa
DEPENDS:=+kmod-crypto-authenc +kmod-crypto-hash +kmod-crypto-manager +kmod-random-core +kmod-crypto-sha1 +kmod-crypto-sha256 +kmod-crypto-rsa
KCONFIG:= \
CONFIG_CRYPTO_HW=y \
CONFIG_CRYPTO_DEV_CCP=y \
Expand Down Expand Up @@ -372,78 +375,6 @@ endef
$(eval $(call KernelPackage,crypto-hw-padlock))


define KernelPackage/crypto-hw-qce
TITLE:=Qualcomm Crypto Engine hw crypto module
DEPENDS:= @TARGET_ipq40xx +kmod-crypto-manager \
+QCE_SKCIPHER:kmod-crypto-des \
+QCE_SKCIPHER:kmod-crypto-ecb \
+QCE_SKCIPHER:kmod-crypto-cbc \
+QCE_SKCIPHER:kmod-crypto-xts \
+QCE_SKCIPHER:kmod-crypto-ctr
KCONFIG:= \
CONFIG_CRYPTO_HW=y \
CONFIG_CRYPTO_DEV_QCE
FILES:= $(LINUX_DIR)/drivers/crypto/qce/qcrypto.ko
AUTOLOAD:=$(call AutoLoad,09,qcrypto)
$(call AddDepends/crypto)
endef

define KernelPackage/crypto-hw-qce/config
if PACKAGE_kmod-crypto-hw-qce
config QCE_SKCIPHER
bool
choice
prompt "Algorithms enabled for QCE acceleration"
default KERNEL_CRYPTO_DEV_QCE_ENABLE_SKCIPHER
help
The Qualcomm Crypto Engine is shown to severely slowdown ipsec,
especially when built with all supported algorithms.
When performing crypto in small blocks, typical of network usage,
the neon asm drivers will outperform it.
QCE is fast when fed with larger blocks. If you are able to use
jumbo frames, it will be much faster than software.
Hashes are troublesome. They fail the tcrypt multibuffer tests, and
are slower than the Neon drivers, so the default is to enable
symmetric-key ciphers only.

config KERNEL_CRYPTO_DEV_QCE_ENABLE_ALL
bool "All supported algorithms"
select QCE_SKCIPHER
config KERNEL_CRYPTO_DEV_QCE_ENABLE_SKCIPHER
bool "Symmetric-key ciphers only"
select QCE_SKCIPHER
config KERNEL_CRYPTO_DEV_QCE_ENABLE_SHA
bool "Hash/HMAC only"
endchoice

config KERNEL_CRYPTO_DEV_QCE_SW_MAX_LEN
int "Default maximum request size to use software for AES"
depends on QCE_SKCIPHER
default 512
help
This sets the default maximum request size to perform AES requests
using software instead of the crypto engine. It can be changed by
setting the aes_sw_max_len parameter.

Small blocks are processed faster in software than hardware.
Considering the 256-bit ciphers, software is 2-3 times faster than
qce at 256-bytes, 30% faster at 512, and about even at 768-bytes.
With 128-bit keys, the break-even point would be around 1024-bytes.

The default is set a little lower, to 512 bytes, to balance the
cost in CPU usage. The minimum recommended setting is 16-bytes
(1 AES block), since AES-GCM will fail if you set it lower.
Setting this to zero will send all requests to the hardware.

Note that 192-bit keys are not supported by the hardware and are
always processed by the software fallback, and all DES requests
are done by the hardware.
endif
endef

$(eval $(call KernelPackage,crypto-hw-qce))


define KernelPackage/crypto-hw-safexcel
TITLE:= MVEBU SafeXcel Crypto Engine module
DEPENDS:=@!LINUX_4_14 @(TARGET_mvebu_cortexa53||TARGET_mvebu_cortexa72) \
Expand Down Expand Up @@ -485,7 +416,6 @@ endef

$(eval $(call KernelPackage,crypto-hw-talitos))


define KernelPackage/crypto-iv
TITLE:=CryptoAPI initialization vectors
DEPENDS:=+kmod-crypto-manager +kmod-crypto-rng +kmod-crypto-wq
Expand All @@ -500,7 +430,6 @@ endef

$(eval $(call KernelPackage,crypto-iv))


define KernelPackage/crypto-kpp
TITLE:=Key-agreement Protocol Primitives
KCONFIG:=CONFIG_CRYPTO_KPP
Expand Down Expand Up @@ -739,11 +668,10 @@ define KernelPackage/crypto-rng
CONFIG_CRYPTO_JITTERENTROPY \
CONFIG_CRYPTO_RNG2
FILES:= \
$(LINUX_DIR)/crypto/[email protected] \
$(LINUX_DIR)/crypto/[email protected] \
$(LINUX_DIR)/crypto/[email protected] \
$(LINUX_DIR)/crypto/drbg.ko \
$(LINUX_DIR)/crypto/jitterentropy_rng.ko \
$(LINUX_DIR)/crypto/rng.ko
AUTOLOAD:=$(call AutoLoad,09,drbg@ge4.2 jitterentropy_rng@ge4.2 [email protected] rng)
AUTOLOAD:=$(call AutoLoad,09,drbg jitterentropy_rng rng)
$(call AddDepends/crypto)
endef

Expand Down Expand Up @@ -788,10 +716,8 @@ define KernelPackage/crypto-sha1/arm-neon
endef

KernelPackage/crypto-sha1/imx6=$(KernelPackage/crypto-sha1/arm-neon)

KernelPackage/crypto-sha1/ipq40xx=$(KernelPackage/crypto-sha1/arm-neon)

KernelPackage/crypto-sha1/mvebu=$(KernelPackage/crypto-sha1/arm-neon)
KernelPackage/crypto-sha1/mvebu/cortexa9=$(KernelPackage/crypto-sha1/arm-neon)

define KernelPackage/crypto-sha1/octeon
FILES+=$(LINUX_DIR)/arch/mips/cavium-octeon/crypto/octeon-sha1.ko
Expand All @@ -815,7 +741,9 @@ define KernelPackage/crypto-sha256
CONFIG_CRYPTO_SHA256 \
CONFIG_CRYPTO_SHA256_OCTEON \
CONFIG_CRYPTO_SHA256_SSSE3
FILES:=$(LINUX_DIR)/crypto/sha256_generic.ko
FILES:= \
$(LINUX_DIR)/crypto/sha256_generic.ko \
$(LINUX_DIR)/lib/crypto/[email protected]
AUTOLOAD:=$(call AutoLoad,09,sha256_generic)
$(call AddDepends/crypto)
endef
Expand Down Expand Up @@ -852,10 +780,8 @@ define KernelPackage/crypto-sha512/arm
endef

KernelPackage/crypto-sha512/imx6=$(KernelPackage/crypto-sha512/arm)

KernelPackage/crypto-sha512/ipq40xx=$(KernelPackage/crypto-sha512/arm)

KernelPackage/crypto-sha512/mvebu=$(KernelPackage/crypto-sha512/arm)
KernelPackage/crypto-sha512/mvebu/cortexa9=$(KernelPackage/crypto-sha512/arm)

define KernelPackage/crypto-sha512/octeon
FILES+=$(LINUX_DIR)/arch/mips/cavium-octeon/crypto/octeon-sha512.ko
Expand Down Expand Up @@ -886,6 +812,7 @@ define KernelPackage/crypto-user
TITLE:=CryptoAPI userspace interface
DEPENDS:=+kmod-crypto-hash +kmod-crypto-manager
KCONFIG:= \
CONFIG_CRYPTO_USER \
CONFIG_CRYPTO_USER_API \
CONFIG_CRYPTO_USER_API_AEAD \
CONFIG_CRYPTO_USER_API_HASH \
Expand All @@ -896,8 +823,9 @@ define KernelPackage/crypto-user
$(LINUX_DIR)/crypto/algif_aead.ko \
$(LINUX_DIR)/crypto/algif_hash.ko \
$(LINUX_DIR)/crypto/algif_rng.ko \
$(LINUX_DIR)/crypto/algif_skcipher.ko
AUTOLOAD:=$(call AutoLoad,09,af_alg algif_aead algif_hash algif_rng algif_skcipher)
$(LINUX_DIR)/crypto/algif_skcipher.ko \
$(LINUX_DIR)/crypto/crypto_user.ko
AUTOLOAD:=$(call AutoLoad,09,af_alg algif_aead algif_hash algif_rng algif_skcipher crypto_user)
$(call AddDepends/crypto)
endef

Expand Down

0 comments on commit 9a13258

Please sign in to comment.