anvilsign in

collin/anvil · d230eb4f

Bump every remaining dep except toasty, rusqlite and gix

Collin Richards · 2026-08-25 05:00 UTC · d230eb4f5808259b9820e050172e0506429b450d · parent 05ebb7f1 · browse files

modifiedCargo.lock+263 −218
⋯ 31 unchanged lines
3232
3333 [[package]]
3434 name = "aes-gcm"
35-version = "0.11.0-rc.4"
35+version = "0.11.1"
3636 source = "registry+https://github.com/rust-lang/crates.io-index"
37-checksum = "da8c919c118108f144adecad74b425b804ad075580d605d9b33c2d6d1c62a2f8"
37+checksum = "7f2b8006a0c83f52b62ba44a97b58bf76fe2f70a329e588f67f89691d93d498f"
3838 dependencies = [
3939 "aead",
4040 "aes",
4141 "cipher",
4242 "ctr",
43+ "ctutils",
4344 "ghash",
44- "subtle",
4545 "zeroize",
4646 ]
4747
⋯ 134 unchanged lines
182182 "anvil-job",
183183 "argon2 0.5.3",
184184 "async-trait",
185- "base64",
185+ "base64 0.23.1",
186186 "curve25519-dalek",
187187 "gix",
188- "hmac 0.12.1",
188+ "hmac",
189189 "jaq-core",
190190 "jaq-json",
191191 "jaq-std",
⋯ 2 unchanged lines
194194 "serde",
195195 "serde_json",
196196 "serde_yaml",
197- "sha2 0.10.9",
197+ "sha2 0.11.0",
198198 "ssh-key",
199199 "tempfile",
200200 "thiserror",
⋯ 59 unchanged lines
260260 "argon2 0.5.3",
261261 "axum",
262262 "axum-extra",
263- "base64",
263+ "base64 0.23.1",
264264 "futures-util",
265265 "lru",
266266 "maud",
⋯ 13 unchanged lines
280280 "tokio",
281281 "tokio-util",
282282 "tower",
283- "tower-http",
283+ "tower-http 0.7.0",
284284 "tracing",
285285 ]
286286
⋯ 91 unchanged lines
378378 checksum = "31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90"
379379 dependencies = [
380380 "axum-core",
381- "base64",
381+ "base64 0.22.1",
382382 "bytes",
383383 "form_urlencoded",
384384 "futures-util",
⋯ 43 unchanged lines
428428
429429 [[package]]
430430 name = "axum-extra"
431-version = "0.10.3"
431+version = "0.12.6"
432432 source = "registry+https://github.com/rust-lang/crates.io-index"
433-checksum = "9963ff19f40c6102c76756ef0a46004c0d58957d87259fc9208ff8441c12ab96"
433+checksum = "be44683b41ccb9ab2d23a5230015c9c3c55be97a25e4428366de8873103f7970"
434434 dependencies = [
435435 "axum",
436436 "axum-core",
437437 "bytes",
438438 "cookie",
439+ "futures-core",
439440 "futures-util",
440441 "http",
441442 "http-body",
442443 "http-body-util",
443444 "mime",
444445 "pin-project-lite",
445- "rustversion",
446- "serde_core",
447446 "tower-layer",
448447 "tower-service",
449448 "tracing",
⋯ 12 unchanged lines
462461 checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
463462
464463 [[package]]
464+name = "base64"
465+version = "0.23.1"
466+source = "registry+https://github.com/rust-lang/crates.io-index"
467+checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5"
468+
469+[[package]]
465470 name = "base64ct"
466471 version = "1.8.3"
467472 source = "registry+https://github.com/rust-lang/crates.io-index"
⋯ 107 unchanged lines
575580
576581 [[package]]
577582 name = "bollard"
578-version = "0.18.1"
583+version = "0.21.1"
579584 source = "registry+https://github.com/rust-lang/crates.io-index"
580-checksum = "97ccca1260af6a459d75994ad5acc1651bcabcbdbc41467cc9786519ab854c30"
585+checksum = "dbe8358268799ebb3e4df23cb9d47f4c72bbc4f5247e2fa6a1bf7b6c0baea220"
581586 dependencies = [
582- "base64",
587+ "base64 0.22.1",
583588 "bollard-stubs",
584589 "bytes",
585590 "futures-core",
⋯ 10 unchanged lines
596601 "serde",
597602 "serde_derive",
598603 "serde_json",
599- "serde_repr",
600604 "serde_urlencoded",
601605 "thiserror",
602606 "tokio",
⋯ 5 unchanged lines
608612
609613 [[package]]
610614 name = "bollard-stubs"
611-version = "1.47.1-rc.27.3.1"
615+version = "1.53.1-rc.29.3.1"
612616 source = "registry+https://github.com/rust-lang/crates.io-index"
613-checksum = "3f179cfbddb6e77a5472703d4b30436bff32929c0aa8a9008ecf23d1d3cdd0da"
617+checksum = "ce412eb6f7096743011dc3cb5c674caeb24ced61d8c498fe07cf7998a4fea889"
614618 dependencies = [
615619 "serde",
620+ "serde_json",
616621 "serde_repr",
617- "serde_with",
618-]
619-
620-[[package]]
621-name = "bs58"
622-version = "0.5.1"
623-source = "registry+https://github.com/rust-lang/crates.io-index"
624-checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4"
625-dependencies = [
626- "tinyvec",
627622 ]
628623
629624 [[package]]
⋯ 84 unchanged lines
714709 "iana-time-zone",
715710 "js-sys",
716711 "num-traits",
717- "serde",
718712 "wasm-bindgen",
719713 "windows-link",
720714 ]
⋯ 72 unchanged lines
793787 checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570"
794788
795789 [[package]]
790+name = "combine"
791+version = "4.6.7"
792+source = "registry+https://github.com/rust-lang/crates.io-index"
793+checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
794+dependencies = [
795+ "bytes",
796+ "memchr",
797+]
798+
799+[[package]]
796800 name = "const-oid"
797801 version = "0.9.6"
798802 source = "registry+https://github.com/rust-lang/crates.io-index"
⋯ 149 unchanged lines
948952
949953 [[package]]
950954 name = "curve25519-dalek"
951-version = "5.0.0-rc.0"
955+version = "5.0.0"
952956 source = "registry+https://github.com/rust-lang/crates.io-index"
953-checksum = "4f359e08ca85e7bd759e1fd933ff2bccd81864c60a8fba0e259c7f822b0924bf"
957+checksum = "b5eed333089e2e1c1ac8c6c0398e5e2497b4c9926ca6d0365ed1e099afa5bc23"
954958 dependencies = [
955959 "cfg-if",
956960 "cpufeatures 0.3.0",
957961 "curve25519-dalek-derive",
958962 "digest 0.11.3",
959963 "fiat-crypto",
964+ "rand_core 0.10.1",
960965 "rustc_version",
961966 "subtle",
962967 "zeroize",
⋯ 181 unchanged lines
11441149
11451150 [[package]]
11461151 name = "ecdsa"
1147-version = "0.17.0-rc.18"
1152+version = "0.17.0"
11481153 source = "registry+https://github.com/rust-lang/crates.io-index"
1149-checksum = "54fb064faabbee66e1fc8e5c5a9458d4269dc2d8b638fe86a425adb2510d1a96"
1154+checksum = "c0681a4fc24c767085329728d8dfba959af91228aa4610cca4f8ce317ba46ae0"
11501155 dependencies = [
11511156 "der 0.8.1",
11521157 "digest 0.11.3",
⋯ 16 unchanged lines
11691174
11701175 [[package]]
11711176 name = "ed25519-dalek"
1172-version = "3.0.0-rc.0"
1177+version = "3.0.0"
11731178 source = "registry+https://github.com/rust-lang/crates.io-index"
1174-checksum = "b011170fe4f04665565b4110afef66774fe9ffff278f3eb5b81cc73d26e27d60"
1179+checksum = "6ebaa1a2bf1290ab3bfe5a7b771d050ebffab2711c19a81691c683a5144a25de"
11751180 dependencies = [
11761181 "curve25519-dalek",
11771182 "ed25519",
⋯ 7 unchanged lines
11851190
11861191 [[package]]
11871192 name = "elliptic-curve"
1188-version = "0.14.0-rc.33"
1193+version = "0.14.1"
11891194 source = "registry+https://github.com/rust-lang/crates.io-index"
1190-checksum = "102d3643d30dd8b559613c5cced68317199597fffb278cdc88daa2ef7fafc935"
1195+checksum = "9d65aa39b3a5c1c9c1b745c9a019234bb7a21b77abcb4f4d266d706e2d577d65"
11911196 dependencies = [
11921197 "base16ct",
11931198 "crypto-bigint",
⋯ 3 unchanged lines
11971202 "group",
11981203 "hkdf",
11991204 "hybrid-array",
1200- "once_cell",
12011205 "pem-rfc7468 1.0.0",
12021206 "pkcs8 0.11.0",
12031207 "rand_core 0.10.1",
⋯ 289 unchanged lines
14931497 checksum = "2eecf2d5dc9b66b732b97707a0210906b1d30523eb773193ab777c0c84b3e8d5"
14941498 dependencies = [
14951499 "polyval",
1500+ "zeroize",
14961501 ]
14971502
14981503 [[package]]
⋯ 764 unchanged lines
22632268
22642269 [[package]]
22652270 name = "hashbrown"
2266-version = "0.12.3"
2267-source = "registry+https://github.com/rust-lang/crates.io-index"
2268-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
2269-
2270-[[package]]
2271-name = "hashbrown"
22722271 version = "0.14.5"
22732272 source = "registry+https://github.com/rust-lang/crates.io-index"
22742273 checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
22752274
22762275 [[package]]
22772276 name = "hashbrown"
2278-version = "0.15.5"
2279-source = "registry+https://github.com/rust-lang/crates.io-index"
2280-checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
2281-dependencies = [
2282- "allocator-api2",
2283- "equivalent",
2284- "foldhash 0.1.5",
2285-]
2286-
2287-[[package]]
2288-name = "hashbrown"
22892277 version = "0.16.1"
22902278 source = "registry+https://github.com/rust-lang/crates.io-index"
22912279 checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
⋯ 69 unchanged lines
23612349 source = "registry+https://github.com/rust-lang/crates.io-index"
23622350 checksum = "4aaa26c720c68b866f2c96ef5c1264b3e6f473fe5d4ce61cd44bbe913e553018"
23632351 dependencies = [
2364- "hmac 0.13.0",
2365-]
2366-
2367-[[package]]
2368-name = "hmac"
2369-version = "0.12.1"
2370-source = "registry+https://github.com/rust-lang/crates.io-index"
2371-checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
2372-dependencies = [
2373- "digest 0.10.7",
2352+ "hmac",
23742353 ]
23752354
23762355 [[package]]
⋯ 113 unchanged lines
24902469 "hyper",
24912470 "hyper-util",
24922471 "rustls",
2493- "rustls-native-certs",
24942472 "tokio",
24952473 "tokio-rustls",
24962474 "tower-service",
⋯ 5 unchanged lines
25022480 source = "registry+https://github.com/rust-lang/crates.io-index"
25032481 checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0"
25042482 dependencies = [
2505- "base64",
2483+ "base64 0.22.1",
25062484 "bytes",
25072485 "futures-channel",
25082486 "futures-util",
⋯ 161 unchanged lines
26702648
26712649 [[package]]
26722650 name = "indexmap"
2673-version = "1.9.3"
2674-source = "registry+https://github.com/rust-lang/crates.io-index"
2675-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
2676-dependencies = [
2677- "autocfg",
2678- "hashbrown 0.12.3",
2679- "serde",
2680-]
2681-
2682-[[package]]
2683-name = "indexmap"
26842651 version = "2.14.0"
26852652 source = "registry+https://github.com/rust-lang/crates.io-index"
26862653 checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
26872654 dependencies = [
26882655 "equivalent",
26892656 "hashbrown 0.17.1",
2690- "serde",
2691- "serde_core",
26922657 ]
26932658
26942659 [[package]]
⋯ 66 unchanged lines
27612726 "bytes",
27622727 "foldhash 0.1.5",
27632728 "hifijson",
2764- "indexmap 2.14.0",
2729+ "indexmap",
27652730 "jaq-core",
27662731 "jaq-std",
27672732 "num-bigint",
⋯ 66 unchanged lines
28342799 ]
28352800
28362801 [[package]]
2802+name = "jni"
2803+version = "0.22.4"
2804+source = "registry+https://github.com/rust-lang/crates.io-index"
2805+checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498"
2806+dependencies = [
2807+ "cfg-if",
2808+ "combine",
2809+ "jni-macros",
2810+ "jni-sys",
2811+ "log",
2812+ "simd_cesu8",
2813+ "thiserror",
2814+ "walkdir",
2815+ "windows-link",
2816+]
2817+
2818+[[package]]
2819+name = "jni-macros"
2820+version = "0.22.4"
2821+source = "registry+https://github.com/rust-lang/crates.io-index"
2822+checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3"
2823+dependencies = [
2824+ "proc-macro2",
2825+ "quote",
2826+ "rustc_version",
2827+ "simd_cesu8",
2828+ "syn 2.0.119",
2829+]
2830+
2831+[[package]]
2832+name = "jni-sys"
2833+version = "0.4.1"
2834+source = "registry+https://github.com/rust-lang/crates.io-index"
2835+checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2"
2836+dependencies = [
2837+ "jni-sys-macros",
2838+]
2839+
2840+[[package]]
2841+name = "jni-sys-macros"
2842+version = "0.4.1"
2843+source = "registry+https://github.com/rust-lang/crates.io-index"
2844+checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264"
2845+dependencies = [
2846+ "quote",
2847+ "syn 2.0.119",
2848+]
2849+
2850+[[package]]
28372851 name = "js-sys"
28382852 version = "0.3.104"
28392853 source = "registry+https://github.com/rust-lang/crates.io-index"
⋯ 100 unchanged lines
29402954
29412955 [[package]]
29422956 name = "lru"
2943-version = "0.12.5"
2957+version = "0.18.2"
29442958 source = "registry+https://github.com/rust-lang/crates.io-index"
2945-checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38"
2959+checksum = "5d2f2f9b4ba7e6b24d95e7e899329d35be83bcded72c8540cdd5368932d1d90a"
29462960 dependencies = [
2947- "hashbrown 0.15.5",
2961+ "hashbrown 0.17.1",
29482962 ]
29492963
29502964 [[package]]
⋯ 115 unchanged lines
30663080 "module-lattice",
30673081 "pkcs8 0.11.0",
30683082 "rand_core 0.10.1",
3069- "sha3",
3083+ "sha3 0.11.0",
30703084 ]
30713085
30723086 [[package]]
⋯ 147 unchanged lines
32203234
32213235 [[package]]
32223236 name = "p256"
3223-version = "0.14.0-rc.10"
3237+version = "0.14.0"
32243238 source = "registry+https://github.com/rust-lang/crates.io-index"
3225-checksum = "41adc63effe99d48837a8cc0e6d7a77e32ae6a07f6000df466178dbc2193093e"
3239+checksum = "d2c9239b2dbc807adbbe147e8cf72ea7450c3a0aabe62cb8e75ff4ec22e1f72a"
32263240 dependencies = [
32273241 "ecdsa",
32283242 "elliptic-curve",
⋯ 4 unchanged lines
32333247
32343248 [[package]]
32353249 name = "p384"
3236-version = "0.14.0-rc.10"
3250+version = "0.14.0"
32373251 source = "registry+https://github.com/rust-lang/crates.io-index"
3238-checksum = "9bd5333afa5ae0347f39e6a0f2c9c155da431583fd71fe5555bd0521b4ccaf02"
3252+checksum = "d17b851e6b3e378ab4ecb07fa2ed23f4d15f075735f8fec9fa1e7bdce5f8301f"
32393253 dependencies = [
32403254 "ecdsa",
32413255 "elliptic-curve",
⋯ 5 unchanged lines
32473261
32483262 [[package]]
32493263 name = "p521"
3250-version = "0.14.0-rc.10"
3264+version = "0.14.0"
32513265 source = "registry+https://github.com/rust-lang/crates.io-index"
3252-checksum = "a3a5297f53dc16d35909060ba3032cff7867e8809f01e273ff325579d5f0ceae"
3266+checksum = "4ad64cc32c2dc466317c12ee5853e61f159f9eab1fe7efade0395dc2e7b43449"
32533267 dependencies = [
32543268 "base16ct",
32553269 "ecdsa",
⋯ 73 unchanged lines
33293343 checksum = "112d82ceb8c5bf524d9af484d4e4970c9fd5a0cc15ba14ad93dccd28873b0629"
33303344 dependencies = [
33313345 "digest 0.11.3",
3332- "hmac 0.13.0",
3346+ "hmac",
33333347 ]
33343348
33353349 [[package]]
⋯ 59 unchanged lines
33953409
33963410 [[package]]
33973411 name = "pkcs5"
3398-version = "0.8.0"
3412+version = "0.8.1"
33993413 source = "registry+https://github.com/rust-lang/crates.io-index"
3400-checksum = "279a91971a1d8eb1260a30938eae3be9cb67b472dffecb222fbbbe2fd2dc1453"
3414+checksum = "63d440a804ec8d6fafbb6b84471e013286658d373248927692ab3366686220ca"
34013415 dependencies = [
34023416 "aes",
3417+ "aes-gcm",
34033418 "cbc",
34043419 "der 0.8.1",
34053420 "pbkdf2",
⋯ 37 unchanged lines
34433458 source = "registry+https://github.com/rust-lang/crates.io-index"
34443459 checksum = "7da1d65da6dd5d1e44199ac0f58712d241c0f439f80adea8924d832384087f85"
34453460 dependencies = [
3446- "base64",
3447- "indexmap 2.14.0",
3461+ "base64 0.22.1",
3462+ "indexmap",
34483463 "quick-xml",
34493464 "serde",
34503465 "time",
⋯ 29 unchanged lines
34803495 "cpubits",
34813496 "cpufeatures 0.3.0",
34823497 "universal-hash",
3498+ "zeroize",
34833499 ]
34843500
34853501 [[package]]
⋯ 51 unchanged lines
35373553
35383554 [[package]]
35393555 name = "primeorder"
3540-version = "0.14.0-rc.10"
3556+version = "0.14.0"
35413557 source = "registry+https://github.com/rust-lang/crates.io-index"
3542-checksum = "7d2793f22b9b6fd11ef3ac1d59bf003c2573593e4968702341605c2748fd90bf"
3558+checksum = "5c9f42978c78a00e3d68f69fc03e57a234debae69da4020a4fb588fcdcd07b06"
35433559 dependencies = [
35443560 "elliptic-curve",
3561+ "once_cell",
3562+ "primefield",
3563+ "serdect",
3564+ "wnaf",
35453565 ]
35463566
35473567 [[package]]
⋯ 159 unchanged lines
37073727 ]
37083728
37093729 [[package]]
3710-name = "ref-cast"
3711-version = "1.0.27"
3712-source = "registry+https://github.com/rust-lang/crates.io-index"
3713-checksum = "7e440fb4e4b4147295338efb76001ab9e4efc0e5839df2c47fc5ac2381d365c3"
3714-dependencies = [
3715- "ref-cast-impl",
3716-]
3717-
3718-[[package]]
3719-name = "ref-cast-impl"
3720-version = "1.0.27"
3721-source = "registry+https://github.com/rust-lang/crates.io-index"
3722-checksum = "92ecd8964f8453721699a1ed72037b0db49ce2f5a5138486ee89bed6f67cdf3a"
3723-dependencies = [
3724- "proc-macro2",
3725- "quote",
3726- "syn 3.0.4",
3727-]
3728-
3729-[[package]]
37303730 name = "regex"
37313731 version = "1.13.1"
37323732 source = "registry+https://github.com/rust-lang/crates.io-index"
⋯ 24 unchanged lines
37573757
37583758 [[package]]
37593759 name = "reqwest"
3760-version = "0.12.28"
3760+version = "0.13.4"
37613761 source = "registry+https://github.com/rust-lang/crates.io-index"
3762-checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147"
3762+checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3"
37633763 dependencies = [
3764- "base64",
3764+ "base64 0.22.1",
37653765 "bytes",
37663766 "futures-core",
37673767 "http",
⋯ 7 unchanged lines
37753775 "percent-encoding",
37763776 "pin-project-lite",
37773777 "rustls",
3778- "rustls-native-certs",
37793778 "rustls-pki-types",
3779+ "rustls-platform-verifier",
37803780 "serde",
37813781 "serde_json",
37823782 "serde_urlencoded",
⋯ 1 unchanged line
37843784 "tokio",
37853785 "tokio-rustls",
37863786 "tower",
3787- "tower-http",
3787+ "tower-http 0.6.11",
37883788 "tower-service",
37893789 "url",
37903790 "wasm-bindgen",
⋯ 3 unchanged lines
37943794
37953795 [[package]]
37963796 name = "rfc6979"
3797-version = "0.5.0"
3797+version = "0.6.0"
37983798 source = "registry+https://github.com/rust-lang/crates.io-index"
3799-checksum = "5236ce872cac07e0fb3969b0cbf468c7d2f37d432f1b627dcb7b8d34563fb0c3"
3799+checksum = "b4a459cddafb3fe76b31fd8f1108007566c40301feb64dc7b54656eb7388172b"
38003800 dependencies = [
3801- "hmac 0.13.0",
3802- "subtle",
3801+ "crypto-bigint",
3802+ "hmac",
38033803 ]
38043804
38053805 [[package]]
⋯ 97 unchanged lines
39033903
39043904 [[package]]
39053905 name = "russh"
3906-version = "0.61.2"
3906+version = "0.63.1"
39073907 source = "registry+https://github.com/rust-lang/crates.io-index"
3908-checksum = "bbf893f64684e58da8a68d56a5e84d1cf0440226274c515770fe267707a7d0b0"
3908+checksum = "35bab1b87d915817d5d9cc352637cd40d5f0b298a48c6309af9156a4addc3031"
39093909 dependencies = [
39103910 "aes",
39113911 "bitflags 2.13.1",
⋯ 19 unchanged lines
39313931 "getrandom 0.4.3",
39323932 "ghash",
39333933 "hex-literal",
3934- "hmac 0.13.0",
3934+ "hmac",
39353935 "inout",
39363936 "internal-russh-num-bigint",
39373937 "keccak",
⋯ 22 unchanged lines
39603960 "sec1",
39613961 "sha1 0.11.0",
39623962 "sha2 0.11.0",
3963- "sha3",
3963+ "sha3 0.12.0",
39643964 "signature 3.0.0",
39653965 "spki 0.8.0",
39663966 "ssh-encoding",
⋯ 8 unchanged lines
39753975
39763976 [[package]]
39773977 name = "russh-cryptovec"
3978-version = "0.61.0"
3978+version = "0.62.0"
39793979 source = "registry+https://github.com/rust-lang/crates.io-index"
3980-checksum = "443f6bbcfacb34a1aab2b12b99bf08e0c63abdc5a0db261901365df9d57fff51"
3980+checksum = "3aec6cb630dbe85d72ffd7bcd95f07e1bd69f9f270ee8adfa1afe443a6331438"
39813981 dependencies = [
39823982 "log",
39833983 "nix",
⋯ 72 unchanged lines
40564056 ]
40574057
40584058 [[package]]
4059+name = "rustls-platform-verifier"
4060+version = "0.7.0"
4061+source = "registry+https://github.com/rust-lang/crates.io-index"
4062+checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0"
4063+dependencies = [
4064+ "core-foundation",
4065+ "core-foundation-sys",
4066+ "jni",
4067+ "log",
4068+ "once_cell",
4069+ "rustls",
4070+ "rustls-native-certs",
4071+ "rustls-platform-verifier-android",
4072+ "rustls-webpki",
4073+ "security-framework",
4074+ "security-framework-sys",
4075+ "webpki-root-certs",
4076+ "windows-sys 0.61.2",
4077+]
4078+
4079+[[package]]
4080+name = "rustls-platform-verifier-android"
4081+version = "0.1.1"
4082+source = "registry+https://github.com/rust-lang/crates.io-index"
4083+checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f"
4084+
4085+[[package]]
40594086 name = "rustls-webpki"
40604087 version = "0.103.15"
40614088 source = "registry+https://github.com/rust-lang/crates.io-index"
⋯ 42 unchanged lines
41044131 checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939"
41054132 dependencies = [
41064133 "windows-sys 0.61.2",
4107-]
4108-
4109-[[package]]
4110-name = "schemars"
4111-version = "0.9.0"
4112-source = "registry+https://github.com/rust-lang/crates.io-index"
4113-checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f"
4114-dependencies = [
4115- "dyn-clone",
4116- "ref-cast",
4117- "serde",
4118- "serde_json",
4119-]
4120-
4121-[[package]]
4122-name = "schemars"
4123-version = "1.2.2"
4124-source = "registry+https://github.com/rust-lang/crates.io-index"
4125-checksum = "687274d293b6cdc6e73e0fee520bf2049650090d7164f87672d212a3c530cf4a"
4126-dependencies = [
4127- "dyn-clone",
4128- "ref-cast",
4129- "serde",
4130- "serde_json",
41314134 ]
41324135
41334136 [[package]]
⋯ 130 unchanged lines
42644267
42654268 [[package]]
42664269 name = "serde_spanned"
4267-version = "0.6.9"
4270+version = "1.1.1"
42684271 source = "registry+https://github.com/rust-lang/crates.io-index"
4269-checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3"
4272+checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26"
42704273 dependencies = [
4271- "serde",
4274+ "serde_core",
42724275 ]
42734276
42744277 [[package]]
⋯ 6 unchanged lines
42814284 "itoa",
42824285 "ryu",
42834286 "serde",
4284-]
4285-
4286-[[package]]
4287-name = "serde_with"
4288-version = "3.22.0"
4289-source = "registry+https://github.com/rust-lang/crates.io-index"
4290-checksum = "ee78f1fbe43ac4a0e47aadb3dbd357b69eb0d3793e948624cd03dd2750ab1c0a"
4291-dependencies = [
4292- "base64",
4293- "bs58",
4294- "chrono",
4295- "hex",
4296- "indexmap 1.9.3",
4297- "indexmap 2.14.0",
4298- "jiff",
4299- "schemars 0.9.0",
4300- "schemars 1.2.2",
4301- "serde_core",
4302- "serde_json",
4303- "time",
43044287 ]
43054288
43064289 [[package]]
⋯ 2 unchanged lines
43094292 source = "registry+https://github.com/rust-lang/crates.io-index"
43104293 checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
43114294 dependencies = [
4312- "indexmap 2.14.0",
4295+ "indexmap",
43134296 "itoa",
43144297 "ryu",
43154298 "serde",
⋯ 75 unchanged lines
43914374 ]
43924375
43934376 [[package]]
4377+name = "sha3"
4378+version = "0.12.0"
4379+source = "registry+https://github.com/rust-lang/crates.io-index"
4380+checksum = "bc9bad02c26382724b2d2692c6f179285e4b54eeecd7968f52a50059c3c11759"
4381+dependencies = [
4382+ "digest 0.11.3",
4383+ "keccak",
4384+ "sponge-cursor",
4385+]
4386+
4387+[[package]]
43944388 name = "sharded-slab"
43954389 version = "0.1.7"
43964390 source = "registry+https://github.com/rust-lang/crates.io-index"
⋯ 51 unchanged lines
44484442 checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea"
44494443
44504444 [[package]]
4445+name = "simd_cesu8"
4446+version = "1.2.0"
4447+source = "registry+https://github.com/rust-lang/crates.io-index"
4448+checksum = "11031e251abf8611c80f460e19dbdeb54a66db918e49c65a7065b46ac7aec520"
4449+dependencies = [
4450+ "rustc_version",
4451+ "simdutf8",
4452+]
4453+
4454+[[package]]
4455+name = "simdutf8"
4456+version = "0.1.5"
4457+source = "registry+https://github.com/rust-lang/crates.io-index"
4458+checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e"
4459+
4460+[[package]]
44514461 name = "similar"
44524462 version = "3.2.0"
44534463 source = "registry+https://github.com/rust-lang/crates.io-index"
⋯ 51 unchanged lines
45054515 ]
45064516
45074517 [[package]]
4518+name = "sponge-cursor"
4519+version = "0.1.0"
4520+source = "registry+https://github.com/rust-lang/crates.io-index"
4521+checksum = "3a0219bd7d979d58245a4f41f695e1ac9f8befdffadd7f61f1bae9e39abc6620"
4522+
4523+[[package]]
45084524 name = "sqlite-wasm-rs"
45094525 version = "0.5.5"
45104526 source = "registry+https://github.com/rust-lang/crates.io-index"
⋯ 7 unchanged lines
45184534
45194535 [[package]]
45204536 name = "ssh-cipher"
4521-version = "0.3.0-rc.9"
4537+version = "0.3.0"
45224538 source = "registry+https://github.com/rust-lang/crates.io-index"
4523-checksum = "10db6f219196a8528f9ec904d9d45cdad692d65b0e57e72be4dedd1c5fddce36"
4539+checksum = "d801accda99469cde6d73da741422610fdf6508a72d9a69d1b55cb241c720597"
45244540 dependencies = [
45254541 "aead",
45264542 "aes",
45274543 "aes-gcm",
4528- "cbc",
45294544 "chacha20",
45304545 "cipher",
4531- "ctr",
45324546 "ctutils",
45334547 "des",
45344548 "poly1305",
⋯ 3 unchanged lines
45384552
45394553 [[package]]
45404554 name = "ssh-encoding"
4541-version = "0.3.0-rc.9"
4555+version = "0.3.0"
45424556 source = "registry+https://github.com/rust-lang/crates.io-index"
4543-checksum = "7abf34aa716da5d5b4c496936d042ea282ab392092cd68a72ef6a8863ff8c96a"
4557+checksum = "7b54d0ed0498daf3f78d82e00e28c8eec9d75a067c4cfbcc7a0f7d0f4077749e"
45444558 dependencies = [
45454559 "base64ct",
45464560 "bytes",
⋯ 6 unchanged lines
45534567
45544568 [[package]]
45554569 name = "ssh-key"
4556-version = "0.7.0-rc.10"
4570+version = "0.7.0-rc.11"
45574571 source = "registry+https://github.com/rust-lang/crates.io-index"
4558-checksum = "45735ce3dea95690e4a9e414c4cfde7f79835063c3dcd35881df85a84118e74b"
4572+checksum = "f9a32fae177b74a22aa9c5b01bf7e68b33545be32d9e381e248058d2adc15ce3"
45594573 dependencies = [
45604574 "argon2 0.6.0-rc.8",
45614575 "bcrypt-pbkdf",
45624576 "ctutils",
45634577 "ed25519-dalek",
45644578 "hex",
4565- "hmac 0.13.0",
4579+ "hmac",
45664580 "p256",
45674581 "p384",
45684582 "p521",
⋯ 215 unchanged lines
47844798 "deadpool",
47854799 "hashbrown 0.17.1",
47864800 "index_vec",
4787- "indexmap 2.14.0",
4801+ "indexmap",
47884802 "inventory",
47894803 "toasty-core",
47904804 "toasty-driver-sqlite",
⋯ 15 unchanged lines
48064820 "bit-set",
48074821 "hashbrown 0.17.1",
48084822 "heck",
4809- "indexmap 2.14.0",
4823+ "indexmap",
48104824 "pluralizer",
48114825 "tokio-stream",
48124826 "uuid",
⋯ 118 unchanged lines
49314945
49324946 [[package]]
49334947 name = "toml"
4934-version = "0.8.23"
4948+version = "1.1.4+spec-1.1.0"
49354949 source = "registry+https://github.com/rust-lang/crates.io-index"
4936-checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362"
4950+checksum = "3aace63f4bbcdfc2c965b059de67119c89c4017a70d633be6c104910f67056f5"
49374951 dependencies = [
4938- "serde",
4952+ "indexmap",
4953+ "serde_core",
49394954 "serde_spanned",
49404955 "toml_datetime",
4941- "toml_edit",
4956+ "toml_parser",
4957+ "toml_writer",
4958+ "winnow",
49424959 ]
49434960
49444961 [[package]]
49454962 name = "toml_datetime"
4946-version = "0.6.11"
4963+version = "1.1.1+spec-1.1.0"
49474964 source = "registry+https://github.com/rust-lang/crates.io-index"
4948-checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c"
4965+checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"
49494966 dependencies = [
4950- "serde",
4967+ "serde_core",
49514968 ]
49524969
49534970 [[package]]
4954-name = "toml_edit"
4955-version = "0.22.27"
4971+name = "toml_parser"
4972+version = "1.1.3+spec-1.1.0"
49564973 source = "registry+https://github.com/rust-lang/crates.io-index"
4957-checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
4974+checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56"
49584975 dependencies = [
4959- "indexmap 2.14.0",
4960- "serde",
4961- "serde_spanned",
4962- "toml_datetime",
4963- "toml_write",
49644976 "winnow",
49654977 ]
49664978
49674979 [[package]]
4968-name = "toml_write"
4969-version = "0.1.2"
4980+name = "toml_writer"
4981+version = "1.1.2+spec-1.1.0"
49704982 source = "registry+https://github.com/rust-lang/crates.io-index"
4971-checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801"
4983+checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2"
49724984
49734985 [[package]]
49744986 name = "tower"
⋯ 19 unchanged lines
49945006 dependencies = [
49955007 "bitflags 2.13.1",
49965008 "bytes",
5009+ "futures-util",
5010+ "http",
5011+ "http-body",
5012+ "pin-project-lite",
5013+ "tower",
5014+ "tower-layer",
5015+ "tower-service",
5016+ "url",
5017+]
5018+
5019+[[package]]
5020+name = "tower-http"
5021+version = "0.7.0"
5022+source = "registry+https://github.com/rust-lang/crates.io-index"
5023+checksum = "b11f75e912b0c2be01b63d8cf8057b8c3f97cf34abb3d431a3a4c8675498e233"
5024+dependencies = [
5025+ "bitflags 2.13.1",
5026+ "bytes",
49975027 "futures-core",
49985028 "futures-util",
49995029 "http",
⋯ 7 unchanged lines
50075037 "pin-project-lite",
50085038 "tokio",
50095039 "tokio-util",
5010- "tower",
50115040 "tower-layer",
50125041 "tower-service",
50135042 "tracing",
5014- "url",
50155043 ]
50165044
50175045 [[package]]
⋯ 316 unchanged lines
53345362 ]
53355363
53365364 [[package]]
5365+name = "webpki-root-certs"
5366+version = "1.0.9"
5367+source = "registry+https://github.com/rust-lang/crates.io-index"
5368+checksum = "b96554aa2acc8ccdb7e1c9a58a7a68dd5d13bccc69cd124cb09406db612a1c9b"
5369+dependencies = [
5370+ "rustls-pki-types",
5371+]
5372+
5373+[[package]]
53375374 name = "winapi"
53385375 version = "0.3.9"
53395376 source = "registry+https://github.com/rust-lang/crates.io-index"
⋯ 227 unchanged lines
55675604
55685605 [[package]]
55695606 name = "winnow"
5570-version = "0.7.15"
5607+version = "1.0.4"
55715608 source = "registry+https://github.com/rust-lang/crates.io-index"
5572-checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945"
5573-dependencies = [
5574- "memchr",
5575-]
5609+checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81"
55765610
55775611 [[package]]
55785612 name = "wit-bindgen"
⋯ 2 unchanged lines
55815615 checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e"
55825616
55835617 [[package]]
5618+name = "wnaf"
5619+version = "0.14.0"
5620+source = "registry+https://github.com/rust-lang/crates.io-index"
5621+checksum = "ab12e7090f27e2ffd9322651492942d50c2926094af30601e1964337db39daf1"
5622+dependencies = [
5623+ "ff",
5624+ "group",
5625+ "hybrid-array",
5626+]
5627+
5628+[[package]]
55845629 name = "writeable"
55855630 version = "0.6.4"
55865631 source = "registry+https://github.com/rust-lang/crates.io-index"
⋯ 135 unchanged lines
modifiedCargo.toml+22 −19
⋯ 25 unchanged lines
2626 # Repo secrets (docs/secrets.md): sealed to users' ssh-ed25519 keys with
2727 # X25519 + HKDF-SHA256 + AES-256-GCM. AES-GCM rather than ChaCha20-Poly1305
2828 # because the *browser* is the encryptor and WebCrypto has no ChaCha.
29-# Both are pinned to the exact pre-releases already in the lockfile: cargo
30-# unifies each onto a single version tree-wide, and asking for the final
31-# release instead walks russh (and half of RustCrypto) *backwards* to a set
32-# that does not compile. X25519 comes from `MontgomeryPoint::mul_clamped`
33-# rather than the x25519-dalek wrapper, which would want its own
34-# curve25519-dalek.
29+# Both track whatever russh is on, because cargo unifies each onto a single
30+# version tree-wide: these used to be `=`-pinned to pre-releases for that
31+# reason, and russh 0.63 moving to the final releases is what let the pins go.
32+# Bumping either ahead of russh puts them back. X25519 comes from
33+# `MontgomeryPoint::mul_clamped` rather than the x25519-dalek wrapper, which
34+# would want its own curve25519-dalek.
3535
3636 # HTTP client for the CD deploy webhook. No TLS feature on purpose: the deploy
3737 # receiver is host-local plaintext HTTP, and enabling rustls would drag in
⋯ 7 unchanged lines
4545 # talks to whatever anvil you self-host, including one behind a private or
4646 # local CA — portless's `.localhost` certificates being the everyday case. The
4747 # deploy image installs ca-certificates, so the server side is unaffected.
48+# reqwest 0.13 folded the old `rustls-tls-native-roots-no-provider` into
49+# `rustls-no-provider`, which verifies against the platform trust store —
50+# same intent, one feature.
4851
4952 # Used directly only for idempotent schema shims on existing databases; the
5053 # version tracks what toasty-driver-sqlite already pulls in.
⋯ 16 unchanged lines
6770 # ssh-key parsing/fingerprinting, shared by anvil-core (storage) and anvil-ssh
6871 # (auth). Pinned to match russh's transitive ssh-key so fingerprints agree.
6972
70-aes-gcm = { version = "=0.11.0-rc.4" }
73+aes-gcm = { version = "0.11.1" }
7174 anyhow = { version = "1" }
7275 argon2 = { version = "0.5", features = ["std"] }
7376 async-trait = { version = "0.1" }
7477 axum = { version = "0.8", features = ["ws"] }
75-axum-extra = { version = "0.10", features = ["cookie"] }
76-base64 = { version = "0.22" }
77-bollard = { version = "0.18" }
78+axum-extra = { version = "0.12.6", features = ["cookie"] }
79+base64 = { version = "0.23.1" }
80+bollard = { version = "0.21.1" }
7881 clap = { version = "4", features = ["derive"] }
79-curve25519-dalek = { version = "=5.0.0-rc.0" }
82+curve25519-dalek = { version = "5.0.0" }
8083 flate2 = { version = "1" }
8184 futures-util = { version = "0.3" }
8285 gitserver-core = { path = "vendor/gitserver-core" }
8386 gix = { version = "0.84", default-features = false, features = ["sha1", "max-performance-safe", "blob-diff", "revision"] }
8487 gix-pack = { version = "0.71", features = ["sha1"] }
85-hmac = { version = "0.12" }
86-lru = { version = "0.12" }
88+hmac = { version = "0.13.0" }
89+lru = { version = "0.18.2" }
8790 maud = { version = "0.27", features = ["axum"] }
8891 pulldown-cmark = { version = "0.13", default-features = false, features = ["html"] }
8992 rand = { version = "0.10" }
90-reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls-native-roots-no-provider"] }
93+reqwest = { version = "0.13.4", default-features = false, features = ["form", "json", "rustls-no-provider"] }
9194 ring = { version = "0.17" }
9295 rpassword = { version = "7" }
9396 rusqlite = { version = "0.39" }
94-russh = { version = "0.61", default-features = false, features = ["flate2", "ring", "rsa"] }
97+russh = { version = "0.63.1", default-features = false, features = ["flate2", "ring", "rsa"] }
9598 rustls = { version = "0.23", default-features = false, features = ["ring", "logging", "std", "tls12"] }
9699 serde = { version = "1", features = ["derive"] }
97100 serde_json = { version = "1" }
98101 serde_yaml = { version = "0.9" }
99-sha2 = { version = "0.10" }
102+sha2 = { version = "0.11.0" }
100103 similar = { version = "3.2.0" }
101-ssh-key = { version = "0.7.0-rc.10" }
104+ssh-key = { version = "0.7.0-rc.11" }
102105 syntect = { version = "5", default-features = false, features = ["default-onig"] }
103106 tar = { version = "0.4" }
104107 thiserror = { version = "2" }
⋯ 1 unchanged line
106109 toasty = { version = "0.7", features = ["sqlite"] }
107110 tokio = { version = "1", features = ["full"] }
108111 tokio-util = { version = "0.7", features = ["io"] }
109-toml = { version = "0.8" }
112+toml = { version = "1.1.4" }
110113 tower = { version = "0.5" }
111-tower-http = { version = "0.6", features = ["trace", "fs"] }
114+tower-http = { version = "0.7.0", features = ["trace", "fs"] }
112115 tracing = { version = "0.1" }
113116 tracing-subscriber = { version = "0.3", features = ["env-filter"] }
modifiedcrates/anvil-agent/src/container.rs+23 −18
⋯ 10 unchanged lines
1111 use anvil_core::config::AgentConfig;
1212 use bollard::{
1313 Docker,
14- container::{
15- Config,
16- CreateContainerOptions,
17- DownloadFromContainerOptions,
18- RemoveContainerOptions,
19- StartContainerOptions,
20- UploadToContainerOptions,
21- },
14+ body_full,
2215 exec::{
2316 CreateExecOptions,
2417 ResizeExecOptions,
2518 StartExecOptions,
2619 StartExecResults,
2720 },
28- models::HostConfig,
21+ models::{
22+ ContainerCreateBody,
23+ HostConfig,
24+ },
25+ query_parameters::{
26+ CreateContainerOptions,
27+ DownloadFromContainerOptions,
28+ RemoveContainerOptions,
29+ StartContainerOptions,
30+ UploadToContainerOptions,
31+ },
2932 };
3033 use futures_util::StreamExt;
3134
⋯ 51 unchanged lines
8386 let mut cmd = vec!["anvil-session".to_string()];
8487 cmd.extend(command.iter().cloned());
8588
86- let config = Config {
89+ let config = ContainerCreateBody {
8790 image: Some(cfg.image.clone()),
8891 cmd: Some(cmd),
8992 env: Some(
⋯ 22 unchanged lines
112115 };
113116
114117 let created = docker
115- .create_container(None::<CreateContainerOptions<String>>, config)
118+ .create_container(None::<CreateContainerOptions>, config)
116119 .await
117120 .map_err(|e| format!("create session container: {e}"))?;
118121 Ok(created.id)
⋯ 8 unchanged lines
127130 path: "/".to_string(),
128131 ..Default::default()
129132 }),
130- tar.into(),
133+ body_full(tar.into()),
131134 )
132135 .await
133136 .map_err(|e| format!("upload to session container: {e}"))
⋯ 141 unchanged lines
275278 /// Start a created container.
276279 pub async fn start(docker: &Docker, id: &str) -> Result<(), String> {
277280 docker
278- .start_container(id, None::<StartContainerOptions<String>>)
281+ .start_container(id, None::<StartContainerOptions>)
279282 .await
280283 .map_err(|e| format!("start session container: {e}"))
281284 }
⋯ 195 unchanged lines
477480 /// Startup uses this to reconcile rows against reality: the registry is
478481 /// in-memory, so after a restart every one of these is an orphan.
479482 pub async fn list_sessions(docker: &Docker) -> Result<Vec<(String, i64)>, String> {
480- use bollard::container::ListContainersOptions;
483+ use bollard::query_parameters::ListContainersOptions;
481484
482485 let containers = docker
483- .list_containers(Some(ListContainersOptions::<String> {
486+ .list_containers(Some(ListContainersOptions {
484487 all: true,
485- filters: [("label".to_string(), vec![LABEL_SESSION.to_string()])]
486- .into_iter()
487- .collect(),
488+ filters: Some(
489+ [("label".to_string(), vec![LABEL_SESSION.to_string()])]
490+ .into_iter()
491+ .collect(),
492+ ),
488493 ..Default::default()
489494 }))
490495 .await
⋯ 110 unchanged lines
modifiedcrates/anvil-agent/src/supervisor.rs+1 −1
⋯ 311 unchanged lines
312312 // shutdown request from the sweep / an operator.
313313 let mut wait = docker.wait_container(
314314 &container_id,
315- None::<bollard::container::WaitContainerOptions<String>>,
315+ None::<bollard::query_parameters::WaitContainerOptions>,
316316 );
317317
318318 let (final_status, exit_code) = tokio::select! {
⋯ 143 unchanged lines
modifiedcrates/anvil-core/src/lib.rs+1 −0
⋯ 124 unchanged lines
125125 pub fn csrf_token(&self, session_token: &str) -> String {
126126 use hmac::{
127127 Hmac,
128+ KeyInit,
128129 Mac,
129130 };
130131 let mut mac = Hmac::<sha2::Sha256>::new_from_slice(self.csrf_secret.as_slice())
⋯ 35 unchanged lines
modifiedcrates/anvil-core/src/secrets.rs+4 −2
⋯ 373 unchanged lines
374374 }
375375
376376 /// HKDF-SHA256 (RFC 5869) for a single 32-byte output — extract, then one
377-/// expand block. Written out rather than pulled in as a dependency: the `hkdf`
378-/// crate tracks a newer `sha2`/`digest` generation than the rest of the tree.
377+/// expand block. Written out rather than pulled in as a dependency: two HMAC
378+/// calls are not worth one, and it was originally a `sha2`/`digest`
379+/// generation ahead of the rest of the tree.
379380 fn hkdf_sha256(ikm: &[u8], salt: &[u8], info: &[u8]) -> [u8; 32] {
380381 use hmac::{
381382 Hmac,
383+ KeyInit,
382384 Mac,
383385 };
384386 type H = Hmac<sha2::Sha256>;
⋯ 704 unchanged lines
modifiedcrates/anvil-docker/src/lib.rs+3 −3
⋯ 8 unchanged lines
99
1010 use bollard::{
1111 Docker,
12- image::CreateImageOptions,
12+ query_parameters::CreateImageOptions,
1313 };
1414 use futures_util::StreamExt;
1515
⋯ 30 unchanged lines
4646
4747 let mut pull = docker.create_image(
4848 Some(CreateImageOptions {
49- from_image,
50- tag,
49+ from_image: Some(from_image),
50+ tag: Some(tag),
5151 platform: platform.to_string(),
5252 ..Default::default()
5353 }),
⋯ 67 unchanged lines
modifiedcrates/anvil-ssh/src/lib.rs+5 −2
⋯ 39 unchanged lines
4040 server::{
4141 self,
4242 Auth,
43+ ChannelOpenHandle,
4344 Handler,
4445 Msg,
4546 Server as _,
⋯ 107 unchanged lines
153154 async fn channel_open_session(
154155 &mut self,
155156 channel: Channel<Msg>,
157+ reply: ChannelOpenHandle,
156158 _session: &mut Session,
157- ) -> Result<bool, Self::Error> {
159+ ) -> Result<(), Self::Error> {
158160 self.channel = Some(channel);
159- Ok(true)
161+ reply.accept().await;
162+ Ok(())
160163 }
161164
162165 async fn env_request(
⋯ 145 unchanged lines
modifiedcrates/anvil-web/Cargo.toml+4 −2
⋯ 43 unchanged lines
4444 # signs its own id tokens. ring, which verifies them on anvil's side, can only
4545 # verify with an RSA key, not make one.
4646 rsa = { version = "0.9" }
47-# `oid` for the DigestInfo prefix PKCS#1 v1.5 (and so RS256) signs over.
48-sha2 = { workspace = true, features = ["oid"] }
47+# `oid` for the DigestInfo prefix PKCS#1 v1.5 (and so RS256) signs over. Its
48+# own 0.10 rather than the workspace's 0.11: `rsa` 0.9 is still on `digest`
49+# 0.10, and a `Sha256` from the newer generation does not satisfy its bounds.
50+sha2 = { version = "0.10", features = ["oid"] }
modifiedcrates/anvil-worker/src/executor.rs+13 −10
⋯ 26 unchanged lines
2727 };
2828 use bollard::{
2929 Docker,
30- container::{
31- Config,
30+ body_full,
31+ models::{
32+ ContainerCreateBody,
33+ HostConfig,
34+ },
35+ query_parameters::{
3236 CreateContainerOptions,
3337 DownloadFromContainerOptions,
3438 LogsOptions,
⋯ 2 unchanged lines
3741 UploadToContainerOptions,
3842 WaitContainerOptions,
3943 },
40- models::HostConfig,
4144 };
4245 use futures_util::StreamExt;
4346
⋯ 47 unchanged lines
9194 network_mode: (!sb.network).then(|| "none".to_string()),
9295 ..Default::default()
9396 };
94- let config = Config {
97+ let config = ContainerCreateBody {
9598 image: Some(spec.image.clone()),
9699 cmd: Some(vec![
97100 "sh".to_string(),
⋯ 10 unchanged lines
108111 // An explicit platform needs the options struct; without one, pass None so
109112 // the daemon picks its native architecture exactly as before.
110113 let opts = spec.platform.as_ref().map(|p| CreateContainerOptions {
111- name: String::new(),
112- platform: Some(p.clone()),
114+ name: None,
115+ platform: p.clone(),
113116 });
114117 let created = docker
115118 .create_container(opts, config)
⋯ 9 unchanged lines
125128 path: "/".to_string(),
126129 ..Default::default()
127130 }),
128- tar.into(),
131+ body_full(tar.into()),
129132 )
130133 .await
131134 .map_err(|e| format!("upload checkout: {e}"))?;
132135
133136 docker
134- .start_container(&id, None::<StartContainerOptions<String>>)
137+ .start_container(&id, None::<StartContainerOptions>)
135138 .await
136139 .map_err(|e| format!("start container: {e}"))?;
137140
⋯ 3 unchanged lines
141144 let run = async {
142145 let mut logs = docker.logs(
143146 &id,
144- Some(LogsOptions::<String> {
147+ Some(LogsOptions {
145148 follow: true,
146149 stdout: true,
147150 stderr: true,
⋯ 12 unchanged lines
160163
161164 // Non-zero exit codes surface as a wait error in bollard.
162165 let mut code = 0i64;
163- let mut wait = docker.wait_container(&id, None::<WaitContainerOptions<String>>);
166+ let mut wait = docker.wait_container(&id, None::<WaitContainerOptions>);
164167 while let Some(item) = wait.next().await {
165168 match item {
166169 Ok(resp) => code = resp.status_code,
⋯ 198 unchanged lines