X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Futil%2Fbyte_utils.rs;h=44445666f776644947320cacac39fd0c9b57c982;hb=2950ffe54e480610dcaf0188a8f556165bbe7efe;hp=8779723fc2226849545b5e41ae5c420736dbcee5;hpb=6185a2819090bd077954244c5e2adaab5efcaa1a;p=rust-lightning diff --git a/src/util/byte_utils.rs b/src/util/byte_utils.rs index 8779723f..44445666 100644 --- a/src/util/byte_utils.rs +++ b/src/util/byte_utils.rs @@ -1,5 +1,3 @@ -//TODO: Dont expose - #[inline] pub fn slice_to_be16(v: &[u8]) -> u16 { ((v[0] as u16) << 8*1) | @@ -12,6 +10,23 @@ pub fn slice_to_be32(v: &[u8]) -> u32 { ((v[2] as u32) << 8*1) | ((v[3] as u32) << 8*0) } +#[cfg(not(feature = "fuzztarget"))] // Used only by poly1305 +#[inline] +pub fn slice_to_le32(v: &[u8]) -> u32 { + ((v[0] as u32) << 8*0) | + ((v[1] as u32) << 8*1) | + ((v[2] as u32) << 8*2) | + ((v[3] as u32) << 8*3) +} +#[inline] +pub fn slice_to_be48(v: &[u8]) -> u64 { + ((v[0] as u64) << 8*5) | + ((v[1] as u64) << 8*4) | + ((v[2] as u64) << 8*3) | + ((v[3] as u64) << 8*2) | + ((v[4] as u64) << 8*1) | + ((v[5] as u64) << 8*0) +} #[inline] pub fn slice_to_be64(v: &[u8]) -> u64 { ((v[0] as u64) << 8*7) | @@ -40,6 +55,28 @@ pub fn be32_to_array(u: u32) -> [u8; 4] { v[3] = ((u >> 8*0) & 0xff) as u8; v } +#[cfg(not(feature = "fuzztarget"))] // Used only by poly1305 +#[inline] +pub fn le32_to_array(u: u32) -> [u8; 4] { + let mut v = [0; 4]; + v[0] = ((u >> 8*0) & 0xff) as u8; + v[1] = ((u >> 8*1) & 0xff) as u8; + v[2] = ((u >> 8*2) & 0xff) as u8; + v[3] = ((u >> 8*3) & 0xff) as u8; + v +} +#[inline] +pub fn be48_to_array(u: u64) -> [u8; 6] { + assert!(u & 0xffff_0000_0000_0000 == 0); + let mut v = [0; 6]; + v[0] = ((u >> 8*5) & 0xff) as u8; + v[1] = ((u >> 8*4) & 0xff) as u8; + v[2] = ((u >> 8*3) & 0xff) as u8; + v[3] = ((u >> 8*2) & 0xff) as u8; + v[4] = ((u >> 8*1) & 0xff) as u8; + v[5] = ((u >> 8*0) & 0xff) as u8; + v +} #[inline] pub fn be64_to_array(u: u64) -> [u8; 8] { let mut v = [0; 8];