diff --git a/umskt/src/confid/black_box.rs b/umskt/src/confid/black_box.rs index e074cde..c70763e 100644 --- a/umskt/src/confid/black_box.rs +++ b/umskt/src/confid/black_box.rs @@ -678,7 +678,7 @@ fn rol(x: u32, shift: i32) -> u32 { x << shift | x >> (32_i32 - shift) } -unsafe fn sha1_single_block(input: *mut u8, output: *mut u8) { +fn sha1_single_block(input: &[u8], output: &mut [u8]) { let mut a = 0x67452301_i32 as u32; let mut b = 0xefcdab89_u32; let mut c = 0x98badcfe_u32; @@ -687,10 +687,10 @@ unsafe fn sha1_single_block(input: *mut u8, output: *mut u8) { let mut w: [u32; 80] = [0; 80]; let mut i = 0_i32 as usize; while i < 16 { - w[i] = ((*input.add(4_usize.wrapping_mul(i)) as i32) << 24_i32 - | (*input.add(4_usize.wrapping_mul(i).wrapping_add(1)) as i32) << 16_i32 - | (*input.add(4_usize.wrapping_mul(i).wrapping_add(2)) as i32) << 8_i32 - | *input.add(4_usize.wrapping_mul(i).wrapping_add(3)) as i32) as u32; + w[i] = ((input[4_usize.wrapping_mul(i)] as i32) << 24_i32 + | (input[4_usize.wrapping_mul(i).wrapping_add(1)] as i32) << 16_i32 + | (input[4_usize.wrapping_mul(i).wrapping_add(2)] as i32) << 8_i32 + | input[4_usize.wrapping_mul(i).wrapping_add(3)] as i32) as u32; i = i.wrapping_add(1); } i = 16_i32 as usize; @@ -765,26 +765,26 @@ unsafe fn sha1_single_block(input: *mut u8, output: *mut u8) { c = c.wrapping_add(0x98badcfe_u32); d = d.wrapping_add(0x10325476_i32 as u32); e = e.wrapping_add(0xc3d2e1f0_u32); - *output.offset(0_i32 as isize) = (a >> 24_i32) as u8; - *output.offset(1_i32 as isize) = (a >> 16_i32) as u8; - *output.offset(2_i32 as isize) = (a >> 8_i32) as u8; - *output.offset(3_i32 as isize) = a as u8; - *output.offset(4_i32 as isize) = (b >> 24_i32) as u8; - *output.offset(5_i32 as isize) = (b >> 16_i32) as u8; - *output.offset(6_i32 as isize) = (b >> 8_i32) as u8; - *output.offset(7_i32 as isize) = b as u8; - *output.offset(8_i32 as isize) = (c >> 24_i32) as u8; - *output.offset(9_i32 as isize) = (c >> 16_i32) as u8; - *output.offset(10_i32 as isize) = (c >> 8_i32) as u8; - *output.offset(11_i32 as isize) = c as u8; - *output.offset(12_i32 as isize) = (d >> 24_i32) as u8; - *output.offset(13_i32 as isize) = (d >> 16_i32) as u8; - *output.offset(14_i32 as isize) = (d >> 8_i32) as u8; - *output.offset(15_i32 as isize) = d as u8; - *output.offset(16_i32 as isize) = (e >> 24_i32) as u8; - *output.offset(17_i32 as isize) = (e >> 16_i32) as u8; - *output.offset(18_i32 as isize) = (e >> 8_i32) as u8; - *output.offset(19_i32 as isize) = e as u8; + output[0] = (a >> 24_i32) as u8; + output[1] = (a >> 16_i32) as u8; + output[2] = (a >> 8_i32) as u8; + output[3] = a as u8; + output[4] = (b >> 24_i32) as u8; + output[5] = (b >> 16_i32) as u8; + output[6] = (b >> 8_i32) as u8; + output[7] = b as u8; + output[8] = (c >> 24_i32) as u8; + output[9] = (c >> 16_i32) as u8; + output[10] = (c >> 8_i32) as u8; + output[11] = c as u8; + output[12] = (d >> 24_i32) as u8; + output[13] = (d >> 16_i32) as u8; + output[14] = (d >> 8_i32) as u8; + output[15] = d as u8; + output[16] = (e >> 24_i32) as u8; + output[17] = (e >> 16_i32) as u8; + output[18] = (e >> 8_i32) as u8; + output[19] = e as u8; } unsafe fn mix(buffer: *mut u8, buf_size: usize, key: *const u8, key_size: usize) { @@ -811,7 +811,7 @@ unsafe fn mix(buffer: *mut u8, buf_size: usize, key: *const u8, key_size: usize) half.wrapping_add(key_size) .wrapping_mul(8) .wrapping_div(0x100) as u8; - sha1_single_block(sha1_input.as_mut_ptr(), sha1_result.as_mut_ptr()); + sha1_single_block(&sha1_input, &mut sha1_result); let mut i = half & !3; while i < half { sha1_result[i] = sha1_result[i.wrapping_add(4).wrapping_sub(half & 3)]; @@ -849,7 +849,7 @@ unsafe fn unmix(buffer: *mut u8, buf_size: usize, key: *const u8, key_size: usiz half.wrapping_add(key_size) .wrapping_mul(8) .wrapping_div(0x100) as u8; - sha1_single_block(sha1_input.as_mut_ptr(), sha1_result.as_mut_ptr()); + sha1_single_block(&sha1_input, &mut sha1_result); let mut i = half & !3; while i < half { sha1_result[i] = sha1_result[i.wrapping_add(4).wrapping_sub(half & 3)];