Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c82feeec authored by Ondrej Kozina's avatar Ondrej Kozina Committed by Mike Snitzer
Browse files

dm crypt: rewrite (wipe) key in crypto layer using random data



The message "key wipe" used to wipe real key stored in crypto layer by
rewriting it with zeroes.  Since commit 28856a9e ("crypto: xts -
consolidate sanity check for keys") this no longer works in FIPS mode
for XTS.

While running in FIPS mode the crypto key part has to differ from the
tweak key.

Fixes: 28856a9e ("crypto: xts - consolidate sanity check for keys")
Cc: stable@vger.kernel.org
Signed-off-by: default avatarOndrej Kozina <okozina@redhat.com>
Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
parent 06eb061f
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -2152,12 +2152,16 @@ static int crypt_set_key(struct crypt_config *cc, char *key)

static int crypt_wipe_key(struct crypt_config *cc)
{
	int r;

	clear_bit(DM_CRYPT_KEY_VALID, &cc->flags);
	memset(&cc->key, 0, cc->key_size * sizeof(u8));
	get_random_bytes(&cc->key, cc->key_size);
	kzfree(cc->key_string);
	cc->key_string = NULL;
	r = crypt_setkey(cc);
	memset(&cc->key, 0, cc->key_size * sizeof(u8));

	return crypt_setkey(cc);
	return r;
}

static void crypt_dtr(struct dm_target *ti)