diff options
Diffstat (limited to 'crypto/ccm.c')
| -rw-r--r-- | crypto/ccm.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/crypto/ccm.c b/crypto/ccm.c index 499c91717d93..1df84217f7c9 100644 --- a/crypto/ccm.c +++ b/crypto/ccm.c | |||
| @@ -271,7 +271,8 @@ static int crypto_ccm_auth(struct aead_request *req, struct scatterlist *plain, | |||
| 271 | } | 271 | } |
| 272 | 272 | ||
| 273 | /* compute plaintext into mac */ | 273 | /* compute plaintext into mac */ |
| 274 | get_data_to_compute(cipher, pctx, plain, cryptlen); | 274 | if (cryptlen) |
| 275 | get_data_to_compute(cipher, pctx, plain, cryptlen); | ||
| 275 | 276 | ||
| 276 | out: | 277 | out: |
| 277 | return err; | 278 | return err; |
| @@ -363,7 +364,7 @@ static void crypto_ccm_decrypt_done(struct crypto_async_request *areq, | |||
| 363 | 364 | ||
| 364 | if (!err) { | 365 | if (!err) { |
| 365 | err = crypto_ccm_auth(req, req->dst, cryptlen); | 366 | err = crypto_ccm_auth(req, req->dst, cryptlen); |
| 366 | if (!err && memcmp(pctx->auth_tag, pctx->odata, authsize)) | 367 | if (!err && crypto_memneq(pctx->auth_tag, pctx->odata, authsize)) |
| 367 | err = -EBADMSG; | 368 | err = -EBADMSG; |
| 368 | } | 369 | } |
| 369 | aead_request_complete(req, err); | 370 | aead_request_complete(req, err); |
| @@ -422,7 +423,7 @@ static int crypto_ccm_decrypt(struct aead_request *req) | |||
| 422 | return err; | 423 | return err; |
| 423 | 424 | ||
| 424 | /* verify */ | 425 | /* verify */ |
| 425 | if (memcmp(authtag, odata, authsize)) | 426 | if (crypto_memneq(authtag, odata, authsize)) |
| 426 | return -EBADMSG; | 427 | return -EBADMSG; |
| 427 | 428 | ||
| 428 | return err; | 429 | return err; |
