From: Herbert Xu Date: Tue, 4 Dec 2007 09:07:27 +0000 (+1100) Subject: [CRYPTO] aead: Return EBADMSG for ICV mismatch X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=fe70f5dfe1a7b5caab96531089dac3d8728c0ebd;p=linux-beck.git [CRYPTO] aead: Return EBADMSG for ICV mismatch This patch changes gcm/authenc to return EBADMSG instead of EINVAL for ICV mismatches. This convention has already been adopted by IPsec. Signed-off-by: Herbert Xu --- diff --git a/crypto/authenc.c b/crypto/authenc.c index 82e03ffa6245..6c9104ebf2f4 100644 --- a/crypto/authenc.c +++ b/crypto/authenc.c @@ -200,7 +200,7 @@ auth_unlock: authsize = crypto_aead_authsize(authenc); scatterwalk_map_and_copy(ihash, src, cryptlen, authsize, 0); - return memcmp(ihash, ohash, authsize) ? -EINVAL : 0; + return memcmp(ihash, ohash, authsize) ? -EBADMSG: 0; } static void crypto_authenc_decrypt_done(struct crypto_async_request *req, diff --git a/crypto/gcm.c b/crypto/gcm.c index ed8a6261b346..d60c340b0b9d 100644 --- a/crypto/gcm.c +++ b/crypto/gcm.c @@ -327,7 +327,7 @@ static int crypto_gcm_decrypt(struct aead_request *req) scatterwalk_map_and_copy(iauth_tag, req->src, cryptlen, authsize, 0); if (memcmp(iauth_tag, auth_tag, authsize)) - return -EINVAL; + return -EBADMSG; return crypto_ablkcipher_decrypt(&abreq); }