dm-crypt: use crypto_shash_digest() in crypt_iv_tcw_whitening()
Subsystems (2)
PATCH 1/1 dm-crypt: use crypto_shash_digest() in crypt_iv_tcw_whitening()
From: Eric Biggers <[email protected]>
Simplify crypt_iv_tcw_whitening() by using crypto_shash_digest() instead of an init+update+final sequence. This should also improve performance.
Signed-off-by Eric Biggers <[email protected]>
--- drivers/md/dm-crypt.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-)
drivers/md/dm-crypt.c +1 -7
@@ -645,27 +645,21 @@ static int crypt_iv_tcw_whitening(struct crypt_config *cc,SHASH_DESC_ON_STACK (desc, tcw->crc32_tfm);int i, r;/* xor whitening with sector number */ crypto_xor_cpy (buf, tcw->whitening, (u8 *)§or,8 );crypto_xor_cpy (&buf[8 ], tcw->whitening +8 , (u8 *)§or,8 );/* calculate crc32 for every 32bit part and xor it */ desc->tfm = tcw->crc32_tfm;for (i =0 ; i <4 ; i++) { - r =crypto_shash_init (desc); -if (r) - goto out; - r =crypto_shash_update (desc, &buf[i *4 ],4 ); -if (r) - goto out; - r =crypto_shash_final (desc, &buf[i *4 ]); + r =crypto_shash_digest (desc, &buf[i *4 ],4 , &buf[i *4 ]);if (r) goto out; }crypto_xor (&buf[0 ], &buf[12 ],4 );crypto_xor (&buf[4 ], &buf[8 ],4 );/* apply whitening (8 bytes) to whole sector */ for (i =0 ; i < ((1 <<SECTOR_SHIFT ) /8 ); i++)crypto_xor (data + i *8 , buf,8 ); out:
base-commit: 2af9b20dbb39f6ebf9b9b6c090271594627d818e
Signature · 1 line
2.42.0