Blame SOURCES/cryptsetup-1.7.5-fix-luksformat-in-fips-mode.patch

82b9cf
From 3c2135b36bbc52d052e4ced7c94dc4981eb07a53 Mon Sep 17 00:00:00 2001
82b9cf
From: Milan Broz <gmazyland@gmail.com>
82b9cf
Date: Fri, 21 Apr 2017 08:16:14 +0200
82b9cf
Subject: [PATCH] Fix luksFormat if running in FIPS mode on recent kernel.
82b9cf
82b9cf
Recently introduced check for weak keys for XTS mode makes
82b9cf
zeroed key for algorithm check unusable.
82b9cf
82b9cf
Use random key for the test instead.
82b9cf
---
82b9cf
 lib/luks1/keymanage.c | 8 +++++---
82b9cf
 1 file changed, 5 insertions(+), 3 deletions(-)
82b9cf
82b9cf
diff --git a/lib/luks1/keymanage.c b/lib/luks1/keymanage.c
82b9cf
index b700bab..5b1421b 100644
82b9cf
--- a/lib/luks1/keymanage.c
82b9cf
+++ b/lib/luks1/keymanage.c
82b9cf
@@ -631,9 +631,11 @@ static int LUKS_check_cipher(struct luks_phdr *hdr, struct crypt_device *ctx)
82b9cf
 	if (!empty_key)
82b9cf
 		return -ENOMEM;
82b9cf
 
82b9cf
-	r = LUKS_decrypt_from_storage(buf, sizeof(buf),
82b9cf
-				      hdr->cipherName, hdr->cipherMode,
82b9cf
-				      empty_key, 0, ctx);
82b9cf
+	/* No need to get KEY quality random but it must avoid known weak keys. */
82b9cf
+	r = crypt_random_get(ctx, empty_key->key, empty_key->keylength, CRYPT_RND_NORMAL);
82b9cf
+	if (!r)
82b9cf
+		r = LUKS_decrypt_from_storage(buf, sizeof(buf), hdr->cipherName,
82b9cf
+					      hdr->cipherMode, empty_key, 0, ctx);
82b9cf
 
82b9cf
 	crypt_free_volume_key(empty_key);
82b9cf
 	crypt_memzero(buf, sizeof(buf));
82b9cf
-- 
82b9cf
2.7.4
82b9cf