2 # Copyright (C) 2006-2011 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 CRYPTO_MENU:=Cryptographic API modules
11 ALGAPI2=crypto_algapi \
12 BLKCIPHER2=crypto_blkcipher
17 crypto_confvar=CONFIG_CRYPTO_$(word 1,$(subst =,$(space),$(1)))
18 crypto_file=$(LINUX_DIR)/crypto/$(word 2,$(subst =,$(space),$(1))).ko
19 crypto_name=$(if $(findstring y,$($(call crypto_confvar,$(1)))),,$(word 2,$(subst =,$(space),$(1))))
21 define KernelPackage/crypto-core
22 SUBMENU:=$(CRYPTO_MENU)
23 TITLE:=Core CryptoAPI modules
27 CONFIG_CRYPTO_BLKCIPHER \
28 CONFIG_CRYPTO_ALGAPI \
29 $(foreach mod,$(CRYPTO_MODULES),$(call crypto_confvar,$(mod)))
30 FILES:=$(foreach mod,$(CRYPTO_MODULES),$(call crypto_file,$(mod)))
33 $(eval $(call KernelPackage,crypto-core))
36 define AddDepends/crypto
37 SUBMENU:=$(CRYPTO_MENU)
38 DEPENDS+=+kmod-crypto-core $(1)
41 define KernelPackage/crypto-aead
42 TITLE:=CryptoAPI AEAD support
46 FILES:=$(LINUX_DIR)/crypto/aead.ko
47 AUTOLOAD:=$(call AutoLoad,09,crypto_aead,1)
48 $(call AddDepends/crypto)
51 $(eval $(call KernelPackage,crypto-aead))
54 define KernelPackage/crypto-hash
55 TITLE:=CryptoAPI hash support
56 KCONFIG:=CONFIG_CRYPTO_HASH
57 FILES:=$(LINUX_DIR)/crypto/crypto_hash.ko
58 AUTOLOAD:=$(call AutoLoad,02,crypto_hash,1)
59 $(call AddDepends/crypto)
62 $(eval $(call KernelPackage,crypto-hash))
65 define KernelPackage/crypto-manager
66 TITLE:=CryptoAPI algorithm manager
67 DEPENDS:=+kmod-crypto-aead +kmod-crypto-hash +kmod-crypto-pcompress
69 CONFIG_CRYPTO_MANAGER \
70 $(foreach mod,$(CRYPTOMGR_MODULES),$(call crypto_confvar,$(mod)))
71 FILES:=$(foreach mod,$(CRYPTOMGR_MODULES),$(call crypto_file,$(mod)))
72 $(call AddDepends/crypto)
75 $(eval $(call KernelPackage,crypto-manager))
78 define KernelPackage/crypto-pcompress
79 TITLE:=CryptoAPI Partial (de)compression operations
81 CONFIG_CRYPTO_PCOMP=y \
83 FILES:=$(LINUX_DIR)/crypto/pcompress.ko
84 AUTOLOAD:=$(call AutoLoad,09,pcompress)
85 $(call AddDepends/crypto)
88 $(eval $(call KernelPackage,crypto-pcompress))
91 define KernelPackage/crypto-user
92 TITLE:=CryptoAPI userspace interface
93 DEPENDS:=+kmod-crypto-hash +kmod-crypto-manager
95 CONFIG_CRYPTO_USER_API \
96 CONFIG_CRYPTO_USER_API_HASH \
97 CONFIG_CRYPTO_USER_API_SKCIPHER
99 $(LINUX_DIR)/crypto/af_alg.ko \
100 $(LINUX_DIR)/crypto/algif_hash.ko \
101 $(LINUX_DIR)/crypto/algif_skcipher.ko
102 AUTOLOAD:=$(call AutoLoad,09,af_alg algif_hash algif_skcipher)
103 $(call AddDepends/crypto)
106 $(eval $(call KernelPackage,crypto-user))
109 define KernelPackage/crypto-wq
110 TITLE:=CryptoAPI work queue handling
111 KCONFIG:=CONFIG_CRYPTO_WORKQUEUE
112 FILES:=$(LINUX_DIR)/crypto/crypto_wq.ko
113 AUTOLOAD:=$(call AutoLoad,09,crypto_wq)
114 $(call AddDepends/crypto)
116 $(eval $(call KernelPackage,crypto-wq))
118 define KernelPackage/crypto-rng
119 TITLE:=CryptoAPI random number generation
120 KCONFIG:=CONFIG_CRYPTO_RNG2
122 $(LINUX_DIR)/crypto/rng.ko \
123 $(LINUX_DIR)/crypto/krng.ko
124 AUTOLOAD:=$(call AutoLoad,09,rng krng)
125 $(call AddDepends/crypto)
128 $(eval $(call KernelPackage,crypto-rng))
131 define KernelPackage/crypto-iv
132 TITLE:=CryptoAPI initialization vectors
133 DEPENDS:=+kmod-crypto-manager +kmod-crypto-rng +kmod-crypto-wq
134 KCONFIG:= CONFIG_CRYPTO_BLKCIPHER2
136 $(LINUX_DIR)/crypto/eseqiv.ko \
137 $(LINUX_DIR)/crypto/chainiv.ko
138 AUTOLOAD:=$(call AutoLoad,10,eseqiv chainiv)
139 $(call AddDepends/crypto)
142 $(eval $(call KernelPackage,crypto-iv))
145 define KernelPackage/crypto-hw-talitos
146 TITLE:=Freescale integrated security engine (SEC) driver
147 DEPENDS:=+kmod-crypto-aes +kmod-crypto-manager +kmod-crypto-hash +kmod-random-core +kmod-crypto-authenc
149 CONFIG_CRYPTO_DEV_TALITOS
151 $(LINUX_DIR)/drivers/crypto/talitos.ko
152 AUTOLOAD:=$(call AutoLoad,09,talitos)
153 $(call AddDepends/crypto)
156 $(eval $(call KernelPackage,crypto-hw-talitos))
159 define KernelPackage/crypto-hw-padlock
160 TITLE:=VIA PadLock ACE with AES/SHA hw crypto module
161 DEPENDS:=+kmod-crypto-aes +kmod-crypto-manager
163 CONFIG_CRYPTO_DEV_PADLOCK \
164 CONFIG_CRYPTO_DEV_PADLOCK_AES \
165 CONFIG_CRYPTO_DEV_PADLOCK_SHA
167 $(LINUX_DIR)/drivers/crypto/padlock-aes.ko \
168 $(LINUX_DIR)/drivers/crypto/padlock-sha.ko
169 AUTOLOAD:=$(call AutoLoad,09,padlock-aes padlock-sha)
170 $(call AddDepends/crypto)
173 $(eval $(call KernelPackage,crypto-hw-padlock))
176 define KernelPackage/crypto-hw-geode
177 TITLE:=AMD Geode hardware crypto module
178 DEPENDS:=+kmod-crypto-manager
180 CONFIG_CRYPTO_DEV_GEODE
181 FILES:=$(LINUX_DIR)/drivers/crypto/geode-aes.ko
182 AUTOLOAD:=$(call AutoLoad,09,geode-aes)
183 $(call AddDepends/crypto)
186 $(eval $(call KernelPackage,crypto-hw-geode))
189 define KernelPackage/crypto-hw-hifn-795x
190 TITLE:=HIFN 795x crypto accelerator
191 DEPENDS:=+kmod-random-core +kmod-crypto-manager
193 CONFIG_CRYPTO_DEV_HIFN_795X \
194 CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
195 FILES:=$(LINUX_DIR)/drivers/crypto/hifn_795x.ko
196 AUTOLOAD:=$(call AutoLoad,09,hifn_795x)
197 $(call AddDepends/crypto,+kmod-crypto-des)
200 $(eval $(call KernelPackage,crypto-hw-hifn-795x))
203 define KernelPackage/crypto-hw-ppc4xx
204 TITLE:=AMCC PPC4xx hardware crypto module
205 DEPENDS:=@TARGET_ppc40x||TARGET_ppc44x
207 CONFIG_CRYPTO_DEV_PPC4XX
208 FILES:=$(LINUX_DIR)/drivers/crypto/amcc/crypto4xx.ko
209 AUTOLOAD:=$(call AutoLoad,90,crypto4xx)
210 $(call AddDepends/crypto,+kmod-crypto-manager +kmod-crypto-hash)
213 define KernelPackage/crypto-hw-ppc4xx/description
214 Kernel support for the AMCC PPC4xx HW crypto engine.
217 $(eval $(call KernelPackage,crypto-hw-ppc4xx))
220 define KernelPackage/crypto-hw-omap
221 TITLE:=TI OMAP hardware crypto modules
222 DEPENDS:=@TARGET_omap
224 CONFIG_CRYPTO_DEV_OMAP_AES \
225 CONFIG_CRYPTO_DEV_OMAP_DES \
226 CONFIG_CRYPTO_DEV_OMAP_SHAM
227 ifneq ($(wildcard $(LINUX_DIR)/drivers/crypto/omap-des.ko),)
229 $(LINUX_DIR)/drivers/crypto/omap-aes.ko \
230 $(LINUX_DIR)/drivers/crypto/omap-des.ko \
231 $(LINUX_DIR)/drivers/crypto/omap-sham.ko
232 AUTOLOAD:=$(call AutoLoad,90,omap-aes omap-des omap-sham)
235 $(LINUX_DIR)/drivers/crypto/omap-aes.ko \
236 $(LINUX_DIR)/drivers/crypto/omap-sham.ko
237 AUTOLOAD:=$(call AutoLoad,90,omap-aes omap-sham)
239 $(call AddDepends/crypto,+kmod-crypto-manager +kmod-crypto-hash)
242 define KernelPackage/crypto-hw-omap/description
243 Kernel support for the TI OMAP HW crypto engine.
246 $(eval $(call KernelPackage,crypto-hw-omap))
249 define KernelPackage/crypto-aes
250 TITLE:=AES cipher CryptoAPI module
251 KCONFIG:=CONFIG_CRYPTO_AES CONFIG_CRYPTO_AES_586
252 FILES:=$(LINUX_DIR)/crypto/aes_generic.ko
253 AUTOLOAD:=$(call AutoLoad,09,aes_generic)
254 $(call AddDepends/crypto)
257 define KernelPackage/crypto-aes/x86
258 FILES+=$(LINUX_DIR)/arch/x86/crypto/aes-i586.ko
259 AUTOLOAD:=$(call AutoLoad,09,aes-i586)
262 $(eval $(call KernelPackage,crypto-aes))
265 define KernelPackage/crypto-arc4
266 TITLE:=ARC4 (RC4) cipher CryptoAPI module
267 KCONFIG:=CONFIG_CRYPTO_ARC4
268 FILES:=$(LINUX_DIR)/crypto/arc4.ko
269 AUTOLOAD:=$(call AutoLoad,09,arc4)
270 $(call AddDepends/crypto)
273 $(eval $(call KernelPackage,crypto-arc4))
276 define KernelPackage/crypto-authenc
277 TITLE:=Combined mode wrapper for IPsec
278 DEPENDS:=+kmod-crypto-manager
279 KCONFIG:=CONFIG_CRYPTO_AUTHENC
280 FILES:=$(LINUX_DIR)/crypto/authenc.ko
281 AUTOLOAD:=$(call AutoLoad,09,authenc)
282 $(call AddDepends/crypto)
285 $(eval $(call KernelPackage,crypto-authenc))
287 define KernelPackage/crypto-cbc
288 TITLE:=Cipher Block Chaining CryptoAPI module
289 DEPENDS:=+kmod-crypto-manager
290 KCONFIG:=CONFIG_CRYPTO_CBC
291 FILES:=$(LINUX_DIR)/crypto/cbc.ko
292 AUTOLOAD:=$(call AutoLoad,09,cbc)
293 $(call AddDepends/crypto)
296 $(eval $(call KernelPackage,crypto-cbc))
298 define KernelPackage/crypto-pcbc
299 TITLE:=Propagating Cipher Block Chaining CryptoAPI module
300 DEPENDS:=+kmod-crypto-manager
301 KCONFIG:=CONFIG_CRYPTO_PCBC
302 FILES:=$(LINUX_DIR)/crypto/pcbc.ko
303 AUTOLOAD:=$(call AutoLoad,09,pcbc)
304 $(call AddDepends/crypto)
307 $(eval $(call KernelPackage,crypto-pcbc))
309 define KernelPackage/crypto-crc32c
310 TITLE:=CRC32c CRC module
311 DEPENDS:=+kmod-crypto-hash
312 KCONFIG:=CONFIG_CRYPTO_CRC32C
313 ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.15.0)),1)
314 FILES:=$(LINUX_DIR)/crypto/crc32c_generic.ko
315 AUTOLOAD:=$(call AutoLoad,04,crc32c_generic,1)
317 FILES:=$(LINUX_DIR)/crypto/crc32c.ko
318 AUTOLOAD:=$(call AutoLoad,04,crc32c,1)
320 $(call AddDepends/crypto)
323 $(eval $(call KernelPackage,crypto-crc32c))
326 define KernelPackage/crypto-des
327 TITLE:=DES/3DES cipher CryptoAPI module
328 KCONFIG:=CONFIG_CRYPTO_DES
329 FILES:=$(LINUX_DIR)/crypto/des_generic.ko
330 AUTOLOAD:=$(call AutoLoad,09,des_generic)
331 $(call AddDepends/crypto)
334 $(eval $(call KernelPackage,crypto-des))
337 define KernelPackage/crypto-deflate
338 TITLE:=Deflate compression CryptoAPI module
339 DEPENDS:=+kmod-lib-zlib
340 KCONFIG:=CONFIG_CRYPTO_DEFLATE
341 FILES:=$(LINUX_DIR)/crypto/deflate.ko
342 AUTOLOAD:=$(call AutoLoad,09,deflate)
343 $(call AddDepends/crypto)
346 $(eval $(call KernelPackage,crypto-deflate))
349 define KernelPackage/crypto-fcrypt
350 TITLE:=FCRYPT cipher CryptoAPI module
351 KCONFIG:=CONFIG_CRYPTO_FCRYPT
352 FILES:=$(LINUX_DIR)/crypto/fcrypt.ko
353 AUTOLOAD:=$(call AutoLoad,09,fcrypt)
354 $(call AddDepends/crypto)
357 $(eval $(call KernelPackage,crypto-fcrypt))
359 define KernelPackage/crypto-ecb
360 TITLE:=Electronic CodeBook CryptoAPI module
361 DEPENDS:=+kmod-crypto-manager
362 KCONFIG:=CONFIG_CRYPTO_ECB
363 FILES:=$(LINUX_DIR)/crypto/ecb.ko
364 AUTOLOAD:=$(call AutoLoad,09,ecb)
365 $(call AddDepends/crypto)
368 $(eval $(call KernelPackage,crypto-ecb))
371 define KernelPackage/crypto-hmac
372 TITLE:=HMAC digest CryptoAPI module
373 DEPENDS:=+kmod-crypto-hash
374 KCONFIG:=CONFIG_CRYPTO_HMAC
375 FILES:=$(LINUX_DIR)/crypto/hmac.ko
376 DEPENDS:=+kmod-crypto-manager
377 AUTOLOAD:=$(call AutoLoad,09,hmac)
378 $(call AddDepends/crypto)
381 $(eval $(call KernelPackage,crypto-hmac))
384 define KernelPackage/crypto-md4
385 TITLE:=MD4 digest CryptoAPI module
386 DEPENDS:=+kmod-crypto-hash
387 KCONFIG:=CONFIG_CRYPTO_MD4
388 FILES:=$(LINUX_DIR)/crypto/md4.ko
389 AUTOLOAD:=$(call AutoLoad,09,md4)
390 $(call AddDepends/crypto)
393 $(eval $(call KernelPackage,crypto-md4))
396 define KernelPackage/crypto-md5
397 TITLE:=MD5 digest CryptoAPI module
398 DEPENDS:=+kmod-crypto-hash
399 KCONFIG:=CONFIG_CRYPTO_MD5
400 FILES:=$(LINUX_DIR)/crypto/md5.ko
401 AUTOLOAD:=$(call AutoLoad,09,md5)
402 $(call AddDepends/crypto)
405 $(eval $(call KernelPackage,crypto-md5))
408 define KernelPackage/crypto-michael-mic
409 TITLE:=Michael MIC keyed digest CryptoAPI module
410 DEPENDS:=+kmod-crypto-hash
411 KCONFIG:=CONFIG_CRYPTO_MICHAEL_MIC
412 FILES:=$(LINUX_DIR)/crypto/michael_mic.ko
413 AUTOLOAD:=$(call AutoLoad,09,michael_mic)
414 $(call AddDepends/crypto)
417 $(eval $(call KernelPackage,crypto-michael-mic))
420 define KernelPackage/crypto-sha1
421 TITLE:=SHA1 digest CryptoAPI module
422 DEPENDS:=+kmod-crypto-hash
423 KCONFIG:=CONFIG_CRYPTO_SHA1
424 FILES:=$(LINUX_DIR)/crypto/sha1_generic.ko
425 AUTOLOAD:=$(call AutoLoad,09,sha1_generic)
426 $(call AddDepends/crypto)
429 $(eval $(call KernelPackage,crypto-sha1))
432 define KernelPackage/crypto-sha256
433 TITLE:=SHA224 SHA256 digest CryptoAPI module
434 DEPENDS:=+kmod-crypto-hash
435 KCONFIG:=CONFIG_CRYPTO_SHA256
436 FILES:=$(LINUX_DIR)/crypto/sha256_generic.ko
437 AUTOLOAD:=$(call AutoLoad,09,sha256_generic)
438 $(call AddDepends/crypto)
441 $(eval $(call KernelPackage,crypto-sha256))
444 ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.6.0)),1)
445 camellia_mod_suffix=_generic
447 ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.7.0)),1)
448 cast56_mod_suffix=_generic
451 define KernelPackage/crypto-misc
452 TITLE:=Other CryptoAPI modules
453 DEPENDS:=+kmod-crypto-manager
455 CONFIG_CRYPTO_ANUBIS \
456 CONFIG_CRYPTO_BLOWFISH \
457 CONFIG_CRYPTO_CAMELLIA \
458 CONFIG_CRYPTO_CAST5 \
459 CONFIG_CRYPTO_CAST6 \
460 CONFIG_CRYPTO_FCRYPT \
461 CONFIG_CRYPTO_KHAZAD \
462 CONFIG_CRYPTO_SERPENT \
463 CONFIG_CRYPTO_SHA512 \
465 CONFIG_CRYPTO_TGR192 \
466 CONFIG_CRYPTO_TWOFISH \
467 CONFIG_CRYPTO_TWOFISH_COMMON \
468 CONFIG_CRYPTO_TWOFISH_586 \
471 $(LINUX_DIR)/crypto/anubis.ko \
472 $(LINUX_DIR)/crypto/camellia$(camellia_mod_suffix).ko \
473 $(if $(call kernel_patchver_ge,3.7),$(LINUX_DIR)/crypto/cast_common.ko) \
474 $(LINUX_DIR)/crypto/cast5$(cast56_mod_suffix).ko \
475 $(LINUX_DIR)/crypto/cast6$(cast56_mod_suffix).ko \
476 $(LINUX_DIR)/crypto/khazad.ko \
477 $(LINUX_DIR)/crypto/sha512_generic.ko \
478 $(LINUX_DIR)/crypto/tea.ko \
479 $(LINUX_DIR)/crypto/tgr192.ko \
480 $(LINUX_DIR)/crypto/twofish_common.ko \
481 $(LINUX_DIR)/crypto/wp512.ko \
482 $(LINUX_DIR)/crypto/twofish_generic.ko \
483 $(LINUX_DIR)/crypto/blowfish_common.ko \
484 $(LINUX_DIR)/crypto/blowfish_generic.ko \
485 $(LINUX_DIR)/crypto/serpent_generic.ko
486 $(call AddDepends/crypto)
489 define KernelPackage/crypto-misc/x86
490 FILES+=$(LINUX_DIR)/arch/x86/crypto/twofish-i586.ko
493 $(eval $(call KernelPackage,crypto-misc))
496 define KernelPackage/crypto-ocf
498 DEPENDS:=+@OPENSSL_ENGINE_CRYPTO @!TARGET_uml +kmod-crypto-manager
501 CONFIG_OCF_CRYPTODEV \
502 CONFIG_OCF_CRYPTOSOFT \
504 CONFIG_OCF_RANDOMHARVEST=y
506 $(LINUX_DIR)/crypto/ocf/ocf.ko \
507 $(LINUX_DIR)/crypto/ocf/cryptodev.ko \
508 $(LINUX_DIR)/crypto/ocf/cryptosoft.ko
509 AUTOLOAD:=$(call AutoLoad,09, \
514 $(call AddDepends/crypto)
517 $(eval $(call KernelPackage,crypto-ocf))
520 define KernelPackage/crypto-ocf-hifn7751
521 TITLE:=OCF support for Hifn 6500/7751/7811/795x, Invertex AEON and NetSec 7751 devices
522 DEPENDS:=+@OPENSSL_ENGINE_CRYPTO @PCI_SUPPORT @!TARGET_uml kmod-crypto-ocf
523 KCONFIG:=CONFIG_OCF_HIFN
524 FILES:=$(LINUX_DIR)/crypto/ocf/hifn/hifn7751.ko
525 AUTOLOAD:=$(call AutoLoad,10,hifn7751)
526 $(call AddDepends/crypto)
529 $(eval $(call KernelPackage,crypto-ocf-hifn7751))
532 define KernelPackage/crypto-ocf-hifnhipp
533 TITLE:=OCF support for Hifn 7855/8155 devices
534 DEPENDS:=+@OPENSSL_ENGINE_CRYPTO @PCI_SUPPORT @!TARGET_uml kmod-crypto-ocf
535 KCONFIG:=CONFIG_OCF_HIFNHIPP
536 FILES:=$(LINUX_DIR)/crypto/ocf/hifn/hifnHIPP.ko
537 AUTOLOAD:=$(call AutoLoad,10,hifnHIPP)
538 $(call AddDepends/crypto)
541 $(eval $(call KernelPackage,crypto-ocf-hifnhipp))
544 define KernelPackage/crypto-null
545 TITLE:=Null CryptoAPI module
546 KCONFIG:=CONFIG_CRYPTO_NULL
547 FILES:=$(LINUX_DIR)/crypto/crypto_null.ko
548 AUTOLOAD:=$(call AutoLoad,09,crypto_null)
549 $(call AddDepends/crypto,+kmod-crypto-manager)
552 $(eval $(call KernelPackage,crypto-null))
555 define KernelPackage/crypto-test
556 TITLE:=Test CryptoAPI module
557 KCONFIG:=CONFIG_CRYPTO_TEST
558 FILES:=$(LINUX_DIR)/crypto/tcrypt.ko
559 $(call AddDepends/crypto,+kmod-crypto-manager)
562 $(eval $(call KernelPackage,crypto-test))
565 define KernelPackage/crypto-xts
566 TITLE:=XTS cipher CryptoAPI module
567 DEPENDS:=+kmod-crypto-manager
569 CONFIG_CRYPTO_GF128MUL \
572 $(LINUX_DIR)/crypto/xts.ko \
573 $(LINUX_DIR)/crypto/gf128mul.ko
574 AUTOLOAD:=$(call AutoLoad,09, \
578 $(call AddDepends/crypto)
581 $(eval $(call KernelPackage,crypto-xts))
584 define KernelPackage/crypto-mv-cesa
585 TITLE:=Marvell crypto engine
586 DEPENDS:=+kmod-crypto-manager +kmod-crypto-aes @TARGET_kirkwood||TARGET_orion||TARGET_mvebu
587 KCONFIG:=CONFIG_CRYPTO_DEV_MV_CESA
588 FILES:=$(LINUX_DIR)/drivers/crypto/mv_cesa.ko
589 AUTOLOAD:=$(call AutoLoad,09,mv_cesa)
590 $(call AddDepends/crypto)
593 $(eval $(call KernelPackage,crypto-mv-cesa))