Star64_linux/Documentation
Eric Biggers 7f2c797fec fscrypt: allow 256-bit master keys with AES-256-XTS
[ Upstream commit 7f595d6a6c ]

fscrypt currently requires a 512-bit master key when AES-256-XTS is
used, since AES-256-XTS keys are 512-bit and fscrypt requires that the
master key be at least as long any key that will be derived from it.

However, this is overly strict because AES-256-XTS doesn't actually have
a 512-bit security strength, but rather 256-bit.  The fact that XTS
takes twice the expected key size is a quirk of the XTS mode.  It is
sufficient to use 256 bits of entropy for AES-256-XTS, provided that it
is first properly expanded into a 512-bit key, which HKDF-SHA512 does.

Therefore, relax the check of the master key size to use the security
strength of the derived key rather than the size of the derived key
(except for v1 encryption policies, which don't use HKDF).

Besides making things more flexible for userspace, this is needed in
order for the use of a KDF which only takes a 256-bit key to be
introduced into the fscrypt key hierarchy.  This will happen with
hardware-wrapped keys support, as all known hardware which supports that
feature uses an SP800-108 KDF using AES-256-CMAC, so the wrapped keys
are wrapped 256-bit AES keys.  Moreover, there is interest in fscrypt
supporting the same type of AES-256-CMAC based KDF in software as an
alternative to HKDF-SHA512.  There is no security problem with such
features, so fix the key length check to work properly with them.

Reviewed-by: Paul Crowley <paulcrowley@google.com>
Link: https://lore.kernel.org/r/20210921030303.5598-1-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-04-19 16:57:07 +08:00
..
ABI Misc driver patches for 5.15-rc1, second round 2021-09-10 11:31:47 -07:00
accounting
admin-guide xen/balloon: add late_initcall_sync() for initial ballooning done 2023-04-19 16:57:02 +08:00
arm Documentation: arm: marvell: Add 88F6825 model into list 2021-08-24 13:26:32 -06:00
arm64 Merge remote-tracking branch 'tip/sched/arm64' into for-next/core 2021-08-31 09:10:00 +01:00
block Documentation: block: blk-mq: Fix small typo in multi-queue docs 2021-08-24 13:30:00 -06:00
bpf libbpf: Rename libbpf documentation index file 2021-08-18 08:45:25 -07:00
cdrom
core-api irqchip fixes for 5.15, take #1 2021-09-24 14:11:04 +02:00
cpu-freq cpufreq: Remove ready() callback 2021-09-02 18:04:17 +02:00
crypto crypto: add patch for 5.15 2022-04-28 13:54:49 +08:00
dev-tools kfence: default to dynamic branch instead of static keys mode 2023-04-19 16:56:46 +08:00
devicetree Documentation:devicetree:bindings:iio:dac: Fix val 2023-04-19 16:57:05 +08:00
doc-guide
driver-api cxl for v5.15 2021-09-09 11:48:27 -07:00
fault-injection Char / Misc driver changes for 5.15-rc1 2021-09-01 08:35:06 -07:00
fb
features RISC-V Patches for the 5.15 Merge Window, Part 2 2021-09-11 14:29:42 -07:00
filesystems fscrypt: allow 256-bit master keys with AES-256-XTS 2023-04-19 16:57:07 +08:00
firmware-guide
firmware_class
fpga
gpu Merge tag 'amd-drm-fixes-5.15-2021-10-06' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes 2021-10-08 11:40:21 +10:00
hid
hwmon hwmon: (sfctemp) Add StarFive JH7100 temperature sensor 2022-05-19 11:08:11 +08:00
i2c Documentation: i2c: add i2c-sysfs into index 2021-08-10 22:58:32 +02:00
ia64
ide
iio
infiniband
input
isdn
kbuild Merge branch 'akpm' (patches from Andrew) 2021-09-08 12:55:35 -07:00
kernel-hacking docs: kernel-hacking: Remove inappropriate text 2021-09-03 15:56:45 -06:00
leds Documentation: leds: standartizing LED names 2021-08-20 10:26:24 +02:00
litmus-tests
livepatch
locking Documentation: locking: fix references 2021-08-24 13:20:39 -06:00
m68k
maintainer
mhi
mips
misc-devices
netlabel
networking mctp: unify sockaddr_mctp types 2021-10-18 13:47:09 +01:00
nios2
nvdimm
openrisc
parisc
PCI pci-v5.15-changes 2021-09-07 19:13:42 -07:00
pcmcia
power Documentation: power: include kernel-doc in Energy Model doc 2021-09-07 21:17:28 +02:00
powerpc powerpc/doc: Fix htmldocs errors 2021-08-27 00:56:34 +10:00
process Merge branch 'gcc-min-version-5.1' (make gcc-5.1 the minimum version) 2021-09-13 10:43:04 -07:00
RCU
riscv Documentation: riscv: Remove the old documentation 2023-01-03 14:26:18 +08:00
s390
scheduler
scsi
security
sh
sound Yet another set of documentation changes: 2021-09-01 18:49:47 -07:00
sparc
sphinx docs: sphinx-requirements: Move sphinx_rtd_theme to top 2021-08-12 09:15:38 -06:00
sphinx-static
spi
staging
target
timers
trace Tracing updates for 5.15: 2021-09-05 11:50:41 -07:00
translations Merge branch 'gcc-min-version-5.1' (make gcc-5.1 the minimum version) 2021-09-13 10:43:04 -07:00
usb docs: usb: fix malformed table 2021-08-05 12:31:51 +02:00
userspace-api ptp: Document the PTP_CLK_MAGIC ioctl number 2021-10-27 17:02:51 -07:00
virt ARM: 2021-09-07 13:40:51 -07:00
vm Merge branch 'akpm' (patches from Andrew) 2021-09-08 12:55:35 -07:00
w1
watchdog
x86 Another collection of documentation patches, mostly fixes but also includes 2021-09-08 16:28:14 -07:00
xtensa
.gitignore
arch.rst
asm-annotations.rst
atomic_bitops.txt
atomic_t.txt Documentation/atomic_t: Document forward progress expectations 2021-08-04 15:16:47 +02:00
Changes
CodingStyle
conf.py docs: pdfdocs: Fix typo in CJK-language specific font settings 2021-09-06 16:53:39 -06:00
COPYING-logo
docutils.conf
dontdiff
index.rst
Kconfig
logo.gif
Makefile
memory-barriers.txt
SubmittingPatches
watch_queue.rst