Skip to main content

max / makenotwork

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: 707d7655786ba7e397fe29eb082eea95d6daca6d
Parent: 4d1b1ff
2 files changed, +353 insertions, -24 deletions
@@ -13,6 +13,17 @@ dependencies = [
13 13 ]
14 14
15 15 [[package]]
16 + name = "aes"
17 + version = "0.8.4"
18 + source = "registry+https://github.com/rust-lang/crates.io-index"
19 + checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
20 + dependencies = [
21 + "cfg-if",
22 + "cipher",
23 + "cpufeatures 0.2.17",
24 + ]
25 +
26 + [[package]]
16 27 name = "ahash"
17 28 version = "0.8.12"
18 29 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -49,6 +60,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
49 60 checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
50 61
51 62 [[package]]
63 + name = "apple-native-keyring-store"
64 + version = "1.0.1"
65 + source = "registry+https://github.com/rust-lang/crates.io-index"
66 + checksum = "797f94b6a53d7d10b56dc18290e0d40a2158352f108bb4ff32350825081a9f29"
67 + dependencies = [
68 + "keyring-core",
69 + "log",
70 + "security-framework",
71 + ]
72 +
73 + [[package]]
52 74 name = "argon2"
53 75 version = "0.5.3"
54 76 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -71,6 +93,137 @@ dependencies = [
71 93 ]
72 94
73 95 [[package]]
96 + name = "async-broadcast"
97 + version = "0.7.2"
98 + source = "registry+https://github.com/rust-lang/crates.io-index"
99 + checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532"
100 + dependencies = [
101 + "event-listener",
102 + "event-listener-strategy",
103 + "futures-core",
104 + "pin-project-lite",
105 + ]
106 +
107 + [[package]]
108 + name = "async-channel"
109 + version = "2.5.0"
110 + source = "registry+https://github.com/rust-lang/crates.io-index"
111 + checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2"
112 + dependencies = [
113 + "concurrent-queue",
114 + "event-listener-strategy",
115 + "futures-core",
116 + "pin-project-lite",
117 + ]
118 +
119 + [[package]]
120 + name = "async-executor"
121 + version = "1.14.0"
122 + source = "registry+https://github.com/rust-lang/crates.io-index"
123 + checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a"
124 + dependencies = [
125 + "async-task",
126 + "concurrent-queue",
127 + "fastrand",
128 + "futures-lite",
129 + "pin-project-lite",
130 + "slab",
131 + ]
132 +
133 + [[package]]
134 + name = "async-io"
135 + version = "2.6.0"
136 + source = "registry+https://github.com/rust-lang/crates.io-index"
137 + checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc"
138 + dependencies = [
139 + "autocfg",
140 + "cfg-if",
141 + "concurrent-queue",
142 + "futures-io",
143 + "futures-lite",
144 + "parking",
145 + "polling",
146 + "rustix",
147 + "slab",
148 + "windows-sys 0.61.2",
149 + ]
150 +
151 + [[package]]
152 + name = "async-lock"
153 + version = "3.4.2"
154 + source = "registry+https://github.com/rust-lang/crates.io-index"
155 + checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311"
156 + dependencies = [
157 + "event-listener",
158 + "event-listener-strategy",
159 + "pin-project-lite",
160 + ]
161 +
162 + [[package]]
163 + name = "async-process"
164 + version = "2.5.0"
165 + source = "registry+https://github.com/rust-lang/crates.io-index"
166 + checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75"
167 + dependencies = [
168 + "async-channel",
169 + "async-io",
170 + "async-lock",
171 + "async-signal",
172 + "async-task",
173 + "blocking",
174 + "cfg-if",
175 + "event-listener",
176 + "futures-lite",
177 + "rustix",
178 + ]
179 +
180 + [[package]]
181 + name = "async-recursion"
182 + version = "1.1.1"
183 + source = "registry+https://github.com/rust-lang/crates.io-index"
184 + checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
185 + dependencies = [
186 + "proc-macro2",
187 + "quote",
188 + "syn 2.0.117",
189 + ]
190 +
191 + [[package]]
192 + name = "async-signal"
193 + version = "0.2.14"
194 + source = "registry+https://github.com/rust-lang/crates.io-index"
195 + checksum = "52b5aaafa020cf5053a01f2a60e8ff5dccf550f0f77ec54a4e47285ac2bab485"
196 + dependencies = [
197 + "async-io",
198 + "async-lock",
199 + "atomic-waker",
200 + "cfg-if",
201 + "futures-core",
202 + "futures-io",
203 + "rustix",
204 + "signal-hook-registry",
205 + "slab",
206 + "windows-sys 0.61.2",
207 + ]
208 +
209 + [[package]]
210 + name = "async-task"
211 + version = "4.7.1"
212 + source = "registry+https://github.com/rust-lang/crates.io-index"
213 + checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
214 +
215 + [[package]]
216 + name = "async-trait"
217 + version = "0.1.91"
218 + source = "registry+https://github.com/rust-lang/crates.io-index"
219 + checksum = "ae36dc4177970ef04fde5178d3e2429882def40e57a451f919c098f72baa6cec"
220 + dependencies = [
221 + "proc-macro2",
222 + "quote",
223 + "syn 3.0.2",
224 + ]
225 +
226 + [[package]]
74 227 name = "atomic-waker"
75 228 version = "1.1.2"
76 229 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -142,6 +295,28 @@ dependencies = [
142 295 ]
143 296
144 297 [[package]]
298 + name = "block-padding"
299 + version = "0.3.3"
300 + source = "registry+https://github.com/rust-lang/crates.io-index"
301 + checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
302 + dependencies = [
303 + "generic-array",
304 + ]
305 +
306 + [[package]]
307 + name = "blocking"
308 + version = "1.6.2"
309 + source = "registry+https://github.com/rust-lang/crates.io-index"
310 + checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21"
311 + dependencies = [
312 + "async-channel",
313 + "async-task",
314 + "futures-io",
315 + "futures-lite",
316 + "piper",
317 + ]
318 +
319 + [[package]]
145 320 name = "bumpalo"
146 321 version = "3.20.2"
147 322 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -160,6 +335,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
160 335 checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
161 336
162 337 [[package]]
338 + name = "cbc"
339 + version = "0.1.2"
340 + source = "registry+https://github.com/rust-lang/crates.io-index"
341 + checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
342 + dependencies = [
343 + "cipher",
344 + ]
345 +
346 + [[package]]
163 347 name = "cc"
164 348 version = "1.2.56"
165 349 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -263,6 +447,15 @@ dependencies = [
263 447 ]
264 448
265 449 [[package]]
450 + name = "concurrent-queue"
451 + version = "2.5.0"
452 + source = "registry+https://github.com/rust-lang/crates.io-index"
453 + checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
454 + dependencies = [
455 + "crossbeam-utils",
456 + ]
457 +
458 + [[package]]
266 459 name = "core-foundation"
267 460 version = "0.9.4"
268 461 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -307,6 +500,12 @@ dependencies = [
307 500 ]
308 501
309 502 [[package]]
503 + name = "crossbeam-utils"
504 + version = "0.8.22"
505 + source = "registry+https://github.com/rust-lang/crates.io-index"
506 + checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17"
507 +
508 + [[package]]
310 509 name = "crypto-common"
311 510 version = "0.1.7"
312 511 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -354,7 +553,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
354 553 dependencies = [
355 554 "proc-macro2",
356 555 "quote",
357 - "syn",
556 + "syn 2.0.117",
358 557 ]
359 558
360 559 [[package]]
@@ -373,6 +572,33 @@ dependencies = [
373 572 ]
374 573
375 574 [[package]]
575 + name = "endi"
576 + version = "1.1.1"
577 + source = "registry+https://github.com/rust-lang/crates.io-index"
578 + checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099"
579 +
580 + [[package]]
581 + name = "enumflags2"
582 + version = "0.7.12"
583 + source = "registry+https://github.com/rust-lang/crates.io-index"
584 + checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef"
585 + dependencies = [
586 + "enumflags2_derive",
587 + "serde",
588 + ]
589 +
590 + [[package]]
591 + name = "enumflags2_derive"
592 + version = "0.7.12"
593 + source = "registry+https://github.com/rust-lang/crates.io-index"
594 + checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827"
595 + dependencies = [
596 + "proc-macro2",
597 + "quote",
598 + "syn 2.0.117",
599 + ]
600 +
601 + [[package]]
376 602 name = "equivalent"
377 603 version = "1.0.2"
378 604 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -389,6 +615,27 @@ dependencies = [
389 615 ]
390 616
391 617 [[package]]
618 + name = "event-listener"
619 + version = "5.4.1"
620 + source = "registry+https://github.com/rust-lang/crates.io-index"
621 + checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab"
622 + dependencies = [
623 + "concurrent-queue",
624 + "parking",
625 + "pin-project-lite",
626 + ]
627 +
628 + [[package]]
629 + name = "event-listener-strategy"
630 + version = "0.5.4"
631 + source = "registry+https://github.com/rust-lang/crates.io-index"
632 + checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93"
633 + dependencies = [
634 + "event-listener",
635 + "pin-project-lite",
636 + ]
637 +
638 + [[package]]
392 639 name = "fallible-iterator"
393 640 version = "0.3.0"
394 641 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -503,6 +750,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
503 750 checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718"
504 751
505 752 [[package]]
753 + name = "futures-lite"
754 + version = "2.6.1"
755 + source = "registry+https://github.com/rust-lang/crates.io-index"
756 + checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad"
757 + dependencies = [
758 + "fastrand",
759 + "futures-core",
760 + "futures-io",
761 + "parking",
762 + "pin-project-lite",
763 + ]
764 +
765 + [[package]]
506 766 name = "futures-macro"
507 767 version = "0.3.32"
508 768 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -510,7 +770,7 @@ checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b"
510 770 dependencies = [
511 771 "proc-macro2",
512 772 "quote",
513 - "syn",
773 + "syn 2.0.117",
514 774 ]
515 775
516 776 [[package]]
@@ -646,6 +906,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
646 906 checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
647 907
648 908 [[package]]
909 + name = "hex"
910 + version = "0.4.3"
911 + source = "registry+https://github.com/rust-lang/crates.io-index"
912 + checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
913 +
914 + [[package]]
915 + name = "hkdf"
916 + version = "0.12.4"
917 + source = "registry+https://github.com/rust-lang/crates.io-index"
918 + checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
919 + dependencies = [
920 + "hmac",
921 + ]
922 +
923 + [[package]]
924 + name = "hmac"
925 + version = "0.12.1"
926 + source = "registry+https://github.com/rust-lang/crates.io-index"
927 + checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
928 + dependencies = [
929 + "digest",
930 + ]
931 +
932 + [[package]]
649 933 name = "http"
650 934 version = "1.4.0"
651 935 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -920,6 +1204,7 @@ version = "0.1.4"
920 1204 source = "registry+https://github.com/rust-lang/crates.io-index"
921 1205 checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01"
922 1206 dependencies = [
1207 + "block-padding",
923 1208 "generic-array",
924 1209 ]
925 1210
@@ -972,7 +1257,7 @@ dependencies = [
972 1257 "quote",
973 1258 "rustc_version",
974 1259 "simd_cesu8",
975 - "syn",
1260 + "syn 2.0.117",
976 1261 ]
977 1262
978 1263 [[package]]
@@ -991,7 +1276,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
991 1276 checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264"
992 1277 dependencies = [
993 1278 "quote",
994 - "syn",
1279 + "syn 2.0.117",
995 1280 ]
996 1281
997 1282 [[package]]
@@ -1016,17 +1301,23 @@ dependencies = [
1016 1301
1017 1302 [[package]]
1018 1303 name = "keyring"
1019 - version = "3.6.3"
1304 + version = "4.1.5"
1020 1305 source = "registry+https://github.com/rust-lang/crates.io-index"
1021 - checksum = "eebcc3aff044e5944a8fbaf69eb277d11986064cba30c468730e8b9909fb551c"
1306 + checksum = "0298a59b384c540e408a600c8b375a09b49c3f97debc080e2c30675d79a6368a"
1307 + dependencies = [
1308 + "apple-native-keyring-store",
1309 + "keyring-core",
1310 + "windows-native-keyring-store",
1311 + "zbus-secret-service-keyring-store",
1312 + ]
1313 +
1314 + [[package]]
1315 + name = "keyring-core"
1316 + version = "1.0.0"
1317 + source = "registry+https://github.com/rust-lang/crates.io-index"
1318 + checksum = "fb1e621458ca9c51aa110bd0339d4751a056b9576bf1253aee1aa560dda0fc9d"
1022 1319 dependencies = [
1023 - "byteorder",
1024 - "linux-keyutils",
1025 1320 "log",
1026 - "security-framework 2.11.1",
1027 - "security-framework 3.7.0",
1028 - "windows-sys 0.60.2",
1029 - "zeroize",
1030 1321 ]
1031 1322
1032 1323 [[package]]
@@ -1059,16 +1350,6 @@ dependencies = [
1059 1350 ]
1060 1351
1061 1352 [[package]]
1062 - name = "linux-keyutils"
1063 - version = "0.2.5"
1064 - source = "registry+https://github.com/rust-lang/crates.io-index"
1065 - checksum = "83270a18e9f90d0707c41e9f35efada77b64c0e6f3f1810e71c8368a864d5590"
1066 - dependencies = [
1067 - "bitflags",
1068 - "libc",
1069 - ]
1070 -
1071 - [[package]]
1072 1353 name = "linux-raw-sys"
1073 1354 version = "0.12.1"
1074 1355 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1108,6 +1389,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1108 1389 checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
1109 1390
1110 1391 [[package]]
1392 + name = "memoffset"
1393 + version = "0.9.1"
1394 + source = "registry+https://github.com/rust-lang/crates.io-index"
1395 + checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
1396 + dependencies = [
1397 + "autocfg",
1398 + ]
1399 +
1400 + [[package]]
1111 1401 name = "mime"
1112 1402 version = "0.3.17"
1113 1403 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1136,12 +1426,75 @@ dependencies = [
1136 1426 "openssl-probe",
1137 1427 "openssl-sys",
1138 1428 "schannel",
1139 - "security-framework 3.7.0",
1429 + "security-framework",
1140 1430 "security-framework-sys",
1141 1431 "tempfile",
1142 1432 ]
1143 1433
1144 1434 [[package]]
1435 + name = "num"
1436 + version = "0.4.3"
1437 + source = "registry+https://github.com/rust-lang/crates.io-index"
1438 + checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23"
1439 + dependencies = [
1440 + "num-bigint",
1441 + "num-complex",
1442 + "num-integer",
1443 + "num-iter",
1444 + "num-rational",
1445 + "num-traits",
1446 + ]
1447 +
1448 + [[package]]
1449 + name = "num-bigint"
1450 + version = "0.4.8"
1451 + source = "registry+https://github.com/rust-lang/crates.io-index"
1452 + checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367"
1453 + dependencies = [
1454 + "num-integer",
1455 + "num-traits",
1456 + ]
1457 +
1458 + [[package]]
1459 + name = "num-complex"
1460 + version = "0.4.6"
1461 + source = "registry+https://github.com/rust-lang/crates.io-index"
1462 + checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
1463 + dependencies = [
1464 + "num-traits",
1465 + ]
1466 +
1467 + [[package]]
1468 + name = "num-integer"
1469 + version = "0.1.46"
1470 + source = "registry+https://github.com/rust-lang/crates.io-index"
1471 + checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
1472 + dependencies = [
1473 + "num-traits",
Lines truncated
@@ -43,7 +43,7 @@ chrono = { version = "0.4", features = ["serde"] }
43 43 uuid = { version = "1", features = ["v4", "serde"] }
44 44
45 45 # OS keychain (optional)
46 - keyring = { version = "3", optional = true, features = ["apple-native", "linux-native", "windows-native"] }
46 + keyring = { version = "4", optional = true }
47 47
48 48 # URL encoding
49 49 urlencoding = "2"