Skip to main content

max / balanced_breakfast

Pin the keyring credential store bundle explicitly The dependency was declared as a bare version, so the 3 to 4 bump silently swapped the Linux backing store from kernel keyutils to the Secret Service. Pin the v1 store bundle explicitly and document why keyutils must not be re-enabled: it keeps entries in memory only and drops them on every reboot, which silently destroyed the master encryption key. This resolves to the same stores as the current default, so it is a guard against the next bump rather than a behaviour change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-07-21 17:44 UTC
Commit: 6071a93f359c4fb340764512d5badf7b4808c748
Parent: 500e207
2 files changed, +6 insertions, -138 deletions
M Cargo.lock +1 -137
@@ -333,29 +333,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
333 333 checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
334 334
335 335 [[package]]
336 - name = "aws-lc-rs"
337 - version = "1.17.3"
338 - source = "registry+https://github.com/rust-lang/crates.io-index"
339 - checksum = "00bdb5da18dac48ca2cc7cd4a98e533e8635a58e2361d13a1a4ee3888e0d72f1"
340 - dependencies = [
341 - "aws-lc-sys",
342 - "zeroize",
343 - ]
344 -
345 - [[package]]
346 - name = "aws-lc-sys"
347 - version = "0.43.0"
348 - source = "registry+https://github.com/rust-lang/crates.io-index"
349 - checksum = "43103168cc76fe62678a375e722fc9cb3a0146159ac5828bc4f0dfd755c2224c"
350 - dependencies = [
351 - "cc",
352 - "cmake",
353 - "dunce",
354 - "fs_extra",
355 - "pkg-config",
356 - ]
357 -
358 - [[package]]
359 336 name = "balanced-breakfast-desktop"
360 337 version = "0.3.3"
361 338 dependencies = [
@@ -708,8 +685,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
708 685 checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29"
709 686 dependencies = [
710 687 "find-msvc-tools",
711 - "jobserver",
712 - "libc",
713 688 "shlex",
714 689 ]
715 690
@@ -747,12 +722,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
747 722 checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
748 723
749 724 [[package]]
750 - name = "cfg_aliases"
751 - version = "0.2.2"
752 - source = "registry+https://github.com/rust-lang/crates.io-index"
753 - checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527"
754 -
755 - [[package]]
756 725 name = "chacha20"
757 726 version = "0.9.1"
758 727 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -813,15 +782,6 @@ dependencies = [
813 782 ]
814 783
815 784 [[package]]
816 - name = "cmake"
817 - version = "0.1.58"
818 - source = "registry+https://github.com/rust-lang/crates.io-index"
819 - checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678"
820 - dependencies = [
821 - "cc",
822 - ]
823 -
824 - [[package]]
825 785 name = "cmov"
826 786 version = "0.5.4"
827 787 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1655,12 +1615,6 @@ dependencies = [
1655 1615 ]
1656 1616
1657 1617 [[package]]
1658 - name = "fs_extra"
1659 - version = "1.3.0"
1660 - source = "registry+https://github.com/rust-lang/crates.io-index"
1661 - checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
1662 -
1663 - [[package]]
1664 1618 name = "futf"
1665 1619 version = "0.1.5"
1666 1620 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1927,10 +1881,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1927 1881 checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
1928 1882 dependencies = [
1929 1883 "cfg-if",
1930 - "js-sys",
1931 1884 "libc",
1932 1885 "wasi 0.11.1+wasi-snapshot-preview1",
1933 - "wasm-bindgen",
1934 1886 ]
1935 1887
1936 1888 [[package]]
@@ -1952,11 +1904,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1952 1904 checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099"
1953 1905 dependencies = [
1954 1906 "cfg-if",
1955 - "js-sys",
1956 1907 "libc",
1957 1908 "r-efi 6.0.0",
1958 1909 "rand_core 0.10.1",
1959 - "wasm-bindgen",
1960 1910 ]
1961 1911
1962 1912 [[package]]
@@ -2709,16 +2659,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2709 2659 checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
2710 2660
2711 2661 [[package]]
2712 - name = "jobserver"
2713 - version = "0.1.35"
2714 - source = "registry+https://github.com/rust-lang/crates.io-index"
2715 - checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3"
2716 - dependencies = [
2717 - "getrandom 0.4.3",
2718 - "libc",
2719 - ]
2720 -
2721 - [[package]]
2722 2662 name = "js-sys"
2723 2663 version = "0.3.85"
2724 2664 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2925,12 +2865,6 @@ dependencies = [
2925 2865 ]
2926 2866
2927 2867 [[package]]
2928 - name = "lru-slab"
2929 - version = "0.1.2"
2930 - source = "registry+https://github.com/rust-lang/crates.io-index"
2931 - checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
2932 -
2933 - [[package]]
2934 2868 name = "mac"
2935 2869 version = "0.1.1"
2936 2870 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4228,63 +4162,6 @@ dependencies = [
4228 4162 ]
4229 4163
4230 4164 [[package]]
4231 - name = "quinn"
4232 - version = "0.11.11"
4233 - source = "registry+https://github.com/rust-lang/crates.io-index"
4234 - checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8"
4235 - dependencies = [
4236 - "bytes",
4237 - "cfg_aliases",
4238 - "pin-project-lite",
4239 - "quinn-proto",
4240 - "quinn-udp",
4241 - "rustc-hash",
4242 - "rustls",
4243 - "socket2 0.6.2",
4244 - "thiserror 2.0.18",
4245 - "tokio",
4246 - "tracing",
4247 - "web-time",
4248 - ]
4249 -
4250 - [[package]]
4251 - name = "quinn-proto"
4252 - version = "0.11.16"
4253 - source = "registry+https://github.com/rust-lang/crates.io-index"
4254 - checksum = "2f4bfc015262b9df63c8845072ce59068853ff5872180c2ce2f13038b970e560"
4255 - dependencies = [
4256 - "aws-lc-rs",
4257 - "bytes",
4258 - "getrandom 0.4.3",
4259 - "lru-slab",
4260 - "rand 0.10.2",
4261 - "rand_pcg 0.10.2",
4262 - "ring",
4263 - "rustc-hash",
4264 - "rustls",
4265 - "rustls-pki-types",
4266 - "slab",
4267 - "thiserror 2.0.18",
4268 - "tinyvec",
4269 - "tracing",
4270 - "web-time",
4271 - ]
4272 -
4273 - [[package]]
4274 - name = "quinn-udp"
4275 - version = "0.5.15"
4276 - source = "registry+https://github.com/rust-lang/crates.io-index"
4277 - checksum = "35a133f956daabe89a61a685c2649f13d82d5aa4bd5d12d1277e1072a21c0694"
4278 - dependencies = [
4279 - "cfg_aliases",
4280 - "libc",
4281 - "once_cell",
4282 - "socket2 0.6.2",
4283 - "tracing",
4284 - "windows-sys 0.61.2",
4285 - ]
4286 -
4287 - [[package]]
4288 4165 name = "quote"
4289 4166 version = "1.0.44"
4290 4167 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4316,7 +4193,7 @@ dependencies = [
4316 4193 "rand_chacha 0.2.2",
4317 4194 "rand_core 0.5.1",
4318 4195 "rand_hc",
4319 - "rand_pcg 0.2.1",
4196 + "rand_pcg",
4320 4197 ]
4321 4198
4322 4199 [[package]]
@@ -4404,15 +4281,6 @@ dependencies = [
4404 4281 ]
4405 4282
4406 4283 [[package]]
4407 - name = "rand_pcg"
4408 - version = "0.10.2"
4409 - source = "registry+https://github.com/rust-lang/crates.io-index"
4410 - checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a"
4411 - dependencies = [
4412 - "rand_core 0.10.1",
4413 - ]
4414 -
4415 - [[package]]
4416 4284 name = "raw-window-handle"
4417 4285 version = "0.6.2"
4418 4286 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4535,7 +4403,6 @@ dependencies = [
4535 4403 "native-tls",
4536 4404 "percent-encoding",
4537 4405 "pin-project-lite",
4538 - "quinn",
4539 4406 "rustls",
4540 4407 "rustls-pki-types",
4541 4408 "rustls-platform-verifier",
@@ -4693,7 +4560,6 @@ version = "0.23.36"
4693 4560 source = "registry+https://github.com/rust-lang/crates.io-index"
4694 4561 checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b"
4695 4562 dependencies = [
4696 - "aws-lc-rs",
4697 4563 "log",
4698 4564 "once_cell",
4699 4565 "ring",
@@ -4721,7 +4587,6 @@ version = "1.14.0"
4721 4587 source = "registry+https://github.com/rust-lang/crates.io-index"
4722 4588 checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd"
4723 4589 dependencies = [
4724 - "web-time",
4725 4590 "zeroize",
4726 4591 ]
4727 4592
@@ -4758,7 +4623,6 @@ version = "0.103.10"
4758 4623 source = "registry+https://github.com/rust-lang/crates.io-index"
4759 4624 checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef"
4760 4625 dependencies = [
4761 - "aws-lc-rs",
4762 4626 "ring",
4763 4627 "rustls-pki-types",
4764 4628 "untrusted",
M Cargo.toml +5 -1
@@ -37,7 +37,11 @@ base64 = "0.22"
37 37 rand = "0.10"
38 38
39 39 # Keychain access
40 - keyring = { version = "4" }
40 + # Pinned to the v1 store bundle explicitly: Apple Keychain, Windows credential
41 + # manager, and Secret Service on Linux. Do not enable `linux-keyutils-keyring-store` —
42 + # that backing store is in-memory and drops every entry on reboot, which silently
43 + # destroyed stored secrets before keyring 4 moved the default to Secret Service.
44 + keyring = { version = "4", default-features = false, features = ["v1"] }
41 45
42 46 # Concurrency
43 47 parking_lot = "0.12"