summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2024-08-10 14:20:59 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2024-08-17 13:55:50 +0800
commit560efa7fca4f4f5bd390e54d43cd2cd1831c60cd (patch)
treec43b63927176754a74c8631b5192d6c3cb46c0e7 /crypto
parent8e3a67f2de87ee94ac11ea69beb4edc2993b17a0 (diff)
downloadlinux-560efa7fca4f4f5bd390e54d43cd2cd1831c60cd.tar.gz
linux-560efa7fca4f4f5bd390e54d43cd2cd1831c60cd.tar.bz2
linux-560efa7fca4f4f5bd390e54d43cd2cd1831c60cd.zip
crypto: dh - Check mpi_rshift errors
Now that mpi_rshift can return errors, check them. Fixes: 35d2bf20683f ("crypto: dh - calculate Q from P for the full public key verification") Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/dh.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/crypto/dh.c b/crypto/dh.c
index 68d11d66c0b5..afc0fd847761 100644
--- a/crypto/dh.c
+++ b/crypto/dh.c
@@ -145,9 +145,9 @@ static int dh_is_pubkey_valid(struct dh_ctx *ctx, MPI y)
* ->p is odd, so no need to explicitly subtract one
* from it before shifting to the right.
*/
- mpi_rshift(q, ctx->p, 1);
+ ret = mpi_rshift(q, ctx->p, 1) ?:
+ mpi_powm(val, y, q, ctx->p);
- ret = mpi_powm(val, y, q, ctx->p);
mpi_free(q);
if (ret) {
mpi_free(val);