diff --git a/aquatic_http_protocol/src/utils.rs b/aquatic_http_protocol/src/utils.rs index 17adce4..d8f201a 100644 --- a/aquatic_http_protocol/src/utils.rs +++ b/aquatic_http_protocol/src/utils.rs @@ -12,15 +12,17 @@ pub fn urlencode_20_bytes( input: [u8; 20], output: &mut impl Write ) -> ::std::io::Result<()> { - let mut tmp = [0u8; 2]; + let mut tmp = [b'%'; 60]; for i in 0..input.len() { - hex::encode_to_slice(&input[i..i+1], &mut tmp).unwrap(); - - output.write(b"%")?; - output.write(&tmp)?; + hex::encode_to_slice( + &input[i..i + 1], + &mut tmp[i * 3 + 1..i * 3 + 3] + ).unwrap(); } + output.write(&tmp)?; + Ok(()) }