diff options
author | Steffen Klassert <steffen.klassert@secunet.com> | 2009-04-15 08:45:03 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2009-04-15 08:45:03 -0400 |
commit | abe5fa7899fb5809ddc7336d8dd0edd5b2b96665 (patch) | |
tree | c6fe662b346cbad62b6577ae91dd408f9ab3d63c /crypto/eseqiv.c | |
parent | 295c01f90db2b8b8394e1f7cde59b96d71f98e07 (diff) |
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 <steffen.klassert@secunet.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/eseqiv.c')
-rw-r--r-- | crypto/eseqiv.c | 3 |
1 files changed, 2 insertions, 1 deletions
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) | |||
153 | if (err) | 153 | if (err) |
154 | goto out; | 154 | goto out; |
155 | 155 | ||
156 | eseqiv_complete2(req); | 156 | if (giv != req->giv) |
157 | eseqiv_complete2(req); | ||
157 | 158 | ||
158 | out: | 159 | out: |
159 | return err; | 160 | return err; |