From: Milan Broz Date: Tue, 13 Feb 2018 13:50:50 +0000 (+0100) Subject: dm integrity: fail early if required HMAC key is not available X-Git-Tag: v4.19~1279^2~20 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e16b4f99f0f79682a7efe191a8ce694d87ca9fc8;p=platform%2Fkernel%2Flinux-rpi.git dm integrity: fail early if required HMAC key is not available Since crypto API commit 9fa68f62004 ("crypto: hash - prevent using keyed hashes without setting key") dm-integrity cannot use keyed algorithms without the key being set. The dm-integrity recognizes this too late (during use of HMAC), so it allows creation and formatting of superblock, but the device is in fact unusable. Fix it by detecting the key requirement in integrity table constructor. Signed-off-by: Milan Broz Signed-off-by: Mike Snitzer --- diff --git a/drivers/md/dm-integrity.c b/drivers/md/dm-integrity.c index 46d7c87..6c81b11 100644 --- a/drivers/md/dm-integrity.c +++ b/drivers/md/dm-integrity.c @@ -2548,6 +2548,9 @@ static int get_mac(struct crypto_shash **hash, struct alg_spec *a, char **error, *error = error_key; return r; } + } else if (crypto_shash_get_flags(*hash) & CRYPTO_TFM_NEED_KEY) { + *error = error_key; + return -ENOKEY; } }