grub/grub-core
Eric Biggers 734668238f 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>
2017-06-29 13:29:53 +00:00
..
boot sparc64: Close cdboot ihandle 2017-05-18 21:58:15 +02:00
bus rk3288_spi: Add SPI driver 2017-05-09 08:44:23 +02:00
commands coreboot: Split parts that are platform-independent. 2017-05-08 19:10:24 +02:00
disk i386, x86_64, ppc: fix switch fallthrough cases with GCC7 2017-04-04 19:23:55 +03:00
efiemu i386, x86_64, ppc: fix switch fallthrough cases with GCC7 2017-04-04 19:23:55 +03: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. 2017-06-29 13:29:53 +00: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 2017-05-09 09:02:15 +02:00
lib Add support for device-tree-based drivers. 2017-05-08 21:19:59 +02:00
loader arm64: Add "--nounzip" option support in xen_module command 2017-05-18 22:30:14 +02:00
mmap Translate UEFI persistent memory type 2015-12-15 10:25:34 +03:00
net Add Virtual LAN support. 2017-05-03 13:03:50 +02:00
normal charset: Trim away RLM and LRM. 2017-01-31 19:29:31 +01:00
osdep sparc64: Don't use devspec to determine the OBP path 2017-05-29 16:59:44 +02: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 script: fix double free in lexer 2017-02-12 09:23:34 +03:00
term at_keyboard: Fix falco chromebook case. 2017-05-09 14:27:52 +02:00
tests strtoull: Fix behaviour on chars between '9' and 'a'. 2017-05-03 12:59:58 +02:00
video coreboot: Split parts that are platform-independent. 2017-05-08 19:10:24 +02: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. 2017-05-03 12:49:31 +02: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. 2017-05-03 12:49:31 +02: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. 2017-05-08 22:06:04 +02:00
Makefile.core.def Missing parts of previous commit 2017-05-09 09:02:15 +02:00
modinfo.sh.in Fix shebang for termux. 2017-05-03 12:49:31 +02:00