diff options
| -rw-r--r-- | crypto/ccm.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/crypto/ccm.c b/crypto/ccm.c index 1ce37ae0ce56..0a083342ec8c 100644 --- a/crypto/ccm.c +++ b/crypto/ccm.c | |||
| @@ -363,7 +363,7 @@ static int crypto_ccm_decrypt(struct aead_request *req) | |||
| 363 | unsigned int cryptlen = req->cryptlen; | 363 | unsigned int cryptlen = req->cryptlen; |
| 364 | u8 *authtag = pctx->auth_tag; | 364 | u8 *authtag = pctx->auth_tag; |
| 365 | u8 *odata = pctx->odata; | 365 | u8 *odata = pctx->odata; |
| 366 | u8 *iv = req->iv; | 366 | u8 *iv = pctx->idata; |
| 367 | int err; | 367 | int err; |
| 368 | 368 | ||
| 369 | cryptlen -= authsize; | 369 | cryptlen -= authsize; |
| @@ -379,6 +379,8 @@ static int crypto_ccm_decrypt(struct aead_request *req) | |||
| 379 | if (req->src != req->dst) | 379 | if (req->src != req->dst) |
| 380 | dst = pctx->dst; | 380 | dst = pctx->dst; |
| 381 | 381 | ||
| 382 | memcpy(iv, req->iv, 16); | ||
| 383 | |||
| 382 | skcipher_request_set_tfm(skreq, ctx->ctr); | 384 | skcipher_request_set_tfm(skreq, ctx->ctr); |
| 383 | skcipher_request_set_callback(skreq, pctx->flags, | 385 | skcipher_request_set_callback(skreq, pctx->flags, |
| 384 | crypto_ccm_decrypt_done, req); | 386 | crypto_ccm_decrypt_done, req); |
