crypto: arch - use crypto_memneq instead of memcmp
authorDaniel Borkmann <dborkman@redhat.com>
Wed, 11 Dec 2013 10:28:59 +0000 (11:28 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 20 Dec 2013 12:06:24 +0000 (20:06 +0800)
Replace remaining occurences (just as we did in crypto/) under arch/*/crypto/
that make use of memcmp() for comparing keys or authentication tags for
usage with crypto_memneq(). It can simply be used as a drop-in replacement
for the normal memcmp().

Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Cc: James Yonan <james@openvpn.net>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
arch/s390/crypto/des_s390.c
arch/x86/crypto/aesni-intel_glue.c

index bcca01c9989daf57b963db9168d64ec09c7ee5af..200f2a1b599d16badb97d4b292729512602ab59d 100644 (file)
@@ -237,9 +237,9 @@ static int des3_setkey(struct crypto_tfm *tfm, const u8 *key,
        struct s390_des_ctx *ctx = crypto_tfm_ctx(tfm);
        u32 *flags = &tfm->crt_flags;
 
-       if (!(memcmp(key, &key[DES_KEY_SIZE], DES_KEY_SIZE) &&
-           memcmp(&key[DES_KEY_SIZE], &key[DES_KEY_SIZE * 2],
-                  DES_KEY_SIZE)) &&
+       if (!(crypto_memneq(key, &key[DES_KEY_SIZE], DES_KEY_SIZE) &&
+           crypto_memneq(&key[DES_KEY_SIZE], &key[DES_KEY_SIZE * 2],
+                         DES_KEY_SIZE)) &&
            (*flags & CRYPTO_TFM_REQ_WEAK_KEY)) {
                *flags |= CRYPTO_TFM_RES_WEAK_KEY;
                return -EINVAL;
index 835488b745eed5ce9484a40dfe56bf839f51d33d..aba34b8e514ce4add9e6dc06b522a609f3e5a426 100644 (file)
@@ -1001,7 +1001,7 @@ static int __driver_rfc4106_decrypt(struct aead_request *req)
                authTag, auth_tag_len);
 
        /* Compare generated tag with passed in tag. */
-       retval = memcmp(src + tempCipherLen, authTag, auth_tag_len) ?
+       retval = crypto_memneq(src + tempCipherLen, authTag, auth_tag_len) ?
                -EBADMSG : 0;
 
        if (one_entry_in_sg) {