From 36a56871c04e77b088847cf9d51becfd8c032904 Mon Sep 17 00:00:00 2001 From: DexesTTP Date: Fri, 14 May 2021 09:46:41 +0200 Subject: [PATCH] LibCrypto: Prevent a signed overflow during BigInt Modular Power The algorithm isn't explicit about what type this needs to be. But this passes all of the tests, so that's probably fine. --- .../Libraries/LibCrypto/BigInt/Algorithms/ModularPower.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibCrypto/BigInt/Algorithms/ModularPower.cpp b/Userland/Libraries/LibCrypto/BigInt/Algorithms/ModularPower.cpp index 15dca5a721..258f96b750 100644 --- a/Userland/Libraries/LibCrypto/BigInt/Algorithms/ModularPower.cpp +++ b/Userland/Libraries/LibCrypto/BigInt/Algorithms/ModularPower.cpp @@ -58,9 +58,9 @@ ALWAYS_INLINE static u32 inverse_wrapped(u32 value) { VERIFY(value & 1); - i64 b = static_cast(value); - i64 k0 = (2 - b); - i64 t = (b - 1); + u64 b = static_cast(value); + u64 k0 = (2 - b); + u64 t = (b - 1); size_t i = 1; while (i < 32) { t = t * t;