Re: [PATCH] common/encrypt: allow the use of 'fscrypt:' as key prefix

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On Fri, Apr 01, 2022 at 11:45:53AM +0100, Luís Henriques wrote:
> fscrypt keys have used the $FSTYP as prefix.  However this format is being
> deprecated -- newer kernels already allow the usage of the generic
> 'fscrypt:' prefix for ext4 and f2fs.  This patch allows the usage of this
> new prefix for testing filesystems that have never supported the old
> format, but keeping the $FSTYP prefix for filesystems that support it, so
> that old kernels can be tested.
> 
> Signed-off-by: Luís Henriques <lhenriques@xxxxxxx>
> ---
>  common/encrypt | 38 +++++++++++++++++++++++++++-----------
>  1 file changed, 27 insertions(+), 11 deletions(-)
> 
> diff --git a/common/encrypt b/common/encrypt
> index f90c4ef05a3f..897c97e0f6fa 100644
> --- a/common/encrypt
> +++ b/common/encrypt
> @@ -250,6 +250,27 @@ _num_to_hex()
>  	fi
>  }
>  
> +# Keys are named $FSTYP:KEYDESC where KEYDESC is the 16-character key descriptor
> +# hex string.  Newer kernels (ext4 4.8 and later, f2fs 4.6 and later) also allow
> +# the common key prefix "fscrypt:" in addition to their filesystem-specific key
> +# prefix ("ext4:", "f2fs:").  It would be nice to use the common key prefix, but
> +# for now use the filesystem- specific prefix for these 2 filesystems to make it
> +# possible to test older kernels, and the "fscrypt" prefix for anything else.
> +_get_fs_keyprefix()
> +{
> +	local prefix=""
> +
> +	case $FSTYP in
> +	ext4|f2fs|ubifs)
> +		prefix="$FSTYP"
> +		;;
> +	*)
> +		prefix="fscrypt"
> +		;;
> +	esac
> +	echo $prefix
> +}

ubifs can use the "fscrypt" prefix, since there was never a kernel that
supported ubifs encryption but not the "fscrypt" prefix.  Also, the "prefix"
local variable is unnecessary.  So:

	case $FSTYP in
	ext4|f2fs)
		echo $FSTYP
		;;
	*)
		echo fscrypt
		;;
	esac

Otherwise, this patch looks fine if we want to keep supporting testing kernels
older than 4.8.  However, since 4.4 is no longer a supported LTS kernel, perhaps
this is no longer needed and we could just always use "fscrypt"?  I'm not sure
what xfstests's policy on old kernels is.

- Eric



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux