Browse 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 4 years ago
parent
commit
36a56871c0
1 changed files with 3 additions and 3 deletions
  1. 3 3
      Userland/Libraries/LibCrypto/BigInt/Algorithms/ModularPower.cpp

+ 3 - 3
Userland/Libraries/LibCrypto/BigInt/Algorithms/ModularPower.cpp

@@ -58,9 +58,9 @@ ALWAYS_INLINE static u32 inverse_wrapped(u32 value)
 {
 {
     VERIFY(value & 1);
     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;
     size_t i = 1;
     while (i < 32) {
     while (i < 32) {
         t = t * t;
         t = t * t;