Hi,

> sorry, forgot to actually attach the patch. here it is.

May I propose a different patch and try that instead?

> greetings,
>  jonas

> --- /usr/share/initramfs-tools/scripts/local-top/cryptroot    2008-01-29 
> 11:43:07.000000000 +0100
> +++ /usr/share/initramfs-tools/scripts/local-top/cryptroot    2008-02-16 
> 18:27:14.000000000 +0100
> @@ -43,6 +43,7 @@
>       cryptlvm=""
>       cryptkeyscript=""
>       cryptkey="" # This is only used as an argument to an eventual keyscript
> +     crypttries=3
>  
>       local IFS=" ,"
>       for x in $cryptopts; do
> @@ -78,6 +79,11 @@
>                               cryptkey=${x#key=}
>                       fi
>                       ;;
> +             tries=*)
> +                     if [ "${x#tries=}" -gt 0 ]; then
> +                             crypttries=${x#tries=}
> +                     fi
> +                     ;;
>               esac
>       done

I aggree with this until now.

> @@ -170,9 +176,9 @@
>  
>       # Prepare commands
>       if /sbin/cryptsetup isLuks $cryptsource > /dev/null 2>&1; then
> -             cryptcreate="/sbin/cryptsetup luksOpen $cryptsource 
> $crypttarget"
> +             cryptcreate="/sbin/cryptsetup -T $crypttries luksOpen 
> $cryptsource $crypttarget"
>       else
> -             cryptcreate="/sbin/cryptsetup -c $cryptcipher -s $cryptsize -h 
> $crypthash create $crypttarget $cryptsource"
> +             cryptcreate="/sbin/cryptsetup -T $crypttries -c $cryptcipher -s 
> $cryptsize -h $crypthash create $crypttarget $cryptsource"
>       fi
>       cryptremove="/sbin/cryptsetup remove $crypttarget"
>       NEWROOT="/dev/mapper/$crypttarget"

The retry management basically happened below in the previous version:
Line 181:
        count=0
        while [ $count -lt 3]; do

I therefore suggest to reuse that management (or throw it away
completely), because your patch will only allow for multiples of 3 tries
this way.

My patch is attached (really, no second mail :-p). If you like to use
the trial management from cryptsetup, it would be great if you could
clean the cryptroot script and send me a new patch.

Helmut
--- cryptroot	2008-02-16 18:39:57.000000000 +0100
+++ cryptroot_helmut	2008-02-16 18:45:28.000000000 +0100
@@ -43,6 +43,7 @@
 	cryptlvm=""
 	cryptkeyscript=""
 	cryptkey="" # This is only used as an argument to an eventual keyscript
+	crypttries=3
 
 	local IFS=" ,"
 	for x in $cryptopts; do
@@ -78,6 +79,11 @@
 				cryptkey=${x#key=}
 			fi
 			;;
+		tries=*)
+			if [ "${x#tries=}" -gt 0 ]; then
+				crypttries=${x#tries=}
+			fi
+			;;
 		esac
 	done
 
@@ -179,7 +185,7 @@
 
 	# Try to get a satisfactory password three times
 	count=0
-	while [ $count -lt 3 ]; do
+	while [ $crypttries -le 0 -o $count -lt $crypttries ]; do
 		count=$(( $count + 1 ))
 
 		if [ -n "$cryptkeyscript" ]; then

Reply via email to