Manage secure key for cookies
Dependencies
- [2]
RAXDAROSSplit base URL to protocol and domain - [3]
3GGMBQ2NUpdate dependencies and add list of slow games - [4]
BCXEUKX6Add config, static files and web server - [5]
IM5ZPD4NUpdate dependencies - [6]
QEK76JYTProcess and log template render error - [7]
4MZ4VIR7Initial commit - [8]
K7FOI6UNUpdate dependencies and fix game link - [9]
WXRGEQOEAdd HTTP client dependency - [*]
ZRU62WXDSend email with change game password link - [*]
7R6HAATPOptional publish static files if use reverse-proxy - [*]
WVHXYKCVAdd postgresql pools - [*]
Z3SYSC25Add SMTP configuration - [*]
NLEIFOAGAdd dependency to send mails
Change contents
- edit in src/main.rs at line 54
cookies_key_base64, - edit in src/main.rs at line 61
let _cookies_key = if let Some(c) = cookies_key_base64 {match base64::decode_config(c, base64::URL_SAFE_NO_PAD) {Ok(b) => {if b.len() < 64 {log::error!("Small key for cookies");return Err(std::io::Error::new(std::io::ErrorKind::Other, "Small key"));} else {actix_web::cookie::Key::from(&b)}}Err(e) => {log::error!("Incorrect key for cookies {}", e);return Err(std::io::Error::new(std::io::ErrorKind::Other,"Incorrect key",));}}} else {log::error!("Missing key for cookies");if let Some(nc) = actix_web::cookie::Key::try_generate() {log::info!("Put line `cookies_key_base64 = \"{}\"` to config",base64::encode_config(nc.master(), base64::URL_SAFE_NO_PAD));return Err(std::io::Error::new(std::io::ErrorKind::Other,"Missing key",));} else {log::error!("Cann't generate key for cookies");return Err(std::io::Error::new(std::io::ErrorKind::Other,"Cann't generate key",));}}; - edit in src/config.rs at line 36
pub cookies_key_base64: Option<String>, - edit in Cargo.toml at line 16
actix-web = "4.0.1" - edit in Cargo.toml at line 42[15.135]
[dependencies.actix-web]version = "4.2.1"features = ["secure-cookies"] - edit in Cargo.lock at line 230
[[package]]name = "aead"version = "0.4.3"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877"dependencies = ["generic-array",][[package]]name = "aes"version = "0.7.5"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8"dependencies = ["cfg-if","cipher","cpufeatures","opaque-debug",][[package]]name = "aes-gcm"version = "0.9.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6"dependencies = ["aead","aes","cipher","ctr","ghash","subtle",] - edit in Cargo.lock at line 478
name = "cipher"version = "0.3.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7"dependencies = ["generic-array",][[package]] - edit in Cargo.lock at line 522
"aes-gcm","base64","hkdf","hmac", - edit in Cargo.lock at line 527
"rand","sha2","subtle", - edit in Cargo.lock at line 569
name = "ctr"version = "0.8.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea"dependencies = ["cipher",][[package]] - edit in Cargo.lock at line 829
name = "ghash"version = "0.4.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99"dependencies = ["opaque-debug","polyval",][[package]] - edit in Cargo.lock at line 887
name = "hkdf"version = "0.12.3"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"dependencies = ["hmac",][[package]] - edit in Cargo.lock at line 1236
name = "opaque-debug"version = "0.3.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"[[package]] - edit in Cargo.lock at line 1361
[[package]]name = "polyval"version = "0.5.3"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1"dependencies = ["cfg-if","cpufeatures","opaque-debug","universal-hash",] - edit in Cargo.lock at line 1940[4.41994][15.3377]
name = "universal-hash"version = "0.4.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05"dependencies = ["generic-array","subtle",][[package]]