From 999f84518c0b2820565f69eda001ab79664d634c Mon Sep 17 00:00:00 2001 From: Sean Parkinson Date: Wed, 24 Jan 2024 16:09:15 +1000 Subject: [PATCH] RSA Decryption: check private value after decryption --- wolfcrypt/src/rsa.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/wolfcrypt/src/rsa.c b/wolfcrypt/src/rsa.c index 3382a5db2..af7abd586 100644 --- a/wolfcrypt/src/rsa.c +++ b/wolfcrypt/src/rsa.c @@ -2723,6 +2723,17 @@ static int RsaFunctionSync(const byte* in, word32 inLen, byte* out, if (mp_to_unsigned_bin_len_ct(tmp, out, (int)*outLen) != MP_OKAY) ret = MP_TO_E; } +#ifdef WOLFSSL_RSA_CHECK_D_ON_DECRYPT + if ((ret == 0) && (type == RSA_PRIVATE_DECRYPT)) { + mp_sub(&key->n, &key->p, tmp); + mp_sub(tmp, &key->q, tmp); + mp_add_d(tmp, 1, tmp); + mp_mulmod(&key->d, &key->e, tmp, tmp); + if (!mp_isone(tmp)) { + ret = MP_EXPTMOD_E; + } + } +#endif #else (void)type; (void)key;