From b8745ce20b99e6481807975050b4591cfd54cf37 Mon Sep 17 00:00:00 2001 From: Geoffrey Allott Date: Mon, 14 Jun 2021 22:23:27 +0100 Subject: [PATCH] upgrade scrypt and websockets to latest --- Cargo.lock | 125 +++++++++++++++++++++++++++++--------------------- Cargo.toml | 4 +- src/auth.rs | 6 +-- src/server.rs | 2 +- 4 files changed, 78 insertions(+), 59 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 687457b..d340a4c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,7 +17,7 @@ checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" dependencies = [ "aes-soft", "aesni", - "cipher", + "cipher 0.2.5", ] [[package]] @@ -28,7 +28,7 @@ checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da" dependencies = [ "aead", "aes", - "cipher", + "cipher 0.2.5", "ctr", "ghash", "subtle", @@ -40,7 +40,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" dependencies = [ - "cipher", + "cipher 0.2.5", "opaque-debug", ] @@ -50,7 +50,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" dependencies = [ - "cipher", + "cipher 0.2.5", "opaque-debug", ] @@ -303,14 +303,14 @@ dependencies = [ [[package]] name = "async-tungstenite" -version = "0.10.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39eca8dd578b18e557361e50ca767df55c5e62f690a5e53868c3c7a8123145b7" +checksum = "07b30ef0ea5c20caaa54baea49514a206308989c68be7ecd86c7f956e4da6378" dependencies = [ "futures-io", "futures-util", "log", - "pin-project", + "pin-project-lite 0.2.6", "tungstenite", ] @@ -343,12 +343,6 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" -[[package]] -name = "base64" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" - [[package]] name = "base64" version = "0.13.0" @@ -424,12 +418,6 @@ version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" -[[package]] -name = "bytes" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" - [[package]] name = "bytes" version = "1.0.1" @@ -463,6 +451,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "cipher" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +dependencies = [ + "generic-array", +] + [[package]] name = "clap" version = "2.33.3" @@ -484,7 +481,7 @@ version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc4369b5e4c0cddf64ad8981c0111e7df4f7078f4d6ba98fb31f2e17c4c57b7e" dependencies = [ - "bytes 1.0.1", + "bytes", "futures-util", "memchr", "pin-project-lite 0.2.6", @@ -513,9 +510,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951" dependencies = [ "aes-gcm", - "base64 0.13.0", + "base64", "hkdf", - "hmac", + "hmac 0.10.1", "percent-encoding", "rand 0.8.3", "sha2", @@ -584,6 +581,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "crypto-mac" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e" +dependencies = [ + "generic-array", + "subtle", +] + [[package]] name = "ctor" version = "0.1.20" @@ -600,7 +607,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" dependencies = [ - "cipher", + "cipher 0.2.5", ] [[package]] @@ -900,7 +907,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51ab2f639c231793c5f6114bdb9bbe50a7dbbfcd7c7c6bd8475dec2d991e964f" dependencies = [ "digest", - "hmac", + "hmac 0.10.1", ] [[package]] @@ -909,7 +916,17 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" dependencies = [ - "crypto-mac", + "crypto-mac 0.10.0", + "digest", +] + +[[package]] +name = "hmac" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" +dependencies = [ + "crypto-mac 0.11.0", "digest", ] @@ -919,7 +936,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11" dependencies = [ - "bytes 1.0.1", + "bytes", "fnv", "itoa", ] @@ -946,7 +963,7 @@ dependencies = [ "anyhow", "async-channel", "async-std", - "base64 0.13.0", + "base64", "cookie", "futures-lite", "infer", @@ -990,11 +1007,11 @@ checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac" [[package]] name = "input_buffer" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a8a95243d5a0398cae618ec29477c6e3cb631152be5c19481f80bc71559754" +checksum = "f97967975f448f1a7ddb12b0bc41069d09ed6a1c161a92687e057325db35d413" dependencies = [ - "bytes 0.5.6", + "bytes", ] [[package]] @@ -1180,21 +1197,22 @@ checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" [[package]] name = "password-hash" -version = "0.1.4" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54986aa4bfc9b98c6a5f40184223658d187159d7b3c6af33f2b2aa25ae1db0fa" +checksum = "c1a5d4e9c205d2c1ae73b84aab6240e98218c0e72e63b50422cfb2d1ca952282" dependencies = [ "base64ct", "rand_core 0.6.2", + "subtle", ] [[package]] name = "pbkdf2" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf916dd32dd26297907890d99dc2740e33f6bd9073965af4ccff2967962f5508" +checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" dependencies = [ - "crypto-mac", + "crypto-mac 0.11.0", ] [[package]] @@ -1432,7 +1450,7 @@ dependencies = [ "async-native-tls", "async-std", "async-trait", - "bytes 1.0.1", + "bytes", "combine", "dtoa", "futures-util", @@ -1517,7 +1535,7 @@ version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" dependencies = [ - "base64 0.13.0", + "base64", "log", "ring", "sct", @@ -1532,11 +1550,11 @@ checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" [[package]] name = "salsa20" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "399f290ffc409596022fce5ea5d4138184be4784f2b28c62c59f0d8389059a15" +checksum = "1c7c5f10864beba947e1a1b43f3ef46c8cc58d1c2ae549fa471713e8ff60787a" dependencies = [ - "cipher", + "cipher 0.3.0", ] [[package]] @@ -1551,12 +1569,12 @@ dependencies = [ [[package]] name = "scrypt" -version = "0.6.5" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19230d10daad7f163d8c1fc8edf84fbe52ac71c2ebe5adf3f763aa1557b843e3" +checksum = "879588d8f90906e73302547e20fffefdd240eb3e0e744e142321f5d49dea0518" dependencies = [ "base64ct", - "hmac", + "hmac 0.11.0", "password-hash", "pbkdf2", "salsa20", @@ -1954,14 +1972,14 @@ dependencies = [ [[package]] name = "tide-websockets" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e779e18072c7b59c45bdd60a5611c27ee304c41b7c430532ac98de4d6e7d3a2d" +checksum = "3592c5cb5cb1b7a2ff3a0e5353170c1bb5b104b2f66dd06f73304169b52cc725" dependencies = [ "async-dup", "async-std", "async-tungstenite", - "base64 0.13.0", + "base64", "futures-util", "pin-project", "serde", @@ -2030,7 +2048,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a38d31d7831c6ed7aad00aa4c12d9375fd225a6dd77da1d25b707346319a975" dependencies = [ "autocfg", - "bytes 1.0.1", + "bytes", "memchr", "pin-project-lite 0.2.6", ] @@ -2041,7 +2059,7 @@ version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1caa0b0c8d94a049db56b5acf8cba99dc0623aab1b26d5b5f5e2d945846b3592" dependencies = [ - "bytes 1.0.1", + "bytes", "futures-core", "futures-sink", "log", @@ -2060,19 +2078,20 @@ dependencies = [ [[package]] name = "tungstenite" -version = "0.11.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0308d80d86700c5878b9ef6321f020f29b1bb9d5ff3cab25e75e23f3a492a23" +checksum = "5fe8dada8c1a3aeca77d6b51a4f1314e0f4b8e438b7b1b71e3ddaca8080e4093" dependencies = [ - "base64 0.12.3", + "base64", "byteorder", - "bytes 0.5.6", + "bytes", "http", "httparse", "input_buffer", "log", - "rand 0.7.3", + "rand 0.8.3", "sha-1", + "thiserror", "url", "utf-8", ] diff --git a/Cargo.toml b/Cargo.toml index e1f9e6b..8a057e8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ pin-project = "1.0" rand = "0.8" rand_chacha = "0.3" redis = { version = "0.20", features = ["async-std-tls-comp"] } -scrypt = "0.6" +scrypt = "0.7" serde = "1" serde_derive = "1" serde_json = "1" @@ -26,5 +26,5 @@ signal-hook = "0.3" signal-hook-async-std = "0.2" tide = { version = "0.16.0", default-features = false, features = ["h1-server"] } tide-rustls = "0.3" -tide-websockets = "0.3" +tide-websockets = "0.4" toml = "0.5" diff --git a/src/auth.rs b/src/auth.rs index 3f2457e..d86548b 100644 --- a/src/auth.rs +++ b/src/auth.rs @@ -2,7 +2,7 @@ use core::convert::TryFrom; use rand::rngs::OsRng; use scrypt::{ - password_hash::{HasherError, PasswordHash, PasswordHasher, PasswordVerifier, SaltString}, + password_hash::{Error, PasswordHash, PasswordHasher, PasswordVerifier, SaltString}, Scrypt, }; @@ -38,8 +38,8 @@ impl Auth { } impl TryFrom for Auth { - type Error = HasherError; - fn try_from(auth: CreateAuth) -> Result { + type Error = Error; + fn try_from(auth: CreateAuth) -> Result { match auth { CreateAuth::Plain { password } => Ok(Auth::Plain { password }), CreateAuth::Scrypt { password } => { diff --git a/src/server.rs b/src/server.rs index 9549b5f..2cffae5 100644 --- a/src/server.rs +++ b/src/server.rs @@ -6,7 +6,7 @@ use futures::{ SinkExt, }; use redis::{aio::MultiplexedConnection, cmd, AsyncCommands, ErrorKind, FromRedisValue, RedisError, RedisResult, RedisWrite, Script, ToRedisArgs, Value}; -use scrypt::password_hash::HasherError; +use scrypt::password_hash::Error as HasherError; use serde::{Deserialize, Serialize}; use crate::auth::{Auth, CreateAuth}; -- 2.34.1