crypto: rsa-pkcs1pad - use constant time memory comparison for MACs
authorJason A. Donenfeld <Jason@zx2c4.com>
Sun, 11 Jun 2017 21:20:23 +0000 (23:20 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 15 Jul 2017 10:16:16 +0000 (12:16 +0200)
commit fec17cb2231733174e039ad9054fa16bb358e2ec upstream.

Otherwise, we enable all sorts of forgeries via timing attack.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Suggested-by: Stephan Müller <smueller@chronox.de>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: linux-crypto@vger.kernel.org
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
crypto/rsa-pkcs1pad.c

index 8baab4307f7b9a9064fa1234825fca29a34380c6..7830d304dff6f75d9464857fbab0592872657d37 100644 (file)
@@ -496,7 +496,7 @@ static int pkcs1pad_verify_complete(struct akcipher_request *req, int err)
                goto done;
        pos++;
 
-       if (memcmp(out_buf + pos, digest_info->data, digest_info->size))
+       if (crypto_memneq(out_buf + pos, digest_info->data, digest_info->size))
                goto done;
 
        pos += digest_info->size;