common/encrypt: accept '-' character in no-key names
authorEric Biggers <ebiggers@google.com>
Sun, 18 Jul 2021 19:06:58 +0000 (14:06 -0500)
committerEryu Guan <guaneryu@gmail.com>
Sun, 25 Jul 2021 14:27:34 +0000 (22:27 +0800)
Add the '-' character to the regex that generic/{419,429} use to match
no-key filenames.  This is needed to prevent these tests from failing
after the kernel is changed to use a more standard variant of Base64
(https://lkml.kernel.org/r/20210718000125.59701-1-ebiggers@kernel.org).

Note that despite breaking these tests, the kernel change is not
expected to break any real users, as the fscrypt no-key name encoding
has always been considered an implementation detail.  So it is
appropriate to just update these tests.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
common/encrypt

index 766a6d8..f90c4ef 100644 (file)
@@ -935,5 +935,8 @@ _filter_nokey_filenames()
 {
        local dir=$1
 
-       sed "s|${dir}${dir:+/}[A-Za-z0-9+,_]\+|${dir}${dir:+/}NOKEY_NAME|g"
+       # The no-key name format is a filesystem implementation detail that has
+       # varied slightly over time.  Just look for names that consist entirely
+       # of characters that have ever been used in such names.
+       sed "s|${dir}${dir:+/}[A-Za-z0-9+,_-]\+|${dir}${dir:+/}NOKEY_NAME|g"
 }