diff --git a/src/confid.rs b/src/confid.rs index 833eab9..d6c9e40 100644 --- a/src/confid.rs +++ b/src/confid.rs @@ -16,8 +16,8 @@ type size_t = u64; #[derive(Copy, Clone)] #[repr(C)] struct TDivisor { - u: [u16; 2], - v: [u16; 2], + u: [u64; 2], + v: [u64; 2], } #[derive(Copy, Clone)] #[repr(C)] @@ -297,8 +297,8 @@ unsafe fn find_divisor_v(mut d: *mut TDivisor) -> i32 { residue_add(f1, residue_mul(u1, residue_mul(v1, v1))), residue_inv(residue_add(v1, v1)), ); - (*d).v[0_i32 as usize] = v0 as u16; - (*d).v[1_i32 as usize] = v1 as u16; + (*d).v[0_i32 as usize] = v0; + (*d).v[1_i32 as usize] = v1; 1_i32 } @@ -750,32 +750,32 @@ unsafe fn divisor_add(src1: *const TDivisor, src2: *const TDivisor, mut dst: *mu ); } if udeg == 2_i32 { - (*dst).u[0_i32 as usize] = u[0_i32 as usize] as u16; - (*dst).u[1_i32 as usize] = u[1_i32 as usize] as u16; + (*dst).u[0_i32 as usize] = u[0_i32 as usize]; + (*dst).u[1_i32 as usize] = u[1_i32 as usize]; (*dst).v[0_i32 as usize] = (if vdeg >= 0_i32 { v[0_i32 as usize] } else { 0_i32 as u64 - }) as u16; + }); (*dst).v[1_i32 as usize] = (if vdeg >= 1_i32 { v[1_i32 as usize] } else { 0_i32 as u64 - }) as u16; + }); } else if udeg == 1_i32 { - (*dst).u[0_i32 as usize] = u[0_i32 as usize] as u16; - (*dst).u[1_i32 as usize] = BAD as u16; + (*dst).u[0_i32 as usize] = u[0_i32 as usize]; + (*dst).u[1_i32 as usize] = BAD; (*dst).v[0_i32 as usize] = (if vdeg >= 0_i32 { v[0_i32 as usize] } else { 0_i32 as u64 - }) as u16; - (*dst).v[1_i32 as usize] = BAD as u16; + }); + (*dst).v[1_i32 as usize] = BAD; } else { - (*dst).u[0_i32 as usize] = BAD as u16; - (*dst).u[1_i32 as usize] = BAD as u16; - (*dst).v[0_i32 as usize] = BAD as u16; - (*dst).v[1_i32 as usize] = BAD as u16; + (*dst).u[0_i32 as usize] = BAD; + (*dst).u[1_i32 as usize] = BAD; + (*dst).v[0_i32 as usize] = BAD; + (*dst).v[1_i32 as usize] = BAD; }; } @@ -786,10 +786,10 @@ unsafe fn divisor_mul128( mut dst: *mut TDivisor, ) { if mult_lo == 0_i32 as u64 && mult_hi == 0_i32 as u64 { - (*dst).u[0_i32 as usize] = BAD as u16; - (*dst).u[1_i32 as usize] = BAD as u16; - (*dst).v[0_i32 as usize] = BAD as u16; - (*dst).v[1_i32 as usize] = BAD as u16; + (*dst).u[0_i32 as usize] = BAD; + (*dst).u[1_i32 as usize] = BAD; + (*dst).v[0_i32 as usize] = BAD; + (*dst).v[1_i32 as usize] = BAD; return; } let mut cur: TDivisor = *src; @@ -1179,8 +1179,8 @@ unsafe fn Generate(installation_id_str: *const i8, confirmation_id: *mut i8) -> d_0.u[0_i32 as usize] = residue_sub( residue_mul(x1, x1), residue_mul(43_i32 as u64, residue_mul(x2, x2)), - ) as u16; - d_0.u[1_i32 as usize] = residue_add(x1, x1) as u16; + ); + d_0.u[1_i32 as usize] = residue_add(x1, x1); if find_divisor_v(&mut d_0) != 0 { break; }