Parcourir la source

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.
DexesTTP il y a 4 ans
Parent
commit
36a56871c0

+ 3 - 3
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<i64>(value);
-    i64 k0 = (2 - b);
-    i64 t = (b - 1);
+    u64 b = static_cast<u64>(value);
+    u64 k0 = (2 - b);
+    u64 t = (b - 1);
     size_t i = 1;
     while (i < 32) {
         t = t * t;