X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;ds=sidebyside;f=lightning%2Fsrc%2Futil%2Fchacha20poly1305rfc.rs;h=e0e155ced4cdf0499fd4e7ede0feb41174c40543;hb=c47acd76e8e60b65335a1bd1b9bbb53ddd43e496;hp=622af70acde6d0ebca871df2c812c78c53f3595b;hpb=4909d3cd6a05dfcba39fe08e6d8f539944c8ef66;p=rust-lightning diff --git a/lightning/src/util/chacha20poly1305rfc.rs b/lightning/src/util/chacha20poly1305rfc.rs index 622af70a..e0e155ce 100644 --- a/lightning/src/util/chacha20poly1305rfc.rs +++ b/lightning/src/util/chacha20poly1305rfc.rs @@ -1,23 +1,21 @@ // ring has a garbage API so its use is avoided, but rust-crypto doesn't have RFC-variant poly1305 // Instead, we steal rust-crypto's implementation and tweak it to match the RFC. - -// Licensed under the Apache License, Version 2.0 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - +// +// This file is licensed under the Apache License, Version 2.0 or the MIT license +// , at your option. +// You may not use this file except in accordance with one or both of these +// licenses. +// // This is a port of Andrew Moons poly1305-donna // https://github.com/floodyberry/poly1305-donna -#[cfg(not(feature = "fuzztarget"))] +#[cfg(not(fuzzing))] mod real_chachapoly { use util::chacha20::ChaCha20; use util::poly1305::Poly1305; use bitcoin::hashes::cmp::fixed_time_eq; - use util::byte_utils; - #[derive(Clone, Copy)] pub struct ChaCha20Poly1305RFC { cipher: ChaCha20, @@ -51,8 +49,8 @@ mod real_chachapoly { ChaCha20Poly1305RFC::pad_mac_16(&mut mac, aad.len()); ChaCha20Poly1305RFC { - cipher: cipher, - mac: mac, + cipher, + mac, finished: false, data_len: 0, aad_len: aad.len() as u64, @@ -67,8 +65,8 @@ mod real_chachapoly { self.mac.input(output); ChaCha20Poly1305RFC::pad_mac_16(&mut self.mac, self.data_len); self.finished = true; - self.mac.input(&byte_utils::le64_to_array(self.aad_len)); - self.mac.input(&byte_utils::le64_to_array(self.data_len as u64)); + self.mac.input(&self.aad_len.to_le_bytes()); + self.mac.input(&(self.data_len as u64).to_le_bytes()); self.mac.raw_result(out_tag); } @@ -82,8 +80,8 @@ mod real_chachapoly { self.data_len += input.len(); ChaCha20Poly1305RFC::pad_mac_16(&mut self.mac, self.data_len); - self.mac.input(&byte_utils::le64_to_array(self.aad_len)); - self.mac.input(&byte_utils::le64_to_array(self.data_len as u64)); + self.mac.input(&self.aad_len.to_le_bytes()); + self.mac.input(&(self.data_len as u64).to_le_bytes()); let mut calc_tag = [0u8; 16]; self.mac.raw_result(&mut calc_tag); @@ -96,10 +94,10 @@ mod real_chachapoly { } } } -#[cfg(not(feature = "fuzztarget"))] +#[cfg(not(fuzzing))] pub use self::real_chachapoly::ChaCha20Poly1305RFC; -#[cfg(feature = "fuzztarget")] +#[cfg(fuzzing)] mod fuzzy_chachapoly { #[derive(Clone, Copy)] pub struct ChaCha20Poly1305RFC { @@ -143,5 +141,5 @@ mod fuzzy_chachapoly { } } } -#[cfg(feature = "fuzztarget")] +#[cfg(fuzzing)] pub use self::fuzzy_chachapoly::ChaCha20Poly1305RFC;