From 9756da76de9e53df36209f76172104e350d4a027 Mon Sep 17 00:00:00 2001 From: Daniel Brendgen-Czerwonk Date: Tue, 14 Oct 2025 09:36:57 +0200 Subject: [PATCH 1/7] chore(deps): upgrade deps --- Cargo.lock | 70 +++++++++++++++++++++++++-------------------------- workspace.nix | 2 +- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b969cb8..e12c502 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -519,9 +519,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.40" +version = "1.2.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d05d92f4b1fd76aad469d46cdd858ca761576082cd37df81416691e50199fb" +checksum = "ac9fe6cdbb24b6ade63616c0a0688e45bb56732262c158df3c0c4bea4ca47cb7" dependencies = [ "find-msvc-tools", "jobserver", @@ -559,9 +559,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.48" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae" +checksum = "f4512b90fa68d3a9932cea5184017c5d200f5921df706d45e853537dea51508f" dependencies = [ "clap_builder", "clap_derive", @@ -569,9 +569,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.48" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9" +checksum = "0025e98baa12e766c67ba13ff4695a887a1eba19569aad00a472546795bd6730" dependencies = [ "anstream", "anstyle", @@ -581,9 +581,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.47" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" +checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" dependencies = [ "heck", "proc-macro2", @@ -593,9 +593,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" [[package]] name = "colorchoice" @@ -947,9 +947,9 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "find-msvc-tools" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0399f9d26e5191ce32c498bebd31e7a3ceabc2745f0ac54af3f335126c3f24b3" +checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" [[package]] name = "flate2" @@ -1073,9 +1073,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.7" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" dependencies = [ "typenum", "version_check", @@ -1447,7 +1447,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.0", + "socket2 0.6.1", "system-configuration", "tokio", "tower-service", @@ -1882,9 +1882,9 @@ dependencies = [ [[package]] name = "moxcms" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cc7d85f3d741164e8972ad355e26ac6e51b20fcae5f911c7da8f2d8bbbb3f33" +checksum = "c588e11a3082784af229e23e8e4ecf5bcc6fbe4f69101e0421ce8d79da7f0b40" dependencies = [ "num-traits", "pxfm", @@ -1915,11 +1915,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.50.1" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -2451,7 +2451,7 @@ dependencies = [ "pin-project-lite", "ryu", "sha1_smol", - "socket2 0.6.0", + "socket2 0.6.1", "tokio", "tokio-util", "url", @@ -2488,9 +2488,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.3" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b5288124840bee7b386bc413c487869b360b2b4ec421ea56425128692f2a82c" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", @@ -2500,9 +2500,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.11" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833eb9ce86d40ef33cb1306d8accf7bc8ec2bfea4355cbdebb3df68b40925cad" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", @@ -2511,21 +2511,21 @@ dependencies = [ [[package]] name = "regex-lite" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943f41321c63ef1c92fd763bfe054d2668f7f225a5c29f0105903dc2fc04ba30" +checksum = "8d942b98df5e658f56f20d592c7f868833fe38115e65c33003d8cd224b0155da" [[package]] name = "regex-syntax" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "reqwest" -version = "0.12.23" +version = "0.12.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" +checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" dependencies = [ "base64", "bytes", @@ -2900,12 +2900,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -3076,7 +3076,7 @@ dependencies = [ "pin-project-lite", "signal-hook-registry", "slab", - "socket2 0.6.0", + "socket2 0.6.1", "tokio-macros", "windows-sys 0.59.0", ] diff --git a/workspace.nix b/workspace.nix index 85f6e3d..001ff34 100644 --- a/workspace.nix +++ b/workspace.nix @@ -1,4 +1,4 @@ { version = "2.19.1"; - cargoHash = "sha256-eS8muxF81Y/tb6A4I8OWJbodkd/n2jZPijnDyo/E1eo="; + cargoHash = "sha256-ExvVhkb+wfCmmneiYJ+8SJF3a0XUx6mLE9CudXfSBFk="; } From 1694dfb6965972305db55239ee51290c255238a6 Mon Sep 17 00:00:00 2001 From: Daniel Brendgen-Czerwonk Date: Tue, 14 Oct 2025 11:50:32 +0200 Subject: [PATCH 2/7] fix: fix deprecation warnings --- cli/Cargo.toml | 20 +++++++++---------- lib/Cargo.toml | 20 +++++++++---------- lib/src/crypto.rs | 25 +++++++++++++++--------- server/Cargo.toml | 36 +++++++++++++++++------------------ typescript/npm/package.json | 4 ++-- typescript/package.json | 4 ++-- typescript/tests/package.json | 2 +- 7 files changed, 59 insertions(+), 52 deletions(-) diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 9878195..3889aa4 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -13,21 +13,21 @@ keywords = ["encryption", "secret", "sharing", "zero-knowledge", "privacy"] categories = ["cryptography", "security", "command-line-utilities"] [dependencies] -anyhow = "1.0.98" -async-trait = "0.1.88" -clap = { version = "4.5.42", features = ["derive", "env"] } +anyhow = "1.0.100" +async-trait = "0.1.89" +clap = { version = "4.5.49", features = ["derive", "env"] } colored = "3.0.0" hakanai-lib = { workspace = true, features = ["testing"] } -humantime = "2.2.0" +humantime = "2.3.0" indicatif = "0.18.0" ipnet = { version = "2.11.0", features = ["serde"] } qrcode = "0.14" -reqwest = { version = "0.12.22", features = ["json"] } -rpassword = "7.3.1" -tokio = { version = "1.45.1", features = ["full"] } -url = "2.5.4" -zeroize = "1.8.1" +reqwest = { version = "0.12.24", features = ["json"] } +rpassword = "7.4.0" +tokio = { version = "1.47.1", features = ["full"] } +url = "2.5.7" +zeroize = "1.8.2" zip = "6.0.0" [dev-dependencies] -tempfile = "3.15.0" +tempfile = "3.23.0" diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 2c2165f..bd585ad 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -16,24 +16,24 @@ categories = ["cryptography", "security", "command-line-utilities"] [dependencies] aes-gcm = "0.10.3" async-stream = { version = "0.3.6", optional = true } -async-trait = "0.1.88" +async-trait = "0.1.89" base64 = "0.22.1" bytes = { version = "1.10.1", optional = true } ipnet = { version = "2.11.0", features = ["serde"] } -rand = "0.9.1" -reqwest = { version = "0.12.22", optional = true, features = ["json", "stream"] } -serde = { version = "1.0.219", features = ["derive"] } -serde_json = { version = "1.0.140", optional = true } +rand = "0.9.2" +reqwest = { version = "0.12.24", optional = true, features = ["json", "stream"] } +serde = { version = "1.0.228", features = ["derive"] } +serde_json = { version = "1.0.145", optional = true } serde_with = "3.15.0" sha2 = "0.10.9" -thiserror = "2.0.12" -url = { version = "2.5.4", optional = true } -uuid = { version = "1.17.0", features = ["serde", "v4"] } -zeroize = { version = "1.8.1", optional = true } +thiserror = "2.0.17" +url = { version = "2.5.7", optional = true } +uuid = { version = "1.18.1", features = ["serde", "v4"] } +zeroize = { version = "1.8.2", optional = true } [dev-dependencies] mockito = "1.7.0" -tokio = { version = "1.45.1", features = ["rt-multi-thread", "macros"] } +tokio = { version = "1.47.1", features = ["rt-multi-thread", "macros"] } [features] default = ["reqwest", "serde_json", "url", "bytes", "async-stream", "zeroize"] diff --git a/lib/src/crypto.rs b/lib/src/crypto.rs index c350c79..4501724 100644 --- a/lib/src/crypto.rs +++ b/lib/src/crypto.rs @@ -50,7 +50,7 @@ impl CryptoContext { Ok(Self { key: key.to_vec(), - nonce: vec![0; AES_GCM_NONCE_SIZE], // nonce will be set later + nonce: vec![0u8; AES_GCM_NONCE_SIZE], // nonce will be set later used: false, }) } @@ -64,8 +64,7 @@ impl CryptoContext { return Err(ClientError::CryptoError("Payload too short".to_string())); } - let nonce = &payload[..AES_GCM_NONCE_SIZE]; - self.nonce = nonce.to_vec(); + self.nonce = payload[..AES_GCM_NONCE_SIZE].to_vec(); Ok(()) } @@ -86,15 +85,23 @@ impl CryptoContext { // Mark context as used to prevent nonce reuse self.used = true; - let cipher = Aes256Gcm::new(Key::::from_slice(self.key.as_ref())); - let nonce = Nonce::from_slice(&self.nonce); - Ok(cipher.encrypt(nonce, plaintext)?) + let key: &Key = self.key.as_slice().into(); + let cipher = Aes256Gcm::new(key); + + let mut nonce = Nonce::default(); + nonce.copy_from_slice(&self.nonce); + + Ok(cipher.encrypt(&nonce, plaintext)?) } fn decrypt(&self, ciphertext: &[u8]) -> Result, ClientError> { - let cipher = Aes256Gcm::new(Key::::from_slice(self.key.as_ref())); - let nonce = Nonce::from_slice(&self.nonce); - Ok(cipher.decrypt(nonce, ciphertext)?) + let key: &Key = self.key.as_slice().into(); + let cipher = Aes256Gcm::new(key); + + let mut nonce = Nonce::default(); + nonce.copy_from_slice(&self.nonce); + + Ok(cipher.decrypt(&nonce, ciphertext)?) } #[cfg(test)] diff --git a/server/Cargo.toml b/server/Cargo.toml index 329ff30..b742b32 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -15,13 +15,13 @@ categories = ["cryptography", "security"] [dependencies] actix-cors = "0.7.1" actix-web = "4.11.0" -anyhow = "1.0.98" -async-trait = "0.1.88" +anyhow = "1.0.100" +async-trait = "0.1.89" base64 = "0.22.1" -clap = { version = "4.5.42", features = ["derive", "env"] } +clap = { version = "4.5.49", features = ["derive", "env"] } futures-util = "0.3" hakanai-lib = { workspace = true, features = ["minimal"] } -humantime = "2.2.0" +humantime = "2.3.0" ipnet = "2.11.0" opentelemetry = "0.31.0" opentelemetry-appender-tracing = "0.31.1" @@ -29,25 +29,25 @@ opentelemetry-instrumentation-actix-web = { version = "0.23.0", features = ["met opentelemetry-otlp = { version = "0.31.0", features = ["grpc-tonic", "trace", "metrics", "logs"] } opentelemetry-resource-detectors = "0.10.0" opentelemetry_sdk = { version = "0.31.0", features = ["rt-tokio"] } -rand = "0.9.1" +rand = "0.9.2" redis = { version = "0.32.7", features = ["tokio-comp", "connection-manager"] } -reqwest = { version = "0.12.22", features = ["json"] } -serde = { version = "1.0.219", features = ["derive"] } -serde_json = "1.0.140" +reqwest = { version = "0.12.24", features = ["json"] } +serde = { version = "1.0.228", features = ["derive"] } +serde_json = "1.0.145" sha2 = "0.10.9" -thiserror = "2.0.12" -tokio = { version = "1.45.1", features = ["full"] } +thiserror = "2.0.17" +tokio = { version = "1.47.1", features = ["full"] } tracing = "0.1.41" -tracing-actix-web = "0.7.18" +tracing-actix-web = "0.7.19" tracing-opentelemetry = "0.32.0" -tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } -uuid = { version = "1.17.0", features = ["serde", "v4"] } +tracing-subscriber = { version = "0.3.20", features = ["env-filter"] } +uuid = { version = "1.18.1", features = ["serde", "v4"] } [build-dependencies] -anyhow = "1.0.98" -handlebars = "6.3.0" -serde_json = "1.0.140" +anyhow = "1.0.100" +handlebars = "6.3.2" +serde_json = "1.0.145" [dev-dependencies] -serde_json = "1.0.140" -tempfile = "3.14.0" +serde_json = "1.0.145" +tempfile = "3.23.0" diff --git a/typescript/npm/package.json b/typescript/npm/package.json index a82a153..750715e 100644 --- a/typescript/npm/package.json +++ b/typescript/npm/package.json @@ -50,8 +50,8 @@ "node": ">=16.0.0" }, "devDependencies": { - "@types/node": "^24.5.2", - "typescript": "^5.9.2" + "@types/node": "^24.7.2", + "typescript": "^5.9.3" }, "peerDependencies": { "crypto": "*" diff --git a/typescript/package.json b/typescript/package.json index 3d1e143..88e85b6 100644 --- a/typescript/package.json +++ b/typescript/package.json @@ -13,7 +13,7 @@ }, "devDependencies": { "@rollup/plugin-typescript": "^12.1.4", - "@rollup/plugin-node-resolve": "^16.0.2", + "@rollup/plugin-node-resolve": "^16.0.3", "rollup": "^4.52.4", "tslib": "^2.8.1", "typescript": "^5.9.3", @@ -21,7 +21,7 @@ "jest": "^30.2.0", "jest-environment-jsdom": "^30.2.0", "@peculiar/webcrypto": "^1.5.0", - "ts-jest": "^29.4.4", + "ts-jest": "^29.4.5", "jsdom": "^27.0.0", "web-streams-polyfill": "^4.2.0", "csso-cli": "^4.0.2" diff --git a/typescript/tests/package.json b/typescript/tests/package.json index 9ea554a..5a590be 100644 --- a/typescript/tests/package.json +++ b/typescript/tests/package.json @@ -13,7 +13,7 @@ "jest": "^30.2.0", "jest-environment-jsdom": "^30.2.0", "jsdom": "^27.0.0", - "ts-jest": "^29.4.4", + "ts-jest": "^29.4.5", "typescript": "^5.9.3", "web-streams-polyfill": "^4.2.0" }, From 29cdc33e8f2426331121f664171d9825b21c123a Mon Sep 17 00:00:00 2001 From: Daniel Brendgen-Czerwonk Date: Tue, 14 Oct 2025 11:54:23 +0200 Subject: [PATCH 3/7] chore: bump version --- Cargo.lock | 6 +++--- Cargo.toml | 2 +- cli/Cargo.toml | 2 +- helm/hakanai/Chart.yaml | 4 ++-- lib/Cargo.toml | 2 +- server/Cargo.toml | 2 +- workspace.nix | 4 ++-- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e12c502..465fee9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1160,7 +1160,7 @@ dependencies = [ [[package]] name = "hakanai" -version = "2.19.1" +version = "2.19.2" dependencies = [ "anyhow", "async-trait", @@ -1182,7 +1182,7 @@ dependencies = [ [[package]] name = "hakanai-lib" -version = "2.19.1" +version = "2.19.2" dependencies = [ "aes-gcm", "async-stream", @@ -1206,7 +1206,7 @@ dependencies = [ [[package]] name = "hakanai-server" -version = "2.19.1" +version = "2.19.2" dependencies = [ "actix-cors", "actix-web", diff --git a/Cargo.toml b/Cargo.toml index 5c46428..cdc9c35 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ members = [ ] [workspace.dependencies] -hakanai-lib = { path = "lib", version = "2.19.1" } +hakanai-lib = { path = "lib", version = "2.19.2" } [profile.release] opt-level = "z" diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 3889aa4..401a425 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "hakanai" -version = "2.19.1" +version = "2.19.2" edition = "2024" license = "Apache-2.0" description = "CLI client for Hakanai, a secure secret sharing service." diff --git a/helm/hakanai/Chart.yaml b/helm/hakanai/Chart.yaml index 42bc1f8..90679e5 100644 --- a/helm/hakanai/Chart.yaml +++ b/helm/hakanai/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: hakanai description: A minimalist one-time secret sharing service implementing zero-knowledge principles type: application -version: 0.13.1 -appVersion: "v2.19.1" +version: 0.13.2 +appVersion: "v2.19.2" keywords: - secret-sharing - zero-knowledge diff --git a/lib/Cargo.toml b/lib/Cargo.toml index bd585ad..ac93400 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "hakanai-lib" -version = "2.19.1" +version = "2.19.2" edition = "2024" license = "Apache-2.0" description = "Client library for Hakanai, a secure secret sharing service." diff --git a/server/Cargo.toml b/server/Cargo.toml index b742b32..527b763 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "hakanai-server" -version = "2.19.1" +version = "2.19.2" edition = "2024" license = "Apache-2.0" description = "Server for Hakanai, a secure secret sharing service." diff --git a/workspace.nix b/workspace.nix index 001ff34..367b6ce 100644 --- a/workspace.nix +++ b/workspace.nix @@ -1,4 +1,4 @@ { - version = "2.19.1"; - cargoHash = "sha256-ExvVhkb+wfCmmneiYJ+8SJF3a0XUx6mLE9CudXfSBFk="; + version = "2.19.2"; + cargoHash = "sha256-o+E+RGcBVu/jv9zR119TqnHuZqB08Hvtj0wLHg/OMBs="; } From 862a8c13b974dedb253e726bc973377cfb0feefa Mon Sep 17 00:00:00 2001 From: Daniel Brendgen-Czerwonk Date: Tue, 14 Oct 2025 12:04:19 +0200 Subject: [PATCH 4/7] chore(npm): npm publish --- typescript/npm/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/typescript/npm/package.json b/typescript/npm/package.json index 750715e..4786187 100644 --- a/typescript/npm/package.json +++ b/typescript/npm/package.json @@ -1,6 +1,6 @@ { "name": "@hakanai/client", - "version": "2.19.0", + "version": "2.19.2", "description": "Zero-knowledge client library for Hakanai one-time secret sharing", "main": "dist/index.js", "module": "dist/index.mjs", From 96c7d2d0375ee5f976e0905badd183887b5ecce1 Mon Sep 17 00:00:00 2001 From: Daniel Brendgen-Czerwonk Date: Thu, 16 Oct 2025 16:51:35 +0200 Subject: [PATCH 5/7] chore(deps): upgrade deps --- Cargo.lock | 114 ++++++++++------------------------------------ cli/Cargo.toml | 2 +- lib/Cargo.toml | 2 +- server/Cargo.toml | 2 +- workspace.nix | 2 +- 5 files changed, 27 insertions(+), 95 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 465fee9..57f4abd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -200,15 +200,6 @@ dependencies = [ "syn", ] -[[package]] -name = "addr2line" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" -dependencies = [ - "gimli", -] - [[package]] name = "adler2" version = "2.0.1" @@ -418,21 +409,6 @@ dependencies = [ "fastrand", ] -[[package]] -name = "backtrace" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-link 0.2.1", -] - [[package]] name = "base64" version = "0.22.1" @@ -510,9 +486,9 @@ dependencies = [ [[package]] name = "bzip2" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bea8dcd42434048e4f7a304411d9273a411f647446c1234a65ce0554923f4cff" +checksum = "f3a53fac24f34a81bc9954b5d6cfce0c21e18ec6959f44f56e8e90e4bb7c346c" dependencies = [ "libbz2-rs-sys", ] @@ -531,9 +507,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "chrono" @@ -1089,19 +1065,19 @@ checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", ] [[package]] name = "getrandom" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", "r-efi", - "wasi 0.14.7+wasi-0.2.4", + "wasip2", ] [[package]] @@ -1114,12 +1090,6 @@ dependencies = [ "polyval", ] -[[package]] -name = "gimli" -version = "0.32.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" - [[package]] name = "h2" version = "0.3.27" @@ -1655,17 +1625,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "io-uring" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" -dependencies = [ - "bitflags", - "cfg-if", - "libc", -] - [[package]] name = "ipnet" version = "2.11.0" @@ -1712,7 +1671,7 @@ version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "libc", ] @@ -1852,7 +1811,7 @@ checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", "log", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "windows-sys 0.59.0", ] @@ -1971,15 +1930,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "object" -version = "0.37.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" -dependencies = [ - "memchr", -] - [[package]] name = "once_cell" version = "1.21.3" @@ -2000,9 +1950,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.73" +version = "0.10.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654" dependencies = [ "bitflags", "cfg-if", @@ -2032,9 +1982,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.109" +version = "0.9.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +checksum = "0a9f0075ba3c21b09f8e8b2026584b1d18d49388648f2fbbf3c97ea8deced8e2" dependencies = [ "cc", "libc", @@ -2429,7 +2379,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", ] [[package]] @@ -2600,12 +2550,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "rustc-demangle" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" - [[package]] name = "rustix" version = "1.1.2" @@ -2985,7 +2929,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ "fastrand", - "getrandom 0.3.3", + "getrandom 0.3.4", "once_cell", "rustix", "windows-sys 0.61.2", @@ -3063,29 +3007,26 @@ dependencies = [ [[package]] name = "tokio" -version = "1.47.1" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" dependencies = [ - "backtrace", "bytes", - "io-uring", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", - "slab", "socket2 0.6.1", "tokio-macros", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", @@ -3404,7 +3345,7 @@ version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "js-sys", "serde", "wasm-bindgen", @@ -3443,15 +3384,6 @@ version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" -[[package]] -name = "wasi" -version = "0.14.7+wasi-0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" -dependencies = [ - "wasip2", -] - [[package]] name = "wasip2" version = "1.0.1+wasi-0.2.4" @@ -3968,7 +3900,7 @@ dependencies = [ "crc32fast", "deflate64", "flate2", - "getrandom 0.3.3", + "getrandom 0.3.4", "hmac", "indexmap 2.11.4", "lzma-rust2", diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 401a425..3254f4f 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -24,7 +24,7 @@ ipnet = { version = "2.11.0", features = ["serde"] } qrcode = "0.14" reqwest = { version = "0.12.24", features = ["json"] } rpassword = "7.4.0" -tokio = { version = "1.47.1", features = ["full"] } +tokio = { version = "1.48.0", features = ["full"] } url = "2.5.7" zeroize = "1.8.2" zip = "6.0.0" diff --git a/lib/Cargo.toml b/lib/Cargo.toml index ac93400..920bbfe 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -33,7 +33,7 @@ zeroize = { version = "1.8.2", optional = true } [dev-dependencies] mockito = "1.7.0" -tokio = { version = "1.47.1", features = ["rt-multi-thread", "macros"] } +tokio = { version = "1.48.0", features = ["rt-multi-thread", "macros"] } [features] default = ["reqwest", "serde_json", "url", "bytes", "async-stream", "zeroize"] diff --git a/server/Cargo.toml b/server/Cargo.toml index 527b763..30b1f41 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -36,7 +36,7 @@ serde = { version = "1.0.228", features = ["derive"] } serde_json = "1.0.145" sha2 = "0.10.9" thiserror = "2.0.17" -tokio = { version = "1.47.1", features = ["full"] } +tokio = { version = "1.48.0", features = ["full"] } tracing = "0.1.41" tracing-actix-web = "0.7.19" tracing-opentelemetry = "0.32.0" diff --git a/workspace.nix b/workspace.nix index 367b6ce..4508555 100644 --- a/workspace.nix +++ b/workspace.nix @@ -1,4 +1,4 @@ { version = "2.19.2"; - cargoHash = "sha256-o+E+RGcBVu/jv9zR119TqnHuZqB08Hvtj0wLHg/OMBs="; + cargoHash = "sha256-4tmDY+onO8Jah1NLg29lz84Ee8UaZibUAvg0OY/0SZs="; } From d38a1a443cc7a00aa557873d823ac1b5e12d84a0 Mon Sep 17 00:00:00 2001 From: Daniel Brendgen-Czerwonk Date: Mon, 20 Oct 2025 12:30:08 +0200 Subject: [PATCH 6/7] fix: reduce redis reconnect time in case of redis crash --- server/src/main.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/server/src/main.rs b/server/src/main.rs index 79bffb8..6518666 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -15,7 +15,7 @@ use std::sync::Arc; use std::time::Duration; use clap::Parser; -use redis::aio::ConnectionManager; +use redis::aio::{ConnectionManager, ConnectionManagerConfig}; use tokio::time::timeout; use tracing::{debug, info, warn}; @@ -27,6 +27,7 @@ use crate::token::{RedisTokenStore, TokenManager, TokenStore}; /// Connection timeout for Redis operations during startup const REDIS_CONNECTION_TIMEOUT: Duration = Duration::from_secs(10); +const REDIS_MAX_DELAY_MS: u64 = 1000; #[actix_web::main] async fn main() -> Result<()> { @@ -107,9 +108,12 @@ async fn connect_to_redis(dsn: &str) -> anyhow::Result { info!("Connecting to Redis"); let client = redis::Client::open(dsn)?; + let config = ConnectionManagerConfig::default() + .set_connection_timeout(REDIS_CONNECTION_TIMEOUT) + .set_max_delay(REDIS_MAX_DELAY_MS); let con = timeout( REDIS_CONNECTION_TIMEOUT, - redis::aio::ConnectionManager::new(client), + redis::aio::ConnectionManager::new_with_config(client, config), ) .await .map_err(|_| anyhow::anyhow!("Timed out connecting to Redis"))??; From 4c53604d936af513b9469eb004210dc3254e4e2e Mon Sep 17 00:00:00 2001 From: Daniel Brendgen-Czerwonk Date: Mon, 20 Oct 2025 12:30:24 +0200 Subject: [PATCH 7/7] chore: bump version --- Cargo.lock | 44 ++++++++++++++++++++--------------------- Cargo.toml | 2 +- cli/Cargo.toml | 2 +- helm/hakanai/Chart.yaml | 4 ++-- lib/Cargo.toml | 2 +- server/Cargo.toml | 2 +- wasm/Cargo.toml | 2 +- workspace.nix | 4 ++-- 8 files changed, 31 insertions(+), 31 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 57f4abd..966908d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -402,9 +402,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "backon" -version = "1.5.2" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "592277618714fbcecda9a02ba7a8781f319d26532a88553bbacc77ba5d2b3a8d" +checksum = "cffb0e931875b666fc4fcb20fee52e9bbd1ef836fd9e9e04ec21555f9f85f7ef" dependencies = [ "fastrand", ] @@ -417,9 +417,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bitflags" -version = "2.9.4" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" [[package]] name = "block-buffer" @@ -1102,7 +1102,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.11.4", + "indexmap 2.12.0", "slab", "tokio", "tokio-util", @@ -1121,7 +1121,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.3.1", - "indexmap 2.11.4", + "indexmap 2.12.0", "slab", "tokio", "tokio-util", @@ -1130,7 +1130,7 @@ dependencies = [ [[package]] name = "hakanai" -version = "2.19.2" +version = "2.19.3" dependencies = [ "anyhow", "async-trait", @@ -1152,7 +1152,7 @@ dependencies = [ [[package]] name = "hakanai-lib" -version = "2.19.2" +version = "2.19.3" dependencies = [ "aes-gcm", "async-stream", @@ -1176,7 +1176,7 @@ dependencies = [ [[package]] name = "hakanai-server" -version = "2.19.2" +version = "2.19.3" dependencies = [ "actix-cors", "actix-web", @@ -1213,7 +1213,7 @@ dependencies = [ [[package]] name = "hakanai-wasm" -version = "2.19.0" +version = "2.19.3" dependencies = [ "qrcode", "wasm-bindgen", @@ -1593,9 +1593,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.11.4" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" +checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" dependencies = [ "equivalent", "hashbrown 0.16.0", @@ -1805,14 +1805,14 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" dependencies = [ "libc", "log", "wasi", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -2565,9 +2565,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.32" +version = "0.23.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd3c25631629d034ce7cd9940adc9d45762d46de2b0f57193c4443b92c6d4d40" +checksum = "751e04a496ca00bb97a5e043158d23d66b5aabf2e1d5aa2a0aaebb1aafe6f82c" dependencies = [ "once_cell", "rustls-pki-types", @@ -2735,7 +2735,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.11.4", + "indexmap 2.12.0", "schemars 0.9.0", "schemars 1.0.4", "serde_core", @@ -2872,9 +2872,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.106" +version = "2.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "2a26dbd934e5451d21ef060c018dae56fc073894c5a7896f882928a76e6d081b" dependencies = [ "proc-macro2", "quote", @@ -3122,7 +3122,7 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", - "indexmap 2.11.4", + "indexmap 2.12.0", "pin-project-lite", "slab", "sync_wrapper", @@ -3902,7 +3902,7 @@ dependencies = [ "flate2", "getrandom 0.3.4", "hmac", - "indexmap 2.11.4", + "indexmap 2.12.0", "lzma-rust2", "memchr", "pbkdf2", diff --git a/Cargo.toml b/Cargo.toml index cdc9c35..65f72a6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ members = [ ] [workspace.dependencies] -hakanai-lib = { path = "lib", version = "2.19.2" } +hakanai-lib = { path = "lib", version = "2.19.3" } [profile.release] opt-level = "z" diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 3254f4f..bbcf542 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "hakanai" -version = "2.19.2" +version = "2.19.3" edition = "2024" license = "Apache-2.0" description = "CLI client for Hakanai, a secure secret sharing service." diff --git a/helm/hakanai/Chart.yaml b/helm/hakanai/Chart.yaml index 90679e5..6923f7b 100644 --- a/helm/hakanai/Chart.yaml +++ b/helm/hakanai/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: hakanai description: A minimalist one-time secret sharing service implementing zero-knowledge principles type: application -version: 0.13.2 -appVersion: "v2.19.2" +version: 0.13.3 +appVersion: "v2.19.3" keywords: - secret-sharing - zero-knowledge diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 920bbfe..1ba500e 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "hakanai-lib" -version = "2.19.2" +version = "2.19.3" edition = "2024" license = "Apache-2.0" description = "Client library for Hakanai, a secure secret sharing service." diff --git a/server/Cargo.toml b/server/Cargo.toml index 30b1f41..2850c60 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "hakanai-server" -version = "2.19.2" +version = "2.19.3" edition = "2024" license = "Apache-2.0" description = "Server for Hakanai, a secure secret sharing service." diff --git a/wasm/Cargo.toml b/wasm/Cargo.toml index 4a51b4d..83854b6 100644 --- a/wasm/Cargo.toml +++ b/wasm/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "hakanai-wasm" -version = "2.19.0" +version = "2.19.3" edition = "2024" license = "Apache-2.0" description = "WASM module for Hakanai QR code generation" diff --git a/workspace.nix b/workspace.nix index 4508555..450b853 100644 --- a/workspace.nix +++ b/workspace.nix @@ -1,4 +1,4 @@ { - version = "2.19.2"; - cargoHash = "sha256-4tmDY+onO8Jah1NLg29lz84Ee8UaZibUAvg0OY/0SZs="; + version = "2.19.3"; + cargoHash = "sha256-W4s/V64b/fKlapwBGlCM+7Ye6J8uuu56mZ0GPaslUho="; }