On June 4, [EMAIL PROTECTED] said:

 > I've committed a fix to cryptsetup SVN. It will be included in the next 
 > upload.

Great, thanks!

i'm also attaching a patch for
/usr/share/initramfs/scripts/local-top/cryptroot which should properly
handle missing (i.e. default) arguments for a standard cryptsetup root
blockdevice during the boot phase.  Note that the default
{hash,cipher,size} args that are currently present in this script in
SVN don't actually match the default args as specified in man
cryptsetup!  This seems like potential trouble to me.  i hope you find
the attached patch reasonable and useful.  The patch should apply
against the current pkg-cryptsetup SVN.

Sadly, the hard disk i was testing these changes on developed physical
sector errors just yesterday, and i've had to start over fresh.  so
again, this patch isn't properly tested :( In my new
installation/recovery to a new disk, i've gone with LUKS, since that
seems to be the upcoming standard.

When i get a chance, i'd be happy to try out this installation on a
new rig, but i've got nothing to play with at the moment to really
verify that it all works properly.

Thanks for all your work on this,

        --dkg

Index: initramfs-cryptroot-script
===================================================================
--- initramfs-cryptroot-script	(revision 193)
+++ initramfs-cryptroot-script	(working copy)
@@ -56,9 +56,7 @@
 	# Start by parsing some options, all options are relevant to regular cryptsetup
 	# but only crypttarget and cryptsource is relevant to luks which picks up the 
 	# rest of the parameters by reading the partition header
-	cryptcipher=aes-cbc-essiv:sha256
-	cryptsize=256
-	crypthash=sha256
+	cryptsetupopts=""
 	crypttarget=cryptroot
 	cryptsource=$ROOT
 	cryptlvm=""
@@ -68,13 +66,13 @@
 		for x in $cryptopts; do
 			case $x in
 			hash=*)
-				crypthash=${x#hash=}
+				cryptsetupopts="$cryptsetupopts -h ${x#hash=}"
 				;;
 			size=*)
-				cryptsize=${x#size=}
+				cryptsetupopts="$cryptsetupopts -s ${x#size=}"
 				;;
 			cipher=*)
-				cryptcipher=${x#cipher=}
+				cryptsetupopts="$cryptsetupopts -c ${x#cipher=}"
 				;;
 			target=*)
 				crypttarget=${x#target=}
@@ -121,7 +119,7 @@
 	cryptcreate="/sbin/cryptsetup luksOpen $cryptsource $crypttarget"
 	cryptremove=""
 else
-	cryptcreate="/sbin/cryptsetup -c $cryptcipher -s $cryptsize -h $crypthash create $crypttarget $cryptsource"
+	cryptcreate="/sbin/cryptsetup $cryptsetupopts create $crypttarget $cryptsource"
 	cryptremove="/sbin/cryptsetup remove $crypttarget"
 fi
 NEWROOT="/dev/mapper/$crypttarget"

Reply via email to