| 1 | # |
| 2 | # Copyright (C) 2006-2008 OpenWrt.org |
| 3 | # |
| 4 | # This is free software, licensed under the GNU General Public License v2. |
| 5 | # See /LICENSE for more information. |
| 6 | # |
| 7 | |
| 8 | CRYPTO_MENU:=Cryptographic API modules |
| 9 | |
| 10 | # XXX: added workarounds for modules renamed in 2.6 series: |
| 11 | # - aes > aes_generic (2.6.24) |
| 12 | # - blkcipher -> crypto_blkcipher (2.6.25) |
| 13 | # - des > des_generic (2.6.24) |
| 14 | # - sha1 > sha1_generic (2.6.24) |
| 15 | # - sha256 > sha256_generic (2.6.24) |
| 16 | # - sha512 > sha512_generic (2.6.26) |
| 17 | ifneq ($(CONFIG_LINUX_2_6),) |
| 18 | CRYPTO_GENERIC:=_generic |
| 19 | AES_SUFFIX:=$(CRYPTO_GENERIC) |
| 20 | DES_SUFFIX:=$(CRYPTO_GENERIC) |
| 21 | SHA1_SUFFIX:=$(CRYPTO_GENERIC) |
| 22 | SHA256_SUFFIX:=$(CRYPTO_GENERIC) |
| 23 | SHA512_SUFFIX:=$(CRYPTO_GENERIC) |
| 24 | endif |
| 25 | |
| 26 | CRYPTO_MODULES = \ |
| 27 | ALGAPI=crypto_algapi \ |
| 28 | AEAD2=aead \ |
| 29 | PCOMP=pcompress \ |
| 30 | BLKCIPHER2=crypto_blkcipher \ |
| 31 | HASH2=crypto_hash \ |
| 32 | MANAGER2=cryptomgr \ |
| 33 | CBC=cbc \ |
| 34 | ECB=ecb \ |
| 35 | DEFLATE=deflate |
| 36 | |
| 37 | crypto_confvar=CONFIG_CRYPTO_$(word 1,$(subst =,$(space),$(1))) |
| 38 | crypto_file=$(if $(findstring y,$($(call crypto_confvar,$(1)))),,$(LINUX_DIR)/crypto/$(word 2,$(subst =,$(space),$(1))).$(LINUX_KMOD_SUFFIX)) |
| 39 | crypto_name=$(if $(findstring y,$($(call crypto_confvar,$(1)))),,$(word 2,$(subst =,$(space),$(1)))) |
| 40 | |
| 41 | # XXX: added CONFIG_CRYPTO_HMAC to KCONFIG so that CONFIG_CRYPTO_HASH is |
| 42 | # always set, even if no hash modules are selected |
| 43 | define KernelPackage/crypto-core |
| 44 | SUBMENU:=$(CRYPTO_MENU) |
| 45 | TITLE:=Core CryptoAPI modules |
| 46 | KCONFIG:=CONFIG_CRYPTO=y CONFIG_CRYPTO_HMAC $(foreach mod,$(CRYPTO_MODULES),$(call crypto_confvar,$(mod))) |
| 47 | FILES:=$(foreach mod,$(CRYPTO_MODULES),$(call crypto_file,$(mod))) |
| 48 | AUTOLOAD:=$(call AutoLoad,01,$(foreach mod,$(CRYPTO_MODULES),$(call crypto_name,$(mod)))) |
| 49 | endef |
| 50 | |
| 51 | define KernelPackage/crypto-core/2.4 |
| 52 | FILES:=$(LINUX_DIR)/crypto/deflate.$(LINUX_KMOD_SUFFIX) |
| 53 | AUTOLOAD:=$(call AutoLoad,01, deflate) |
| 54 | endef |
| 55 | |
| 56 | $(eval $(call KernelPackage,crypto-core)) |
| 57 | |
| 58 | |
| 59 | define KernelPackage/crypto/Depends |
| 60 | SUBMENU:=$(CRYPTO_MENU) |
| 61 | DEPENDS:=kmod-crypto-core $(1) |
| 62 | endef |
| 63 | |
| 64 | |
| 65 | define KernelPackage/crypto-hw-padlock |
| 66 | $(call KernelPackage/crypto/Depends,) |
| 67 | TITLE:=VIA PadLock ACE with AES/SHA hw crypto module |
| 68 | KCONFIG:= \ |
| 69 | CONFIG_CRYPTO_HW=y \ |
| 70 | CONFIG_CRYPTO_DEV_PADLOCK \ |
| 71 | CONFIG_CRYPTO_DEV_PADLOCK_AES \ |
| 72 | CONFIG_CRYPTO_DEV_PADLOCK_SHA |
| 73 | FILES:= \ |
| 74 | $(LINUX_DIR)/drivers/crypto/padlock-aes.$(LINUX_KMOD_SUFFIX) \ |
| 75 | $(LINUX_DIR)/drivers/crypto/padlock-sha.$(LINUX_KMOD_SUFFIX) |
| 76 | AUTOLOAD:=$(call AutoLoad,09,padlock-aes padlock-sha) |
| 77 | endef |
| 78 | |
| 79 | $(eval $(call KernelPackage,crypto-hw-padlock)) |
| 80 | |
| 81 | |
| 82 | define KernelPackage/crypto-hw-geode |
| 83 | $(call KernelPackage/crypto/Depends,) |
| 84 | TITLE:=AMD Geode hardware crypto module |
| 85 | KCONFIG:= \ |
| 86 | CONFIG_CRYPTO_HW=y \ |
| 87 | CONFIG_CRYPTO_DEV_GEODE |
| 88 | FILES:=$(LINUX_DIR)/drivers/crypto/geode-aes.$(LINUX_KMOD_SUFFIX) |
| 89 | AUTOLOAD:=$(call AutoLoad,09,geode-aes) |
| 90 | endef |
| 91 | |
| 92 | $(eval $(call KernelPackage,crypto-hw-geode)) |
| 93 | |
| 94 | |
| 95 | define KernelPackage/crypto-hw-hifn-795x |
| 96 | $(call KernelPackage/crypto/Depends,+kmod-crypto-des @!TARGET_ubicom32) |
| 97 | TITLE:=HIFN 795x crypto accelerator |
| 98 | KCONFIG:= \ |
| 99 | CONFIG_CRYPTO_HW=y \ |
| 100 | CONFIG_HW_RANDOM=y \ |
| 101 | CONFIG_CRYPTO_DEV_HIFN_795X \ |
| 102 | CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y |
| 103 | FILES:=$(LINUX_DIR)/drivers/crypto/hifn_795x.$(LINUX_KMOD_SUFFIX) |
| 104 | AUTOLOAD:=$(call AutoLoad,09,hifn_795x) |
| 105 | endef |
| 106 | |
| 107 | $(eval $(call KernelPackage,crypto-hw-hifn-795x)) |
| 108 | |
| 109 | |
| 110 | define KernelPackage/crypto-hw-ixp4xx |
| 111 | $(call KernelPackage/crypto/Depends,@TARGET_ixp4xx +kmod-crypto-des +kmod-crypto-authenc) |
| 112 | TITLE:=Intel IXP4xx hardware crypto module |
| 113 | KCONFIG:= \ |
| 114 | CONFIG_CRYPTO_HW=y \ |
| 115 | CONFIG_CRYPTO_DEV_IXP4XX |
| 116 | FILES:=$(LINUX_DIR)/drivers/crypto/ixp4xx_crypto.$(LINUX_KMOD_SUFFIX) |
| 117 | AUTOLOAD:=$(call AutoLoad,90,ixp4xx_crypto) |
| 118 | endef |
| 119 | |
| 120 | define KernelPackage/crypto-hw-ixp4xx/description |
| 121 | Kernel support for the Intel IXP4xx HW crypto engine. |
| 122 | endef |
| 123 | |
| 124 | $(eval $(call KernelPackage,crypto-hw-ixp4xx)) |
| 125 | |
| 126 | |
| 127 | define KernelPackage/crypto-hw-ppc4xx |
| 128 | $(call KernelPackage/crypto/Depends,@TARGET_ppc40x||TARGET_ppc44x) |
| 129 | TITLE:=AMCC PPC4xx hardware crypto module |
| 130 | KCONFIG:= \ |
| 131 | CONFIG_CRYPTO_HW=y \ |
| 132 | CONFIG_CRYPTO_DEV_PPC4XX |
| 133 | FILES:=$(LINUX_DIR)/drivers/crypto/amcc/crypto4xx.$(LINUX_KMOD_SUFFIX) |
| 134 | AUTOLOAD:=$(call AutoLoad,90,crypto4xx) |
| 135 | endef |
| 136 | |
| 137 | define KernelPackage/crypto-hw-ppc4xx/description |
| 138 | Kernel support for the AMCC PPC4xx HW crypto engine. |
| 139 | endef |
| 140 | |
| 141 | $(eval $(call KernelPackage,crypto-hw-ppc4xx)) |
| 142 | |
| 143 | |
| 144 | define KernelPackage/crypto-aes |
| 145 | $(call KernelPackage/crypto/Depends,) |
| 146 | TITLE:=AES cipher CryptoAPI module |
| 147 | KCONFIG:=CONFIG_CRYPTO_AES CONFIG_CRYPTO_AES_586 |
| 148 | FILES:=$(LINUX_DIR)/crypto/aes$(AES_SUFFIX).$(LINUX_KMOD_SUFFIX) |
| 149 | AUTOLOAD:=$(call AutoLoad,09,aes$(AES_SUFFIX)) |
| 150 | endef |
| 151 | |
| 152 | define KernelPackage/crypto-aes/x86 |
| 153 | FILES+=$(LINUX_DIR)/arch/x86/crypto/aes-i586.$(LINUX_KMOD_SUFFIX) |
| 154 | AUTOLOAD:=$(call AutoLoad,09,aes$(AES_SUFFIX) aes-i586) |
| 155 | endef |
| 156 | |
| 157 | $(eval $(call KernelPackage,crypto-aes)) |
| 158 | |
| 159 | |
| 160 | define KernelPackage/crypto-arc4 |
| 161 | $(call KernelPackage/crypto/Depends,) |
| 162 | TITLE:=ARC4 (RC4) cipher CryptoAPI module |
| 163 | KCONFIG:=CONFIG_CRYPTO_ARC4 |
| 164 | FILES:=$(LINUX_DIR)/crypto/arc4.$(LINUX_KMOD_SUFFIX) |
| 165 | AUTOLOAD:=$(call AutoLoad,09,arc4) |
| 166 | endef |
| 167 | |
| 168 | $(eval $(call KernelPackage,crypto-arc4)) |
| 169 | |
| 170 | |
| 171 | define KernelPackage/crypto-authenc |
| 172 | $(call KernelPackage/crypto/Depends,) |
| 173 | TITLE:=Combined mode wrapper for IPsec |
| 174 | KCONFIG:=CONFIG_CRYPTO_AUTHENC |
| 175 | FILES:=$(LINUX_DIR)/crypto/authenc.$(LINUX_KMOD_SUFFIX) |
| 176 | AUTOLOAD:=$(call AutoLoad,09,authenc) |
| 177 | endef |
| 178 | |
| 179 | $(eval $(call KernelPackage,crypto-authenc)) |
| 180 | |
| 181 | define KernelPackage/crypto-des |
| 182 | $(call KernelPackage/crypto/Depends,) |
| 183 | TITLE:=DES/3DES cipher CryptoAPI module |
| 184 | KCONFIG:=CONFIG_CRYPTO_DES |
| 185 | FILES:=$(LINUX_DIR)/crypto/des$(DES_SUFFIX).$(LINUX_KMOD_SUFFIX) |
| 186 | AUTOLOAD:=$(call AutoLoad,09,des$(DES_SUFFIX)) |
| 187 | endef |
| 188 | |
| 189 | $(eval $(call KernelPackage,crypto-des)) |
| 190 | |
| 191 | |
| 192 | define KernelPackage/crypto-hmac |
| 193 | $(call KernelPackage/crypto/Depends,) |
| 194 | TITLE:=HMAC digest CryptoAPI module |
| 195 | KCONFIG:=CONFIG_CRYPTO_HMAC |
| 196 | FILES:=$(LINUX_DIR)/crypto/hmac.$(LINUX_KMOD_SUFFIX) |
| 197 | AUTOLOAD:=$(call AutoLoad,09,hmac) |
| 198 | endef |
| 199 | |
| 200 | $(eval $(call KernelPackage,crypto-hmac)) |
| 201 | |
| 202 | |
| 203 | define KernelPackage/crypto-md5 |
| 204 | $(call KernelPackage/crypto/Depends,) |
| 205 | TITLE:=MD5 digest CryptoAPI module |
| 206 | KCONFIG:=CONFIG_CRYPTO_MD5 |
| 207 | FILES:=$(LINUX_DIR)/crypto/md5.$(LINUX_KMOD_SUFFIX) |
| 208 | AUTOLOAD:=$(call AutoLoad,09,md5) |
| 209 | endef |
| 210 | |
| 211 | $(eval $(call KernelPackage,crypto-md5)) |
| 212 | |
| 213 | |
| 214 | define KernelPackage/crypto-michael-mic |
| 215 | $(call KernelPackage/crypto/Depends,) |
| 216 | TITLE:=Michael MIC keyed digest CryptoAPI module |
| 217 | KCONFIG:=CONFIG_CRYPTO_MICHAEL_MIC |
| 218 | FILES:=$(LINUX_DIR)/crypto/michael_mic.$(LINUX_KMOD_SUFFIX) |
| 219 | AUTOLOAD:=$(call AutoLoad,09,michael_mic) |
| 220 | endef |
| 221 | |
| 222 | $(eval $(call KernelPackage,crypto-michael-mic)) |
| 223 | |
| 224 | |
| 225 | define KernelPackage/crypto-sha1 |
| 226 | $(call KernelPackage/crypto/Depends,) |
| 227 | TITLE:=SHA1 digest CryptoAPI module |
| 228 | KCONFIG:=CONFIG_CRYPTO_SHA1 |
| 229 | FILES:=$(LINUX_DIR)/crypto/sha1$(SHA1_SUFFIX).$(LINUX_KMOD_SUFFIX) |
| 230 | AUTOLOAD:=$(call AutoLoad,09,sha1$(SHA1_SUFFIX)) |
| 231 | endef |
| 232 | |
| 233 | $(eval $(call KernelPackage,crypto-sha1)) |
| 234 | |
| 235 | |
| 236 | define KernelPackage/crypto-misc |
| 237 | $(call KernelPackage/crypto/Depends,) |
| 238 | TITLE:=Other CryptoAPI modules |
| 239 | KCONFIG:= \ |
| 240 | CONFIG_CRYPTO_ANUBIS \ |
| 241 | CONFIG_CRYPTO_BLOWFISH \ |
| 242 | CONFIG_CRYPTO_CAMELLIA \ |
| 243 | CONFIG_CRYPTO_CAST5 \ |
| 244 | CONFIG_CRYPTO_CAST6 \ |
| 245 | CONFIG_CRYPTO_CRC32C \ |
| 246 | CONFIG_CRYPTO_FCRYPT \ |
| 247 | CONFIG_CRYPTO_KHAZAD \ |
| 248 | CONFIG_CRYPTO_MD4 \ |
| 249 | CONFIG_CRYPTO_SERPENT \ |
| 250 | CONFIG_CRYPTO_SHA256 \ |
| 251 | CONFIG_CRYPTO_SHA512 \ |
| 252 | CONFIG_CRYPTO_TEA \ |
| 253 | CONFIG_CRYPTO_TGR192 \ |
| 254 | CONFIG_CRYPTO_TWOFISH \ |
| 255 | CONFIG_CRYPTO_TWOFISH_COMMON \ |
| 256 | CONFIG_CRYPTO_TWOFISH_586 \ |
| 257 | CONFIG_CRYPTO_WP512 |
| 258 | FILES:= \ |
| 259 | $(LINUX_DIR)/crypto/anubis.$(LINUX_KMOD_SUFFIX) \ |
| 260 | $(LINUX_DIR)/crypto/blowfish.$(LINUX_KMOD_SUFFIX) \ |
| 261 | $(LINUX_DIR)/crypto/cast5.$(LINUX_KMOD_SUFFIX) \ |
| 262 | $(LINUX_DIR)/crypto/cast6.$(LINUX_KMOD_SUFFIX) \ |
| 263 | $(LINUX_DIR)/crypto/khazad.$(LINUX_KMOD_SUFFIX) \ |
| 264 | $(LINUX_DIR)/crypto/md4.$(LINUX_KMOD_SUFFIX) \ |
| 265 | $(LINUX_DIR)/crypto/serpent.$(LINUX_KMOD_SUFFIX) \ |
| 266 | $(LINUX_DIR)/crypto/sha256$(SHA256_SUFFIX).$(LINUX_KMOD_SUFFIX) \ |
| 267 | $(LINUX_DIR)/crypto/sha512$(SHA512_SUFFIX).$(LINUX_KMOD_SUFFIX) \ |
| 268 | $(LINUX_DIR)/crypto/tea.$(LINUX_KMOD_SUFFIX) \ |
| 269 | $(LINUX_DIR)/crypto/twofish.$(LINUX_KMOD_SUFFIX) \ |
| 270 | $(LINUX_DIR)/crypto/wp512.$(LINUX_KMOD_SUFFIX) |
| 271 | endef |
| 272 | |
| 273 | define KernelPackage/crypto-misc/2.6 |
| 274 | FILES+= \ |
| 275 | $(LINUX_DIR)/crypto/camellia.$(LINUX_KMOD_SUFFIX) \ |
| 276 | $(LINUX_DIR)/crypto/crc32c.$(LINUX_KMOD_SUFFIX) \ |
| 277 | $(LINUX_DIR)/crypto/fcrypt.$(LINUX_KMOD_SUFFIX) \ |
| 278 | $(LINUX_DIR)/crypto/tgr192.$(LINUX_KMOD_SUFFIX) \ |
| 279 | $(LINUX_DIR)/crypto/twofish_common.$(LINUX_KMOD_SUFFIX) |
| 280 | endef |
| 281 | |
| 282 | define KernelPackage/crypto-misc/x86 |
| 283 | FILES+=$(LINUX_DIR)/arch/x86/crypto/twofish-i586.$(LINUX_KMOD_SUFFIX) |
| 284 | endef |
| 285 | |
| 286 | $(eval $(call KernelPackage,crypto-misc)) |
| 287 | |
| 288 | |
| 289 | define KernelPackage/crypto-ocf |
| 290 | $(call KernelPackage/crypto/Depends,@!TARGET_uml +@OPENSSL_ENGINE) |
| 291 | TITLE:=OCF modules |
| 292 | KCONFIG:= \ |
| 293 | CONFIG_OCF_OCF \ |
| 294 | CONFIG_OCF_CRYPTODEV \ |
| 295 | CONFIG_OCF_CRYPTOSOFT \ |
| 296 | CONFIG_OCF_FIPS=y \ |
| 297 | CONFIG_OCF_RANDOMHARVEST=y |
| 298 | FILES:= \ |
| 299 | $(LINUX_DIR)/crypto/ocf/ocf.$(LINUX_KMOD_SUFFIX) \ |
| 300 | $(LINUX_DIR)/crypto/ocf/cryptodev.$(LINUX_KMOD_SUFFIX) \ |
| 301 | $(LINUX_DIR)/crypto/ocf/cryptosoft.$(LINUX_KMOD_SUFFIX) |
| 302 | AUTOLOAD:=$(call AutoLoad,09, \ |
| 303 | ocf \ |
| 304 | cryptodev \ |
| 305 | cryptosoft \ |
| 306 | ) |
| 307 | endef |
| 308 | |
| 309 | $(eval $(call KernelPackage,crypto-ocf)) |
| 310 | |
| 311 | |
| 312 | define KernelPackage/crypto-null |
| 313 | $(call KernelPackage/crypto/Depends,) |
| 314 | TITLE:=Null CryptoAPI module |
| 315 | KCONFIG:=CONFIG_CRYPTO_NULL |
| 316 | FILES:=$(LINUX_DIR)/crypto/crypto_null.$(LINUX_KMOD_SUFFIX) |
| 317 | AUTOLOAD:=$(call AutoLoad,09,crypto_null) |
| 318 | endef |
| 319 | |
| 320 | $(eval $(call KernelPackage,crypto-null)) |
| 321 | |
| 322 | |
| 323 | define KernelPackage/crypto-test |
| 324 | $(call KernelPackage/crypto/Depends,) |
| 325 | TITLE:=Test CryptoAPI module |
| 326 | KCONFIG:=CONFIG_CRYPTO_TEST |
| 327 | FILES:=$(LINUX_DIR)/crypto/tcrypt.$(LINUX_KMOD_SUFFIX) |
| 328 | endef |
| 329 | |
| 330 | $(eval $(call KernelPackage,crypto-test)) |
| 331 | |
| 332 | |