commit: 1423ede621013e6ecff72b8953f5dccd4eac1c39 Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> AuthorDate: Fri Aug 21 13:11:50 2020 +0000 Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> CommitDate: Fri Aug 21 13:11:50 2020 +0000 URL: https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=1423ede6
--luks: Add support for Serpent cipher Link: https://forums.gentoo.org/viewtopic-t-1117806.html Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org> arch/x86/modules_load | 2 +- arch/x86_64/modules_load | 2 +- defaults/modules_load | 2 +- gen_configkernel.sh | 14 ++++++++++++++ 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/arch/x86/modules_load b/arch/x86/modules_load index 9d9431d..eece01c 100644 --- a/arch/x86/modules_load +++ b/arch/x86/modules_load @@ -2,4 +2,4 @@ # (extending defaults/modules_load) # Crypto -MODULES_CRYPTO+=" crc32c-intel crc32-pclmul aes_586 aesni-intel" +MODULES_CRYPTO+=" crc32c-intel crc32-pclmul aes_586 aesni-intel serpent-sse2-i586" diff --git a/arch/x86_64/modules_load b/arch/x86_64/modules_load index 3f6a19c..d755b29 100644 --- a/arch/x86_64/modules_load +++ b/arch/x86_64/modules_load @@ -2,4 +2,4 @@ # (extending defaults/modules_load) # Crypto -MODULES_CRYPTO+=" crc32c-intel crc32-pclmul aes-x86_64 aesni-intel" +MODULES_CRYPTO+=" crc32c-intel crc32-pclmul aes-x86_64 aesni-intel serpent-sse2-x86_64 serpent-avx-x86_64 serpent-avx2" diff --git a/defaults/modules_load b/defaults/modules_load index eddd23d..8ed4c62 100644 --- a/defaults/modules_load +++ b/defaults/modules_load @@ -30,7 +30,7 @@ MODULES_USB="ehci-pci ehci-hcd xhci-hcd xhci-pci xhci-plat xhci-plat-hcd uhci us MODULES_FS="ext2 ext3 ext4 btrfs reiserfs jfs nfs xfs zfs f2fs fuse virtiofs loop squashfs aufs overlay cramfs configfs fscrypto msdos" # Crypto -MODULES_CRYPTO="sha256_generic cbc crc32 crc32c crc32c_generic crc32_generic aes_generic xts af_alg algif_skcipher algif_hash algif_aead algif_rng" +MODULES_CRYPTO="sha256_generic cbc crc32 crc32c crc32c_generic crc32_generic aes_generic xts af_alg algif_skcipher algif_hash algif_aead algif_rng serpent_generic" # Hyper-V MODULES_HYPERV="hv_utils hv_vmbus hv_balloon hyperv_keyboard hid_hyperv hv_utils hyperv_fb hv_storvsc" diff --git a/gen_configkernel.sh b/gen_configkernel.sh index 5bccf5d..d08a8d9 100755 --- a/gen_configkernel.sh +++ b/gen_configkernel.sh @@ -542,12 +542,21 @@ config_kernel() { y|m) ;; # Do nothing *) cfg_CONFIG_CRYPTO_AES=${newcfg_setting} esac + + local cfg_CONFIG_CRYPTO_SERPENT=$(kconfig_get_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_SERPENT") + case "${cfg_CONFIG_CRYPTO_SERPENT}" in + y|m) ;; # Do nothing + *) cfg_CONFIG_CRYPTO_SERPENT=${newcfg_setting} + esac + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_XTS" "${cfg_CONFIG_CRYPTO_AES}" \ && required_kernel_options+=( 'CONFIG_CRYPTO_XTS' ) kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_SHA256" "${cfg_CONFIG_CRYPTO_AES}" \ && required_kernel_options+=( 'CONFIG_CRYPTO_SHA256' ) kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_AES" "${cfg_CONFIG_CRYPTO_AES}" \ && required_kernel_options+=( 'CONFIG_CRYPTO_AES' ) + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_SERPENT" "${cfg_CONFIG_CRYPTO_SERPENT}" \ + && required_kernel_options+=( 'CONFIG_CRYPTO_SERPENT' ) kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_USER_API_HASH" "${cfg_CONFIG_CRYPTO_AES}" \ && required_kernel_options+=( 'CONFIG_CRYPTO_USER_API_HASH' ) kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_USER_API_SKCIPHER" "${cfg_CONFIG_CRYPTO_AES}" \ @@ -582,6 +591,9 @@ config_kernel() { then kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_SHA1_SSSE3" "${cfg_CONFIG_CRYPTO_AES}" kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_SHA256_SSSE3" "${cfg_CONFIG_CRYPTO_AES}" + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_SERPENT_SSE2_X86_64" "${cfg_CONFIG_CRYPTO_SERPENT}" + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_SERPENT_AVX_X86_64" "${cfg_CONFIG_CRYPTO_SERPENT}" + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_SERPENT_AVX2_X86_64" "${cfg_CONFIG_CRYPTO_SERPENT}" if [ ${KV_NUMERIC} -lt 5004 ] then @@ -592,6 +604,8 @@ config_kernel() { then kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_AES_586" "${cfg_CONFIG_CRYPTO_AES}" fi + + kconfig_set_opt "${KERNEL_OUTPUTDIR}/.config" "CONFIG_CRYPTO_SERPENT_SSE2_586" "${cfg_CONFIG_CRYPTO_SERPENT}" fi fi fi