prettier loop
This commit is contained in:
parent
8421041d17
commit
8be0df7d60
21
src/dghv.rs
21
src/dghv.rs
@ -11,14 +11,10 @@ pub fn encrypt_bit(bit: u8, key: &Integer) -> Integer {
|
|||||||
let q: Integer = Integer::from(rng.next_u64()) % key;
|
let q: Integer = Integer::from(rng.next_u64()) % key;
|
||||||
|
|
||||||
// noise
|
// noise
|
||||||
let mut r: Integer;
|
|
||||||
let p_div_4: Integer = key.clone() / 4;
|
let p_div_4: Integer = key.clone() / 4;
|
||||||
loop {
|
let r = std::iter::repeat_with(|| Integer::from(rng.next_u64()))
|
||||||
r = Integer::from(rng.next_u64());
|
.find(|r| r.clone() * 2 < p_div_4)
|
||||||
if r.clone() * 2 < p_div_4 {
|
.unwrap();
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// c = b + p*q + 2*r
|
// c = b + p*q + 2*r
|
||||||
let mut c = Integer::new();
|
let mut c = Integer::new();
|
||||||
@ -36,11 +32,8 @@ pub fn generate_secret_key(eta: u32) -> Integer {
|
|||||||
let mut rng = StdRng::from_os_rng();
|
let mut rng = StdRng::from_os_rng();
|
||||||
let lower = Integer::from(1) << (eta - 1);
|
let lower = Integer::from(1) << (eta - 1);
|
||||||
let upper = Integer::from(1) << eta;
|
let upper = Integer::from(1) << eta;
|
||||||
|
let range: Integer = upper - &lower;
|
||||||
loop {
|
std::iter::repeat_with(|| Integer::from(rng.next_u64()) % &range + &lower)
|
||||||
let p = Integer::from(rng.next_u64()) % (upper.clone() - lower.clone()) + &lower;
|
.find(|p: &Integer| p.is_odd())
|
||||||
if p.is_odd() {
|
.unwrap()
|
||||||
return p;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user