# switching from aes to aes_i586: no key available

## theDOC_23

Hi,

I just noticed that aes_i586 wasn't enabled in my kernel setup, so I turned it on. After that LUKS failed to open the device with "No key available with this passphrase.". The drive is encrypted with aes-xts-plain. 

Shouldn't the two produce the same data and is there any way I can tell luks to use the "normal" aes module not the optimized i586 one?

----------

## Sadako

what does `grep -B 1 driver /proc/crypto` return?

----------

## theDOC_23

```
name         : xts(aes)

driver       : xts(aes-asm)

--

name         : xts(aes)

driver       : xts(aes-asm)

--

name         : aes

driver       : aes-asm

--

name         : cbc(blowfish)

driver       : cbc(blowfish-generic)

--

name         : cbc(blowfish)

driver       : cbc(blowfish-generic)

--

name         : ecb(arc4)

driver       : ecb(arc4-generic)

--

name         : lzo

driver       : lzo-generic

--

name         : lzf

driver       : lzf-generic

--

name         : arc4

driver       : arc4-generic

--

name         : aes

driver       : aes-generic

--

name         : tnepres

driver       : tnepres-generic

--

name         : serpent

driver       : serpent-generic

--

name         : blowfish

driver       : blowfish-generic

--

name         : sha512

driver       : sha512-generic

--

name         : sha384

driver       : sha384-generic

--

name         : sha256

driver       : sha256-generic

--

name         : sha224

driver       : sha224-generic

--

name         : sha1

driver       : sha1-generic

--

name         : md5

driver       : md5-generic
```

----------

## theDOC_23

ok, this is strange, if the aes-i586 module is loaded even this does not work:

```
# cryptsetup luksFormat /dev/sdb5 

WARNING!

========

This will overwrite data on /dev/sdb5 irrevocably.

Are you sure? (Type uppercase yes): YES

Enter LUKS passphrase: 

Verify passphrase: 

Command successful.

# cryptsetup luksDump /dev/sdb5 

LUKS header information for /dev/sdb5

Version:        1

Cipher name:    aes

Cipher mode:    cbc-essiv:sha256

Hash spec:      sha1

Payload offset: 1032

MK bits:        128

MK digest:      b9 bf ea b3 25 25 29 cb 4e 1c ae 0f 4c e7 2d 75 47 e7 49 99 

MK salt:        1e 5b e7 7c 8d 06 6a 10 a3 9e d0 d0 9c b9 17 28 

                07 c0 2f 4e c8 53 ce f3 e4 91 f7 1b 9b 73 5c 3d 

MK iterations:  10

UUID:           24ba47b8-cf6f-4a95-ace0-82626d3f41cb

Key Slot 0: ENABLED

        Iterations:             108072

        Salt:                   a1 00 1d 98 a7 7d 28 45 09 ca ca cc 54 76 f0 1a 

                                3d 64 df 21 8c 8f c1 c3 02 2e ee bf f3 68 06 4c 

        Key material offset:    8

        AF stripes:             4000

Key Slot 1: DISABLED

Key Slot 2: DISABLED

Key Slot 3: DISABLED

Key Slot 4: DISABLED

Key Slot 5: DISABLED

Key Slot 6: DISABLED

Key Slot 7: DISABLED

# cryptsetup luksOpen /dev/sdb5 sdb5

Enter LUKS passphrase: 

Enter LUKS passphrase: 

Enter LUKS passphrase: 

Command failed: No key available with this passphrase.
```

I chose an extra easy password, so I'm sure I didn't mistype it. If I unload the i586 module, everything works fine...

I am using zen-sources-2.6.26-r21 as a kernel, because of reiser4 and aufs. Maybe I'm wrong, but I don't think they touch the crypto stuff...

----------

