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

Reply via email to