OrangePi_CM5/Documentation
Eric Biggers 68ac723fb1 fscrypt: allow 256-bit master keys with AES-256-XTS
[ Upstream commit 7f595d6a6cdc336834552069a2e0a4f6d4756ddf ]

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>
2021-11-18 14:03:54 +01:00
..
ABI powerpc/papr_scm: Make 'perf_stats' invisible if perf-stats unavailable 2021-07-14 16:56:49 +02:00
PCI
…
RCU
…
accounting
…
admin-guide xen/balloon: add late_initcall_sync() for initial ballooning done 2021-11-18 14:03:49 +01:00
arm ARM: 9012/1: move device tree mapping out of linear region 2021-05-19 10:13:18 +02:00
arm64 userfaultfd: do not untag user pointers 2021-07-28 14:35:46 +02:00
block block-5.10-2020-10-24 2020-10-24 12:46:42 -07:00
bpf
…
cdrom
…
core-api dma-mapping: document dma_{alloc,free}_pages 2020-10-23 12:07:46 +02:00
cpu-freq
…
crypto
…
dev-tools linux-kselftest-kunit-fixes-5.10-rc5 2020-11-18 11:57:55 -08:00
devicetree regulator: dt-bindings: samsung,s5m8767: correct s5m8767,pmic-buck-default-dvs-idx property 2021-11-18 14:03:45 +01:00
doc-guide
…
driver-api Documentation: Fix intiramfs script name 2021-07-28 14:35:47 +02:00
fault-injection lkdtm: replace SCSI_DISPATCH_CMD with SCSI_QUEUE_RQ 2021-09-15 09:50:42 +02:00
fb drm fixes (round two) for 5.10-rc1 2020-10-23 13:56:34 -07:00
features s390 updates for the 5.10 merge window 2020-10-16 12:36:38 -07:00
filesystems fscrypt: allow 256-bit master keys with AES-256-XTS 2021-11-18 14:03:54 +01:00
firmware-guide Documentation: ACPI: fix spelling mistakes 2020-11-10 18:48:56 +01:00
firmware_class
…
fpga
…
gpu drm: Use USB controller's DMA mask when importing dmabufs 2021-03-17 17:06:19 +01:00
hid
…
hwmon hwmon: (max31790) Fix pwmX_enable attributes 2021-07-14 16:55:55 +02:00
i2c
…
ia64
…
ide
…
iio
…
infiniband
…
input
…
isdn
…
kbuild kbuild: remove unused OBJSIZE 2020-11-02 11:31:00 +09:00
kernel-hacking
…
leds docs: leds: index.rst: add a missing file 2020-11-02 13:45:37 +01:00
litmus-tests
…
livepatch
…
locking Documentation: seqlock: s/LOCKTYPE/LOCKNAME/g 2020-12-30 11:54:11 +01:00
m68k
…
maintainer
…
mhi
…
mips
…
misc-devices Documentation: remove mic/index from misc-devices/index.rst 2020-11-04 11:38:32 +01:00
netlabel
…
networking tcp: disable TFO blackhole logic by default 2021-07-28 14:35:41 +02:00
nios2
…
nvdimm
…
openrisc
…
parisc
…
pcmcia
…
power
…
powerpc powerpc/64s/syscall: Use pt_regs.trap to distinguish syscall ABI difference between sc and scv syscalls 2021-05-26 12:06:53 +02:00
process docs: networking: drop special stable handling 2021-03-17 17:06:13 +01:00
riscv
…
s390
…
scheduler
…
scsi scsi: libsas: Introduce a _gfp() variant of event notifiers 2021-03-25 09:04:11 +01:00
security watch_queue: Drop references to /dev/watch_queue 2021-03-04 11:37:59 +01:00
sh
…
sound ALSA: doc: Fix reference to mixart.rst 2021-01-19 18:27:17 +01:00
sparc
…
sphinx tweewide: Fix most Shebang lines 2021-05-22 11:40:55 +02:00
sphinx-static
…
spi
…
staging
…
target tweewide: Fix most Shebang lines 2021-05-22 11:40:55 +02:00
timers
…
trace tracing/histogram: Rename "cpu" to "common_cpu" 2021-07-28 14:35:45 +02:00
translations net: switch to the kernel.org patchwork instance 2020-11-11 17:12:00 -08:00
usb
…
userspace-api media: hevc: Fix dependent slice segment flags 2021-07-14 16:55:51 +02:00
virt KVM: X86: MMU: Use the correct inherited permissions to get shadow page 2021-06-16 12:01:40 +02:00
vm mm/debug_vm_pgtable/basic: add validation for dirtiness after write protect 2021-07-14 16:56:13 +02:00
w1
…
watchdog
…
x86 x86/CPU/AMD: Save AMD NodeId as cpu_die_id 2020-12-30 11:54:29 +01:00
xtensa xtensa: fix TLBTEMP area placement 2020-11-16 02:13:15 -08:00
.gitignore
…
COPYING-logo
…
Changes
…
CodingStyle
…
Kconfig docs: Kconfig/Makefile: add a check for broken ABI files 2020-10-30 13:08:07 +01:00
Makefile A small number of fixes, plus a build tweak to respect the desire for 2020-11-03 09:57:30 -08:00
SubmittingPatches
…
asm-annotations.rst x86/entry: Emit a symbol for register restoring thunk 2021-02-03 23:28:40 +01:00
atomic_bitops.txt
…
atomic_t.txt
…
conf.py This pull contains a series of warning fixes from Mauro; once applied, the 2020-11-03 13:14:14 -08:00
docutils.conf
…
dontdiff kbuild: generate Module.symvers only when vmlinux exists 2021-05-19 10:12:59 +02:00
index.rst
…
logo.gif
…
memory-barriers.txt
…
watch_queue.rst
…