diff --git a/crypto/authenc.c b/crypto/authenc.c
index 80d9d0b18c13c1dbbe3ba4f85c08d2b332e24c01..aa442dea5c43ed92f591e14868d66ba7c1b3e1e6 100644
--- a/crypto/authenc.c
+++ b/crypto/authenc.c
@@ -44,7 +44,7 @@ static int crypto_authenc_setkey(struct crypto_aead *authenc, const u8 *key,
 	struct crypto_authenc_key_param *param;
 	int err = -EINVAL;
 
-	if (keylen < sizeof(*rta))
+	if (!RTA_OK(rta, keylen))
 		goto badkey;
 	if (rta->rta_type != CRYPTO_AUTHENC_KEYA_PARAM)
 		goto badkey;