grub/grub-core
Eric Biggers 4aaa6b639d Allow GRUB to mount ext2/3/4 filesystems that have the encryption feature.
On such a filesystem, inodes may have EXT4_ENCRYPT_FLAG set.
For a regular file, this means its contents are encrypted; for a
directory, this means the filenames in its directory entries are
encrypted; and for a symlink, this means its target is encrypted.  Since
GRUB cannot decrypt encrypted contents or filenames, just issue an error
if it would need to do so.  This is sufficient to allow unencrypted boot
files to co-exist with encrypted files elsewhere on the filesystem.

(Note that encrypted regular files and symlinks will not normally be
encountered outside an encrypted directory; however, it's possible via
hard links, so they still need to be handled.)

Tested by booting from an ext4 /boot partition on which I had run
'tune2fs -O encrypt'.  I also verified that the expected error messages
are printed when trying to access encrypted directories, files, and
symlinks from the GRUB command line.  Also ran 'sudo ./grub-fs-tester
ext4_encrypt'; note that this requires e2fsprogs v1.43+ and Linux v4.1+.

Signed-off-by: Eric Biggers <ebiggers@google.com>
2020-09-21 11:32:45 -04:00
..
boot sparc64: Close cdboot ihandle 2020-09-21 11:32:45 -04:00
bus rk3288_spi: Add SPI driver 2020-09-21 11:32:45 -04:00
commands coreboot: Split parts that are platform-independent. 2020-09-21 11:32:45 -04:00
disk Merge branch 'gnu' into sync 2017-04-27 12:05:22 -07:00
efiemu x86-64: Treat R_X86_64_PLT32 as R_X86_64_PC32 2019-10-24 16:59:37 +02:00
font Document intentional fallthroughs. 2015-01-27 17:17:58 +01:00
fs Allow GRUB to mount ext2/3/4 filesystems that have the encryption feature. 2020-09-21 11:32:45 -04:00
gdb i386, x86_64, ppc: fix switch fallthrough cases with GCC7 2017-04-04 19:23:55 +03:00
gettext * grub-core/gettext/gettext.c (main_context), (secondary_context): 2013-11-07 01:01:47 +01:00
gfxmenu gfxmenu: fix memory leak 2016-01-12 21:52:50 +03:00
gnulib i386, x86_64, ppc: fix switch fallthrough cases with GCC7 2017-04-04 19:23:55 +03:00
hello * grub-core/commands/gptsync.c: Fix typographic quoting. 2012-03-03 13:05:08 +01:00
hook * grub-core/hook/datehook.c (grub_read_hook_datetime): Small stylistic 2011-11-11 21:03:49 +01:00
io gzio: Optimize by removing division. 2015-02-26 22:10:09 +01:00
kern Missing parts of previous commit 2020-09-21 11:32:45 -04:00
lib Add support for device-tree-based drivers. 2020-09-21 11:32:45 -04:00
loader arm64: Add "--nounzip" option support in xen_module command 2020-09-21 11:32:45 -04:00
mmap Translate UEFI persistent memory type 2015-12-15 10:25:34 +03:00
net Add Virtual LAN support. 2020-09-21 11:32:45 -04:00
normal Fix use after free 2017-07-09 18:38:15 +05:30
osdep sparc64: Don't use devspec to determine the OBP path 2020-09-21 11:32:45 -04:00
partmap disk/ldm, partmap/msdos.c: fix spelling error 2015-08-22 21:22:41 +02:00
parttool * grub-core/net/http.c: Add TRANSLATORS comments. 2012-03-05 16:42:26 +01:00
script Merge branch 'gnu' into sync 2017-04-27 12:05:22 -07:00
term at_keyboard: Fix falco chromebook case. 2020-09-21 11:32:45 -04:00
tests strtoull: Fix behaviour on chars between '9' and 'a'. 2020-09-21 11:32:45 -04:00
video coreboot: Split parts that are platform-independent. 2020-09-21 11:32:45 -04:00
gdb_grub.in * grub-core/gdb_grub.in: Fix overflow and wrong field. 2013-10-14 03:40:20 +02:00
genemuinit.sh use MODULE_FILES for genemuinit* instead of MOD_FILES 2014-01-18 23:15:40 +04:00
genemuinitheader.sh use MODULE_FILES for genemuinit* instead of MOD_FILES 2014-01-18 23:15:40 +04:00
genmod.sh.in Fix shebang for termux. 2020-09-21 11:32:45 -04:00
genmoddep.awk genmoddep.awk: Add a test that we have no circular dependencies 2015-11-08 20:00:27 +01:00
gensyminfo.sh.in Fix shebang for termux. 2020-09-21 11:32:45 -04:00
gensymlist.sh Make 'make check' work on emu. 2013-04-27 02:00:16 +02:00
gentrigtables.c * grub-core/gentrigtables.c: Make tables const. 2013-03-01 11:15:09 +01:00
gmodule.pl.in * grub-core/gmodule.pl.in: Accept newer binutils which output 2014-09-21 18:23:23 +02:00
gnulib-fix-gcc7-fallthrough.diff Add gnulib-fix-gcc7-fallthrough.diff 2017-04-04 19:37:47 +03:00
gnulib-fix-null-deref.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
gnulib-fix-width.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
gnulib-no-abort.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
gnulib-no-gets.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
Makefile.am arm_coreboot: Support DMA. 2020-09-21 11:32:45 -04:00
Makefile.core.def Missing parts of previous commit 2020-09-21 11:32:45 -04:00
modinfo.sh.in Fix shebang for termux. 2020-09-21 11:32:45 -04:00