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