1 Cryptsetup 2.0.6 Release Notes
2 ==============================
3 Stable bug-fix release.
4 All users of cryptsetup 2.0.x should upgrade to this version.
6 Cryptsetup 2.x version introduces a new on-disk LUKS2 format.
8 The legacy LUKS (referenced as LUKS1) will be fully supported
9 forever as well as a traditional and fully backward compatible format.
11 Please note that authenticated disk encryption, non-cryptographic
12 data integrity protection (dm-integrity), use of Argon2 Password-Based
13 Key Derivation Function and the LUKS2 on-disk format itself are new
14 features and can contain some bugs.
16 Please do not use LUKS2 without properly configured backup or in
17 production systems that need to be compatible with older systems.
19 Changes since version 2.0.5
20 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
22 * Fix support of larger metadata areas in LUKS2 header.
24 This release properly supports all specified metadata areas, as documented
25 in LUKS2 format description (see docs/on-disk-format-luks2.pdf in archive).
27 Currently, only default metadata area size is used (in format or convert).
28 Later cryptsetup versions will allow increasing this metadata area size.
30 * If AEAD (authenticated encryption) is used, cryptsetup now tries to check
31 if the requested AEAD algorithm with specified key size is available
33 This change avoids formatting a device that cannot be later activated.
35 For this function, the kernel must be compiled with the
36 CONFIG_CRYPTO_USER_API_AEAD option enabled.
37 Note that kernel user crypto API options (CONFIG_CRYPTO_USER_API and
38 CONFIG_CRYPTO_USER_API_SKCIPHER) are already mandatory for LUKS2.
40 * Fix setting of integrity no-journal flag.
41 Now you can store this flag to metadata using --persistent option.
43 * Fix cryptsetup-reencrypt to not keep temporary reencryption headers
44 if interrupted during initial password prompt.
46 * Adds early check to plain and LUKS2 formats to disallow device format
47 if device size is not aligned to requested sector size.
48 Previously it was possible, and the device was rejected to activate by
51 * Fix checking of hash algorithms availability for PBKDF early.
52 Previously LUKS2 format allowed non-existent hash algorithm with
53 invalid keyslot preventing the device from activation.
55 * Allow Adiantum cipher construction (a non-authenticated length-preserving
56 fast encryption scheme), so it can be used both for data encryption and
57 keyslot encryption in LUKS1/2 devices.
60 # cryptsetup benchmark -c xchacha12,aes-adiantum
61 # cryptsetup benchmark -c xchacha20,aes-adiantum
64 # cryptsetup luksFormat -c xchacha20,aes-adiantum-plain64 -s 256 <device>
66 The support for Adiantum will be merged in Linux kernel 4.21.
67 For more info see the paper https://eprint.iacr.org/2018/720.
69 Unfinished things & TODO for next releases
70 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71 * Authenticated encryption should use new algorithms from CAESAR competition
72 https://competitions.cr.yp.to/caesar-submissions.html.
73 AEGIS and MORUS are already available in kernel 4.18.
75 For more info about LUKS2 authenticated encryption, please see our paper
76 https://arxiv.org/abs/1807.00309
78 Please note that authenticated encryption is still an experimental feature
79 and can have performance problems for high-speed devices and device
80 with larger IO blocks (like RAID).
82 * Authenticated encryption do not set encryption for a dm-integrity journal.
84 While it does not influence data confidentiality or integrity protection,
85 an attacker can get some more information from data journal or cause that
86 system will corrupt sectors after journal replay. (That corruption will be
89 * There are examples of user-defined tokens inside misc/luks2_keyslot_example
90 directory (like a simple external program that uses libssh to unlock LUKS2
91 using remote keyfile).
93 * The python binding (pycryptsetup) contains only basic functionality for LUKS1
94 (it is not updated for new features) and will be REMOVED in version 2.1
95 in favor of python bindings to the libblockdev library.
96 See https://github.com/storaged-project/libblockdev/releases that
97 already supports LUKS2 and VeraCrypt devices handling through libcryptsetup.