diff --git a/Cargo.lock b/Cargo.lock index 7bae364..7681353 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -93,7 +93,7 @@ dependencies = [ "chacha20poly1305", "chrono", "derive_more", - "digest 0.10.1", + "digest 0.10.3", "ecies-ed25519", "ed25519-dalek", "getopts", @@ -106,7 +106,7 @@ dependencies = [ "num_cpus", "open", "rand 0.7.3", - "rand 0.8.4", + "rand 0.8.5", "serde", "serde_bytes", "serde_cbor", @@ -340,11 +340,12 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d6b536309245c849479fba3da410962a43ed8e51c26b729208ec0ac2798d0" +checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" dependencies = [ "generic-array", + "typenum", ] [[package]] @@ -413,13 +414,12 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.1" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b697d66081d42af4fba142d56918a3cb21dc8eb63372c6b85d14f44fb9c5979b" +checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" dependencies = [ "block-buffer 0.10.0", "crypto-common", - "generic-array", ] [[package]] @@ -842,9 +842,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "open" -version = "2.0.2" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176ee4b630d174d2da8241336763bb459281dddc0f4d87f72c3b1efc9a6109b7" +checksum = "4b1e014096a08da72e3287119e0c69a8f6fce61a031a55b1ce2607fe9c2b5a67" dependencies = [ "pathdiff", "winapi", @@ -936,19 +936,18 @@ dependencies = [ "libc", "rand_chacha 0.2.2", "rand_core 0.5.1", - "rand_hc 0.2.0", + "rand_hc", ] [[package]] name = "rand" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha 0.3.1", "rand_core 0.6.3", - "rand_hc 0.3.1", ] [[package]] @@ -998,15 +997,6 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "rand_hc" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" -dependencies = [ - "rand_core 0.6.3", -] - [[package]] name = "ring" version = "0.16.20" @@ -1067,9 +1057,9 @@ checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" [[package]] name = "serde" -version = "1.0.133" +version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97565067517b60e2d1ea8b268e59ce036de907ac523ad83a0475da04e818989a" +checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" dependencies = [ "serde_derive", ] @@ -1095,9 +1085,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.133" +version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed201699328568d8d08208fdd080e3ff594e6c422e438b6705905da01005d537" +checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" dependencies = [ "proc-macro2", "quote", @@ -1106,9 +1096,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.74" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2bb9cd061c5865d345bb02ca49fcef1391741b672b54a0bf7b679badec3142" +checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95" dependencies = [ "itoa", "ryu", @@ -1136,7 +1126,7 @@ checksum = "99c3bd8169c58782adad9290a9af5939994036b76187f7b4f0e6de91dbbfc0ec" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.1", + "digest 0.10.3", ] [[package]] @@ -1147,9 +1137,9 @@ checksum = "f054c6c1a6e95179d6f23ed974060dcefb2d9388bb7256900badad682c499de4" [[package]] name = "simplelog" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecabc0118918611790b8615670ab79296272cbe09496b6884b02b1e929c20886" +checksum = "c1348164456f72ca0116e4538bdaabb0ddb622c7d9f16387c725af3e96d6001c" dependencies = [ "chrono", "log", @@ -1300,10 +1290,11 @@ dependencies = [ [[package]] name = "thread-priority" -version = "0.4.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f6394af1cf06bf887a5f37ce84c41fd324dff220386adec3c01a85cb66c91b1" +checksum = "fb4aa39eba9de82bc3c8091a87d147dc60b8648264580a9fc6ed473747825316" dependencies = [ + "cfg-if", "libc", "log", "winapi", diff --git a/Cargo.toml b/Cargo.toml index 33bce30..6dd8a2b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,9 +13,9 @@ exclude = ["blockchain.db", "alfis.toml"] [dependencies] getopts = "0.2.21" log = "0.4.14" -simplelog = "0.11.1" +simplelog = "0.11.2" toml = "0.5.8" -digest = "0.10.1" +digest = "0.10.2" sha2 = "0.10.1" ed25519-dalek = "1.0" x25519-dalek = "1.2" @@ -25,15 +25,15 @@ signature = "1.5" blakeout = "0.3.0" num_cpus = "1.13.1" byteorder = "1.4.3" -serde = { version = "1.0.133", features = ["derive"] } -serde_json = "1.0.74" +serde = { version = "1.0.136", features = ["derive"] } +serde_json = "1.0.79" bincode = "1.3.3" serde_cbor = "0.11.2" base64 = "0.13.0" num-bigint = "0.4.3" num-traits = "0.2.14" chrono = { version = "0.4.19", features = ["serde"] } -rand = { version = "0.8.4", package = "rand" } +rand = { version = "0.8.5", package = "rand" } rand-old = { package = "rand", version = "0.7.0" } # For ed25519-dalek sqlite = "0.26.0" uuid = { version = "0.8.2", features = ["serde", "v4"] } @@ -46,14 +46,14 @@ lazy_static = "1.4.0" # Optional dependencies regulated by features web-view = { version = "0.7.3", features = [], optional = true } tinyfiledialogs = { version = "3.9", optional = true } -open = { version = "2.0.2", optional = true } +open = { version = "2.0.3", optional = true } [target.'cfg(windows)'.dependencies] winapi = { version = "0.3.9", features = ["impl-default", "wincon", "shellscalingapi"] } -thread-priority = "0.4.1" +thread-priority = "0.7.0" [target.'cfg(target_os = "linux")'.dependencies] -thread-priority = "0.4.1" +thread-priority = "0.7.0" [build-dependencies] winres = "0.1.12" diff --git a/src/crypto/chacha.rs b/src/crypto/chacha.rs index 8c1462c..6075393 100644 --- a/src/crypto/chacha.rs +++ b/src/crypto/chacha.rs @@ -10,30 +10,27 @@ pub const ZERO_NONCE: [u8; 12] = [0u8; 12]; #[derive(Clone)] pub struct Chacha { cipher: ChaCha20Poly1305, - nonce: [u8; 12] + nonce: Nonce } impl Chacha { pub fn new(key: &[u8], nonce: &[u8]) -> Self { let key = Key::from_slice(key); let cipher = ChaCha20Poly1305::new(key); - let mut buf = [0u8; 12]; - buf.copy_from_slice(nonce); - Chacha { cipher, nonce: buf } + let nonce = Nonce::clone_from_slice(nonce); + Chacha { cipher, nonce } } pub fn encrypt(&self, data: &[u8]) -> Result, Error> { - let nonce = Nonce::from(self.nonce); - self.cipher.encrypt(&nonce, data.as_ref()) + self.cipher.encrypt(&self.nonce, data.as_ref()) } pub fn decrypt(&self, data: &[u8]) -> Result, Error> { - let nonce = Nonce::from(self.nonce); - self.cipher.decrypt(&nonce, data.as_ref()) + self.cipher.decrypt(&self.nonce, data.as_ref()) } - pub fn get_nonce(&self) -> &[u8; 12] { - &self.nonce + pub fn get_nonce(&self) -> &[u8] { + &self.nonce.as_slice() } } diff --git a/src/p2p/peer.rs b/src/p2p/peer.rs index b3c34ca..5b016e1 100644 --- a/src/p2p/peer.rs +++ b/src/p2p/peer.rs @@ -49,7 +49,7 @@ impl Peer { &self.cipher } - pub fn get_nonce(&self) -> &[u8; 12] { + pub fn get_nonce(&self) -> &[u8] { match &self.cipher { None => &crate::crypto::ZERO_NONCE, Some(chacha) => chacha.get_nonce()