linux/Documentation/filesystems
Eric Biggers e3b1078bed fscrypt: add support for IV_INO_LBLK_32 policies
The eMMC inline crypto standard will only specify 32 DUN bits (a.k.a. IV
bits), unlike UFS's 64.  IV_INO_LBLK_64 is therefore not applicable, but
an encryption format which uses one key per policy and permits the
moving of encrypted file contents (as f2fs's garbage collector requires)
is still desirable.

To support such hardware, add a new encryption format IV_INO_LBLK_32
that makes the best use of the 32 bits: the IV is set to
'SipHash-2-4(inode_number) + file_logical_block_number mod 2^32', where
the SipHash key is derived from the fscrypt master key.  We hash only
the inode number and not also the block number, because we need to
maintain contiguity of DUNs to merge bios.

Unlike with IV_INO_LBLK_64, with this format IV reuse is possible; this
is unavoidable given the size of the DUN.  This means this format should
only be used where the requirements of the first paragraph apply.
However, the hash spreads out the IVs in the whole usable range, and the
use of a keyed hash makes it difficult for an attacker to determine
which files use which IVs.

Besides the above differences, this flag works like IV_INO_LBLK_64 in
that on ext4 it is only allowed if the stable_inodes feature has been
enabled to prevent inode numbers and the filesystem UUID from changing.

Link: https://lore.kernel.org/r/20200515204141.251098-1-ebiggers@kernel.org
Reviewed-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Paul Crowley <paulcrowley@google.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
2020-05-19 09:34:18 -07:00
..
caching Documentation: Use "while" instead of "whilst" 2018-11-20 09:30:43 -07:00
cifs Documentation: nfsroot.rst: Fix references to nfsroot.rst 2020-03-02 13:11:46 -07:00
configfs configfs: fix wrong name of struct in documentation 2018-12-20 08:41:38 -07:00
ext4 Added new ext4 debugging ioctls to allow userspace to get information 2019-09-21 13:37:39 -07:00
nfs Documentation: nfs: knfsd-stats: convert to ReST 2020-02-13 11:21:35 -07:00
9p.rst 9p pull request for inclusion in 5.7 (take 2) 2020-04-08 21:51:14 -07:00
adfs.rst docs: filesystems: convert adfs.txt to ReST 2020-03-02 13:58:44 -07:00
affs.rst docs: filesystems: convert affs.txt to ReST 2020-03-02 14:01:06 -07:00
afs.rst docs: filesystems: convert afs.txt to ReST 2020-03-02 14:01:25 -07:00
api-summary.rst docs: no structured comments in fs/file_table.c 2019-05-24 15:03:39 -06:00
autofs-mount-control.rst docs: filesystems: convert autofs-mount-control.txt to ReST 2020-03-02 14:01:25 -07:00
autofs.rst docs: filesystems: Add mount map description in Content 2019-11-18 12:19:59 -07:00
automount-support.txt Documentation: filesystems: automount-support: Change reference to document autofs.txt to autofs.rst 2019-12-19 09:35:51 -07:00
befs.rst docs: filesystems: convert befs.txt to ReST 2020-03-02 14:01:25 -07:00
bfs.rst docs: filesystems: convert bfs.txt to ReST 2020-03-02 14:01:26 -07:00
btrfs.rst docs: filesystems: convert btrfs.txt to ReST 2020-03-02 14:01:28 -07:00
ceph.rst The main items are: 2020-04-08 21:44:05 -07:00
coda.txt coda: Fix typo in the struct CodaCred documentation 2019-07-30 14:19:41 -06:00
cramfs.rst docs: filesystems: convert cramfs.txt to ReST 2020-03-02 14:02:07 -07:00
dax.txt Documentation: filesystem: Convert xfs.txt to ReST 2019-07-15 09:15:09 -07:00
debugfs.rst debugfs: remove return value of debugfs_create_u32() 2020-04-17 17:08:50 +02:00
devpts.txt
directory-locking.rst docs: fs: convert docs without extension to ReST 2019-07-31 13:31:05 -06:00
dlmfs.rst docs: filesystems: convert dlmfs.txt to ReST 2020-03-02 14:02:24 -07:00
dnotify.txt
ecryptfs.rst docs: prevent warnings due to autosectionlabel 2020-03-20 17:01:29 -06:00
efivarfs.rst docs: filesystems: convert efivarfs.txt to ReST 2020-03-02 14:02:57 -07:00
erofs.rst docs: filesystems: convert erofs.txt to ReST 2020-03-02 14:02:57 -07:00
ext2.rst docs: filesystems: convert ext2.txt to ReST 2020-03-02 14:02:59 -07:00
ext3.rst docs: filesystems: convert ext3.txt to ReST 2020-03-02 14:03:16 -07:00
f2fs.rst fscrypt: support test_dummy_encryption=v2 2020-05-18 20:21:48 -07:00
fiemap.txt Documentation: correct the description of FIEMAP_EXTENT_LAST 2020-03-14 14:43:13 -04:00
files.txt
fscrypt.rst fscrypt: add support for IV_INO_LBLK_32 policies 2020-05-19 09:34:18 -07:00
fsverity.rst docs: fs-verity: mention statx() support 2019-11-13 12:15:34 -08:00
fuse-io.txt fuse: add writeback documentation 2018-03-20 17:11:45 +01:00
fuse.rst docs: filesystems: fuse.rst: supress a Sphinx warning 2020-03-10 11:55:25 -06:00
gfs2-glocks.txt GFS2: Minor improvements to comments and documentation 2018-04-12 10:07:51 -07:00
gfs2-uevents.rst docs: filesystems: convert gfs2-uevents.txt to ReST 2020-03-02 14:03:35 -07:00
gfs2.rst docs: filesystems: convert gfs2.txt to ReST 2020-03-02 14:03:18 -07:00
hfs.rst docs: filesystems: convert hfs.txt to ReST 2020-03-02 14:03:48 -07:00
hfsplus.rst docs: filesystems: convert hfsplus.txt to ReST 2020-03-02 14:03:47 -07:00
hpfs.rst docs: filesystems: convert hpfs.txt to ReST 2020-03-02 14:03:48 -07:00
index.rst doc: zh_CN: index files in filesystems subdirectory 2020-03-20 17:19:31 -06:00
inotify.rst docs: filesystems: convert inotify.txt to ReST 2020-03-02 14:03:55 -07:00
isofs.rst docs: filesystems: convert isofs.txt to ReST 2020-03-02 14:04:06 -07:00
journalling.rst docs: Bring some order to filesystem documentation 2019-03-06 09:46:10 -07:00
locking.rst Documentation: atomic_open called with shared lock on non-O_CREAT open 2019-11-07 13:17:25 -07:00
locks.txt
mandatory-locking.txt locks: print a warning when mount fails due to lack of "mand" support 2019-08-16 12:13:48 -04:00
mount_api.txt fs_parser: remove fs_parameter_description name field 2020-02-07 14:48:36 -05:00
nilfs2.rst docs: filesystems: convert nilfs2.txt to ReST 2020-03-02 14:04:06 -07:00
ntfs.rst docs: filesystems: convert ntfs.txt to ReST 2020-03-02 14:04:06 -07:00
ocfs2-online-filecheck.rst docs: filesystems: convert ocfs2-online-filecheck.txt to ReST 2020-03-02 14:04:06 -07:00
ocfs2.rst docs: filesystems: convert ocfs2.txt to ReST 2020-03-02 14:04:08 -07:00
omfs.rst docs: filesystems: convert omfs.txt to ReST 2020-03-02 14:04:26 -07:00
orangefs.rst orangefs: a fix and two cleanups and a merge conflict 2020-04-10 17:50:01 -07:00
overlayfs.rst ovl: document xino expected behavior 2020-03-27 16:51:02 +01:00
path-lookup.rst sanitize handling of nd->last_type, kill LAST_BIND 2020-03-13 21:08:19 -04:00
path-lookup.txt
porting.rst cifs_atomic_open(): fix double-put on late allocation failure 2020-03-12 18:25:20 -04:00
proc.rst docs: filesystems: convert proc.txt to ReST 2020-03-02 14:04:40 -07:00
qnx6.rst docs: filesystems: fix typo in qnx6.rst 2020-04-07 13:20:56 -06:00
quota.txt
ramfs-rootfs-initramfs.rst docs: filesystems: convert ramfs-rootfs-initramfs.txt to ReST 2020-03-02 14:04:41 -07:00
relay.rst docs: filesystems: convert relay.txt to ReST 2020-03-02 14:04:41 -07:00
romfs.rst docs: filesystems: convert romfs.txt to ReST 2020-03-02 14:04:41 -07:00
seq_file.txt fs/seq_file.c: simplify seq_file iteration code and interface 2018-08-17 16:20:28 -07:00
sharedsubtree.txt
splice.rst docs: Bring some order to filesystem documentation 2019-03-06 09:46:10 -07:00
spufs.txt Documentation: fix spelling mistake, EACCESS -> EACCES 2018-11-07 15:28:55 -07:00
squashfs.rst docs: filesystems: convert squashfs.txt to ReST 2020-03-02 14:04:41 -07:00
sysfs-pci.txt
sysfs-tagging.txt
sysfs.rst docs: filesystems: convert sysfs.txt to ReST 2020-03-02 14:04:41 -07:00
sysv-fs.rst docs: filesystems: convert sysv-fs.txt to ReST 2020-03-02 14:04:41 -07:00
tmpfs.rst docs: filesystems: convert tmpfs.txt to ReST 2020-03-02 14:04:41 -07:00
ubifs-authentication.rst docs: filesystems: convert ubifs-authentication.rst.txt to ReST 2020-03-02 14:04:41 -07:00
ubifs.rst docs: filesystems: convert ubifs.txt to ReST 2020-03-02 14:04:41 -07:00
udf.rst docs: filesystems: convert udf.txt to ReST 2020-03-02 14:04:52 -07:00
vfat.rst Documentation: filesystems: convert vfat.txt to RST 2020-01-10 10:58:45 -07:00
vfs.rst docs: fs: convert docs without extension to ReST 2019-07-31 13:31:05 -06:00
virtiofs.rst doc: zh_CN: add translation for virtiofs 2020-03-20 17:19:35 -06:00
xfs-delayed-logging-design.txt Documentation: xfs: Fix typo 2019-06-07 11:42:20 -06:00
xfs-self-describing-metadata.txt xfs: add struct xfs_mount pointer to struct xfs_buf 2019-06-28 19:27:29 -07:00
zonefs.rst This has been a busy cycle for documentation work. Highlights include: 2020-03-30 12:45:23 -07:00