Cryptsetup 1.6.8 Release Notes ============================== Changes since version 1.6.7 * If the null cipher (no encryption) is used, allow only empty password for LUKS. (Previously cryptsetup accepted any password in this case.) The null cipher can be used only for testing and it is used temporarily during offline encrypting not yet encrypted device (cryptsetup-reencrypt tool). Accepting only empty password prevents situation when someone adds another LUKS device using the same UUID (UUID of existing LUKS device) with faked header containing null cipher. This could force user to use different LUKS device (with no encryption) without noticing. (IOW it prevents situation when attacker intentionally forces user to boot into different system just by LUKS header manipulation.) Properly configured systems should have an additional integrity protection in place here (LUKS here provides only confidentiality) but it is better to not allow this situation in the first place. (For more info see QubesOS Security Bulletin QSB-019-2015.) * Properly support stdin "-" handling for luksAddKey for both new and old keyfile parameters. * If encrypted device is file-backed (it uses underlying loop device), cryptsetup resize will try to resize underlying loop device as well. (It can be used to grow up file-backed device in one step.) * Cryptsetup now allows to use empty password through stdin pipe. (Intended only for testing in scripts.) Cryptsetup API NOTE: Direct terminal handling and password calling callback for passphrase entry will be removed from libcryptsetup in next major (2.x) version (application should handle it itself). It means that application have to always provide password in API calls. Functions returning last error will be removed in next major version (2.x). These functions did not work properly for early initialization errors and application can implement better function easily using own error callback. See comments in libcryptsetup.h for more info about deprecated functions.