All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andreas Gerlich <linux-crypto@online.de>
To: linux-crypto@vger.kernel.org
Subject: hifn_795x and geode-aes module
Date: Sat, 01 Nov 2008 18:22:35 +0100	[thread overview]
Message-ID: <490C905B.10807@online.de> (raw)

Hello,

hardware:  net5510-70 (Soekris board) 500 Mhz
	   vpn1401 (Soekris) PCI-card with HIFN 7955

software:  Debian Linux Lenny/sid, standart installation
	   kernel 2.6.27.4 from kernel.org and
	   the kernel 2.6.26 which belongs to Debian Lenny/sid

Console:   serial line (no vga present on that board)

-----------------------------------------------------------
Crypto-Options: aes-cbc-essiv:sha256, keysize=128

After I have created the the device and have made a mkfs:

command: time dd if=/dev/zero of=xxx.img bs=1024 count=700000

	without goede-aes (128 Bit keylength)	1m40.313s, 1m44.596s
	(hifn_795x module also unloaded)

	with geode-aes (128 Bit keylength)	36.792s,   37.774s
	(hifn_795x module unloaded)

command: time cat 700MB-file >/dev/null

	without geode-aes (128 Bit keylength)	1m35.057s, 1m36.257s
	(hifn_795x module also unloaded)

	with geode-aes (128 Bit keylength):	32.546s,   32.656s
	(hifn_795x module unloaded)

It seems the geode-aes module works very well (keysize 128 bit)!!!


Crypto-Options: aes-cbc-essiv:sha256, keysize=256 <<<

command: time dd if=/dev/zero of=xxx.img bs=1024 count=700000

	with geode-aes & hifn_795x		2m11.968s, 2m16.296s

	without geode-aes & hifn_795x		2m9.441s,  2m9.779s

geode-aes are not used because it works only with keysize 128 Bit.
But it seems the hifn_795x module are also not used.

Look with lsmod for the usage (when the crypted partition is mounted and
geode-aes
and hifn_795x module is loaded):
-----------------------------------------------------------------------------------
piepmatz:/var/log# lsmod
Module                  Size  Used by
sha256_generic         11392  0
aes_i586                7680  2
aes_generic            27816  1 aes_i586
cbc                     3456  1
ipv6                  221668  18
dm_crypt               11140  1
dm_snapshot            15136  0
dm_mirror              15104  0
dm_log                  8192  1 dm_mirror
dm_mod                 46252  6 dm_crypt,dm_snapshot,dm_mirror,dm_log

...

hifn_795x              17156  0  <------------------ !!!
rng_core                3844  2 geode_rng,hifn_795x
des_generic            16384  1 hifn_795x
cs5535_gpio             3656  0
geode_aes               5508  3  <------------------ !!!
soundcore               5956  1 snd
crypto_blkcipher       15108  5 cbc,dm_crypt,hifn_795x,geode_aes

...

piepmatz:/var/log# _
-------------------------------------------------------------------------------------

geode-aes is used by 3
hifn_795x is used by 0 !!!

When I umount and close with "cryptsetup luksClose ..." the device
I unload geode-aes and load only the hifn_795x module:
then I try to mount:
-------------------------------------------------------------------------------------
piepmatz:~# miscmount
cryptsetup luksOpen /dev/hdb4 sehrsicher
Enter LUKS passphrase:
key slot 0 unlocked.

  Now I waits ca. 4 minutes until the next message ...

Command successful.
fsck.ext2 /dev/mapper/sehrsicher
e2fsck 1.41.2 (02-Oct-2008)

  Now I wait ...... after 10 minutes ......


--------------------------------------------------------------------------------------

In an another login I made a lsmod:
----------------------------------------------------------------------------
piepmatz:~# lsmod
Module                  Size  Used by
hifn_795x              17156  1 <------------------ !!!
des_generic            16384  1 hifn_795x
sha256_generic         11392  0
aes_i586                7680  1
aes_generic            27816  1 aes_i586
cbc                     3456  0
ipv6                  221668  18
dm_crypt               11140  1
dm_snapshot            15136  0
dm_mirror              15104  0
dm_log                  8192  1 dm_mirror
dm_mod                 46252  6 dm_crypt,dm_snapshot,dm_mirror,dm_log

...

crypto_blkcipher       15108  4 hifn_795x,cbc,dm_crypt
...
piepmatz:~# _
-----------------------------------------------------------------------------

The hifn_795x module is used by 1 process, but it doesn't work.

-------------------------------------------------------------

I try the same with the original linux kernel (2.6.26) which belongs to
Debian Lenny/sid:

With geode-aes & hifn_795x:

-----------------------------------------------------------------------------

(/dev/hdb4 is created with keysize 256 bit)

piepmatz:~# miscmount
cryptsetup luksOpen /dev/hdb4 sehrsicher
Enter LUKS passphrase:
key slot 0 unlocked.
Command successful.
fsck.ext2 /dev/mapper/sehrsicher
e2fsck 1.41.2 (02-Oct-2008)
MISC: sauber, 12/19226624 Dateien, 1397936/76884824 Blöcke
mount -o noatime /dev/mapper/sehrsicher /misc
piepmatz:~#
piepmatz:~# lsmod
Module                  Size  Used by
sha256_generic         11392  0
aes_i586                7680  2
aes_generic            29224  1 aes_i586
cbc                     3200  1
ipv6                  225172  18
dm_crypt               11012  1
dm_snapshot            14240  0
dm_mirror              14720  0
dm_log                  8192  1 dm_mirror
dm_mod                 45384  6 dm_crypt,dm_snapshot,dm_mirror,dm_log

...

hifn_795x              17028  0  <------------- !!!
cs5535_gpio             3804  0
rng_core                3972  2 geode_rng,hifn_795x
des_generic            16640  1 hifn_795x
geode_aes               5508  3  <------------- !!!
soundcore               6112  1 snd
crypto_blkcipher       14724  5 cbc,dm_crypt,hifn_795x,geode_aes

...

piepmatz:~# cd /misc
piepmatz:/misc# time dd if=/dev/zero of=xxx.img bs=1024 count=700000
700000+0 Datensätze ein
700000+0 Datensätze aus
716800000 Bytes (717 MB) kopiert, 124,913 s, 5,7 MB/s

real    2m6.286s
user    0m0.940s
sys     0m10.669s
piepmatz:/misc#
piepmatz:/misc# rm xxx.img
piepmatz:/misc# time dd if=/dev/zero of=xxx.img bs=1024 count=700000
700000+0 Datensätze ein
700000+0 Datensätze aus
716800000 Bytes (717 MB) kopiert, 124,961 s, 5,7 MB/s

real    2m4.987s
user    0m0.880s
sys     0m10.345s
piepmatz:/misc#
-------------------------------------------------------------------------------------


I unload geode-aes and let the hifn_795x

-------------------------------------------------------------------------------------
piepmatz:/misc# cd
piepmatz:~# miscumount
umount /misc
cryptsetup luksClose sehrsicher
piepmatz:~#
piepmatz:~# modprobe -r geode-aes
piepmatz:~# miscmount
cryptsetup luksOpen /dev/hdb4 sehrsicher
Enter LUKS passphrase:
[  895.128730] device-mapper: table: 254:0: crypt: Block size of ESSIV
cipher does not match IV size of block cipher
[  895.131582] device-mapper: ioctl: error adding target to table
[  895.201864] device-mapper: ioctl: device doesn't appear to be in the
dev hash table.
Command failed: No key available with this passphrase.

piepmatz:~#
-------------------------------------------------------------------------------------

I try an another chiper ("aes-cbc-plain", keysize 256 Bit)


piepmatz:/usr/local/sbin# createmisc
cryptsetup -c aes-cbc-plain -y -s 256 luksFormat /dev/hdb4

WARNING!
========
This will overwrite data on /dev/hdb4 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
[ 1106.016371] device-mapper: crypt: Selected cipher does not support IVs
[ 1127.932915] ------------[ cut here ]------------
[ 1127.935606] kernel BUG at mm/slab.c:3008!
[ 1127.935606] invalid opcode: 0000 [#1]
[ 1127.935606] Modules linked in: sha256_generic aes_i586 aes_generic
cbc ipv6 dm_crypt dm_snapshot dm_mirror dm_log dm_mod loop evdev
snd_pcsp snd_pcm_oss snd_pcm snd_mixer_oss snd_seq_dummy geode_rng
snd_seq_oss snd_seq_midi_event snd_seq snd_timer snd_seq_device
hifn_795x cs5535_gpio rng_core snd des_generic soundcore
crypto_blkcipher snd_page_alloc ext2 mbcache ide_disk ata_generic libata
scsi_mod dock ide_pci_generic ohci_hcd ehci_hcd amd74xx ide_core usbcore
via_rhine mii thermal_sys [laaded: geode_aes]27.935606]
[ 1127.935606] Pid: 2148, comm: sshd Not tainted (2.6.26-1-486 #1)
[ 1127.935606] EIP: 0060:[<c0162f1d>] EFLAGS: 00010092 CPU: 0
[ 1127.935606] EIP is at cache_alloc_refill+0xc4/0x3e3
[ 1127.935606] EAX: 0000001e EBX: 00000000 ECX: df401240 EDX: df401240
[ 1127.935606] ESI: df740020 EDI: df4031a0 EBP: df406800 ESP: df6b7e9c
[ 1127.935606]  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
[ 1127.935606] Process sshd (pid: 2148, ti=df6b6000 task=de2d1400
task.ti=df6b6000)
[ 1127.935606] Stack: 00000001 de7bc56c 000000d0 df401240 00000010
00000001 00000000 00000001
[ 1127.935606]        c0349480 df401240 00000296 000000d0 c0162e1c
c0349480 fffffffe de0d93c0
[ 1127.935606]        00000000 c0189afb df6b7fb8 de0d93c0 00000007
de7bc56c df6b7f44 00000000
[ 1127.935606] Call Trace:
[ 1127.935606]  [<c0162e1c>] kmem_cache_alloc+0x40/0x7d
[ 1127.935606]  [<c0189afb>] load_elf_binary+0x1d/0x103d
[ 1127.935606]  [<c01560be>] get_user_pages+0x29d/0x32d
[ 1127.935606]  [<c0168406>] get_arg_page+0x2a/0x79
[ 1127.935606]  [<c0168650>] copy_strings+0x161/0x16b
[ 1127.935606]  [<c01686fc>] search_binary_handler+0x76/0x17c
[ 1127.935606]  [<c0169573>] do_execve+0x12b/0x1b6
[ 1127.935606]  [<c0102138>] sys_execve+0x2a/0x49
[ 1127.935606]  [<c01037b2>] syscall_call+0x7/0xb
[ 1127.935606]  [<c02a0000>] wext_handle_ioctl+0x17f/0x357
[ 1127.935606]  =======================
[ 1127.935606] Code: c0 00 00 00 8b 37 39 fe 75 15 8b 77 10 8d 47 10 c7
47 30 01 00 00 00 39 c6 0f 84 9c 00 00 00 8b 54 24 0c 8b 42 1c 39 46 10
72 2e <0f> 0b eb fe 8b 44 24 0c 8b 5e 14 8b 4d 00 8b 50 10 8b 44 24 04
[ 1127.935606] EIP: [<c0162f1d>] cache_alloc_refill+0xc4/0x3e3 SS:ESP
0068:df6b7e9c
[ 1127.935606] ---[ end trace 3a58b8adb484f036 ]---

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.932915] ------------[ cut here ]------------

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606] invalid opcode: 0000 [#1]

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606] Process sshd (pid: 2148, ti=df6b6000
task=de2d1400 task.ti=df6b6000)

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606] Stack: 00000001 de7bc56c 000000d0
df401240 00000010 00000001 00000000 00000001

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606]        c0349480 df401240 00000296
000000d0 c0162e1c c0349480 fffffffe de0d93c0

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606]        00000000 c0189afb df6b7fb8
de0d93c0 00000007 de7bc56c df6b7f44 00000000

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606] Call Trace:

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606]  [<c0162e1c>] kmem_cache_alloc+0x40/0x7d

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606]  [<c0189afb>] load_elf_binary+0x1d/0x103d

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606]  [<c01560be>] get_user_pages+0x29d/0x32d

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606]  [<c0168406>] get_arg_page+0x2a/0x79

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606]  [<c0168650>] copy_strings+0x161/0x16b

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606]  [<c01686fc>]
search_binary_handler+0x76/0x17c

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606]  [<c0169573>] do_execve+0x12b/0x1b6

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606]  [<c0102138>] sys_execve+0x2a/0x49

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606]  [<c01037b2>] syscall_call+0x7/0xb

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606]  [<c02a0000>] wext_handle_ioctl+0x17f/0x357

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606]  =======================

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606] Code: c0 00 00 00 8b 37 39 fe 75 15 8b
77 10 8d 47 10 c7 47 30 01 00 00 00 39 c6 0f 84 9c 00 00 00 8b 54 24 0c
8b 42 1c 39 46 10 72 2e <0f> 0b eb fe 8b 44 24 0c 8b 5e 14 8b 4d 00 8b
50 10 8b 44 24 04

Message from syslogd@piepmatz at Sat Nov  1 16:58:20 2008 ...
piepmatz kernel: [ 1127.935606] EIP: [<c0162f1d>]
cache_alloc_refill+0xc4/0x3e3 SS:ESP 0068:df6b7e9c

--------------------------------------------------------------------------------------------------------------------

After reboot:

--------------------------------------------------------------------------------------------------------------------
piepmatz:/usr/local/sbin# modprobe -vr geode-aes hifn_795x
rmmod /lib/modules/2.6.26-1-486/kernel/drivers/crypto/geode-aes.ko
rmmod /lib/modul[  179.825599] Driver for HIFN 795x crypto accelerator
chip has been successfully unregistered.
es/2.6.26-1-486/kernel/drivers/crypto/hifn_795x.ko
rmmod /lib/modules/2.6.26-1-486/kernel/crypto/des_generic.ko
piepmatz:/usr/local/sbin#
piepmatz:/usr/local/sbin# createmisc
cryptsetup -c aes-cbc-plain -y -s 256 luksFormat /dev/hdb4

WARNING!
========
This will overwrite data on /dev/hdb4 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
[  266.354881] padlock: VIA PadLock not detected.
Command successful.
piepmatz:/usr/local/sbin#
piepmatz:/usr/local/sbin# cryptsetup luksOpen /dev/hdb4 sehrsicher
Enter LUKS passphrase:
key slot 0 unlocked.
Command successful.
piepmatz:/usr/local/sbin#
piepmatz:/usr/local/sbin# mkfs.ext2 -L MISC /dev/mapper/sehrsicher
mke2fs 1.41.2 (02-Oct-2008)
Dateisystem-Label=MISC
OS-Typ: Linux
Blockgröße=4096 (log=2)
Fragmentgröße=4096 (log=2)
19226624 Inodes, 76884824 Blöcke
3844241 Blöcke (5.00%) reserviert für den Superuser
Erster Datenblock=0
Maximale Dateisystem-Blöcke=0
2347 Blockgruppen
32768 Blöcke pro Gruppe, 32768 Fragmente pro Gruppe
8192 Inodes pro Gruppe
Superblock-Sicherungskopien gespeichert in den Blöcken:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632,
2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616

Schreibe Inode-Tabellen:  1313erledigt
Schreibe Superblöcke und Dateisystem-Accountinginformationen: erledigt

Das Dateisystem wird automatisch nach jeweils 30 Einhäng-Vorgängen bzw.
alle 180 Tage überprüft, je nachdem, was zuerst eintritt. Veränderbar mit
tune2fs -c oder -t .
piepmatz:/usr/local/sbin#
------------------------------------------------------------------------------------

FAZIT:

When I use the software modules (aes_i586, aes_generic) all works.

The hifn_795x module without geode-aes module works NOT!
It seems when both modules hifn_795x and goede-aes are loaded only
the geode-aes is used (only with keysize 128).

Regards
Andreas
-- 
Andreas Gerlich, University of Ulm, Germany
open source project --> http://yaze-ag.de/ (Yet Another Z80 Emulator)

--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

             reply	other threads:[~2008-11-01 17:22 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-01 17:22 Andreas Gerlich [this message]
2008-11-01 20:40 ` hifn_795x and geode-aes module Evgeniy Polyakov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=490C905B.10807@online.de \
    --to=linux-crypto@online.de \
    --cc=linux-crypto@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.