From: Steffen Klassert Date: Wed, 15 Apr 2009 12:45:03 +0000 (+0800) Subject: crypto: eseqiv - Fix IV generation for sync algorithms X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=abe5fa7899fb5809ddc7336d8dd0edd5b2b96665;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git crypto: eseqiv - Fix IV generation for sync algorithms If crypto_ablkcipher_encrypt() returns synchronous, eseqiv_complete2() is called even if req->giv is already the pointer to the generated IV. The generated IV is overwritten with some random data in this case. This patch fixes this by calling eseqiv_complete2() just if the generated IV has to be copied to req->giv. Signed-off-by: Steffen Klassert Signed-off-by: Herbert Xu --- diff --git a/crypto/eseqiv.c b/crypto/eseqiv.c index 2a342c8e52b3..3ca3b669d5d5 100644 --- a/crypto/eseqiv.c +++ b/crypto/eseqiv.c @@ -153,7 +153,8 @@ static int eseqiv_givencrypt(struct skcipher_givcrypt_request *req) if (err) goto out; - eseqiv_complete2(req); + if (giv != req->giv) + eseqiv_complete2(req); out: return err;