Skip to main content

max / goingson

Bump keyring to 4.1.5 keyring 4 removed the per-backend cargo features (apple-native / linux-native / windows-native); the platform backend is now selected automatically by target via the default v1 feature. API is v1-compatible, so no source changes. Note: v4 on Linux defaults to the secret-service (D-Bus) store, where keyring 3 linux-native used linux-keyutils, so Linux-stored credentials move to a different backend and need re-entry on first run after the bump. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-07-21 00:29 UTC
Commit: 27ed97211d8600bce96953c1adcc2e5ff440c0d0
Parent: 30875ee
2 files changed, +142 insertions, -31 deletions
M Cargo.lock +141 -30
@@ -19,6 +19,17 @@ dependencies = [
19 19 ]
20 20
21 21 [[package]]
22 + name = "aes"
23 + version = "0.8.4"
24 + source = "registry+https://github.com/rust-lang/crates.io-index"
25 + checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
26 + dependencies = [
27 + "cfg-if",
28 + "cipher",
29 + "cpufeatures 0.2.17",
30 + ]
31 +
32 + [[package]]
22 33 name = "ahash"
23 34 version = "0.8.12"
24 35 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -98,6 +109,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
98 109 checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
99 110
100 111 [[package]]
112 + name = "apple-native-keyring-store"
113 + version = "1.0.1"
114 + source = "registry+https://github.com/rust-lang/crates.io-index"
115 + checksum = "797f94b6a53d7d10b56dc18290e0d40a2158352f108bb4ff32350825081a9f29"
116 + dependencies = [
117 + "keyring-core",
118 + "log",
119 + "security-framework",
120 + ]
121 +
122 + [[package]]
101 123 name = "approx"
102 124 version = "0.5.1"
103 125 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -514,6 +536,15 @@ dependencies = [
514 536 ]
515 537
516 538 [[package]]
539 + name = "block-padding"
540 + version = "0.3.3"
541 + source = "registry+https://github.com/rust-lang/crates.io-index"
542 + checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
543 + dependencies = [
544 + "generic-array",
545 + ]
546 +
547 + [[package]]
517 548 name = "block2"
518 549 version = "0.6.2"
519 550 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -672,6 +703,15 @@ dependencies = [
672 703 ]
673 704
674 705 [[package]]
706 + name = "cbc"
707 + version = "0.1.2"
708 + source = "registry+https://github.com/rust-lang/crates.io-index"
709 + checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
710 + dependencies = [
711 + "cipher",
712 + ]
713 +
714 + [[package]]
675 715 name = "cc"
676 716 version = "1.2.58"
677 717 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2911,6 +2951,7 @@ version = "0.1.4"
2911 2951 source = "registry+https://github.com/rust-lang/crates.io-index"
2912 2952 checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01"
2913 2953 dependencies = [
2954 + "block-padding",
2914 2955 "generic-array",
2915 2956 ]
2916 2957
@@ -3138,17 +3179,23 @@ dependencies = [
3138 3179
3139 3180 [[package]]
3140 3181 name = "keyring"
3141 - version = "3.6.3"
3182 + version = "4.1.5"
3142 3183 source = "registry+https://github.com/rust-lang/crates.io-index"
3143 - checksum = "eebcc3aff044e5944a8fbaf69eb277d11986064cba30c468730e8b9909fb551c"
3184 + checksum = "0298a59b384c540e408a600c8b375a09b49c3f97debc080e2c30675d79a6368a"
3185 + dependencies = [
3186 + "apple-native-keyring-store",
3187 + "keyring-core",
3188 + "windows-native-keyring-store",
3189 + "zbus-secret-service-keyring-store",
3190 + ]
3191 +
3192 + [[package]]
3193 + name = "keyring-core"
3194 + version = "1.0.0"
3195 + source = "registry+https://github.com/rust-lang/crates.io-index"
3196 + checksum = "fb1e621458ca9c51aa110bd0339d4751a056b9576bf1253aee1aa560dda0fc9d"
3144 3197 dependencies = [
3145 - "byteorder",
3146 - "linux-keyutils",
3147 3198 "log",
3148 - "security-framework 2.11.1",
3149 - "security-framework 3.7.0",
3150 - "windows-sys 0.60.2",
3151 - "zeroize",
3152 3199 ]
3153 3200
3154 3201 [[package]]
@@ -3309,16 +3356,6 @@ dependencies = [
3309 3356 ]
3310 3357
3311 3358 [[package]]
3312 - name = "linux-keyutils"
3313 - version = "0.2.5"
3314 - source = "registry+https://github.com/rust-lang/crates.io-index"
3315 - checksum = "83270a18e9f90d0707c41e9f35efada77b64c0e6f3f1810e71c8368a864d5590"
3316 - dependencies = [
3317 - "bitflags 2.13.1",
3318 - "libc",
3319 - ]
3320 -
3321 - [[package]]
3322 3359 name = "linux-raw-sys"
3323 3360 version = "0.12.1"
3324 3361 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3626,7 +3663,7 @@ dependencies = [
3626 3663 "openssl-probe",
3627 3664 "openssl-sys",
3628 3665 "schannel",
3629 - "security-framework 3.7.0",
3666 + "security-framework",
3630 3667 "security-framework-sys",
3631 3668 "tempfile",
3632 3669 ]
@@ -3768,6 +3805,30 @@ dependencies = [
3768 3805 ]
3769 3806
3770 3807 [[package]]
3808 + name = "num"
3809 + version = "0.4.3"
3810 + source = "registry+https://github.com/rust-lang/crates.io-index"
3811 + checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23"
3812 + dependencies = [
3813 + "num-bigint",
3814 + "num-complex",
3815 + "num-integer",
3816 + "num-iter",
3817 + "num-rational",
3818 + "num-traits",
3819 + ]
3820 +
3821 + [[package]]
3822 + name = "num-bigint"
3823 + version = "0.4.8"
3824 + source = "registry+https://github.com/rust-lang/crates.io-index"
3825 + checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367"
3826 + dependencies = [
3827 + "num-integer",
3828 + "num-traits",
3829 + ]
3830 +
3831 + [[package]]
3771 3832 name = "num-bigint-dig"
3772 3833 version = "0.8.6"
3773 3834 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3784,6 +3845,15 @@ dependencies = [
3784 3845 ]
3785 3846
3786 3847 [[package]]
3848 + name = "num-complex"
3849 + version = "0.4.6"
3850 + source = "registry+https://github.com/rust-lang/crates.io-index"
3851 + checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
3852 + dependencies = [
3853 + "num-traits",
3854 + ]
3855 +
3856 + [[package]]
3787 3857 name = "num-conv"
3788 3858 version = "0.2.1"
3789 3859 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3821,6 +3891,17 @@ dependencies = [
3821 3891 ]
3822 3892
3823 3893 [[package]]
3894 + name = "num-rational"
3895 + version = "0.4.2"
3896 + source = "registry+https://github.com/rust-lang/crates.io-index"
3897 + checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
3898 + dependencies = [
3899 + "num-bigint",
3900 + "num-integer",
3901 + "num-traits",
3902 + ]
3903 +
3904 + [[package]]
3824 3905 name = "num-traits"
3825 3906 version = "0.2.19"
3826 3907 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4831,7 +4912,7 @@ dependencies = [
4831 4912 "once_cell",
4832 4913 "socket2",
4833 4914 "tracing",
4834 - "windows-sys 0.52.0",
4915 + "windows-sys 0.61.2",
4835 4916 ]
4836 4917
4837 4918 [[package]]
@@ -5354,7 +5435,7 @@ dependencies = [
5354 5435 "openssl-probe",
5355 5436 "rustls-pki-types",
5356 5437 "schannel",
5357 - "security-framework 3.7.0",
5438 + "security-framework",
5358 5439 ]
5359 5440
5360 5441 [[package]]
@@ -5382,7 +5463,7 @@ dependencies = [
5382 5463 "rustls-native-certs",
5383 5464 "rustls-platform-verifier-android",
5384 5465 "rustls-webpki",
5385 - "security-framework 3.7.0",
5466 + "security-framework",
5386 5467 "security-framework-sys",
5387 5468 "webpki-root-certs",
5388 5469 "windows-sys 0.61.2",
@@ -5509,16 +5590,22 @@ dependencies = [
5509 5590 ]
5510 5591
5511 5592 [[package]]
5512 - name = "security-framework"
5513 - version = "2.11.1"
5593 + name = "secret-service"
5594 + version = "5.1.0"
5514 5595 source = "registry+https://github.com/rust-lang/crates.io-index"
5515 - checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02"
5596 + checksum = "9a62d7f86047af0077255a29494136b9aaaf697c76ff70b8e49cded4e2623c14"
5516 5597 dependencies = [
5517 - "bitflags 2.13.1",
5518 - "core-foundation 0.9.4",
5519 - "core-foundation-sys",
5520 - "libc",
5521 - "security-framework-sys",
5598 + "aes",
5599 + "cbc",
5600 + "futures-util",
5601 + "generic-array",
5602 + "getrandom 0.2.17",
5603 + "hkdf",
5604 + "num",
5605 + "once_cell",
5606 + "serde",
5607 + "sha2",
5608 + "zbus",
5522 5609 ]
5523 5610
5524 5611 [[package]]
@@ -8171,6 +8258,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
8171 8258 checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
8172 8259
8173 8260 [[package]]
8261 + name = "windows-native-keyring-store"
8262 + version = "1.1.0"
8263 + source = "registry+https://github.com/rust-lang/crates.io-index"
8264 + checksum = "063426e76fdec7438d56bb777f67e318a84a25c707b07e575cb8b78e10c028f8"
8265 + dependencies = [
8266 + "byteorder",
8267 + "keyring-core",
8268 + "regex",
8269 + "windows-sys 0.61.2",
8270 + "zeroize",
8271 + ]
8272 +
8273 + [[package]]
8174 8274 name = "windows-numerics"
8175 8275 version = "0.2.0"
8176 8276 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8807,6 +8907,17 @@ dependencies = [
8807 8907 ]
8808 8908
8809 8909 [[package]]
8910 + name = "zbus-secret-service-keyring-store"
8911 + version = "1.0.0"
8912 + source = "registry+https://github.com/rust-lang/crates.io-index"
8913 + checksum = "4ccede190ba363386a24e8021c7f3848393976609ec9f5d1f8c6c09ef37075b4"
8914 + dependencies = [
8915 + "keyring-core",
8916 + "secret-service",
8917 + "zbus",
8918 + ]
8919 +
8920 + [[package]]
8810 8921 name = "zbus_macros"
8811 8922 version = "5.14.0"
8812 8923 source = "registry+https://github.com/rust-lang/crates.io-index"
M Cargo.toml +1 -1
@@ -50,7 +50,7 @@ base64 = "0.22"
50 50 sha2 = "0.10"
51 51
52 52 # Secure credential storage
53 - keyring = { version = "3", features = ["apple-native", "linux-native", "windows-native"] }
53 + keyring = { version = "4" }
54 54
55 55 # Tauri
56 56 tauri = "2.10.2"