Root/package/kernel/modules/crypto.mk

1#
2# Copyright (C) 2006-2011 OpenWrt.org
3#
4# This is free software, licensed under the GNU General Public License v2.
5# See /LICENSE for more information.
6#
7
8CRYPTO_MENU:=Cryptographic API modules
9
10CRYPTO_MODULES = ALGAPI2=crypto_algapi
11
12CRYPTOMGR_MODULES = \
13    AEAD2=aead \
14    MANAGER2=cryptomgr \
15    BLKCIPHER2=crypto_blkcipher
16
17crypto_confvar=CONFIG_CRYPTO_$(word 1,$(subst =,$(space),$(1)))
18crypto_file=$(if $(findstring y,$($(call crypto_confvar,$(1)))),,$(LINUX_DIR)/crypto/$(word 2,$(subst =,$(space),$(1))).ko)
19crypto_name=$(if $(findstring y,$($(call crypto_confvar,$(1)))),,$(word 2,$(subst =,$(space),$(1))))
20
21define KernelPackage/crypto-core
22  SUBMENU:=$(CRYPTO_MENU)
23  TITLE:=Core CryptoAPI modules
24  KCONFIG:= \
25    CONFIG_CRYPTO=y \
26    CONFIG_CRYPTO_HW=y \
27    CONFIG_CRYPTO_ALGAPI \
28    $(foreach mod,$(CRYPTO_MODULES),$(call crypto_confvar,$(mod)))
29  FILES:=$(foreach mod,$(CRYPTO_MODULES),$(call crypto_file,$(mod)))
30  AUTOLOAD:=$(call AutoLoad,01,$(foreach mod,$(CRYPTO_MODULES),$(call crypto_name,$(mod))),1)
31endef
32$(eval $(call KernelPackage,crypto-core))
33
34
35define AddDepends/crypto
36  SUBMENU:=$(CRYPTO_MENU)
37  DEPENDS+=+kmod-crypto-core $(1)
38endef
39
40define KernelPackage/crypto-hash
41  TITLE:=CryptoAPI hash support
42  KCONFIG:=CONFIG_CRYPTO_HASH2
43  FILES:=$(LINUX_DIR)/crypto/crypto_hash.ko
44  AUTOLOAD:=$(call AutoLoad,02,crypto_hash,1)
45  $(call AddDepends/crypto)
46endef
47$(eval $(call KernelPackage,crypto-hash))
48
49define KernelPackage/crypto-manager
50  TITLE:=CryptoAPI algorithm manager
51  DEPENDS:=+kmod-crypto-hash
52  KCONFIG:= \
53    CONFIG_CRYPTO_AEAD \
54    CONFIG_CRYPTO_BLKCIPHER \
55    CONFIG_CRYPTO_MANAGER \
56    $(foreach mod,$(CRYPTOMGR_MODULES),$(call crypto_confvar,$(mod)))
57  FILES:=$(foreach mod,$(CRYPTOMGR_MODULES),$(call crypto_file,$(mod)))
58  AUTOLOAD:=$(call AutoLoad,03,$(foreach mod,$(CRYPTOMGR_MODULES),$(call crypto_name,$(mod))))
59  $(call AddDepends/crypto)
60endef
61$(eval $(call KernelPackage,crypto-manager))
62
63define KernelPackage/crypto-pcompress
64  TITLE:=CryptoAPI Partial (de)compression operations
65  KCONFIG:= \
66    CONFIG_CRYPTO_PCOMP=y \
67    CONFIG_CRYPTO_PCOMP2
68  FILES:=$(LINUX_DIR)/crypto/pcompress.ko
69  AUTOLOAD:=$(call AutoLoad,09,pcompress)
70  $(call AddDepends/crypto)
71endef
72$(eval $(call KernelPackage,crypto-pcompress))
73
74define KernelPackage/crypto-user
75  TITLE:=CryptoAPI userspace interface
76  DEPENDS:=+kmod-crypto-hash +kmod-crypto-manager
77  KCONFIG:= \
78    CONFIG_CRYPTO_USER_API \
79    CONFIG_CRYPTO_USER_API_HASH \
80    CONFIG_CRYPTO_USER_API_SKCIPHER
81  FILES:= \
82    $(LINUX_DIR)/crypto/af_alg.ko \
83    $(LINUX_DIR)/crypto/algif_hash.ko \
84    $(LINUX_DIR)/crypto/algif_skcipher.ko
85  AUTOLOAD:=$(call AutoLoad,09,af_alg algif_hash algif_skcipher)
86  $(call AddDepends/crypto)
87endef
88$(eval $(call KernelPackage,crypto-user))
89
90define KernelPackage/crypto-wq
91  TITLE:=CryptoAPI work queue handling
92  KCONFIG:=CONFIG_CRYPTO_WORKQUEUE
93  FILES:=$(LINUX_DIR)/crypto/crypto_wq.ko
94  AUTOLOAD:=$(call AutoLoad,09,crypto_wq)
95  $(call AddDepends/crypto)
96endef
97$(eval $(call KernelPackage,crypto-wq))
98
99define KernelPackage/crypto-rng
100  TITLE:=CryptoAPI random number generation
101  KCONFIG:=CONFIG_CRYPTO_RNG2
102  FILES:= \
103    $(LINUX_DIR)/crypto/rng.ko \
104    $(LINUX_DIR)/crypto/krng.ko
105  AUTOLOAD:=$(call AutoLoad,09,rng krng)
106  $(call AddDepends/crypto)
107endef
108$(eval $(call KernelPackage,crypto-rng))
109
110define KernelPackage/crypto-iv
111  TITLE:=CryptoAPI initialization vectors
112  DEPENDS:=+kmod-crypto-manager +kmod-crypto-rng +kmod-crypto-wq
113  KCONFIG:= CONFIG_CRYPTO_BLKCIPHER2
114  FILES:= \
115    $(LINUX_DIR)/crypto/eseqiv.ko \
116    $(LINUX_DIR)/crypto/chainiv.ko
117  AUTOLOAD:=$(call AutoLoad,10,eseqiv chainiv)
118  $(call AddDepends/crypto)
119endef
120$(eval $(call KernelPackage,crypto-iv))
121
122define KernelPackage/crypto-hw-padlock
123  TITLE:=VIA PadLock ACE with AES/SHA hw crypto module
124  DEPENDS:=+kmod-crypto-aes
125  KCONFIG:= \
126    CONFIG_CRYPTO_DEV_PADLOCK \
127    CONFIG_CRYPTO_DEV_PADLOCK_AES \
128    CONFIG_CRYPTO_DEV_PADLOCK_SHA
129  FILES:= \
130    $(LINUX_DIR)/drivers/crypto/padlock-aes.ko \
131    $(LINUX_DIR)/drivers/crypto/padlock-sha.ko
132  AUTOLOAD:=$(call AutoLoad,09,padlock-aes padlock-sha)
133  $(call AddDepends/crypto)
134endef
135
136$(eval $(call KernelPackage,crypto-hw-padlock))
137
138
139define KernelPackage/crypto-hw-geode
140  TITLE:=AMD Geode hardware crypto module
141  KCONFIG:= \
142    CONFIG_CRYPTO_DEV_GEODE
143  FILES:=$(LINUX_DIR)/drivers/crypto/geode-aes.ko
144  AUTOLOAD:=$(call AutoLoad,09,geode-aes)
145  $(call AddDepends/crypto)
146endef
147
148$(eval $(call KernelPackage,crypto-hw-geode))
149
150
151define KernelPackage/crypto-hw-hifn-795x
152  TITLE:=HIFN 795x crypto accelerator
153  KCONFIG:= \
154    CONFIG_HW_RANDOM=y \
155    CONFIG_CRYPTO_DEV_HIFN_795X \
156    CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
157  FILES:=$(LINUX_DIR)/drivers/crypto/hifn_795x.ko
158  AUTOLOAD:=$(call AutoLoad,09,hifn_795x)
159  $(call AddDepends/crypto,+kmod-crypto-des)
160endef
161
162$(eval $(call KernelPackage,crypto-hw-hifn-795x))
163
164
165define KernelPackage/crypto-hw-ppc4xx
166  TITLE:=AMCC PPC4xx hardware crypto module
167  DEPENDS:=@TARGET_ppc40x||TARGET_ppc44x
168  KCONFIG:= \
169    CONFIG_CRYPTO_DEV_PPC4XX
170  FILES:=$(LINUX_DIR)/drivers/crypto/amcc/crypto4xx.ko
171  AUTOLOAD:=$(call AutoLoad,90,crypto4xx)
172  $(call AddDepends/crypto)
173endef
174
175define KernelPackage/crypto-hw-ppc4xx/description
176  Kernel support for the AMCC PPC4xx HW crypto engine.
177endef
178
179$(eval $(call KernelPackage,crypto-hw-ppc4xx))
180
181
182define KernelPackage/crypto-aes
183  TITLE:=AES cipher CryptoAPI module
184  KCONFIG:=CONFIG_CRYPTO_AES CONFIG_CRYPTO_AES_586
185  FILES:=$(LINUX_DIR)/crypto/aes_generic.ko
186  AUTOLOAD:=$(call AutoLoad,09,aes_generic)
187  $(call AddDepends/crypto)
188endef
189
190define KernelPackage/crypto-aes/x86
191  FILES+=$(LINUX_DIR)/arch/x86/crypto/aes-i586.ko
192  AUTOLOAD:=$(call AutoLoad,09,aes_generic aes-i586)
193endef
194
195$(eval $(call KernelPackage,crypto-aes))
196
197
198define KernelPackage/crypto-arc4
199  TITLE:=ARC4 (RC4) cipher CryptoAPI module
200  KCONFIG:=CONFIG_CRYPTO_ARC4
201  FILES:=$(LINUX_DIR)/crypto/arc4.ko
202  AUTOLOAD:=$(call AutoLoad,09,arc4)
203  $(call AddDepends/crypto,+!LINUX_3_3:kmod-crypto-manager)
204endef
205
206$(eval $(call KernelPackage,crypto-arc4))
207
208
209define KernelPackage/crypto-authenc
210  TITLE:=Combined mode wrapper for IPsec
211  DEPENDS:=+kmod-crypto-manager
212  KCONFIG:=CONFIG_CRYPTO_AUTHENC
213  FILES:=$(LINUX_DIR)/crypto/authenc.ko
214  AUTOLOAD:=$(call AutoLoad,09,authenc)
215  $(call AddDepends/crypto)
216endef
217
218$(eval $(call KernelPackage,crypto-authenc))
219
220define KernelPackage/crypto-cbc
221  TITLE:=Cipher Block Chaining CryptoAPI module
222  DEPENDS:=+kmod-crypto-manager
223  KCONFIG:=CONFIG_CRYPTO_CBC
224  FILES:=$(LINUX_DIR)/crypto/cbc.ko
225  AUTOLOAD:=$(call AutoLoad,09,cbc)
226  $(call AddDepends/crypto)
227endef
228
229$(eval $(call KernelPackage,crypto-cbc))
230
231define KernelPackage/crypto-crc32c
232  TITLE:=CRC32c CRC module
233  DEPENDS:=+kmod-crypto-hash
234  KCONFIG:=CONFIG_CRYPTO_CRC32C
235  FILES:=$(LINUX_DIR)/crypto/crc32c.ko
236  AUTOLOAD:=$(call AutoLoad,04,crc32c,1)
237  $(call AddDepends/crypto)
238endef
239
240$(eval $(call KernelPackage,crypto-crc32c))
241
242define KernelPackage/crypto-des
243  TITLE:=DES/3DES cipher CryptoAPI module
244  KCONFIG:=CONFIG_CRYPTO_DES
245  FILES:=$(LINUX_DIR)/crypto/des_generic.ko
246  AUTOLOAD:=$(call AutoLoad,09,des_generic)
247  $(call AddDepends/crypto)
248endef
249
250$(eval $(call KernelPackage,crypto-des))
251
252define KernelPackage/crypto-deflate
253  TITLE:=Deflate compression CryptoAPI module
254  DEPENDS:=+kmod-lib-zlib
255  KCONFIG:=CONFIG_CRYPTO_DEFLATE
256  FILES:=$(LINUX_DIR)/crypto/deflate.ko
257  AUTOLOAD:=$(call AutoLoad,09,deflate)
258  $(call AddDepends/crypto)
259endef
260
261$(eval $(call KernelPackage,crypto-deflate))
262
263define KernelPackage/crypto-ecb
264  TITLE:=Electronic CodeBook CryptoAPI module
265  DEPENDS:=+kmod-crypto-manager
266  KCONFIG:=CONFIG_CRYPTO_ECB
267  FILES:=$(LINUX_DIR)/crypto/ecb.ko
268  AUTOLOAD:=$(call AutoLoad,09,ecb)
269  $(call AddDepends/crypto)
270endef
271
272$(eval $(call KernelPackage,crypto-ecb))
273
274
275define KernelPackage/crypto-hmac
276  TITLE:=HMAC digest CryptoAPI module
277  DEPENDS:=+kmod-crypto-hash
278  KCONFIG:=CONFIG_CRYPTO_HMAC
279  FILES:=$(LINUX_DIR)/crypto/hmac.ko
280  DEPENDS:=+kmod-crypto-manager
281  AUTOLOAD:=$(call AutoLoad,09,hmac)
282  $(call AddDepends/crypto)
283endef
284
285$(eval $(call KernelPackage,crypto-hmac))
286
287
288define KernelPackage/crypto-md4
289  TITLE:=MD4 digest CryptoAPI module
290  DEPENDS:=+kmod-crypto-hash
291  KCONFIG:=CONFIG_CRYPTO_MD4
292  FILES:=$(LINUX_DIR)/crypto/md4.ko
293  AUTOLOAD:=$(call AutoLoad,09,md4)
294  $(call AddDepends/crypto)
295endef
296
297$(eval $(call KernelPackage,crypto-md4))
298
299
300define KernelPackage/crypto-md5
301  TITLE:=MD5 digest CryptoAPI module
302  DEPENDS:=+kmod-crypto-hash
303  KCONFIG:=CONFIG_CRYPTO_MD5
304  FILES:=$(LINUX_DIR)/crypto/md5.ko
305  AUTOLOAD:=$(call AutoLoad,09,md5)
306  $(call AddDepends/crypto)
307endef
308
309$(eval $(call KernelPackage,crypto-md5))
310
311
312define KernelPackage/crypto-michael-mic
313  TITLE:=Michael MIC keyed digest CryptoAPI module
314  DEPENDS:=+kmod-crypto-hash
315  KCONFIG:=CONFIG_CRYPTO_MICHAEL_MIC
316  FILES:=$(LINUX_DIR)/crypto/michael_mic.ko
317  AUTOLOAD:=$(call AutoLoad,09,michael_mic)
318  $(call AddDepends/crypto)
319endef
320
321$(eval $(call KernelPackage,crypto-michael-mic))
322
323
324define KernelPackage/crypto-sha1
325  TITLE:=SHA1 digest CryptoAPI module
326  DEPENDS:=+kmod-crypto-hash
327  KCONFIG:=CONFIG_CRYPTO_SHA1
328  FILES:=$(LINUX_DIR)/crypto/sha1_generic.ko
329  AUTOLOAD:=$(call AutoLoad,09,sha1_generic)
330  $(call AddDepends/crypto)
331endef
332
333$(eval $(call KernelPackage,crypto-sha1))
334
335ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.6.0)),1)
336camellia_mod_suffix=_generic
337endif
338ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,3.7.0)),1)
339cast56_mod_suffix=_generic
340endif
341
342define KernelPackage/crypto-misc
343  TITLE:=Other CryptoAPI modules
344  DEPENDS:=+kmod-crypto-manager
345  KCONFIG:= \
346    CONFIG_CRYPTO_ANUBIS \
347    CONFIG_CRYPTO_BLOWFISH \
348    CONFIG_CRYPTO_CAMELLIA \
349    CONFIG_CRYPTO_CAST5 \
350    CONFIG_CRYPTO_CAST6 \
351    CONFIG_CRYPTO_FCRYPT \
352    CONFIG_CRYPTO_KHAZAD \
353    CONFIG_CRYPTO_SERPENT \
354    CONFIG_CRYPTO_SHA256 \
355    CONFIG_CRYPTO_SHA512 \
356    CONFIG_CRYPTO_TEA \
357    CONFIG_CRYPTO_TGR192 \
358    CONFIG_CRYPTO_TWOFISH \
359    CONFIG_CRYPTO_TWOFISH_COMMON \
360    CONFIG_CRYPTO_TWOFISH_586 \
361    CONFIG_CRYPTO_WP512
362  FILES:= \
363    $(LINUX_DIR)/crypto/anubis.ko \
364    $(LINUX_DIR)/crypto/camellia$(camellia_mod_suffix).ko \
365    $(LINUX_DIR)/crypto/cast5$(cast56_mod_suffix).ko \
366    $(LINUX_DIR)/crypto/cast6$(cast56_mod_suffix).ko \
367    $(LINUX_DIR)/crypto/fcrypt.ko \
368    $(LINUX_DIR)/crypto/khazad.ko \
369    $(LINUX_DIR)/crypto/sha256_generic.ko \
370    $(LINUX_DIR)/crypto/sha512_generic.ko \
371    $(LINUX_DIR)/crypto/tea.ko \
372    $(LINUX_DIR)/crypto/tgr192.ko \
373    $(LINUX_DIR)/crypto/twofish_common.ko \
374    $(LINUX_DIR)/crypto/wp512.ko \
375    $(LINUX_DIR)/crypto/twofish_generic.ko
376  FILES += \
377    $(LINUX_DIR)/crypto/blowfish_common.ko \
378    $(LINUX_DIR)/crypto/blowfish_generic.ko \
379    $(LINUX_DIR)/crypto/serpent_generic.ko
380  $(call AddDepends/crypto)
381endef
382
383
384define KernelPackage/crypto-misc/x86
385  FILES+=$(LINUX_DIR)/arch/x86/crypto/twofish-i586.ko
386endef
387
388$(eval $(call KernelPackage,crypto-misc))
389
390
391define KernelPackage/crypto-ocf
392  TITLE:=OCF modules
393  DEPENDS:=+@OPENSSL_ENGINE_CRYPTO @!TARGET_uml +kmod-crypto-manager
394  KCONFIG:= \
395    CONFIG_OCF_OCF \
396    CONFIG_OCF_CRYPTODEV \
397    CONFIG_OCF_CRYPTOSOFT \
398    CONFIG_OCF_FIPS=y \
399    CONFIG_OCF_RANDOMHARVEST=y
400  FILES:= \
401    $(LINUX_DIR)/crypto/ocf/ocf.ko \
402    $(LINUX_DIR)/crypto/ocf/cryptodev.ko \
403    $(LINUX_DIR)/crypto/ocf/cryptosoft.ko
404  AUTOLOAD:=$(call AutoLoad,09, \
405    ocf \
406    cryptodev \
407    cryptosoft \
408  )
409  $(call AddDepends/crypto)
410endef
411
412$(eval $(call KernelPackage,crypto-ocf))
413
414
415define KernelPackage/crypto-ocf-hifn7751
416  TITLE:=OCF support for Hifn 6500/7751/7811/795x, Invertex AEON and NetSec 7751 devices
417  DEPENDS:=+@OPENSSL_ENGINE_CRYPTO @PCI_SUPPORT @!TARGET_uml kmod-crypto-ocf
418  KCONFIG:=CONFIG_OCF_HIFN
419  FILES:=$(LINUX_DIR)/crypto/ocf/hifn/hifn7751.ko
420  AUTOLOAD:=$(call AutoLoad,10,hifn7751)
421  $(call AddDepends/crypto)
422endef
423
424$(eval $(call KernelPackage,crypto-ocf-hifn7751))
425
426
427define KernelPackage/crypto-ocf-hifnhipp
428  TITLE:=OCF support for Hifn 7855/8155 devices
429  DEPENDS:=+@OPENSSL_ENGINE_CRYPTO @PCI_SUPPORT @!TARGET_uml kmod-crypto-ocf
430  KCONFIG:=CONFIG_OCF_HIFNHIPP
431  FILES:=$(LINUX_DIR)/crypto/ocf/hifn/hifnHIPP.ko
432  AUTOLOAD:=$(call AutoLoad,10,hifnHIPP)
433  $(call AddDepends/crypto)
434endef
435
436$(eval $(call KernelPackage,crypto-ocf-hifnhipp))
437
438
439define KernelPackage/crypto-null
440  TITLE:=Null CryptoAPI module
441  KCONFIG:=CONFIG_CRYPTO_NULL
442  FILES:=$(LINUX_DIR)/crypto/crypto_null.ko
443  AUTOLOAD:=$(call AutoLoad,09,crypto_null)
444  $(call AddDepends/crypto)
445endef
446
447$(eval $(call KernelPackage,crypto-null))
448
449
450define KernelPackage/crypto-test
451  TITLE:=Test CryptoAPI module
452  KCONFIG:=CONFIG_CRYPTO_TEST
453  FILES:=$(LINUX_DIR)/crypto/tcrypt.ko
454  $(call AddDepends/crypto)
455endef
456
457$(eval $(call KernelPackage,crypto-test))
458
459
460define KernelPackage/crypto-xts
461  TITLE:=XTS cipher CryptoAPI module
462  DEPENDS:=+kmod-crypto-manager
463  KCONFIG:= \
464    CONFIG_CRYPTO_GF128MUL \
465    CONFIG_CRYPTO_XTS
466  FILES:= \
467    $(LINUX_DIR)/crypto/xts.ko \
468    $(LINUX_DIR)/crypto/gf128mul.ko
469  AUTOLOAD:=$(call AutoLoad,09, \
470    gf128mul \
471    xts \
472  )
473  $(call AddDepends/crypto)
474endef
475
476$(eval $(call KernelPackage,crypto-xts))
477
478define KernelPackage/crypto-mv-cesa
479  TITLE:=Marvell crypto engine
480  DEPENDS:=+kmod-crypto-manager +kmod-crypto-aes @TARGET_kirkwood||TARGET_orion
481  KCONFIG:=CONFIG_CRYPTO_DEV_MV_CESA
482  FILES:=$(LINUX_DIR)/drivers/crypto/mv_cesa.ko
483  AUTOLOAD:=$(call AutoLoad,09,mv_cesa)
484  $(call AddDepends/crypto)
485endef
486
487$(eval $(call KernelPackage,crypto-mv-cesa))
488

Archive Download this file



interactive