diff options
Diffstat (limited to 'src/tools.rs')
-rw-r--r-- | src/tools.rs | 19 |
1 files changed, 0 insertions, 19 deletions
diff --git a/src/tools.rs b/src/tools.rs deleted file mode 100644 index 8cb6910..0000000 --- a/src/tools.rs +++ /dev/null @@ -1,19 +0,0 @@ -use num::BigUint; - -pub fn powm(base: &BigUint, exp: &BigUint, modulus: &BigUint) -> BigUint { - let zero = BigUint::new(vec![0]); - let one = BigUint::new(vec![1]); - let two = BigUint::new(vec![2]); - let mut exp = exp.clone(); - let mut result = one.clone(); - let mut base = base % modulus; - - while exp > zero { - if &exp % &two == one { - result = (result * &base) % modulus; - } - exp = exp >> 1; - base = (&base * &base) % modulus; - } - result -} |