# Check that kernel supports aes-xts-plain cipher

## crossroads1112

My root partition is encrypted with LUKS and after compiling my kernel I got the error message in the title. Here are (what I assume to be) the relevant lines from the .config. Any ideas?

```
#

# Security options

#

CONFIG_KEYS=y

# CONFIG_PERSISTENT_KEYRINGS is not set

# CONFIG_BIG_KEYS is not set

# CONFIG_ENCRYPTED_KEYS is not set

CONFIG_KEYS_DEBUG_PROC_KEYS=y

# CONFIG_SECURITY_DMESG_RESTRICT is not set

CONFIG_SECURITY=y

# CONFIG_SECURITYFS is not set

CONFIG_SECURITY_NETWORK=y

# CONFIG_SECURITY_NETWORK_XFRM is not set

# CONFIG_SECURITY_PATH is not set

# CONFIG_INTEL_TXT is not set

CONFIG_LSM_MMAP_MIN_ADDR=65536

CONFIG_SECURITY_SELINUX=y

CONFIG_SECURITY_SELINUX_BOOTPARAM=y

CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1

CONFIG_SECURITY_SELINUX_DISABLE=y

CONFIG_SECURITY_SELINUX_DEVELOP=y

CONFIG_SECURITY_SELINUX_AVC_STATS=y

CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1

# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set

# CONFIG_SECURITY_SMACK is not set

# CONFIG_SECURITY_TOMOYO is not set

# CONFIG_SECURITY_APPARMOR is not set

# CONFIG_SECURITY_YAMA is not set

# CONFIG_IMA is not set

# CONFIG_EVM is not set

CONFIG_DEFAULT_SECURITY_SELINUX=y

# CONFIG_DEFAULT_SECURITY_DAC is not set

CONFIG_DEFAULT_SECURITY="selinux"

CONFIG_XOR_BLOCKS=y

CONFIG_CRYPTO=y

#

# Crypto core or helper

#

CONFIG_CRYPTO_ALGAPI=y

CONFIG_CRYPTO_ALGAPI2=y

CONFIG_CRYPTO_AEAD=y

CONFIG_CRYPTO_AEAD2=y

CONFIG_CRYPTO_BLKCIPHER=y

CONFIG_CRYPTO_BLKCIPHER2=y

CONFIG_CRYPTO_HASH=y

CONFIG_CRYPTO_HASH2=y

CONFIG_CRYPTO_RNG=y

CONFIG_CRYPTO_RNG2=y

CONFIG_CRYPTO_PCOMP2=y

CONFIG_CRYPTO_MANAGER=y

CONFIG_CRYPTO_MANAGER2=y

CONFIG_CRYPTO_USER=m

CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y

CONFIG_CRYPTO_GF128MUL=y

# CONFIG_CRYPTO_NULL is not set

# CONFIG_CRYPTO_PCRYPT is not set

CONFIG_CRYPTO_WORKQUEUE=y

CONFIG_CRYPTO_CRYPTD=y

CONFIG_CRYPTO_AUTHENC=y

# CONFIG_CRYPTO_TEST is not set

CONFIG_CRYPTO_ABLK_HELPER=y

CONFIG_CRYPTO_GLUE_HELPER_X86=y

#

# Authenticated Encryption with Associated Data

#

CONFIG_CRYPTO_CCM=y

# CONFIG_CRYPTO_GCM is not set

CONFIG_CRYPTO_SEQIV=y

#

# Block modes

#

CONFIG_CRYPTO_CBC=y

CONFIG_CRYPTO_CTR=y

# CONFIG_CRYPTO_CTS is not set

CONFIG_CRYPTO_ECB=y

CONFIG_CRYPTO_LRW=y

# CONFIG_CRYPTO_PCBC is not set

CONFIG_CRYPTO_XTS=y

#

# Hash modes

#

# CONFIG_CRYPTO_CMAC is not set

CONFIG_CRYPTO_HMAC=y

# CONFIG_CRYPTO_XCBC is not set

# CONFIG_CRYPTO_VMAC is not set

#

# Digest

#

CONFIG_CRYPTO_CRC32C=y

CONFIG_CRYPTO_CRC32C_INTEL=y

CONFIG_CRYPTO_CRC32=y

CONFIG_CRYPTO_CRC32_PCLMUL=y

# CONFIG_CRYPTO_CRCT10DIF is not set

# CONFIG_CRYPTO_GHASH is not set

# CONFIG_CRYPTO_MD4 is not set

CONFIG_CRYPTO_MD5=y

CONFIG_CRYPTO_MICHAEL_MIC=y

# CONFIG_CRYPTO_RMD128 is not set

# CONFIG_CRYPTO_RMD160 is not set

# CONFIG_CRYPTO_RMD256 is not set

# CONFIG_CRYPTO_RMD320 is not set

CONFIG_CRYPTO_SHA1=y

CONFIG_CRYPTO_SHA1_SSSE3=y

CONFIG_CRYPTO_SHA256_SSSE3=y

CONFIG_CRYPTO_SHA512_SSSE3=y

CONFIG_CRYPTO_SHA256=y

CONFIG_CRYPTO_SHA512=y

# CONFIG_CRYPTO_TGR192 is not set

# CONFIG_CRYPTO_WP512 is not set

# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set

#

# Ciphers

#

CONFIG_CRYPTO_AES=y

CONFIG_CRYPTO_AES_X86_64=y

CONFIG_CRYPTO_AES_NI_INTEL=y

# CONFIG_CRYPTO_ANUBIS is not set

CONFIG_CRYPTO_ARC4=y

CONFIG_CRYPTO_BLOWFISH=m

CONFIG_CRYPTO_BLOWFISH_COMMON=m

CONFIG_CRYPTO_BLOWFISH_X86_64=m

# CONFIG_CRYPTO_CAMELLIA is not set

# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set

# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set

# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set

# CONFIG_CRYPTO_CAST5 is not set

# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set

# CONFIG_CRYPTO_CAST6 is not set

# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set

CONFIG_CRYPTO_DES=y

# CONFIG_CRYPTO_FCRYPT is not set

# CONFIG_CRYPTO_KHAZAD is not set

# CONFIG_CRYPTO_SALSA20 is not set

# CONFIG_CRYPTO_SALSA20_X86_64 is not set

# CONFIG_CRYPTO_SEED is not set

CONFIG_CRYPTO_SERPENT=m

CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m

CONFIG_CRYPTO_SERPENT_AVX_X86_64=m

CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m

# CONFIG_CRYPTO_TEA is not set

CONFIG_CRYPTO_TWOFISH=m

CONFIG_CRYPTO_TWOFISH_COMMON=m

CONFIG_CRYPTO_TWOFISH_X86_64=m

CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m

CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m

#

# Compression

#

# CONFIG_CRYPTO_DEFLATE is not set

# CONFIG_CRYPTO_ZLIB is not set

CONFIG_CRYPTO_LZO=y

CONFIG_CRYPTO_LZ4=y

# CONFIG_CRYPTO_LZ4HC is not set

#

# Random Number Generation

#

CONFIG_CRYPTO_ANSI_CPRNG=m

CONFIG_CRYPTO_USER_API=m

CONFIG_CRYPTO_USER_API_HASH=m

CONFIG_CRYPTO_USER_API_SKCIPHER=m

CONFIG_CRYPTO_HASH_INFO=y

CONFIG_CRYPTO_HW=y

# CONFIG_CRYPTO_DEV_PADLOCK is not set

# CONFIG_CRYPTO_DEV_CCP is not set

CONFIG_ASYMMETRIC_KEY_TYPE=y

CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y

CONFIG_PUBLIC_KEY_ALGO_RSA=y

CONFIG_X509_CERTIFICATE_PARSER=y

CONFIG_HAVE_KVM=y

CONFIG_HAVE_KVM_IRQCHIP=y

CONFIG_HAVE_KVM_IRQ_ROUTING=y

CONFIG_HAVE_KVM_EVENTFD=y

CONFIG_KVM_APIC_ARCHITECTURE=y

CONFIG_KVM_MMIO=y

CONFIG_KVM_ASYNC_PF=y

CONFIG_HAVE_KVM_MSI=y

CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y

CONFIG_KVM_VFIO=y

CONFIG_VIRTUALIZATION=y

CONFIG_KVM=m

CONFIG_KVM_INTEL=m

# CONFIG_KVM_AMD is not set

# CONFIG_KVM_MMU_AUDIT is not set

CONFIG_KVM_DEVICE_ASSIGNMENT=y

CONFIG_BINARY_PRINTF=y

```

----------

## Ant P.

With those settings, your /proc/crypto should have an entry for "__xts-aes-aesni". Is there?

----------

## crossroads1112

If I can't boot into it, how would you propose I check? If I boot into a live environment, I'd just end up mounting the live environment's /proc

----------

## Hu

I suggest using cat from your initramfs rescue shell mode.

----------

## crossroads1112

A bit of a dumb question I suppose but how do I force it to go into the initramfs shell?

----------

## Hu

That depends on how your initramfs init process works.  Good initramfs will often drop you to a rescue shell automatically in case of critical errors.  Consult the creator of your initramfs for more help.

----------

## Menabrea

I have the same exact problem. I encrypted the gentoo partition using aes-xts-plain, included both AES and XTS support in kernel configuration but i got the exact same error. I'll check /proc from inutramfs asap.

----------

## Menabrea

After checking /proc/crypto from initramfs shell the only aes modules loaded are aes-generic and aes-gcm. This kinda surprise me since the aes-cbc  module is forced to yes by default. Is there a specific options to enable support for block ciphers in general?

----------

## kernelOfTruth

just compare against or replace with my config - it works here:

```
zcat /proc/config.gz | grep -i CRYPTO

# CONFIG_BLK_DEV_CRYPTOLOOP is not set

CONFIG_CRYPTO=y

# Crypto core or helper

CONFIG_CRYPTO_ALGAPI=y

CONFIG_CRYPTO_ALGAPI2=y

CONFIG_CRYPTO_AEAD=y

CONFIG_CRYPTO_AEAD2=y

CONFIG_CRYPTO_BLKCIPHER=y

CONFIG_CRYPTO_BLKCIPHER2=y

CONFIG_CRYPTO_HASH=y

CONFIG_CRYPTO_HASH2=y

CONFIG_CRYPTO_RNG=y

CONFIG_CRYPTO_RNG2=y

CONFIG_CRYPTO_PCOMP=y

CONFIG_CRYPTO_PCOMP2=y

CONFIG_CRYPTO_MANAGER=y

CONFIG_CRYPTO_MANAGER2=y

# CONFIG_CRYPTO_USER is not set

# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set

CONFIG_CRYPTO_GF128MUL=y

CONFIG_CRYPTO_NULL=y

CONFIG_CRYPTO_PCRYPT=y

CONFIG_CRYPTO_WORKQUEUE=y

CONFIG_CRYPTO_CRYPTD=y

# CONFIG_CRYPTO_MCRYPTD is not set

CONFIG_CRYPTO_AUTHENC=y

CONFIG_CRYPTO_TEST=m

CONFIG_CRYPTO_ABLK_HELPER=y

CONFIG_CRYPTO_GLUE_HELPER_X86=y

CONFIG_CRYPTO_CCM=y

CONFIG_CRYPTO_GCM=y

CONFIG_CRYPTO_SEQIV=y

CONFIG_CRYPTO_CBC=y

CONFIG_CRYPTO_CTR=y

CONFIG_CRYPTO_CTS=y

CONFIG_CRYPTO_ECB=y

CONFIG_CRYPTO_LRW=y

CONFIG_CRYPTO_PCBC=y

CONFIG_CRYPTO_XTS=y

CONFIG_CRYPTO_CMAC=y

CONFIG_CRYPTO_HMAC=y

CONFIG_CRYPTO_XCBC=y

CONFIG_CRYPTO_VMAC=y

CONFIG_CRYPTO_CRC32C=y

CONFIG_CRYPTO_CRC32C_INTEL=y

CONFIG_CRYPTO_CRC32=y

CONFIG_CRYPTO_CRC32_PCLMUL=y

CONFIG_CRYPTO_CRCT10DIF=y

CONFIG_CRYPTO_CRCT10DIF_PCLMUL=y

CONFIG_CRYPTO_GHASH=y

CONFIG_CRYPTO_MD4=y

CONFIG_CRYPTO_MD5=y

CONFIG_CRYPTO_MICHAEL_MIC=y

CONFIG_CRYPTO_RMD128=y

CONFIG_CRYPTO_RMD160=y

CONFIG_CRYPTO_RMD256=y

CONFIG_CRYPTO_RMD320=y

CONFIG_CRYPTO_SHA1=y

CONFIG_CRYPTO_SHA1_SSSE3=y

CONFIG_CRYPTO_SHA256_SSSE3=y

CONFIG_CRYPTO_SHA512_SSSE3=y

# CONFIG_CRYPTO_SHA1_MB is not set

CONFIG_CRYPTO_SHA256=y

CONFIG_CRYPTO_SHA512=y

CONFIG_CRYPTO_TGR192=y

CONFIG_CRYPTO_WP512=y

CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=y

CONFIG_CRYPTO_AES=y

CONFIG_CRYPTO_AES_X86_64=y

CONFIG_CRYPTO_AES_NI_INTEL=y

CONFIG_CRYPTO_ANUBIS=y

CONFIG_CRYPTO_ARC4=y

CONFIG_CRYPTO_BLOWFISH=y

CONFIG_CRYPTO_BLOWFISH_COMMON=y

CONFIG_CRYPTO_BLOWFISH_X86_64=y

CONFIG_CRYPTO_CAMELLIA=y

CONFIG_CRYPTO_CAMELLIA_X86_64=y

CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=y

CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=y

CONFIG_CRYPTO_CAST_COMMON=y

CONFIG_CRYPTO_CAST5=y

CONFIG_CRYPTO_CAST5_AVX_X86_64=y

CONFIG_CRYPTO_CAST6=y

CONFIG_CRYPTO_CAST6_AVX_X86_64=y

CONFIG_CRYPTO_DES=y

CONFIG_CRYPTO_DES3_EDE_X86_64=y

CONFIG_CRYPTO_FCRYPT=y

CONFIG_CRYPTO_KHAZAD=y

CONFIG_CRYPTO_SALSA20=y

CONFIG_CRYPTO_SALSA20_X86_64=y

CONFIG_CRYPTO_SEED=y

CONFIG_CRYPTO_SERPENT=y

CONFIG_CRYPTO_SERPENT_SSE2_X86_64=y

CONFIG_CRYPTO_SERPENT_AVX_X86_64=y

CONFIG_CRYPTO_SERPENT_AVX2_X86_64=y

CONFIG_CRYPTO_TEA=y

CONFIG_CRYPTO_TWOFISH=y

CONFIG_CRYPTO_TWOFISH_COMMON=y

CONFIG_CRYPTO_TWOFISH_X86_64=y

CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=y

CONFIG_CRYPTO_TWOFISH_AVX_X86_64=y

CONFIG_CRYPTO_DEFLATE=y

CONFIG_CRYPTO_ZLIB=y

CONFIG_CRYPTO_LZO=y

CONFIG_CRYPTO_LZ4=y

CONFIG_CRYPTO_LZ4HC=y

CONFIG_CRYPTO_ANSI_CPRNG=m

# CONFIG_CRYPTO_DRBG_MENU is not set

CONFIG_CRYPTO_USER_API=y

CONFIG_CRYPTO_USER_API_HASH=m

CONFIG_CRYPTO_USER_API_SKCIPHER=m

CONFIG_CRYPTO_USER_API_RNG=y

CONFIG_CRYPTO_HASH_INFO=y

CONFIG_CRYPTO_HW=y

CONFIG_CRYPTO_DEV_PADLOCK=m

CONFIG_CRYPTO_DEV_PADLOCK_AES=m

CONFIG_CRYPTO_DEV_PADLOCK_SHA=m

# CONFIG_CRYPTO_DEV_CCP is not set

# CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set

```

but I'm using aes-xts-benbi instead of plain

http://www.spinics.net/lists/dm-crypt/msg01080.html

http://blog.wpkg.org/2009/04/23/cipher-benchmark-for-dm-crypt-luks/

----------

## Menabrea

I have copypasted your configuration (after removing mine), and commented out the x86_64 entries (my cpu is an old core2 which is 32 bit only) and the hardware ones (padlock and aesni).

Copied the new bzImage but it still doesn't work.

Here is my /proc/crypto from initramfs shell:

```

name         : ghash

driver       : ghash-generic

module       : kernel

priority     : 100

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 16

digestsize   : 16

name         : stdrng

driver       : ansi_cprng

module       : kernel

priority     : 100

refcnt       : 1

selftest     : passed

type         : rng

seedsize     : 48

name         : stdrng

driver       : krng

module       : kernel

priority     : 200

refcnt       : 1

selftest     : passed

type         : rng

seedsize     : 0

name         : lz4hc

driver       : lz4hc-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : compression

name         : lz4

driver       : lz4-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : compression

name         : lzo

driver       : lzo-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : compression

name         : crct10dif

driver       : crct10dif-generic

module       : kernel

priority     : 100

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 1

digestsize   : 2

name         : crc32

driver       : crc32-table

module       : kernel

priority     : 100

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 1

digestsize   : 4

name         : crc32c

driver       : crc32c-generic

module       : kernel

priority     : 100

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 1

digestsize   : 4

name         : michael_mic

driver       : michael_mic-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 8

digestsize   : 8

name         : zlib

driver       : zlib-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : pcomp

name         : deflate

driver       : deflate-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : compression

name         : salsa20

driver       : salsa20-generic

module       : kernel

priority     : 100

refcnt       : 1

selftest     : passed

type         : blkcipher

blocksize    : 1

min keysize  : 16

max keysize  : 32

ivsize       : 8

geniv        : <default>

name         : seed

driver       : seed-generic

module       : kernel

priority     : 100

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 16

min keysize  : 16

max keysize  : 16

name         : anubis

driver       : anubis-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 16

min keysize  : 16

max keysize  : 40

name         : khazad

driver       : khazad-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 8

min keysize  : 16

max keysize  : 16

name         : xeta

driver       : xeta-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 8

min keysize  : 16

max keysize  : 16

name         : xtea

driver       : xtea-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 8

min keysize  : 16

max keysize  : 16

name         : tea

driver       : tea-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 8

min keysize  : 16

max keysize  : 16

name         : ecb(arc4)

driver       : ecb(arc4)-generic

module       : kernel

priority     : 100

refcnt       : 1

selftest     : passed

type         : blkcipher

blocksize    : 1

min keysize  : 1

max keysize  : 256

ivsize       : 0

geniv        : <default>

name         : arc4

driver       : arc4-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 1

min keysize  : 1

max keysize  : 256

name         : cast6

driver       : cast6-generic

module       : kernel

priority     : 100

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 16

min keysize  : 16

max keysize  : 32

name         : cast5

driver       : cast5-generic

module       : kernel

priority     : 100

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 8

min keysize  : 5

max keysize  : 16

name         : camellia

driver       : camellia-generic

module       : kernel

priority     : 100

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 16

min keysize  : 16

max keysize  : 32

name         : aes

driver       : aes-generic

module       : kernel

priority     : 100

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 16

min keysize  : 16

max keysize  : 32

name         : tnepres

driver       : tnepres-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 16

min keysize  : 0

max keysize  : 32

name         : serpent

driver       : serpent-generic

module       : kernel

priority     : 100

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 16

min keysize  : 0

max keysize  : 32

name         : twofish

driver       : twofish-generic

module       : kernel

priority     : 100

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 16

min keysize  : 16

max keysize  : 32

name         : blowfish

driver       : blowfish-generic

module       : kernel

priority     : 100

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 8

min keysize  : 4

max keysize  : 56

name         : fcrypt

driver       : fcrypt-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 8

min keysize  : 8

max keysize  : 8

name         : des3_ede

driver       : des3_ede-generic

module       : kernel

priority     : 100

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 8

min keysize  : 24

max keysize  : 24

name         : des

driver       : des-generic

module       : kernel

priority     : 100

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 8

min keysize  : 8

max keysize  : 8

name         : tgr128

driver       : tgr128-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 64

digestsize   : 16

name         : tgr160

driver       : tgr160-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 64

digestsize   : 20

name         : tgr192

driver       : tgr192-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 64

digestsize   : 24

name         : wp256

driver       : wp256-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 64

digestsize   : 32

name         : wp384

driver       : wp384-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 64

digestsize   : 48

name         : wp512

driver       : wp512-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 64

digestsize   : 64

name         : sha384

driver       : sha384-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 128

digestsize   : 48

name         : sha512

driver       : sha512-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 128

digestsize   : 64

name         : sha224

driver       : sha224-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 64

digestsize   : 28

name         : sha256

driver       : sha256-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 64

digestsize   : 32

name         : sha1

driver       : sha1-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 64

digestsize   : 20

name         : rmd320

driver       : rmd320-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 64

digestsize   : 40

name         : rmd256

driver       : rmd256-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 64

digestsize   : 32

name         : rmd160

driver       : rmd160-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 64

digestsize   : 20

name         : rmd128

driver       : rmd128-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 64

digestsize   : 16

name         : md5

driver       : md5-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 64

digestsize   : 16

name         : md4

driver       : md4-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 64

digestsize   : 16

name         : digest_null

driver       : digest_null-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : shash

blocksize    : 1

digestsize   : 0

name         : compress_null

driver       : compress_null-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : compression

name         : ecb(cipher_null)

driver       : ecb-cipher_null

module       : kernel

priority     : 100

refcnt       : 1

selftest     : passed

type         : blkcipher

blocksize    : 1

min keysize  : 0

max keysize  : 0

ivsize       : 0

geniv        : <default>

name         : cipher_null

driver       : cipher_null-generic

module       : kernel

priority     : 0

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 1

min keysize  : 0

max keysize  : 0

name         : aes

driver       : aes-asm

module       : kernel

priority     : 200

refcnt       : 1

selftest     : passed

type         : cipher

blocksize    : 16

min keysize  : 16

max keysize  : 32

```

----------

## kernelOfTruth

disable all crypto features that are NOT supported on your hardware (meaning: the AES-NI, or eventually SSE3-accelerated ciphers)

also try booting your kernel with

```
 rdblacklist=aesni-intel
```

according to https://bugzilla.redhat.com/show_bug.cgi?id=589390 there was a similar issue (but with hardware that supported AES-NI)

so potential issues with hardware that doesn't support it are out of the way

otherwise: 

what kernel version ? genkernel used ?

what else is special in your configuration or used ?

----------

## Menabrea

Still no luck, but for completeness i'm going to post full kernel config, crypto with that config, cpuninfo and bootlines.

Kernel (i did not use genkernel for the kernel, just to generate the initramfs), the profile is the hardened one and the version the one that come from the repos without any special setting

http://sprunge.us/fGQR

/proc/crypto with that kernel

http://sprunge.us/XEPR

/proc/cpuinfo

```

processor   : 0

vendor_id   : GenuineIntel

cpu family   : 6

model      : 14

model name   : Intel(R) Core(TM) Duo CPU      U2500  @ 1.20GHz

stepping   : 12

microcode   : 0x54

cpu MHz      : 800.000

cache size   : 2048 KB

physical id   : 0

siblings   : 2

core id      : 0

cpu cores   : 2

apicid      : 0

initial apicid   : 0

fdiv_bug   : no

f00f_bug   : no

coma_bug   : no

fpu      : yes

fpu_exception   : yes

cpuid level   : 10

wp      : yes

flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon bts aperfmperf pni monitor vmx est tm2 xtpr pdcm dtherm

bugs      :

bogomips   : 2393.86

clflush size   : 64

cache_alignment   : 64

address sizes   : 32 bits physical, 32 bits virtual

power management:

processor   : 1

vendor_id   : GenuineIntel

cpu family   : 6

model      : 14

model name   : Intel(R) Core(TM) Duo CPU      U2500  @ 1.20GHz

stepping   : 12

microcode   : 0x54

cpu MHz      : 800.000

cache size   : 2048 KB

physical id   : 0

siblings   : 2

core id      : 1

cpu cores   : 2

apicid      : 1

initial apicid   : 1

fdiv_bug   : no

f00f_bug   : no

coma_bug   : no

fpu      : yes

fpu_exception   : yes

cpuid level   : 10

wp      : yes

flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon bts aperfmperf pni monitor vmx est tm2 xtpr pdcm dtherm

bugs      :

bogomips   : 2393.86

clflush size   : 64

cache_alignment   : 64

address sizes   : 32 bits physical, 32 bits virtual

power management:

```

(it does support sse3 righ? the wiki states to search for 'pni' which is there)

And boot lines from syslinux

 *Quote:*   

> 
> 
> LABEL gentoo
> 
>     MENU LABEL Gentoo (hardened)
> ...

 

(yes, each time i copy bzImage to kernel-gentoo)

----------

## kernelOfTruth

it's easy to mix up sse3 and ssse3 (mark the 3 `s`) 

```
zcat /proc/config.gz | grep -i SSSE3

CONFIG_CRYPTO_SHA1_SSSE3=y

CONFIG_CRYPTO_SHA256_SSSE3=y

CONFIG_CRYPTO_SHA512_SSSE3=y

```

<-- also make sure to deselect or blacklist these

sorry, currently I'm out of ideas why it would fail or not work

edit:

might be some issue that genkernel doesn't include the relevant packages or cryptsetup/luks isn't configured properly

http://www.gentooforum.de/artikel/20223/genkernel-luks-problem-crypto-module-werden-nicht-in-die-initramfs-integriert.html

(German thread, you can attempt to translate it via Chromium/Chrome or translate.google.com)

how do you build your kernel ? (the command you use for genkernel)

----------

## s4e8

set CONFIG_CRYPTO_USER_API=y and CONFIG_DM_CRYPT=y maybe helpful.

----------

