@@ -19,16 +19,14 @@ fn verify(modulus: &Integer, g: &Integer, t: u64, y: &Integer, pi: &Integer) ->
1919
2020/// algo_3 from the paper
2121fn eval ( modulus : & Integer , g : & Integer , t : u64 ) -> ( Integer , Integer ) {
22- let modulus = modulus. clone ( ) ;
23-
2422 // y <- (g^2)^t
2523 let mut y = g. clone ( ) ;
2624 for _ in 0 ..t {
2725 y = y. clone ( ) * y. clone ( ) ;
2826 y = y. div_rem_floor ( modulus. clone ( ) ) . 1 ;
2927 }
3028
31- let l = hash_to_prime ( & modulus, & [ & g, & y] ) ;
29+ let l = hash_to_prime ( modulus, & [ g, & y] ) ;
3230
3331 // algo_4 from the paper, long division
3432 // TODO: consider algo_5 instead
@@ -43,24 +41,23 @@ fn eval(modulus: &Integer, g: &Integer, t: u64) -> (Integer, Integer) {
4341 let quo_rem = r2. clone ( ) . div_rem_floor ( l. clone ( ) ) ;
4442 b = quo_rem. 0 ;
4543 r = quo_rem. 1 ;
46- let pi_2 = pi. clone ( ) . pow_mod ( & two, & modulus) . unwrap ( ) ;
47- let g_b = g. clone ( ) . pow_mod ( & b, & modulus) . unwrap ( ) ;
44+ let pi_2 = pi. clone ( ) . pow_mod ( & two, modulus) . unwrap ( ) ;
45+ let g_b = g. clone ( ) . pow_mod ( & b, modulus) . unwrap ( ) ;
4846 pi = pi_2 * g_b;
4947 }
50- pi = Integer :: from ( pi . div_rem_floor ( modulus . clone ( ) ) . 1 ) ;
51- ( y, pi)
48+
49+ ( y, pi. div_rem_floor ( modulus . clone ( ) ) . 1 )
5250}
5351
5452/// int(H("residue"||x)) mod N
5553fn h_g ( modulus : & Integer , seed : & Integer ) -> Integer {
56- let modulus = modulus. clone ( ) ;
5754 let mut hasher = Sha256 :: new ( ) ;
5855 hasher. update ( "residue" . as_bytes ( ) ) ;
5956 hasher. update ( seed. to_digits :: < u8 > ( Order :: Lsf ) ) ;
6057 let hashed = Integer :: from_digits ( & hasher. finalize ( ) , Order :: Lsf ) ;
6158
6259 // inverse, to get enough security bits
63- match hashed. invert ( & modulus. clone ( ) ) {
60+ match hashed. invert ( modulus) {
6461 Ok ( inverse) => inverse,
6562 Err ( unchanged) => unchanged,
6663 }
0 commit comments