diff --git a/.gitignore b/.gitignore index be12d08..87f14b3 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ /rust-keylime-0.2.7-vendor.tar.xz /v0.2.7.tar.gz /rust-keylime-0.2.7-vendor.tar.zstd +/v0.2.9.tar.gz +/rust-keylime-0.2.9-vendor.tar.zstd diff --git a/rust-keylime-metadata.patch b/0001-rust-keylime-metadata.patch similarity index 51% rename from rust-keylime-metadata.patch rename to 0001-rust-keylime-metadata.patch index bbe8e96..1322861 100644 --- a/rust-keylime-metadata.patch +++ b/0001-rust-keylime-metadata.patch @@ -1,33 +1,32 @@ ---- a/keylime/Cargo.toml 2025-01-20 11:19:20.276090741 +0100 -+++ b/keylime/Cargo.toml 2025-01-20 11:20:47.574791185 +0100 -@@ -24,10 +24,6 @@ - picky-asn1-der.workspace = true - picky-asn1-x509.workspace = true +--- a/keylime/Cargo.toml 2026-02-13 09:29:02.000000000 +0100 ++++ b/keylime/Cargo.toml 2026-02-13 09:48:22.122618066 +0100 +@@ -40,7 +40,6 @@ tokio.workspace = true --# wiremock was moved to be a regular dependency because optional --# dev-dependencies are not supported --# see: https://github.com/rust-lang/cargo/issues/1596 --wiremock = {version = "0.6", optional = true} - + uuid.workspace = true + zip.workspace = true +-zmq = {version = "0.9.2", optional = true} + [dev-dependencies] tempfile.workspace = true -@@ -37,4 +33,4 @@ - # This feature enables tests that require a TPM and the TCTI environment - # variable properly configured - # This should change to dev-dependencies when we have integration testing --testing = ["wiremock"] -+testing = [] ---- a/keylime-agent/Cargo.toml 2025-01-20 11:19:40.095022736 +0100 -+++ b/keylime-agent/Cargo.toml 2025-01-20 11:21:15.678694751 +0100 -@@ -32,7 +32,6 @@ +@@ -48,6 +47,5 @@ + wiremock = {version = "0.6"} + + [features] ++default = [] + testing = [] +-# This feature is deprecated and will be removed on next major release +-with-zmq = ["zmq"] +--- a/keylime-agent/Cargo.toml 2026-02-13 09:29:02.000000000 +0100 ++++ b/keylime-agent/Cargo.toml 2026-02-13 09:48:27.988361994 +0100 +@@ -28,7 +28,6 @@ thiserror.workspace = true uuid.workspace = true zip.workspace = true -zmq = {version = "0.9.2", optional = true} - + [dev-dependencies] actix-rt.workspace = true -@@ -41,18 +40,6 @@ +@@ -37,18 +36,6 @@ # The features enabled by default default = [] testing = [] @@ -43,6 +42,16 @@ -# -# This feature is deprecated and will be removed on next major release -legacy-python-actions = [] - + + [package.metadata.deb] + section = "net" +--- a/keylime-push-model-agent/Cargo.toml 2026-02-13 09:29:02.000000000 +0100 ++++ b/keylime-push-model-agent/Cargo.toml 2026-02-13 09:48:36.030812674 +0100 +@@ -34,7 +34,6 @@ + # The features enabled by default + default = [] + testing = ["keylime/testing"] +-legacy-python-actions = [] + [package.metadata.deb] section = "net" diff --git a/0002-rust-keylime-do-not-require-usr-libexec.patch b/0002-rust-keylime-do-not-require-usr-libexec.patch new file mode 100644 index 0000000..d9510a7 --- /dev/null +++ b/0002-rust-keylime-do-not-require-usr-libexec.patch @@ -0,0 +1,73 @@ +diff --git a/keylime/src/config/base.rs b/keylime/src/config/base.rs +index c171c85..d2e889a 100644 +--- a/keylime/src/config/base.rs ++++ b/keylime/src/config/base.rs +@@ -625,27 +625,15 @@ pub(crate) fn config_translate_keywords( + }); + } + +- let actions_dir = match config.revocation_actions_dir.as_ref() { +- "" => { +- error!("The option 'enable_revocation_notifications' is set as 'true' but the revocation actions directory was set as empty in 'revocation_actions_dir'"); +- return Err(KeylimeConfigError::IncompatibleOptions { +- option_a: "enable_revocation_notifications".into(), +- value_a: "true".into(), +- option_b: "revocation_actions_dir".into(), +- value_b: "empty".into(), +- }); +- } +- dir => Path::new(dir), ++ if config.revocation_actions_dir.is_empty() { ++ error!("The option 'enable_revocation_notifications' is set as 'true' but the revocation actions directory was set as empty in 'revocation_actions_dir'"); ++ return Err(KeylimeConfigError::IncompatibleOptions { ++ option_a: "enable_revocation_notifications".into(), ++ value_a: "true".into(), ++ option_b: "revocation_actions_dir".into(), ++ value_b: "empty".into(), ++ }); + }; +- +- // Validate that the revocation actions directory exists +- let _revocation_actions_dir = +- &actions_dir.canonicalize().map_err(|e| { +- KeylimeConfigError::MissingActionsDir { +- path: keylime_dir.display().to_string(), +- source: e, +- } +- })?; + } + + let revocation_cert = config_get_file_path( +@@ -938,32 +926,6 @@ mod tests { + assert!(result.is_ok()); + } + +- #[test] +- fn test_invalid_revocation_actions_dir() { +- let tempdir = tempfile::tempdir() +- .expect("failed to create temporary directory"); +- +- let test_config = AgentConfig { +- keylime_dir: tempdir.path().display().to_string(), +- enable_revocation_notifications: true, +- revocation_actions_dir: "/invalid".to_string(), +- ..Default::default() +- }; +- let result = config_translate_keywords(&test_config); +- // Expect error due to the inexistent directory +- assert!(result.is_err()); +- let test_config = AgentConfig { +- keylime_dir: tempdir.path().display().to_string(), +- enable_revocation_notifications: false, +- revocation_actions_dir: "/invalid".to_string(), +- ..Default::default() +- }; +- +- // Now unset enable_revocation_notifications and check that is allowed +- let result = config_translate_keywords(&test_config); +- assert!(result.is_ok()); +- } +- + #[test] + fn test_keylime_dir_option() { + let dir = tempfile::tempdir() diff --git a/0003-Enable-non-standard-key-sizes-and-curves-for-EK-and-.patch b/0003-Enable-non-standard-key-sizes-and-curves-for-EK-and-.patch deleted file mode 100644 index 69c9e6a..0000000 --- a/0003-Enable-non-standard-key-sizes-and-curves-for-EK-and-.patch +++ /dev/null @@ -1,3609 +0,0 @@ -From bc455a9b62ff79fba9b0cc89485f41aa28408830 Mon Sep 17 00:00:00 2001 -From: Sergio Correia -Date: Wed, 17 Sep 2025 11:23:08 +0000 -Subject: [PATCH 3/6] Enable non standard key sizes and curves for EK and AK - -Also update tss-esapi to 7.6.0. - -Backport of upstream commits (part of PR #846) -- https://github.com/keylime/rust-keylime/commit/dd8fc41 -- https://github.com/keylime/rust-keylime/commit/6fd02de - -Signed-off-by: Sergio Correia ---- - Cargo.lock | 1704 +++++++++++++++------------- - Cargo.toml | 2 +- - keylime-agent/src/agent_handler.rs | 2 +- - keylime-agent/src/common.rs | 1 + - keylime-agent/src/main.rs | 5 +- - keylime/src/algorithms.rs | 111 +- - keylime/src/tpm.rs | 53 +- - 7 files changed, 1037 insertions(+), 841 deletions(-) - -diff --git a/Cargo.lock b/Cargo.lock -index 51a9f72..21f970c 100644 ---- a/Cargo.lock -+++ b/Cargo.lock -@@ -4,42 +4,42 @@ version = 4 - - [[package]] - name = "actix-codec" --version = "0.5.0" -+version = "0.5.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "57a7559404a7f3573127aab53c08ce37a6c6a315c374a31070f3c91cd1b4a7fe" -+checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" - dependencies = [ -- "bitflags 1.3.2", -+ "bitflags", - "bytes", - "futures-core", - "futures-sink", -- "log", - "memchr", - "pin-project-lite", - "tokio", - "tokio-util", -+ "tracing", - ] - - [[package]] - name = "actix-http" --version = "3.9.0" -+version = "3.11.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d48f96fc3003717aeb9856ca3d02a8c7de502667ad76eeacd830b48d2e91fac4" -+checksum = "44cceded2fb55f3c4b67068fa64962e2ca59614edc5b03167de9ff82ae803da0" - dependencies = [ - "actix-codec", - "actix-rt", - "actix-service", - "actix-tls", - "actix-utils", -- "ahash", - "base64 0.22.1", -- "bitflags 2.4.0", -+ "bitflags", - "bytes", - "bytestring", - "derive_more", - "encoding_rs", -+ "foldhash", - "futures-core", -- "h2 0.3.26", -- "http 0.2.8", -+ "h2", -+ "http 0.2.12", - "httparse", - "httpdate", - "itoa", -@@ -58,12 +58,12 @@ dependencies = [ - - [[package]] - name = "actix-macros" --version = "0.2.3" -+version = "0.2.4" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "465a6172cf69b960917811022d8f29bc0b7fa1398bc4f78b3c466673db1213b6" -+checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" - dependencies = [ - "quote", -- "syn 1.0.100", -+ "syn", - ] - - [[package]] -@@ -74,7 +74,7 @@ checksum = "13d324164c51f63867b57e73ba5936ea151b8a41a1d23d1031eeb9f70d0236f8" - dependencies = [ - "bytestring", - "cfg-if", -- "http 0.2.8", -+ "http 0.2.12", - "regex-lite", - "serde", - "tracing", -@@ -82,9 +82,9 @@ dependencies = [ - - [[package]] - name = "actix-rt" --version = "2.10.0" -+version = "2.11.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208" -+checksum = "92589714878ca59a7626ea19734f0e07a6a875197eec751bb5d3f99e64998c63" - dependencies = [ - "actix-macros", - "futures-core", -@@ -93,30 +93,28 @@ dependencies = [ - - [[package]] - name = "actix-server" --version = "2.1.1" -+version = "2.6.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0da34f8e659ea1b077bb4637948b815cd3768ad5a188fdcd74ff4d84240cd824" -+checksum = "a65064ea4a457eaf07f2fba30b4c695bf43b721790e9530d26cb6f9019ff7502" - dependencies = [ - "actix-rt", - "actix-service", - "actix-utils", - "futures-core", - "futures-util", -- "mio 0.8.11", -- "num_cpus", -- "socket2 0.4.9", -+ "mio", -+ "socket2 0.5.10", - "tokio", - "tracing", - ] - - [[package]] - name = "actix-service" --version = "2.0.2" -+version = "2.0.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3b894941f818cfdc7ccc4b9e60fa7e53b5042a2e8567270f9147d5591893373a" -+checksum = "9e46f36bf0e5af44bdc4bdb36fbbd421aa98c79a9bce724e1edeb3894e10dc7f" - dependencies = [ - "futures-core", -- "paste", - "pin-project-lite", - ] - -@@ -141,9 +139,9 @@ dependencies = [ - - [[package]] - name = "actix-utils" --version = "3.0.0" -+version = "3.0.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e491cbaac2e7fc788dfff99ff48ef317e23b3cf63dbaf7aaab6418f40f92aa94" -+checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8" - dependencies = [ - "local-waker", - "pin-project-lite", -@@ -151,9 +149,9 @@ dependencies = [ - - [[package]] - name = "actix-web" --version = "4.9.0" -+version = "4.11.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9180d76e5cc7ccbc4d60a506f2c727730b154010262df5b910eb17dbe4b8cb38" -+checksum = "a597b77b5c6d6a1e1097fddde329a83665e25c5437c696a3a9a4aa514a614dea" - dependencies = [ - "actix-codec", - "actix-http", -@@ -165,12 +163,12 @@ dependencies = [ - "actix-tls", - "actix-utils", - "actix-web-codegen", -- "ahash", - "bytes", - "bytestring", - "cfg-if", - "derive_more", - "encoding_rs", -+ "foldhash", - "futures-core", - "futures-util", - "impl-more", -@@ -185,8 +183,9 @@ dependencies = [ - "serde_json", - "serde_urlencoded", - "smallvec", -- "socket2 0.5.8", -+ "socket2 0.5.10", - "time", -+ "tracing", - "url", - ] - -@@ -199,7 +198,7 @@ dependencies = [ - "actix-router", - "proc-macro2", - "quote", -- "syn 2.0.90", -+ "syn", - ] - - [[package]] -@@ -211,45 +210,26 @@ dependencies = [ - "gimli", - ] - --[[package]] --name = "adler" --version = "1.0.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" -- - [[package]] - name = "adler2" --version = "2.0.0" -+version = "2.0.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" -- --[[package]] --name = "ahash" --version = "0.8.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" --dependencies = [ -- "cfg-if", -- "getrandom", -- "once_cell", -- "version_check", -- "zerocopy", --] -+checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" - - [[package]] - name = "aho-corasick" --version = "0.7.19" -+version = "1.1.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" -+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" - dependencies = [ - "memchr", - ] - - [[package]] - name = "anstream" --version = "0.6.18" -+version = "0.6.20" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" -+checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" - dependencies = [ - "anstyle", - "anstyle-parse", -@@ -262,57 +242,48 @@ dependencies = [ - - [[package]] - name = "anstyle" --version = "1.0.10" -+version = "1.0.11" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" -+checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" - - [[package]] - name = "anstyle-parse" --version = "0.2.1" -+version = "0.2.7" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" -+checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" - dependencies = [ - "utf8parse", - ] - - [[package]] - name = "anstyle-query" --version = "1.0.0" -+version = "1.1.4" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" -+checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" - dependencies = [ -- "windows-sys 0.48.0", -+ "windows-sys 0.60.2", - ] - - [[package]] - name = "anstyle-wincon" --version = "3.0.6" -+version = "3.0.10" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" -+checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" - dependencies = [ - "anstyle", -- "windows-sys 0.59.0", --] -- --[[package]] --name = "assert-json-diff" --version = "2.0.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12" --dependencies = [ -- "serde", -- "serde_json", -+ "once_cell_polyfill", -+ "windows-sys 0.60.2", - ] - - [[package]] - name = "async-trait" --version = "0.1.57" -+version = "0.1.89" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "76464446b8bc32758d7e88ee1a804d9914cd9b1cb264c029899680b0be29826f" -+checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" - dependencies = [ - "proc-macro2", - "quote", -- "syn 1.0.100", -+ "syn", - ] - - [[package]] -@@ -323,20 +294,20 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - - [[package]] - name = "autocfg" --version = "1.1.0" -+version = "1.5.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" -+checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" - - [[package]] - name = "backtrace" --version = "0.3.74" -+version = "0.3.75" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -+checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" - dependencies = [ - "addr2line", - "cfg-if", - "libc", -- "miniz_oxide 0.8.3", -+ "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -@@ -360,7 +331,7 @@ version = "0.66.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7" - dependencies = [ -- "bitflags 2.4.0", -+ "bitflags", - "cexpr", - "clang-sys", - "lazy_static", -@@ -373,7 +344,7 @@ dependencies = [ - "regex", - "rustc-hash", - "shlex", -- "syn 2.0.90", -+ "syn", - "which", - ] - -@@ -385,30 +356,24 @@ checksum = "2d7e60934ceec538daadb9d8432424ed043a904d8e0243f3c6446bce549a46ac" - - [[package]] - name = "bitflags" --version = "1.3.2" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" -- --[[package]] --name = "bitflags" --version = "2.4.0" -+version = "2.9.4" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" -+checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" - - [[package]] - name = "block-buffer" --version = "0.10.3" -+version = "0.10.4" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" -+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" - dependencies = [ - "generic-array", - ] - - [[package]] - name = "bumpalo" --version = "3.12.0" -+version = "3.19.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" -+checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" - - [[package]] - name = "byteorder" -@@ -418,24 +383,28 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - - [[package]] - name = "bytes" --version = "1.7.2" -+version = "1.10.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" -+checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" - - [[package]] - name = "bytestring" --version = "1.1.0" -+version = "1.5.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "86b6a75fd3048808ef06af5cd79712be8111960adaf89d90250974b38fc3928a" -+checksum = "113b4343b5f6617e7ad401ced8de3cc8b012e73a594347c307b90db3e9271289" - dependencies = [ - "bytes", - ] - - [[package]] - name = "cc" --version = "1.0.73" -+version = "1.2.37" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" -+checksum = "65193589c6404eb80b450d618eaf9a2cafaaafd57ecce47370519ef674a7bd44" -+dependencies = [ -+ "find-msvc-tools", -+ "shlex", -+] - - [[package]] - name = "cexpr" -@@ -448,15 +417,15 @@ dependencies = [ - - [[package]] - name = "cfg-if" --version = "1.0.0" -+version = "1.0.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -+checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" - - [[package]] - name = "clang-sys" --version = "1.4.0" -+version = "1.8.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3" -+checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" - dependencies = [ - "glob", - "libc", -@@ -465,9 +434,9 @@ dependencies = [ - - [[package]] - name = "clap" --version = "4.5.23" -+version = "4.5.47" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" -+checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" - dependencies = [ - "clap_builder", - "clap_derive", -@@ -475,9 +444,9 @@ dependencies = [ - - [[package]] - name = "clap_builder" --version = "4.5.23" -+version = "4.5.47" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" -+checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" - dependencies = [ - "anstream", - "anstyle", -@@ -487,27 +456,27 @@ dependencies = [ - - [[package]] - name = "clap_derive" --version = "4.5.18" -+version = "4.5.47" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" -+checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" - dependencies = [ - "heck", - "proc-macro2", - "quote", -- "syn 2.0.90", -+ "syn", - ] - - [[package]] - name = "clap_lex" --version = "0.7.4" -+version = "0.7.5" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" -+checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" - - [[package]] - name = "colorchoice" --version = "1.0.0" -+version = "1.0.4" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" -+checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" - - [[package]] - name = "config" -@@ -520,38 +489,32 @@ dependencies = [ - "nom", - "pathdiff", - "serde", -- "toml 0.5.9", -+ "toml", - ] - --[[package]] --name = "convert_case" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" -- - [[package]] - name = "cpufeatures" --version = "0.2.5" -+version = "0.2.17" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" -+checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" - dependencies = [ - "libc", - ] - - [[package]] - name = "crc32fast" --version = "1.3.2" -+version = "1.5.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" -+checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" - dependencies = [ - "cfg-if", - ] - - [[package]] - name = "crossbeam-utils" --version = "0.8.19" -+version = "0.8.21" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" -+checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - - [[package]] - name = "crypto-common" -@@ -564,79 +527,89 @@ dependencies = [ - ] - - [[package]] --name = "deadpool" --version = "0.10.0" -+name = "deranged" -+version = "0.5.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fb84100978c1c7b37f09ed3ce3e5f843af02c2a2c431bae5b19230dad2c1b490" -+checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" - dependencies = [ -- "async-trait", -- "deadpool-runtime", -- "num_cpus", -- "tokio", -+ "powerfmt", - ] - - [[package]] --name = "deadpool-runtime" --version = "0.1.2" -+name = "derive_more" -+version = "2.0.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "eaa37046cc0f6c3cc6090fbdbf73ef0b8ef4cfcc37f6befc0020f63e8cf121e1" -+checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" -+dependencies = [ -+ "derive_more-impl", -+] - - [[package]] --name = "derive_more" --version = "0.99.17" -+name = "derive_more-impl" -+version = "2.0.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" -+checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" - dependencies = [ -- "convert_case", - "proc-macro2", - "quote", -- "rustc_version 0.4.0", -- "syn 1.0.100", -+ "syn", -+ "unicode-xid", - ] - - [[package]] - name = "digest" --version = "0.10.5" -+version = "0.10.7" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" -+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" - dependencies = [ - "block-buffer", - "crypto-common", - ] - -+[[package]] -+name = "displaydoc" -+version = "0.2.5" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -+dependencies = [ -+ "proc-macro2", -+ "quote", -+ "syn", -+] -+ - [[package]] - name = "either" --version = "1.8.0" -+version = "1.15.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" -+checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" - - [[package]] - name = "encoding_rs" --version = "0.8.31" -+version = "0.8.35" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" -+checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" - dependencies = [ - "cfg-if", - ] - - [[package]] - name = "enumflags2" --version = "0.7.7" -+version = "0.7.12" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2" -+checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" - dependencies = [ - "enumflags2_derive", - ] - - [[package]] - name = "enumflags2_derive" --version = "0.7.7" -+version = "0.7.12" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" -+checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.90", -+ "syn", - ] - - [[package]] -@@ -654,40 +627,40 @@ dependencies = [ - - [[package]] - name = "equivalent" --version = "1.0.1" -+version = "1.0.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" -+checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - - [[package]] - name = "errno" --version = "0.3.8" -+version = "0.3.14" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" -+checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" - dependencies = [ - "libc", -- "windows-sys 0.52.0", -+ "windows-sys 0.61.0", - ] - - [[package]] --name = "error-chain" --version = "0.10.0" -+name = "fastrand" -+version = "2.3.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d9435d864e017c3c6afeac1654189b06cdb491cf2ff73dbf0d73b0f292f42ff8" -+checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - - [[package]] --name = "fastrand" --version = "2.2.0" -+name = "find-msvc-tools" -+version = "0.1.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" -+checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" - - [[package]] - name = "flate2" --version = "1.0.28" -+version = "1.1.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" -+checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" - dependencies = [ - "crc32fast", -- "miniz_oxide 0.7.1", -+ "miniz_oxide", - ] - - [[package]] -@@ -696,6 +669,12 @@ version = "1.0.7" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -+[[package]] -+name = "foldhash" -+version = "0.1.5" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" -+ - [[package]] - name = "foreign-types" - version = "0.3.2" -@@ -713,9 +692,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - - [[package]] - name = "form_urlencoded" --version = "1.2.1" -+version = "1.2.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -+checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" - dependencies = [ - "percent-encoding", - ] -@@ -776,7 +755,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.90", -+ "syn", - ] - - [[package]] -@@ -811,9 +790,9 @@ dependencies = [ - - [[package]] - name = "generic-array" --version = "0.14.6" -+version = "0.14.7" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" -+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" - dependencies = [ - "typenum", - "version_check", -@@ -821,13 +800,25 @@ dependencies = [ - - [[package]] - name = "getrandom" --version = "0.2.7" -+version = "0.2.16" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" -+dependencies = [ -+ "cfg-if", -+ "libc", -+ "wasi 0.11.1+wasi-snapshot-preview1", -+] -+ -+[[package]] -+name = "getrandom" -+version = "0.3.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" -+checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" - dependencies = [ - "cfg-if", - "libc", -- "wasi", -+ "r-efi", -+ "wasi 0.14.7+wasi-0.2.4", - ] - - [[package]] -@@ -838,41 +829,22 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - - [[package]] - name = "glob" --version = "0.3.2" -+version = "0.3.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" -+checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" - - [[package]] - name = "h2" --version = "0.3.26" -+version = "0.3.27" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -+checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" - dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", -- "http 0.2.8", -- "indexmap", -- "slab", -- "tokio", -- "tokio-util", -- "tracing", --] -- --[[package]] --name = "h2" --version = "0.4.7" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" --dependencies = [ -- "atomic-waker", -- "bytes", -- "fnv", -- "futures-core", -- "futures-sink", -- "http 1.1.0", -+ "http 0.2.12", - "indexmap", - "slab", - "tokio", -@@ -882,9 +854,9 @@ dependencies = [ - - [[package]] - name = "hashbrown" --version = "0.14.3" -+version = "0.15.5" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" -+checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" - - [[package]] - name = "heck" -@@ -894,18 +866,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - - [[package]] - name = "hermit-abi" --version = "0.1.19" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" --dependencies = [ -- "libc", --] -- --[[package]] --name = "hermit-abi" --version = "0.4.0" -+version = "0.5.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" -+checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" - - [[package]] - name = "hex" -@@ -913,6 +876,15 @@ version = "0.4.3" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -+[[package]] -+name = "home" -+version = "0.5.11" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" -+dependencies = [ -+ "windows-sys 0.59.0", -+] -+ - [[package]] - name = "hostname-validator" - version = "1.1.1" -@@ -921,9 +893,9 @@ checksum = "f558a64ac9af88b5ba400d99b579451af0d39c6d360980045b91aac966d705e2" - - [[package]] - name = "http" --version = "0.2.8" -+version = "0.2.12" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" -+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" - dependencies = [ - "bytes", - "fnv", -@@ -932,9 +904,9 @@ dependencies = [ - - [[package]] - name = "http" --version = "1.1.0" -+version = "1.3.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" -+checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" - dependencies = [ - "bytes", - "fnv", -@@ -948,56 +920,56 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" - dependencies = [ - "bytes", -- "http 1.1.0", -+ "http 1.3.1", - ] - - [[package]] - name = "http-body-util" --version = "0.1.2" -+version = "0.1.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" -+checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" - dependencies = [ - "bytes", -- "futures-util", -- "http 1.1.0", -+ "futures-core", -+ "http 1.3.1", - "http-body", - "pin-project-lite", - ] - - [[package]] - name = "httparse" --version = "1.8.0" -+version = "1.10.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" -+checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" - - [[package]] - name = "httpdate" --version = "1.0.2" -+version = "1.0.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" -+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - - [[package]] - name = "humantime" --version = "2.1.0" -+version = "2.3.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" -+checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" - - [[package]] - name = "hyper" --version = "1.4.1" -+version = "1.7.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" -+checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" - dependencies = [ -+ "atomic-waker", - "bytes", - "futures-channel", -- "futures-util", -- "h2 0.4.7", -- "http 1.1.0", -+ "futures-core", -+ "http 1.3.1", - "http-body", - "httparse", -- "httpdate", - "itoa", - "pin-project-lite", -+ "pin-utils", - "smallvec", - "tokio", - "want", -@@ -1005,64 +977,187 @@ dependencies = [ - - [[package]] - name = "hyper-util" --version = "0.1.10" -+version = "0.1.17" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" -+checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" - dependencies = [ -+ "base64 0.22.1", - "bytes", - "futures-channel", -+ "futures-core", - "futures-util", -- "http 1.1.0", -+ "http 1.3.1", - "http-body", - "hyper", -+ "ipnet", -+ "libc", -+ "percent-encoding", - "pin-project-lite", -- "socket2 0.5.8", -+ "socket2 0.6.0", - "tokio", - "tower-service", - "tracing", - ] - -+[[package]] -+name = "icu_collections" -+version = "2.0.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" -+dependencies = [ -+ "displaydoc", -+ "potential_utf", -+ "yoke", -+ "zerofrom", -+ "zerovec", -+] -+ -+[[package]] -+name = "icu_locale_core" -+version = "2.0.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" -+dependencies = [ -+ "displaydoc", -+ "litemap", -+ "tinystr", -+ "writeable", -+ "zerovec", -+] -+ -+[[package]] -+name = "icu_normalizer" -+version = "2.0.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" -+dependencies = [ -+ "displaydoc", -+ "icu_collections", -+ "icu_normalizer_data", -+ "icu_properties", -+ "icu_provider", -+ "smallvec", -+ "zerovec", -+] -+ -+[[package]] -+name = "icu_normalizer_data" -+version = "2.0.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" -+ -+[[package]] -+name = "icu_properties" -+version = "2.0.1" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" -+dependencies = [ -+ "displaydoc", -+ "icu_collections", -+ "icu_locale_core", -+ "icu_properties_data", -+ "icu_provider", -+ "potential_utf", -+ "zerotrie", -+ "zerovec", -+] -+ -+[[package]] -+name = "icu_properties_data" -+version = "2.0.1" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" -+ -+[[package]] -+name = "icu_provider" -+version = "2.0.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" -+dependencies = [ -+ "displaydoc", -+ "icu_locale_core", -+ "stable_deref_trait", -+ "tinystr", -+ "writeable", -+ "yoke", -+ "zerofrom", -+ "zerotrie", -+ "zerovec", -+] -+ - [[package]] - name = "idna" --version = "0.5.0" -+version = "1.1.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" -+dependencies = [ -+ "idna_adapter", -+ "smallvec", -+ "utf8_iter", -+] -+ -+[[package]] -+name = "idna_adapter" -+version = "1.2.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" -+checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" - dependencies = [ -- "unicode-bidi", -- "unicode-normalization", -+ "icu_normalizer", -+ "icu_properties", - ] - - [[package]] - name = "impl-more" --version = "0.1.6" -+version = "0.1.9" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "206ca75c9c03ba3d4ace2460e57b189f39f43de612c2f85836e65c929701bb2d" -+checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2" - - [[package]] - name = "indexmap" --version = "2.1.0" -+version = "2.11.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" -+checksum = "92119844f513ffa41556430369ab02c295a3578af21cf945caa3e9e0c2481ac3" - dependencies = [ - "equivalent", - "hashbrown", - ] - -+[[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.5.0" -+version = "2.11.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" -+ -+[[package]] -+name = "iri-string" -+version = "0.7.8" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" -+checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" -+dependencies = [ -+ "memchr", -+ "serde", -+] - - [[package]] - name = "is-terminal" --version = "0.4.13" -+version = "0.4.16" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" -+checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" - dependencies = [ -- "hermit-abi 0.4.0", -+ "hermit-abi", - "libc", -- "windows-sys 0.52.0", -+ "windows-sys 0.59.0", - ] - - [[package]] -@@ -1073,16 +1168,17 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" - - [[package]] - name = "itoa" --version = "1.0.3" -+version = "1.0.15" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" -+checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" - - [[package]] - name = "js-sys" --version = "0.3.60" -+version = "0.3.79" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" -+checksum = "6247da8b8658ad4e73a186e747fcc5fc2a29f979d6fe6269127fdb5fd08298d0" - dependencies = [ -+ "once_cell", - "wasm-bindgen", - ] - -@@ -1108,7 +1204,6 @@ dependencies = [ - "thiserror", - "tokio", - "tss-esapi", -- "wiremock", - ] - - [[package]] -@@ -1140,7 +1235,6 @@ dependencies = [ - "tss-esapi", - "uuid", - "zip", -- "zmq", - ] - - [[package]] -@@ -1165,9 +1259,9 @@ checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" - - [[package]] - name = "lazy_static" --version = "1.4.0" -+version = "1.5.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - - [[package]] - name = "lazycell" -@@ -1177,49 +1271,60 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - - [[package]] - name = "libc" --version = "0.2.169" -+version = "0.2.175" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" -+checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" - - [[package]] - name = "libloading" --version = "0.7.3" -+version = "0.8.8" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" -+checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" - dependencies = [ - "cfg-if", -- "winapi", -+ "windows-targets 0.53.3", - ] - - [[package]] - name = "linux-raw-sys" --version = "0.4.14" -+version = "0.4.15" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" -+ -+[[package]] -+name = "linux-raw-sys" -+version = "0.11.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" -+ -+[[package]] -+name = "litemap" -+version = "0.8.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" -+checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" - - [[package]] - name = "local-channel" --version = "0.1.3" -+version = "0.1.5" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7f303ec0e94c6c54447f84f3b0ef7af769858a9c4ef56ef2a986d3dcd4c3fc9c" -+checksum = "b6cbc85e69b8df4b8bb8b89ec634e7189099cea8927a276b7384ce5488e53ec8" - dependencies = [ - "futures-core", - "futures-sink", -- "futures-util", - "local-waker", - ] - - [[package]] - name = "local-waker" --version = "0.1.3" -+version = "0.1.4" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e34f76eb3611940e0e7d53a9aaa4e6a3151f69541a282fd0dad5571420c53ff1" -+checksum = "4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487" - - [[package]] - name = "lock_api" --version = "0.4.9" -+version = "0.4.13" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" -+checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" - dependencies = [ - "autocfg", - "scopeguard", -@@ -1227,43 +1332,31 @@ dependencies = [ - - [[package]] - name = "log" --version = "0.4.25" -+version = "0.4.28" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" -+checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" - - [[package]] - name = "mbox" --version = "0.6.0" -+version = "0.7.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0f88d5c34d63aad11aa4321ef55ccb064af58b3ad8091079ae22bf83e5eb75d6" -+checksum = "26d142aeadbc4e8c679fc6d93fbe7efe1c021fa7d80629e615915b519e3bc6de" - dependencies = [ - "libc", -- "rustc_version 0.3.3", - "stable_deref_trait", - ] - - [[package]] - name = "memchr" --version = "2.5.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" -- --[[package]] --name = "metadeps" --version = "1.1.2" -+version = "2.7.5" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "73b122901b3a675fac8cecf68dcb2f0d3036193bc861d1ac0e1c337f7d5254c2" --dependencies = [ -- "error-chain", -- "pkg-config", -- "toml 0.2.1", --] -+checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" - - [[package]] - name = "mime" --version = "0.3.16" -+version = "0.3.17" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" -+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - - [[package]] - name = "minimal-lexical" -@@ -1273,94 +1366,61 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - - [[package]] - name = "miniz_oxide" --version = "0.7.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" --dependencies = [ -- "adler", --] -- --[[package]] --name = "miniz_oxide" --version = "0.8.3" -+version = "0.8.9" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" -+checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" - dependencies = [ - "adler2", - ] - - [[package]] - name = "mio" --version = "0.8.11" -+version = "1.0.4" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" -+checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" - dependencies = [ - "libc", - "log", -- "wasi", -- "windows-sys 0.48.0", --] -- --[[package]] --name = "mio" --version = "1.0.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" --dependencies = [ -- "libc", -- "wasi", -- "windows-sys 0.52.0", -+ "wasi 0.11.1+wasi-snapshot-preview1", -+ "windows-sys 0.59.0", - ] - - [[package]] - name = "nom" --version = "7.1.1" -+version = "7.1.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" -+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" - dependencies = [ - "memchr", - "minimal-lexical", - ] - - [[package]] --name = "num-derive" --version = "0.4.1" -+name = "num-conv" -+version = "0.1.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" -+ -+[[package]] -+name = "num-derive" -+version = "0.4.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "cfb77679af88f8b125209d354a202862602672222e7f2313fdd6dc349bad4712" -+checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.90", -+ "syn", - ] - - [[package]] - name = "num-traits" --version = "0.2.15" -+version = "0.2.19" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" -+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" - dependencies = [ - "autocfg", - ] - --[[package]] --name = "num_cpus" --version = "1.13.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" --dependencies = [ -- "hermit-abi 0.1.19", -- "libc", --] -- --[[package]] --name = "num_threads" --version = "0.1.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" --dependencies = [ -- "libc", --] -- - [[package]] - name = "object" - version = "0.36.7" -@@ -1381,17 +1441,23 @@ dependencies = [ - - [[package]] - name = "once_cell" --version = "1.19.0" -+version = "1.21.3" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" -+ -+[[package]] -+name = "once_cell_polyfill" -+version = "1.70.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" -+checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" - - [[package]] - name = "openssl" --version = "0.10.70" -+version = "0.10.73" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "61cfb4e166a8bb8c9b55c500bc2308550148ece889be90f609377e58140f42c6" -+checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" - dependencies = [ -- "bitflags 2.4.0", -+ "bitflags", - "cfg-if", - "foreign-types", - "libc", -@@ -1408,14 +1474,14 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.90", -+ "syn", - ] - - [[package]] - name = "openssl-sys" --version = "0.9.105" -+version = "0.9.109" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8b22d5b84be05a8d6947c7cb71f7c849aa0f112acd4bf51c2a7c1c988ac0a9dc" -+checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" - dependencies = [ - "cc", - "libc", -@@ -1425,9 +1491,9 @@ dependencies = [ - - [[package]] - name = "parking_lot" --version = "0.12.1" -+version = "0.12.4" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -+checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" - dependencies = [ - "lock_api", - "parking_lot_core", -@@ -1435,28 +1501,22 @@ dependencies = [ - - [[package]] - name = "parking_lot_core" --version = "0.9.3" -+version = "0.9.11" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" -+checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" - dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", -- "windows-sys 0.36.1", -+ "windows-targets 0.52.6", - ] - --[[package]] --name = "paste" --version = "1.0.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" -- - [[package]] - name = "pathdiff" --version = "0.2.1" -+version = "0.2.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" -+checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" - - [[package]] - name = "peeking_take_while" -@@ -1466,15 +1526,15 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" - - [[package]] - name = "percent-encoding" --version = "2.3.1" -+version = "2.3.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" -+checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" - - [[package]] - name = "pest" --version = "2.7.15" -+version = "2.8.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" -+checksum = "21e0a3a33733faeaf8651dfee72dd0f388f0c8e5ad496a3478fa5a922f49cfa8" - dependencies = [ - "memchr", - "thiserror", -@@ -1483,9 +1543,9 @@ dependencies = [ - - [[package]] - name = "pest_derive" --version = "2.7.15" -+version = "2.8.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e" -+checksum = "bc58706f770acb1dbd0973e6530a3cff4746fb721207feb3a8a6064cd0b6c663" - dependencies = [ - "pest", - "pest_generator", -@@ -1493,24 +1553,23 @@ dependencies = [ - - [[package]] - name = "pest_generator" --version = "2.7.15" -+version = "2.8.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b" -+checksum = "6d4f36811dfe07f7b8573462465d5cb8965fffc2e71ae377a33aecf14c2c9a2f" - dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", -- "syn 2.0.90", -+ "syn", - ] - - [[package]] - name = "pest_meta" --version = "2.7.15" -+version = "2.8.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea" -+checksum = "42919b05089acbd0a5dcd5405fb304d17d1053847b81163d09c4ad18ce8e8420" - dependencies = [ -- "once_cell", - "pest", - "sha2", - ] -@@ -1552,9 +1611,9 @@ dependencies = [ - - [[package]] - name = "pin-project-lite" --version = "0.2.14" -+version = "0.2.16" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" -+checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - - [[package]] - name = "pin-utils" -@@ -1564,15 +1623,33 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - - [[package]] - name = "pkg-config" --version = "0.3.25" -+version = "0.3.32" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" -+checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" -+ -+[[package]] -+name = "potential_utf" -+version = "0.1.3" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" -+dependencies = [ -+ "zerovec", -+] -+ -+[[package]] -+name = "powerfmt" -+version = "0.2.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - - [[package]] - name = "ppv-lite86" --version = "0.2.16" -+version = "0.2.21" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" -+checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -+dependencies = [ -+ "zerocopy", -+] - - [[package]] - name = "pretty_env_logger" -@@ -1586,48 +1663,53 @@ dependencies = [ - - [[package]] - name = "prettyplease" --version = "0.2.16" -+version = "0.2.37" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" -+checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" - dependencies = [ - "proc-macro2", -- "syn 2.0.90", -+ "syn", - ] - - [[package]] - name = "proc-macro2" --version = "1.0.92" -+version = "1.0.101" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -+checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" - dependencies = [ - "unicode-ident", - ] - - [[package]] - name = "quote" --version = "1.0.35" -+version = "1.0.40" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" -+checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" - dependencies = [ - "proc-macro2", - ] - -+[[package]] -+name = "r-efi" -+version = "5.3.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" -+ - [[package]] - name = "rand" --version = "0.8.5" -+version = "0.9.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -+checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" - dependencies = [ -- "libc", - "rand_chacha", - "rand_core", - ] - - [[package]] - name = "rand_chacha" --version = "0.3.1" -+version = "0.9.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -+checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" - dependencies = [ - "ppv-lite86", - "rand_core", -@@ -1635,27 +1717,39 @@ dependencies = [ - - [[package]] - name = "rand_core" --version = "0.6.4" -+version = "0.9.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -+checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" - dependencies = [ -- "getrandom", -+ "getrandom 0.3.3", - ] - - [[package]] - name = "redox_syscall" --version = "0.2.16" -+version = "0.5.17" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -+checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" - dependencies = [ -- "bitflags 1.3.2", -+ "bitflags", - ] - - [[package]] - name = "regex" --version = "1.6.0" -+version = "1.11.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" -+checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" -+dependencies = [ -+ "aho-corasick", -+ "memchr", -+ "regex-automata", -+ "regex-syntax", -+] -+ -+[[package]] -+name = "regex-automata" -+version = "0.4.10" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" - dependencies = [ - "aho-corasick", - "memchr", -@@ -1664,36 +1758,32 @@ dependencies = [ - - [[package]] - name = "regex-lite" --version = "0.1.6" -+version = "0.1.7" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" -+checksum = "943f41321c63ef1c92fd763bfe054d2668f7f225a5c29f0105903dc2fc04ba30" - - [[package]] - name = "regex-syntax" --version = "0.6.27" -+version = "0.8.6" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" -+checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" - - [[package]] - name = "reqwest" --version = "0.12.12" -+version = "0.12.23" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" -+checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" - dependencies = [ - "base64 0.22.1", - "bytes", - "futures-core", -- "futures-util", -- "http 1.1.0", -+ "http 1.3.1", - "http-body", - "http-body-util", - "hyper", - "hyper-util", -- "ipnet", - "js-sys", - "log", -- "mime", -- "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", -@@ -1702,19 +1792,19 @@ dependencies = [ - "sync_wrapper", - "tokio", - "tower", -+ "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -- "windows-registry", - ] - - [[package]] - name = "rustc-demangle" --version = "0.1.24" -+version = "0.1.26" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" -+checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" - - [[package]] - name = "rustc-hash" -@@ -1723,111 +1813,100 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - - [[package]] --name = "rustc_version" --version = "0.3.3" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" --dependencies = [ -- "semver 0.11.0", --] -- --[[package]] --name = "rustc_version" --version = "0.4.0" -+name = "rustix" -+version = "0.38.44" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -+checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" - dependencies = [ -- "semver 1.0.14", -+ "bitflags", -+ "errno", -+ "libc", -+ "linux-raw-sys 0.4.15", -+ "windows-sys 0.59.0", - ] - - [[package]] - name = "rustix" --version = "0.38.41" -+version = "1.1.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" -+checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" - dependencies = [ -- "bitflags 2.4.0", -+ "bitflags", - "errno", - "libc", -- "linux-raw-sys", -- "windows-sys 0.52.0", -+ "linux-raw-sys 0.11.0", -+ "windows-sys 0.61.0", - ] - - [[package]] --name = "ryu" --version = "1.0.11" -+name = "rustversion" -+version = "1.0.22" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" -+checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" - - [[package]] --name = "scopeguard" --version = "1.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" -- --[[package]] --name = "semver" --version = "0.11.0" -+name = "ryu" -+version = "1.0.20" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" --dependencies = [ -- "semver-parser", --] -+checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" - - [[package]] --name = "semver" --version = "1.0.14" -+name = "scopeguard" -+version = "1.2.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" -+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - - [[package]] --name = "semver-parser" --version = "0.10.2" -+name = "serde" -+version = "1.0.225" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -+checksum = "fd6c24dee235d0da097043389623fb913daddf92c76e9f5a1db88607a0bcbd1d" - dependencies = [ -- "pest", -+ "serde_core", -+ "serde_derive", - ] - - [[package]] --name = "serde" --version = "1.0.217" -+name = "serde_bytes" -+version = "0.11.19" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" -+checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" - dependencies = [ -- "serde_derive", -+ "serde", -+ "serde_core", - ] - - [[package]] --name = "serde_bytes" --version = "0.11.14" -+name = "serde_core" -+version = "1.0.225" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" -+checksum = "659356f9a0cb1e529b24c01e43ad2bdf520ec4ceaf83047b83ddcc2251f96383" - dependencies = [ -- "serde", -+ "serde_derive", - ] - - [[package]] - name = "serde_derive" --version = "1.0.217" -+version = "1.0.225" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" -+checksum = "0ea936adf78b1f766949a4977b91d2f5595825bd6ec079aa9543ad2685fc4516" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.90", -+ "syn", - ] - - [[package]] - name = "serde_json" --version = "1.0.135" -+version = "1.0.145" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" -+checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" - dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -+ "serde_core", - ] - - [[package]] -@@ -1844,9 +1923,9 @@ dependencies = [ - - [[package]] - name = "sha1" --version = "0.10.5" -+version = "0.10.6" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" -+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" - dependencies = [ - "cfg-if", - "cpufeatures", -@@ -1855,9 +1934,9 @@ dependencies = [ - - [[package]] - name = "sha2" --version = "0.10.6" -+version = "0.10.9" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" -+checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" - dependencies = [ - "cfg-if", - "cpufeatures", -@@ -1872,9 +1951,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - - [[package]] - name = "signal-hook" --version = "0.3.17" -+version = "0.3.18" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" -+checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" - dependencies = [ - "libc", - "signal-hook-registry", -@@ -1882,46 +1961,43 @@ dependencies = [ - - [[package]] - name = "signal-hook-registry" --version = "1.4.0" -+version = "1.4.6" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" -+checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" - dependencies = [ - "libc", - ] - - [[package]] - name = "slab" --version = "0.4.7" -+version = "0.4.11" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" --dependencies = [ -- "autocfg", --] -+checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" - - [[package]] - name = "smallvec" --version = "1.13.2" -+version = "1.15.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" -+checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" - - [[package]] - name = "socket2" --version = "0.4.9" -+version = "0.5.10" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" -+checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" - dependencies = [ - "libc", -- "winapi", -+ "windows-sys 0.52.0", - ] - - [[package]] - name = "socket2" --version = "0.5.8" -+version = "0.6.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -+checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" - dependencies = [ - "libc", -- "windows-sys 0.52.0", -+ "windows-sys 0.59.0", - ] - - [[package]] -@@ -1944,20 +2020,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - - [[package]] - name = "syn" --version = "1.0.100" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "52205623b1b0f064a4e71182c3b18ae902267282930c6d5462c91b859668426e" --dependencies = [ -- "proc-macro2", -- "quote", -- "unicode-ident", --] -- --[[package]] --name = "syn" --version = "2.0.90" -+version = "2.0.106" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" -+checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" - dependencies = [ - "proc-macro2", - "quote", -@@ -1966,135 +2031,149 @@ dependencies = [ - - [[package]] - name = "sync_wrapper" --version = "1.0.1" -+version = "1.0.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" -+checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" - dependencies = [ - "futures-core", - ] - - [[package]] - name = "synstructure" --version = "0.12.6" -+version = "0.13.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -+checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" - dependencies = [ - "proc-macro2", - "quote", -- "syn 1.0.100", -- "unicode-xid", -+ "syn", - ] - - [[package]] - name = "target-lexicon" --version = "0.12.4" -+version = "0.12.16" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c02424087780c9b71cc96799eaeddff35af2bc513278cda5c99fc1f5d026d3c1" -+checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" - - [[package]] - name = "tempfile" --version = "3.14.0" -+version = "3.22.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" -+checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53" - dependencies = [ -- "cfg-if", - "fastrand", -+ "getrandom 0.3.3", - "once_cell", -- "rustix", -- "windows-sys 0.59.0", -+ "rustix 1.1.2", -+ "windows-sys 0.61.0", - ] - - [[package]] - name = "termcolor" --version = "1.1.3" -+version = "1.4.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" -+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" - dependencies = [ - "winapi-util", - ] - - [[package]] - name = "thiserror" --version = "2.0.9" -+version = "2.0.16" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f072643fd0190df67a8bab670c20ef5d8737177d6ac6b2e9a236cb096206b2cc" -+checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" - dependencies = [ - "thiserror-impl", - ] - - [[package]] - name = "thiserror-impl" --version = "2.0.9" -+version = "2.0.16" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4" -+checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.90", -+ "syn", - ] - - [[package]] - name = "time" --version = "0.3.14" -+version = "0.3.43" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3c3f9a28b618c3a6b9251b6908e9c99e04b9e5c02e6581ccbb67d59c34ef7f9b" -+checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" - dependencies = [ -- "itoa", -- "libc", -- "num_threads", -+ "deranged", -+ "num-conv", -+ "powerfmt", -+ "serde", -+ "time-core", -+ "time-macros", - ] - - [[package]] --name = "tinyvec" --version = "1.6.0" -+name = "time-core" -+version = "0.1.6" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" -+ -+[[package]] -+name = "time-macros" -+version = "0.2.24" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -+checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" - dependencies = [ -- "tinyvec_macros", -+ "num-conv", -+ "time-core", - ] - - [[package]] --name = "tinyvec_macros" --version = "0.1.0" -+name = "tinystr" -+version = "0.8.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" -+checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" -+dependencies = [ -+ "displaydoc", -+ "zerovec", -+] - - [[package]] - name = "tokio" --version = "1.42.0" -+version = "1.47.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" -+checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" - dependencies = [ - "backtrace", - "bytes", -+ "io-uring", - "libc", -- "mio 1.0.3", -+ "mio", - "parking_lot", - "pin-project-lite", - "signal-hook-registry", -- "socket2 0.5.8", -+ "slab", -+ "socket2 0.6.0", - "tokio-macros", -- "windows-sys 0.52.0", -+ "windows-sys 0.59.0", - ] - - [[package]] - name = "tokio-macros" --version = "2.4.0" -+version = "2.5.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" -+checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.90", -+ "syn", - ] - - [[package]] - name = "tokio-openssl" --version = "0.6.3" -+version = "0.6.5" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c08f9ffb7809f1b20c1b398d92acf4cc719874b3b2b2d9ea2f09b4a80350878a" -+checksum = "59df6849caa43bb7567f9a36f863c447d95a11d5903c9cc334ba32576a27eadd" - dependencies = [ -- "futures-util", - "openssl", - "openssl-sys", - "tokio", -@@ -2102,29 +2181,22 @@ dependencies = [ - - [[package]] - name = "tokio-util" --version = "0.7.4" -+version = "0.7.16" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" -+checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" - dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -- "tracing", - ] - - [[package]] - name = "toml" --version = "0.2.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "736b60249cb25337bc196faa43ee12c705e426f3d55c214d73a4e7be06f92cb4" -- --[[package]] --name = "toml" --version = "0.5.9" -+version = "0.5.11" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" -+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" - dependencies = [ - "serde", - ] -@@ -2144,6 +2216,24 @@ dependencies = [ - "tower-service", - ] - -+[[package]] -+name = "tower-http" -+version = "0.6.6" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" -+dependencies = [ -+ "bitflags", -+ "bytes", -+ "futures-util", -+ "http 1.3.1", -+ "http-body", -+ "iri-string", -+ "pin-project-lite", -+ "tower", -+ "tower-layer", -+ "tower-service", -+] -+ - [[package]] - name = "tower-layer" - version = "0.3.3" -@@ -2158,39 +2248,51 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - - [[package]] - name = "tracing" --version = "0.1.36" -+version = "0.1.41" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" -+checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" - dependencies = [ -- "cfg-if", - "log", - "pin-project-lite", -+ "tracing-attributes", - "tracing-core", - ] - -+[[package]] -+name = "tracing-attributes" -+version = "0.1.30" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" -+dependencies = [ -+ "proc-macro2", -+ "quote", -+ "syn", -+] -+ - [[package]] - name = "tracing-core" --version = "0.1.29" -+version = "0.1.34" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" -+checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" - dependencies = [ - "once_cell", - ] - - [[package]] - name = "try-lock" --version = "0.2.3" -+version = "0.2.5" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" -+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - - [[package]] - name = "tss-esapi" --version = "7.4.0" -+version = "7.6.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "de234df360c349f78ecd33f0816ab3842db635732212b5cfad67f2638336864e" -+checksum = "78ea9ccde878b029392ac97b5be1f470173d06ea41d18ad0bb3c92794c16a0f2" - dependencies = [ - "bitfield", - "enumflags2", -+ "getrandom 0.2.16", - "hostname-validator", - "log", - "mbox", -@@ -2218,67 +2320,61 @@ dependencies = [ - - [[package]] - name = "typenum" --version = "1.15.0" -+version = "1.18.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" -+checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" - - [[package]] - name = "ucd-trie" --version = "0.1.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" -- --[[package]] --name = "unicode-bidi" --version = "0.3.17" -+version = "0.1.7" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" -+checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - - [[package]] - name = "unicode-ident" --version = "1.0.4" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd" -- --[[package]] --name = "unicode-normalization" --version = "0.1.22" -+version = "1.0.19" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" --dependencies = [ -- "tinyvec", --] -+checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" - - [[package]] - name = "unicode-xid" --version = "0.2.4" -+version = "0.2.6" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" -+checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - - [[package]] - name = "url" --version = "2.5.2" -+version = "2.5.7" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" -+checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" - dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -+ "serde", - ] - -+[[package]] -+name = "utf8_iter" -+version = "1.0.4" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" -+ - [[package]] - name = "utf8parse" --version = "0.2.1" -+version = "0.2.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" -+checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - - [[package]] - name = "uuid" --version = "1.11.0" -+version = "1.18.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -+checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" - dependencies = [ -- "getrandom", -+ "getrandom 0.3.3", -+ "js-sys", -+ "wasm-bindgen", - ] - - [[package]] -@@ -2289,69 +2385,88 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - - [[package]] - name = "version_check" --version = "0.9.4" -+version = "0.9.5" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" -+checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - - [[package]] - name = "want" --version = "0.3.0" -+version = "0.3.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" -+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" - dependencies = [ -- "log", - "try-lock", - ] - - [[package]] - name = "wasi" --version = "0.11.0+wasi-snapshot-preview1" -+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" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" -+checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" -+dependencies = [ -+ "wit-bindgen", -+] - - [[package]] - name = "wasm-bindgen" --version = "0.2.94" -+version = "0.2.102" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ef073ced962d62984fb38a36e5fdc1a2b23c9e0e1fa0689bb97afa4202ef6887" -+checksum = "4ad224d2776649cfb4f4471124f8176e54c1cca67a88108e30a0cd98b90e7ad3" - dependencies = [ - "cfg-if", - "once_cell", -+ "rustversion", - "wasm-bindgen-macro", -+ "wasm-bindgen-shared", - ] - - [[package]] - name = "wasm-bindgen-backend" --version = "0.2.94" -+version = "0.2.102" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c4bfab14ef75323f4eb75fa52ee0a3fb59611977fd3240da19b2cf36ff85030e" -+checksum = "3a1364104bdcd3c03f22b16a3b1c9620891469f5e9f09bc38b2db121e593e732" - dependencies = [ - "bumpalo", - "log", -- "once_cell", - "proc-macro2", - "quote", -- "syn 2.0.90", -+ "syn", - "wasm-bindgen-shared", - ] - - [[package]] - name = "wasm-bindgen-futures" --version = "0.4.33" -+version = "0.4.52" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" -+checksum = "9c0a08ecf5d99d5604a6666a70b3cde6ab7cc6142f5e641a8ef48fc744ce8854" - dependencies = [ - "cfg-if", - "js-sys", -+ "once_cell", - "wasm-bindgen", - "web-sys", - ] - - [[package]] - name = "wasm-bindgen-macro" --version = "0.2.94" -+version = "0.2.102" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a7bec9830f60924d9ceb3ef99d55c155be8afa76954edffbb5936ff4509474e7" -+checksum = "0d7ab4ca3e367bb1ed84ddbd83cc6e41e115f8337ed047239578210214e36c76" - dependencies = [ - "quote", - "wasm-bindgen-macro-support", -@@ -2359,28 +2474,31 @@ dependencies = [ - - [[package]] - name = "wasm-bindgen-macro-support" --version = "0.2.94" -+version = "0.2.102" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4c74f6e152a76a2ad448e223b0fc0b6b5747649c3d769cc6bf45737bf97d0ed6" -+checksum = "4a518014843a19e2dbbd0ed5dfb6b99b23fb886b14e6192a00803a3e14c552b0" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.90", -+ "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", - ] - - [[package]] - name = "wasm-bindgen-shared" --version = "0.2.94" -+version = "0.2.102" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a42f6c679374623f295a8623adfe63d9284091245c3504bde47c17a3ce2777d9" -+checksum = "255eb0aa4cc2eea3662a00c2bbd66e93911b7361d5e0fcd62385acfd7e15dcee" -+dependencies = [ -+ "unicode-ident", -+] - - [[package]] - name = "web-sys" --version = "0.3.60" -+version = "0.3.79" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" -+checksum = "50462a022f46851b81d5441d1a6f5bac0b21a1d72d64bd4906fbdd4bf7230ec7" - dependencies = [ - "js-sys", - "wasm-bindgen", -@@ -2388,129 +2506,71 @@ dependencies = [ - - [[package]] - name = "which" --version = "4.3.0" -+version = "4.4.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" -+checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" - dependencies = [ - "either", -- "libc", -+ "home", - "once_cell", -+ "rustix 0.38.44", - ] - --[[package]] --name = "winapi" --version = "0.3.9" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" --dependencies = [ -- "winapi-i686-pc-windows-gnu", -- "winapi-x86_64-pc-windows-gnu", --] -- --[[package]] --name = "winapi-i686-pc-windows-gnu" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -- - [[package]] - name = "winapi-util" --version = "0.1.5" -+version = "0.1.11" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -+checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" - dependencies = [ -- "winapi", -+ "windows-sys 0.61.0", - ] - - [[package]] --name = "winapi-x86_64-pc-windows-gnu" --version = "0.4.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -- --[[package]] --name = "windows-registry" --version = "0.2.0" -+name = "windows-link" -+version = "0.1.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" --dependencies = [ -- "windows-result", -- "windows-strings", -- "windows-targets 0.52.6", --] -+checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" - - [[package]] --name = "windows-result" -+name = "windows-link" - version = "0.2.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" --dependencies = [ -- "windows-targets 0.52.6", --] -- --[[package]] --name = "windows-strings" --version = "0.1.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" --dependencies = [ -- "windows-result", -- "windows-targets 0.52.6", --] -- --[[package]] --name = "windows-sys" --version = "0.36.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" --dependencies = [ -- "windows_aarch64_msvc 0.36.1", -- "windows_i686_gnu 0.36.1", -- "windows_i686_msvc 0.36.1", -- "windows_x86_64_gnu 0.36.1", -- "windows_x86_64_msvc 0.36.1", --] -+checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" - - [[package]] - name = "windows-sys" --version = "0.48.0" -+version = "0.52.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" - dependencies = [ -- "windows-targets 0.48.0", -+ "windows-targets 0.52.6", - ] - - [[package]] - name = "windows-sys" --version = "0.52.0" -+version = "0.59.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" - dependencies = [ - "windows-targets 0.52.6", - ] - - [[package]] - name = "windows-sys" --version = "0.59.0" -+version = "0.60.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -+checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" - dependencies = [ -- "windows-targets 0.52.6", -+ "windows-targets 0.53.3", - ] - - [[package]] --name = "windows-targets" --version = "0.48.0" -+name = "windows-sys" -+version = "0.61.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" -+checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" - dependencies = [ -- "windows_aarch64_gnullvm 0.48.0", -- "windows_aarch64_msvc 0.48.0", -- "windows_i686_gnu 0.48.0", -- "windows_i686_msvc 0.48.0", -- "windows_x86_64_gnu 0.48.0", -- "windows_x86_64_gnullvm 0.48.0", -- "windows_x86_64_msvc 0.48.0", -+ "windows-link 0.2.0", - ] - - [[package]] -@@ -2522,7 +2582,7 @@ dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", -- "windows_i686_gnullvm", -+ "windows_i686_gnullvm 0.52.6", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", -@@ -2530,10 +2590,21 @@ dependencies = [ - ] - - [[package]] --name = "windows_aarch64_gnullvm" --version = "0.48.0" -+name = "windows-targets" -+version = "0.53.3" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" -+checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" -+dependencies = [ -+ "windows-link 0.1.3", -+ "windows_aarch64_gnullvm 0.53.0", -+ "windows_aarch64_msvc 0.53.0", -+ "windows_i686_gnu 0.53.0", -+ "windows_i686_gnullvm 0.53.0", -+ "windows_i686_msvc 0.53.0", -+ "windows_x86_64_gnu 0.53.0", -+ "windows_x86_64_gnullvm 0.53.0", -+ "windows_x86_64_msvc 0.53.0", -+] - - [[package]] - name = "windows_aarch64_gnullvm" -@@ -2542,16 +2613,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - - [[package]] --name = "windows_aarch64_msvc" --version = "0.36.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" -- --[[package]] --name = "windows_aarch64_msvc" --version = "0.48.0" -+name = "windows_aarch64_gnullvm" -+version = "0.53.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" -+checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" - - [[package]] - name = "windows_aarch64_msvc" -@@ -2560,22 +2625,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - - [[package]] --name = "windows_i686_gnu" --version = "0.36.1" -+name = "windows_aarch64_msvc" -+version = "0.53.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" -+checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" - - [[package]] - name = "windows_i686_gnu" --version = "0.48.0" -+version = "0.52.6" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" -+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - - [[package]] - name = "windows_i686_gnu" --version = "0.52.6" -+version = "0.53.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -+checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" - - [[package]] - name = "windows_i686_gnullvm" -@@ -2584,166 +2649,197 @@ source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - - [[package]] --name = "windows_i686_msvc" --version = "0.36.1" -+name = "windows_i686_gnullvm" -+version = "0.53.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" -+checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" - - [[package]] - name = "windows_i686_msvc" --version = "0.48.0" -+version = "0.52.6" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" -+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - - [[package]] - name = "windows_i686_msvc" --version = "0.52.6" -+version = "0.53.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -+checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" - - [[package]] - name = "windows_x86_64_gnu" --version = "0.36.1" -+version = "0.52.6" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" -+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - - [[package]] - name = "windows_x86_64_gnu" --version = "0.48.0" -+version = "0.53.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" -+checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" - - [[package]] --name = "windows_x86_64_gnu" -+name = "windows_x86_64_gnullvm" - version = "0.52.6" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - - [[package]] - name = "windows_x86_64_gnullvm" --version = "0.48.0" -+version = "0.53.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" -+checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" - - [[package]] --name = "windows_x86_64_gnullvm" -+name = "windows_x86_64_msvc" - version = "0.52.6" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - - [[package]] - name = "windows_x86_64_msvc" --version = "0.36.1" -+version = "0.53.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" -+checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" - - [[package]] --name = "windows_x86_64_msvc" --version = "0.48.0" -+name = "wit-bindgen" -+version = "0.46.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" -+checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" - - [[package]] --name = "windows_x86_64_msvc" --version = "0.52.6" -+name = "writeable" -+version = "0.6.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -+checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" - - [[package]] --name = "wiremock" --version = "0.6.2" -+name = "yoke" -+version = "0.8.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7fff469918e7ca034884c7fd8f93fe27bacb7fcb599fd879df6c7b429a29b646" -+checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" - dependencies = [ -- "assert-json-diff", -- "async-trait", -- "base64 0.22.1", -- "deadpool", -- "futures", -- "http 1.1.0", -- "http-body-util", -- "hyper", -- "hyper-util", -- "log", -- "once_cell", -- "regex", - "serde", -- "serde_json", -- "tokio", -- "url", -+ "stable_deref_trait", -+ "yoke-derive", -+ "zerofrom", -+] -+ -+[[package]] -+name = "yoke-derive" -+version = "0.8.0" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" -+dependencies = [ -+ "proc-macro2", -+ "quote", -+ "syn", -+ "synstructure", - ] - - [[package]] - name = "zerocopy" --version = "0.7.32" -+version = "0.8.27" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" -+checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" - dependencies = [ - "zerocopy-derive", - ] - - [[package]] - name = "zerocopy-derive" --version = "0.7.32" -+version = "0.8.27" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" -+checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" - dependencies = [ - "proc-macro2", - "quote", -- "syn 2.0.90", -+ "syn", -+] -+ -+[[package]] -+name = "zerofrom" -+version = "0.1.6" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" -+dependencies = [ -+ "zerofrom-derive", -+] -+ -+[[package]] -+name = "zerofrom-derive" -+version = "0.1.6" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" -+dependencies = [ -+ "proc-macro2", -+ "quote", -+ "syn", -+ "synstructure", - ] - - [[package]] - name = "zeroize" --version = "1.5.7" -+version = "1.8.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f" -+checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" - dependencies = [ - "zeroize_derive", - ] - - [[package]] - name = "zeroize_derive" --version = "1.3.2" -+version = "1.4.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" -+checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" - dependencies = [ - "proc-macro2", - "quote", -- "syn 1.0.100", -- "synstructure", -+ "syn", - ] - - [[package]] --name = "zip" --version = "0.6.6" -+name = "zerotrie" -+version = "0.2.2" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" -+checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" - dependencies = [ -- "byteorder", -- "crc32fast", -- "crossbeam-utils", -- "flate2", -+ "displaydoc", -+ "yoke", -+ "zerofrom", - ] - - [[package]] --name = "zmq" --version = "0.9.2" -+name = "zerovec" -+version = "0.11.4" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "aad98a7a617d608cd9e1127147f630d24af07c7cd95ba1533246d96cbdd76c66" -+checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" - dependencies = [ -- "bitflags 1.3.2", -- "libc", -- "log", -- "zmq-sys", -+ "yoke", -+ "zerofrom", -+ "zerovec-derive", - ] - - [[package]] --name = "zmq-sys" --version = "0.11.0" -+name = "zerovec-derive" -+version = "0.11.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d33a2c51dde24d5b451a2ed4b488266df221a5eaee2ee519933dc46b9a9b3648" -+checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" - dependencies = [ -- "libc", -- "metadeps", -+ "proc-macro2", -+ "quote", -+ "syn", -+] -+ -+[[package]] -+name = "zip" -+version = "0.6.6" -+source = "registry+https://github.com/rust-lang/crates.io-index" -+checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" -+dependencies = [ -+ "byteorder", -+ "crc32fast", -+ "crossbeam-utils", -+ "flate2", - ] -diff --git a/Cargo.toml b/Cargo.toml -index 144b0b8..6f9c134 100644 ---- a/Cargo.toml -+++ b/Cargo.toml -@@ -41,6 +41,6 @@ static_assertions = "1" - tempfile = "3.4.0" - thiserror = "2.0" - tokio = {version = "1", features = ["rt", "sync", "macros"]} --tss-esapi = {version = "7.4.0", features = ["generate-bindings"]} -+tss-esapi = {version = "7.6.0", features = ["generate-bindings"]} - uuid = {version = "1.3", features = ["v4"]} - zip = {version = "0.6", default-features = false, features= ["deflate"]} -diff --git a/keylime-agent/src/agent_handler.rs b/keylime-agent/src/agent_handler.rs -index 44228c1..13bcc37 100644 ---- a/keylime-agent/src/agent_handler.rs -+++ b/keylime-agent/src/agent_handler.rs -@@ -88,7 +88,7 @@ mod tests { - async fn test_agent_info() { - let (mut quotedata, mutex) = QuoteData::fixture().await.unwrap(); //#[allow_ci] - quotedata.hash_alg = keylime::algorithms::HashAlgorithm::Sha256; -- quotedata.enc_alg = keylime::algorithms::EncryptionAlgorithm::Rsa; -+ quotedata.enc_alg = keylime::algorithms::EncryptionAlgorithm::Rsa2048; - quotedata.sign_alg = keylime::algorithms::SignAlgorithm::RsaSsa; - quotedata.agent_uuid = "DEADBEEF".to_string(); - let data = web::Data::new(quotedata); -diff --git a/keylime-agent/src/common.rs b/keylime-agent/src/common.rs -index 0f83022..af57734 100644 ---- a/keylime-agent/src/common.rs -+++ b/keylime-agent/src/common.rs -@@ -303,6 +303,7 @@ mod tests { - let ak = ctx.create_ak( - ek_result.key_handle, - tpm_hash_alg, -+ tpm_encryption_alg, - tpm_signing_alg, - )?; - -diff --git a/keylime-agent/src/main.rs b/keylime-agent/src/main.rs -index 179b01b..9e3d727 100644 ---- a/keylime-agent/src/main.rs -+++ b/keylime-agent/src/main.rs -@@ -421,6 +421,7 @@ async fn main() -> Result<()> { - let new_ak = ctx.create_ak( - ek_result.key_handle, - tpm_hash_alg, -+ tpm_encryption_alg, - tpm_signing_alg, - )?; - let ak_handle = ctx.load_ak(ek_result.key_handle, &new_ak)?; -@@ -1044,6 +1045,7 @@ mod testing { - .create_ak( - ek_result.key_handle, - tpm_hash_alg, -+ tpm_encryption_alg, - tpm_signing_alg, - ) - .unwrap(); //#[allow_ci] -@@ -1121,7 +1123,8 @@ mod testing { - payload_tx, - revocation_tx, - hash_alg: keylime::algorithms::HashAlgorithm::Sha256, -- enc_alg: keylime::algorithms::EncryptionAlgorithm::Rsa, -+ enc_alg: -+ keylime::algorithms::EncryptionAlgorithm::Rsa2048, - sign_alg: keylime::algorithms::SignAlgorithm::RsaSsa, - agent_uuid: test_config.agent.uuid, - allow_payload_revocation_actions: test_config -diff --git a/keylime/src/algorithms.rs b/keylime/src/algorithms.rs -index 9c46195..cda8966 100644 ---- a/keylime/src/algorithms.rs -+++ b/keylime/src/algorithms.rs -@@ -6,8 +6,13 @@ use std::convert::TryFrom; - use std::fmt; - use thiserror::Error; - use tss_esapi::{ -- interface_types::algorithm::{ -- AsymmetricAlgorithm, HashingAlgorithm, SignatureSchemeAlgorithm, -+ abstraction::AsymmetricAlgorithmSelection, -+ interface_types::{ -+ algorithm::{ -+ AsymmetricAlgorithm, HashingAlgorithm, SignatureSchemeAlgorithm, -+ }, -+ ecc::EccCurve, -+ key_bits::RsaKeyBits, - }, - structures::{HashScheme, SignatureScheme}, - }; -@@ -89,15 +94,68 @@ impl From for MessageDigest { - - #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] - pub enum EncryptionAlgorithm { -- Rsa, -- Ecc, -+ Rsa1024, -+ Rsa2048, -+ Rsa3072, -+ Rsa4096, -+ Ecc192, -+ Ecc224, -+ Ecc256, -+ Ecc384, -+ Ecc521, -+ EccSm2, - } - - impl From for AsymmetricAlgorithm { - fn from(enc_alg: EncryptionAlgorithm) -> Self { - match enc_alg { -- EncryptionAlgorithm::Rsa => AsymmetricAlgorithm::Rsa, -- EncryptionAlgorithm::Ecc => AsymmetricAlgorithm::Ecc, -+ EncryptionAlgorithm::Rsa1024 => AsymmetricAlgorithm::Rsa, -+ EncryptionAlgorithm::Rsa2048 => AsymmetricAlgorithm::Rsa, -+ EncryptionAlgorithm::Rsa3072 => AsymmetricAlgorithm::Rsa, -+ EncryptionAlgorithm::Rsa4096 => AsymmetricAlgorithm::Rsa, -+ EncryptionAlgorithm::Ecc192 => AsymmetricAlgorithm::Ecc, -+ EncryptionAlgorithm::Ecc224 => AsymmetricAlgorithm::Ecc, -+ EncryptionAlgorithm::Ecc256 => AsymmetricAlgorithm::Ecc, -+ EncryptionAlgorithm::Ecc384 => AsymmetricAlgorithm::Ecc, -+ EncryptionAlgorithm::Ecc521 => AsymmetricAlgorithm::Ecc, -+ EncryptionAlgorithm::EccSm2 => AsymmetricAlgorithm::Ecc, -+ } -+ } -+} -+ -+impl From for AsymmetricAlgorithmSelection { -+ fn from(enc_alg: EncryptionAlgorithm) -> Self { -+ match enc_alg { -+ EncryptionAlgorithm::Rsa1024 => { -+ AsymmetricAlgorithmSelection::Rsa(RsaKeyBits::Rsa1024) -+ } -+ EncryptionAlgorithm::Rsa2048 => { -+ AsymmetricAlgorithmSelection::Rsa(RsaKeyBits::Rsa2048) -+ } -+ EncryptionAlgorithm::Rsa3072 => { -+ AsymmetricAlgorithmSelection::Rsa(RsaKeyBits::Rsa3072) -+ } -+ EncryptionAlgorithm::Rsa4096 => { -+ AsymmetricAlgorithmSelection::Rsa(RsaKeyBits::Rsa4096) -+ } -+ EncryptionAlgorithm::Ecc192 => { -+ AsymmetricAlgorithmSelection::Ecc(EccCurve::NistP192) -+ } -+ EncryptionAlgorithm::Ecc224 => { -+ AsymmetricAlgorithmSelection::Ecc(EccCurve::NistP224) -+ } -+ EncryptionAlgorithm::Ecc256 => { -+ AsymmetricAlgorithmSelection::Ecc(EccCurve::NistP256) -+ } -+ EncryptionAlgorithm::Ecc384 => { -+ AsymmetricAlgorithmSelection::Ecc(EccCurve::NistP384) -+ } -+ EncryptionAlgorithm::Ecc521 => { -+ AsymmetricAlgorithmSelection::Ecc(EccCurve::NistP521) -+ } -+ EncryptionAlgorithm::EccSm2 => { -+ AsymmetricAlgorithmSelection::Ecc(EccCurve::Sm2P256) -+ } - } - } - } -@@ -107,8 +165,25 @@ impl TryFrom<&str> for EncryptionAlgorithm { - - fn try_from(value: &str) -> Result { - match value { -- "rsa" => Ok(EncryptionAlgorithm::Rsa), -- "ecc" => Ok(EncryptionAlgorithm::Ecc), -+ /* Use default key size and curve if not explicitly specified */ -+ "rsa" => Ok(EncryptionAlgorithm::Rsa2048), -+ "ecc" => Ok(EncryptionAlgorithm::Ecc256), -+ "rsa1024" => Ok(EncryptionAlgorithm::Rsa1024), -+ "rsa2048" => Ok(EncryptionAlgorithm::Rsa2048), -+ "rsa3072" => Ok(EncryptionAlgorithm::Rsa3072), -+ "rsa4096" => Ok(EncryptionAlgorithm::Rsa4096), -+ "ecc192" => Ok(EncryptionAlgorithm::Ecc192), -+ "ecc_nist_p192" => Ok(EncryptionAlgorithm::Ecc192), -+ "ecc224" => Ok(EncryptionAlgorithm::Ecc224), -+ "ecc_nist_p224" => Ok(EncryptionAlgorithm::Ecc224), -+ "ecc256" => Ok(EncryptionAlgorithm::Ecc256), -+ "ecc_nist_p256" => Ok(EncryptionAlgorithm::Ecc256), -+ "ecc384" => Ok(EncryptionAlgorithm::Ecc384), -+ "ecc_nist_p384" => Ok(EncryptionAlgorithm::Ecc384), -+ "ecc521" => Ok(EncryptionAlgorithm::Ecc521), -+ "ecc_nist_p521" => Ok(EncryptionAlgorithm::Ecc521), -+ "ecc_sm2" => Ok(EncryptionAlgorithm::EccSm2), -+ "ecc_sm2_p256" => Ok(EncryptionAlgorithm::EccSm2), - _ => Err(AlgorithmError::UnsupportedEncryptionAlgorithm( - value.into(), - )), -@@ -119,8 +194,16 @@ impl TryFrom<&str> for EncryptionAlgorithm { - impl fmt::Display for EncryptionAlgorithm { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let value = match self { -- EncryptionAlgorithm::Rsa => "rsa", -- EncryptionAlgorithm::Ecc => "ecc", -+ EncryptionAlgorithm::Rsa1024 => "rsa1024", -+ EncryptionAlgorithm::Rsa2048 => "rsa", /* for backwards compatibility */ -+ EncryptionAlgorithm::Rsa3072 => "rsa3072", -+ EncryptionAlgorithm::Rsa4096 => "rsa4096", -+ EncryptionAlgorithm::Ecc192 => "ecc192", -+ EncryptionAlgorithm::Ecc224 => "ecc224", -+ EncryptionAlgorithm::Ecc256 => "ecc", /* for backwards compatibility */ -+ EncryptionAlgorithm::Ecc384 => "ecc384", -+ EncryptionAlgorithm::Ecc521 => "ecc521", -+ EncryptionAlgorithm::EccSm2 => "ecc_sm2", - }; - write!(f, "{value}") - } -@@ -219,9 +302,13 @@ mod tests { - #[test] - fn test_encrypt_try_from() { - let result = EncryptionAlgorithm::try_from("rsa"); -- assert!(result.is_ok()); -+ assert!(result.is_ok_and(|r| r == EncryptionAlgorithm::Rsa2048)); - let result = EncryptionAlgorithm::try_from("ecc"); -- assert!(result.is_ok()); -+ assert!(result.is_ok_and(|r| r == EncryptionAlgorithm::Ecc256)); -+ let result = EncryptionAlgorithm::try_from("rsa4096"); -+ assert!(result.is_ok_and(|r| r == EncryptionAlgorithm::Rsa4096)); -+ let result = EncryptionAlgorithm::try_from("ecc256"); -+ assert!(result.is_ok_and(|r| r == EncryptionAlgorithm::Ecc256)); - } - #[test] - fn test_unsupported_encrypt_try_from() { -diff --git a/keylime/src/tpm.rs b/keylime/src/tpm.rs -index 997334d..8a8c85a 100644 ---- a/keylime/src/tpm.rs -+++ b/keylime/src/tpm.rs -@@ -562,7 +562,7 @@ impl Context<'_> { - let key_handle: KeyHandle = match handle { - Some(v) => { - if v.is_empty() { -- ek::create_ek_object(&mut ctx, alg.into(), DefaultKey) -+ ek::create_ek_object_2(&mut ctx, alg.into(), DefaultKey) - .map_err(|source| TpmError::TSSCreateEKError { - source, - })? -@@ -591,7 +591,7 @@ impl Context<'_> { - .into() - } - } -- None => ek::create_ek_object(&mut ctx, alg.into(), DefaultKey) -+ None => ek::create_ek_object_2(&mut ctx, alg.into(), DefaultKey) - .map_err(|source| TpmError::TSSCreateEKError { source })?, - }; - -@@ -625,6 +625,7 @@ impl Context<'_> { - /// - /// * `handle`: The associated EK handle - /// * `hash_alg`: The digest algorithm used for signing with the created AK -+ /// * `key_alg`: The key type used for signing with the created AK - /// * `sign_alg`: The created AK signing algorithm - /// - /// Returns an `AKResult` structure if successful and a `TPMError` otherwise -@@ -632,12 +633,14 @@ impl Context<'_> { - &mut self, - handle: KeyHandle, - hash_alg: HashAlgorithm, -+ key_alg: EncryptionAlgorithm, - sign_alg: SignAlgorithm, - ) -> Result { -- let ak = ak::create_ak( -+ let ak = ak::create_ak_2( - &mut self.inner.lock().unwrap(), //#[allow_ci] - handle, - hash_alg.into(), -+ key_alg.into(), - sign_alg.into(), - None, - DefaultKey, -@@ -1921,9 +1924,7 @@ pub fn get_idevid_template( - "H-4" => (AsymmetricAlgorithm::Ecc, HashingAlgorithm::Sha512), - "H-5" => (AsymmetricAlgorithm::Ecc, HashingAlgorithm::Sm3_256), - _ => ( -- AsymmetricAlgorithm::from(EncryptionAlgorithm::try_from( -- asym_alg_str, -- )?), -+ EncryptionAlgorithm::try_from(asym_alg_str)?.into(), - HashingAlgorithm::from(HashAlgorithm::try_from(name_alg_str)?), - ), - }; -@@ -2421,7 +2422,8 @@ pub mod tests { - async fn test_create_ek() { - let _mutex = testing::lock_tests().await; - let mut ctx = Context::new().unwrap(); //#[allow_ci] -- let algs = [EncryptionAlgorithm::Rsa, EncryptionAlgorithm::Ecc]; -+ let algs = -+ [EncryptionAlgorithm::Rsa2048, EncryptionAlgorithm::Ecc256]; - // TODO: create persistent handle and add to be tested: Some("0x81000000"), - let handles = [Some(""), None]; - -@@ -2444,12 +2446,15 @@ pub mod tests { - let _mutex = testing::lock_tests().await; - let mut ctx = Context::new().unwrap(); //#[allow_ci] - -- let r = ctx.create_ek(EncryptionAlgorithm::Rsa, None); -+ let r = ctx.create_ek(EncryptionAlgorithm::Rsa2048, None); - assert!(r.is_ok(), "Result: {r:?}"); - - let ek_result = r.unwrap(); //#[allow_ci] - let ek_handle = ek_result.key_handle; - -+ let eng_algs = -+ [EncryptionAlgorithm::Rsa1024, EncryptionAlgorithm::Rsa2048]; -+ - let hash_algs = [ - HashAlgorithm::Sha256, - HashAlgorithm::Sha384, -@@ -2470,18 +2475,20 @@ pub mod tests { - ]; - - for sign in sign_algs { -- for hash in hash_algs { -- let r = ctx.create_ak(ek_handle, hash, sign); -- assert!(r.is_ok(), "Result: {r:?}"); -- let ak = r.unwrap(); //#[allow_ci] -- -- let r = ctx.load_ak(ek_handle, &ak); -- assert!(r.is_ok(), "Result: {r:?}"); -- let handle = r.unwrap(); //#[allow_ci] -- -- // Flush context to free TPM memory -- let r = ctx.flush_context(handle.into()); -- assert!(r.is_ok(), "Result: {r:?}"); -+ for enc in eng_algs { -+ for hash in hash_algs { -+ let r = ctx.create_ak(ek_handle, hash, enc, sign); -+ assert!(r.is_ok(), "Result: {r:?}"); -+ let ak = r.unwrap(); //#[allow_ci] -+ -+ let r = ctx.load_ak(ek_handle, &ak); -+ assert!(r.is_ok(), "Result: {r:?}"); -+ let handle = r.unwrap(); //#[allow_ci] -+ -+ // Flush context to free TPM memory -+ let r = ctx.flush_context(handle.into()); -+ assert!(r.is_ok(), "Result: {r:?}"); -+ } - } - } - -@@ -2562,7 +2569,7 @@ pub mod tests { - - // Create EK - let ek_result = ctx -- .create_ek(EncryptionAlgorithm::Rsa, None) -+ .create_ek(EncryptionAlgorithm::Rsa2048, None) - .expect("failed to create EK"); - let ek_handle = ek_result.key_handle; - -@@ -2571,6 +2578,7 @@ pub mod tests { - .create_ak( - ek_handle, - HashAlgorithm::Sha256, -+ EncryptionAlgorithm::Rsa2048, - SignAlgorithm::RsaSsa, - ) - .expect("failed to create AK"); -@@ -2618,7 +2626,7 @@ pub mod tests { - - // Create EK - let ek_result = ctx -- .create_ek(EncryptionAlgorithm::Rsa, None) -+ .create_ek(EncryptionAlgorithm::Rsa2048, None) - .expect("failed to create EK"); - let ek_handle = ek_result.key_handle; - -@@ -2627,6 +2635,7 @@ pub mod tests { - .create_ak( - ek_handle, - HashAlgorithm::Sha256, -+ EncryptionAlgorithm::Rsa2048, - SignAlgorithm::RsaSsa, - ) - .expect("failed to create ak"); --- -2.47.3 - diff --git a/0004-Clippy-fixes.patch b/0004-Clippy-fixes.patch deleted file mode 100644 index b7eb9af..0000000 --- a/0004-Clippy-fixes.patch +++ /dev/null @@ -1,557 +0,0 @@ -From dc36c72e75c9b3ab36693b59252e3246ef53d5fb Mon Sep 17 00:00:00 2001 -From: Sergio Correia -Date: Mon, 29 Sep 2025 22:45:55 +0000 -Subject: [PATCH 4/6] Clippy fixes - -Signed-off-by: Sergio Correia ---- - keylime-agent/src/config.rs | 13 ++++++------- - keylime-agent/src/keys_handler.rs | 4 ++-- - keylime-agent/src/main.rs | 10 +++++----- - keylime-agent/src/payloads.rs | 12 ++++++------ - keylime-agent/src/permissions.rs | 14 +++++++------- - keylime-agent/src/quotes_handler.rs | 16 ++++++++-------- - keylime-agent/src/revocation.rs | 15 +++++++-------- - keylime-agent/src/secure_mount.rs | 6 +++--- - keylime/src/crypto.rs | 12 ++++++------ - keylime/src/ima/entry.rs | 7 +++---- - keylime/src/registrar_client.rs | 2 +- - keylime/src/tpm.rs | 14 +++++--------- - 12 files changed, 59 insertions(+), 66 deletions(-) - -diff --git a/keylime-agent/src/config.rs b/keylime-agent/src/config.rs -index 21c0516..f1fe7d1 100644 ---- a/keylime-agent/src/config.rs -+++ b/keylime-agent/src/config.rs -@@ -614,8 +614,10 @@ fn config_translate_keywords( - .collect::>() - .join(", "), - "latest" => { -- if let Some(version) = -- SUPPORTED_API_VERSIONS.iter().map(|&s| s.to_string()).last() -+ if let Some(version) = SUPPORTED_API_VERSIONS -+ .iter() -+ .map(|&s| s.to_string()) -+ .next_back() - { - version - } else { -@@ -980,7 +982,7 @@ mod tests { - let expected = SUPPORTED_API_VERSIONS - .iter() - .map(|e| e.to_string()) -- .last() -+ .next_back() - .unwrap(); //#[allow_ci] - assert_eq!(version, expected); - } -@@ -1273,10 +1275,7 @@ mod tests { - let j = obtained.get(i).unwrap(); //#[allow_ci] - assert!( - e.to_string() == j.to_string(), -- "Option {} mismatch: expected == '{}', obtained == '{}'", -- i, -- e, -- j -+ "Option {i} mismatch: expected == '{e}', obtained == '{j}'" - ); - } - } -diff --git a/keylime-agent/src/keys_handler.rs b/keylime-agent/src/keys_handler.rs -index 447f0d1..a4c9f21 100644 ---- a/keylime-agent/src/keys_handler.rs -+++ b/keylime-agent/src/keys_handler.rs -@@ -327,7 +327,7 @@ async fn pubkey( - HttpResponse::Ok().json(response) - } - Err(e) => { -- debug!("Unable to retrieve public key: {:?}", e); -+ debug!("Unable to retrieve public key: {e:?}"); - HttpResponse::InternalServerError().json(JsonWrapper::error( - 500, - "Unable to retrieve public key".to_string(), -@@ -411,7 +411,7 @@ async fn verify( - HttpResponse::Ok().json(response) - } - Err(e) => { -- warn!("GET key challenge failed: {:?}", e); -+ warn!("GET key challenge failed: {e:?}"); - HttpResponse::InternalServerError().json(JsonWrapper::error( - 500, - "GET key challenge failed".to_string(), -diff --git a/keylime-agent/src/main.rs b/keylime-agent/src/main.rs -index 9e3d727..be51a21 100644 ---- a/keylime-agent/src/main.rs -+++ b/keylime-agent/src/main.rs -@@ -269,7 +269,7 @@ async fn main() -> Result<()> { - config::KeylimeConfigError::Generic(message), - )); - } -- info!("Running the service as {}...", user_group); -+ info!("Running the service as {user_group}..."); - } - - // Parse the configured API versions -@@ -403,7 +403,7 @@ async fn main() -> Result<()> { - } - } - Err(e) => { -- warn!("Could not load agent data: {}", e); -+ warn!("Could not load agent data: {e}"); - None - } - } -@@ -442,7 +442,7 @@ async fn main() -> Result<()> { - path => agent_data_new.store(Path::new(&path))?, - } - -- info!("Agent UUID: {}", agent_uuid); -+ info!("Agent UUID: {agent_uuid}"); - - // If using IAK/IDevID is enabled, obtain IAK/IDevID and respective certificates - let mut device_id = if config.agent.enable_iak_idevid { -@@ -595,7 +595,7 @@ async fn main() -> Result<()> { - ) { - Ok(t) => Ok(t), - Err(e) => { -- error!("Failed to load trusted CA certificates: {}", e); -+ error!("Failed to load trusted CA certificates: {e}"); - Err(e) - } - }?; -@@ -833,7 +833,7 @@ async fn main() -> Result<()> { - Ok(ip_addr) => { - // Add bracket if IPv6, otherwise use as it is - if ip_addr.is_ipv6() { -- format!("[{}]", ip_addr) -+ format!("[{ip_addr}]") - } else { - ip_addr.to_string() - } -diff --git a/keylime-agent/src/payloads.rs b/keylime-agent/src/payloads.rs -index 3b8873d..8996a5e 100644 ---- a/keylime-agent/src/payloads.rs -+++ b/keylime-agent/src/payloads.rs -@@ -109,14 +109,14 @@ fn write_out_key_and_payload( - if bytes != key.as_ref().len() { - return Err(Error::Other(format!("Error writing symm key to {:?}: key len is {}, but {bytes} bytes were written", key_path, key.as_ref().len()))); - } -- info!("Wrote payload decryption key to {:?}", key_path); -+ info!("Wrote payload decryption key to {key_path:?}"); - - let mut dec_payload_file = fs::File::create(dec_payload_path)?; - let bytes = dec_payload_file.write(dec_payload)?; - if bytes != dec_payload.len() { - return Err(Error::Other(format!("Error writing decrypted payload to {:?}: payload len is {}, but {bytes} bytes were written", dec_payload_path, dec_payload.len()))); - } -- info!("Wrote decrypted payload to {:?}", dec_payload_path); -+ info!("Wrote decrypted payload to {dec_payload_path:?}"); - - Ok(()) - } -@@ -124,7 +124,7 @@ fn write_out_key_and_payload( - // run a script (such as the init script, if any) and check the status - fn run(dir: &Path, script: &str) -> Result<()> { - let script_path = dir.join(script); -- info!("Running script: {:?}", script_path); -+ info!("Running script: {script_path:?}"); - - if !script_path.exists() { - info!("No payload script {script} found in {}", dir.display()); -@@ -176,7 +176,7 @@ fn optional_unzip_payload( - dec_file => { - let zipped_payload_path = unzipped.join(dec_file); - -- info!("Unzipping payload {} to {:?}", dec_file, unzipped); -+ info!("Unzipping payload {dec_file} to {unzipped:?}"); - - let mut source = fs::File::open(zipped_payload_path)?; - let mut zip = ZipArchive::new(source)?; -@@ -215,7 +215,7 @@ async fn run_encrypted_payload( - info!("No payload script specified, skipping"); - } - script => { -- info!("Payload init script indicated: {}", script); -+ info!("Payload init script indicated: {script}"); - run(&unzipped, script)?; - } - } -@@ -304,7 +304,7 @@ pub(crate) async fn worker( - info!("Successfully executed encrypted payload"); - } - Err(e) => { -- warn!("Failed to run encrypted payload: {}", e); -+ warn!("Failed to run encrypted payload: {e}"); - } - } - } -diff --git a/keylime-agent/src/permissions.rs b/keylime-agent/src/permissions.rs -index aa240d9..4b8ac9a 100644 ---- a/keylime-agent/src/permissions.rs -+++ b/keylime-agent/src/permissions.rs -@@ -38,7 +38,7 @@ impl TryFrom<&str> for UserIds { - - if parts.len() != 2 { - let e = format!("Invalid parameter format: {value} cannot be parsed as 'user:group'"); -- error!("{}", e); -+ error!("{e}"); - return Err(Error::Conversion(e)); - } - -@@ -50,7 +50,7 @@ impl TryFrom<&str> for UserIds { - let p = unsafe { libc::getgrnam(g_cstr.as_ptr()) }; - if p.is_null() { - let e = io::Error::last_os_error(); -- error!("Could not get group {}: {}", group, e); -+ error!("Could not get group {group}: {e}"); - return Err(Error::Conversion(e.to_string())); - } - unsafe { (*p) } -@@ -65,7 +65,7 @@ impl TryFrom<&str> for UserIds { - let p = unsafe { libc::getpwnam(u_cstr.as_ptr()) }; - if p.is_null() { - let e = io::Error::last_os_error(); -- error!("Could not get user {}: {}", user, e); -+ error!("Could not get user {user}: {e}"); - return Err(Error::Conversion(e.to_string())); - } - unsafe { (*p) } -@@ -91,7 +91,7 @@ pub(crate) fn run_as(user_group: &str) -> Result<()> { - // Set gid - if unsafe { libc::setgid(ids.group.gr_gid) } != 0 { - let e = io::Error::last_os_error(); -- error!("Could not set group id: {}", e); -+ error!("Could not set group id: {e}"); - return Err(Error::Permission); - } - -@@ -127,18 +127,18 @@ pub(crate) fn run_as(user_group: &str) -> Result<()> { - if unsafe { libc::setgroups(ngroups as usize, sup_groups.as_ptr()) } != 0 - { - let e = io::Error::last_os_error(); -- error!("Could not set supplementary groups: {}", e); -+ error!("Could not set supplementary groups: {e}"); - return Err(Error::Permission); - } - - // Set uid - if unsafe { libc::setuid(ids.passwd.pw_uid) } != 0 { - let e = io::Error::last_os_error(); -- error!("Could not set user id: {}", e); -+ error!("Could not set user id: {e}"); - return Err(Error::Permission); - } - -- info!("Dropped privileges to run as {}", user_group); -+ info!("Dropped privileges to run as {user_group}"); - - Ok(()) - } -diff --git a/keylime-agent/src/quotes_handler.rs b/keylime-agent/src/quotes_handler.rs -index a49dcc4..d61adf2 100644 ---- a/keylime-agent/src/quotes_handler.rs -+++ b/keylime-agent/src/quotes_handler.rs -@@ -95,7 +95,7 @@ async fn identity( - ) { - Ok(quote) => quote, - Err(e) => { -- debug!("Unable to retrieve quote: {:?}", e); -+ debug!("Unable to retrieve quote: {e:?}"); - return HttpResponse::InternalServerError().json( - JsonWrapper::error( - 500, -@@ -116,7 +116,7 @@ async fn identity( - match crypto::pkey_pub_to_pem(&data.pub_key) { - Ok(pubkey) => quote.pubkey = Some(pubkey), - Err(e) => { -- debug!("Unable to retrieve public key for quote: {:?}", e); -+ debug!("Unable to retrieve public key for quote: {e:?}"); - return HttpResponse::InternalServerError().json( - JsonWrapper::error( - 500, -@@ -193,7 +193,7 @@ async fn integrity( - let pubkey = match crypto::pkey_pub_to_pem(&data.pub_key) { - Ok(pubkey) => pubkey, - Err(e) => { -- debug!("Unable to retrieve public key: {:?}", e); -+ debug!("Unable to retrieve public key: {e:?}"); - return HttpResponse::InternalServerError().json( - JsonWrapper::error( - 500, -@@ -242,7 +242,7 @@ async fn integrity( - ) { - Ok(tpm_quote) => tpm_quote, - Err(e) => { -- debug!("Unable to retrieve quote: {:?}", e); -+ debug!("Unable to retrieve quote: {e:?}"); - return HttpResponse::InternalServerError().json( - JsonWrapper::error( - 500, -@@ -268,7 +268,7 @@ async fn integrity( - let mut ml = Vec::::new(); - let mut f = measuredboot_ml_file.lock().unwrap(); //#[allow_ci] - if let Err(e) = f.rewind() { -- debug!("Failed to rewind measured boot file: {}", e); -+ debug!("Failed to rewind measured boot file: {e}"); - return HttpResponse::InternalServerError().json( - JsonWrapper::error( - 500, -@@ -279,14 +279,14 @@ async fn integrity( - mb_measurement_list = match f.read_to_end(&mut ml) { - Ok(_) => Some(general_purpose::STANDARD.encode(ml)), - Err(e) => { -- warn!("Could not read TPM2 event log: {}", e); -+ warn!("Could not read TPM2 event log: {e}"); - None - } - }; - } - } - Err(e) => { -- debug!("Unable to check PCR mask: {:?}", e); -+ debug!("Unable to check PCR mask: {e:?}"); - return HttpResponse::InternalServerError().json( - JsonWrapper::error( - 500, -@@ -309,7 +309,7 @@ async fn integrity( - (Some(result.0), Some(result.1), Some(result.2)) - } - Err(e) => { -- debug!("Unable to read measurement list: {:?}", e); -+ debug!("Unable to read measurement list: {e:?}"); - return HttpResponse::InternalServerError().json( - JsonWrapper::error( - 500, -diff --git a/keylime-agent/src/revocation.rs b/keylime-agent/src/revocation.rs -index fae5a9c..738c12a 100644 ---- a/keylime-agent/src/revocation.rs -+++ b/keylime-agent/src/revocation.rs -@@ -124,7 +124,7 @@ pub(crate) fn run_action( - allow_payload_actions, - )?; - -- info!("Executing revocation action {}", action); -+ info!("Executing revocation action {action}"); - - // Write JSON argument to a temporary file - let raw_json = serde_json::value::to_raw_value(&json)?; -@@ -171,7 +171,7 @@ pub(crate) fn run_action( - return Err(output.try_into()?); - } - -- info!("INFO: revocation action {} successful", action); -+ info!("INFO: revocation action {action} successful"); - - Ok(output) - } -@@ -233,7 +233,7 @@ fn run_revocation_actions( - let msg = format!( - "error executing revocation script {action}: {e:?}" - ); -- error!("{}", msg); -+ error!("{msg}"); - return Err(Error::Script( - action.to_string(), - e.exe_code()?, -@@ -273,8 +273,7 @@ fn process_revocation( - let msg_payload: Value = serde_json::from_str(msg)?; - - debug!( -- "Revocation signature validated for revocation: {}", -- msg_payload -+ "Revocation signature validated for revocation: {msg_payload}" - ); - - let outputs = run_revocation_actions( -@@ -289,11 +288,11 @@ fn process_revocation( - for output in outputs { - if !output.stdout.is_empty() { - let out = String::from_utf8(output.stdout)?; -- info!("Action stdout: {}", out); -+ info!("Action stdout: {out}"); - } - if !output.stderr.is_empty() { - let out = String::from_utf8(output.stderr)?; -- warn!("Action stderr: {}", out); -+ warn!("Action stderr: {out}"); - } - } - Ok(()) -@@ -476,7 +475,7 @@ pub(crate) async fn worker( - info!("Revocation processed successfully"); - } - Err(e) => { -- error!("Failed to process revocation: {}", e); -+ error!("Failed to process revocation: {e}"); - } - } - } -diff --git a/keylime-agent/src/secure_mount.rs b/keylime-agent/src/secure_mount.rs -index 573d0c9..435fdfc 100644 ---- a/keylime-agent/src/secure_mount.rs -+++ b/keylime-agent/src/secure_mount.rs -@@ -47,7 +47,7 @@ fn check_mount(secure_dir: &Path) -> Result { - return Ok(true); - } else { - let message = format!("Secure storage location {} already mounted on wrong file system type: {}. Unmount to continue.", secure_dir.display(), fs_type); -- error!("Secure mount error: {}", message); -+ error!("Secure mount error: {message}"); - return Err(Error::SecureMount(message)); - } - } else { -@@ -65,7 +65,7 @@ fn check_mount(secure_dir: &Path) -> Result { - let message = - "Mount information parsing error: not enough elements" - .to_string(); -- error!("Secure mount error: {}", message); -+ error!("Secure mount error: {message}"); - return Err(Error::SecureMount(message)); - } - } -@@ -96,7 +96,7 @@ pub(crate) fn mount(work_dir: &Path, secure_size: &str) -> Result { - )) - })?; - -- info!("Directory {:?} created.", secure_dir_path); -+ info!("Directory {secure_dir_path:?} created."); - let metadata = fs::metadata(&secure_dir_path).map_err(|e| { - Error::SecureMount(format!( - "unable to get metadata for secure dir path: {e:?}" -diff --git a/keylime/src/crypto.rs b/keylime/src/crypto.rs -index 5c951b1..19e651f 100644 ---- a/keylime/src/crypto.rs -+++ b/keylime/src/crypto.rs -@@ -399,14 +399,14 @@ pub fn check_x509_key( - .map_err(CryptoError::RSAGetPublicKeyError)? - .n() - .to_vec(); -- let mut cert_n_str = format!("{:?}", cert_n); -+ let mut cert_n_str = format!("{cert_n:?}"); - _ = cert_n_str.pop(); - _ = cert_n_str.remove(0); - let key = SubjectPublicKeyInfo::try_from(tpm_key.clone()) - .map_err(CryptoError::SubjectPublicKeyInfoFromRSAError)?; - let key_der = picky_asn1_der::to_vec(&key) - .map_err(CryptoError::SubjectPublicKeyInfoToDERError)?; -- let key_der_str = format!("{:?}", key_der); -+ let key_der_str = format!("{key_der:?}"); - - Ok(key_der_str.contains(&cert_n_str)) - } -@@ -418,14 +418,14 @@ pub fn check_x509_key( - .map_err(CryptoError::RSAGetPublicKeyError)? - .n() - .to_vec(); -- let mut cert_n_str = format!("{:?}", cert_n); -+ let mut cert_n_str = format!("{cert_n:?}"); - _ = cert_n_str.pop(); - _ = cert_n_str.remove(0); - let key = SubjectPublicKeyInfo::try_from(tpm_key.clone()) - .map_err(CryptoError::SubjectPublicKeyInfoFromRSAError)?; - let key_der = picky_asn1_der::to_vec(&key) - .map_err(CryptoError::SubjectPublicKeyInfoToDERError)?; -- let key_der_str = format!("{:?}", key_der); -+ let key_der_str = format!("{key_der:?}"); - - Ok(key_der_str.contains(&cert_n_str)) - } -@@ -437,14 +437,14 @@ pub fn check_x509_key( - .map_err(CryptoError::PublicKeyGetECCError)? - .public_key_to_der() - .map_err(CryptoError::PublicKeyToDERError)?; -- let mut cert_n_str = format!("{:?}", cert_n); -+ let mut cert_n_str = format!("{cert_n:?}"); - _ = cert_n_str.pop(); - _ = cert_n_str.remove(0); - let key = SubjectPublicKeyInfo::try_from(tpm_key.clone()) - .map_err(CryptoError::SubjectPublicKeyInfoFromECCError)?; - let key_der = picky_asn1_der::to_vec(&key) - .map_err(CryptoError::SubjectPublicKeyInfoToDERError)?; -- let key_der_str = format!("{:?}", key_der); -+ let key_der_str = format!("{key_der:?}"); - - Ok(key_der_str.contains(&cert_n_str)) - } -diff --git a/keylime/src/ima/entry.rs b/keylime/src/ima/entry.rs -index 1168b3c..982afa7 100644 ---- a/keylime/src/ima/entry.rs -+++ b/keylime/src/ima/entry.rs -@@ -431,10 +431,9 @@ impl TryFrom<&str> for Entry { - template_hash, - event_data: Box::new(ImaBuf::try_from(event)?), - }), -- template => Err(Error::new( -- ErrorKind::Other, -- format!("unrecognized template \"{template}\"",), -- )), -+ template => Err(Error::other(format!( -+ "unrecognized template \"{template}\"", -+ ))), - } - } - } -diff --git a/keylime/src/registrar_client.rs b/keylime/src/registrar_client.rs -index dcfcd22..e036845 100644 ---- a/keylime/src/registrar_client.rs -+++ b/keylime/src/registrar_client.rs -@@ -320,7 +320,7 @@ impl<'a> RegistrarClientBuilder<'a> { - // Try to reach the registrar - let addr = format!("http://{registrar_ip}:{registrar_port}/version"); - -- info!("Requesting registrar API version to {}", addr); -+ info!("Requesting registrar API version to {addr}"); - - let resp = reqwest::Client::new() - .get(&addr) -diff --git a/keylime/src/tpm.rs b/keylime/src/tpm.rs -index 8a8c85a..ac23720 100644 ---- a/keylime/src/tpm.rs -+++ b/keylime/src/tpm.rs -@@ -1344,7 +1344,7 @@ impl Context<'_> { - let mut pcrs = read_mask(mask)?; - - // add pcr16 if it isn't in the vec already -- if !pcrs.iter().any(|&pcr| pcr == PcrSlot::Slot16) { -+ if !pcrs.contains(&PcrSlot::Slot16) { - let mut slot16 = vec![PcrSlot::Slot16]; - pcrs.append(&mut slot16); - } -@@ -1838,9 +1838,7 @@ fn check_if_pcr_data_and_attestation_match( - .map_err(|source| TpmError::OpenSSLHasherFinish { source })?; - - log::trace!( -- "Attested to PCR digest: {:?}, read PCR digest: {:?}", -- attested_pcr, -- pcr_digest, -+ "Attested to PCR digest: {attested_pcr:?}, read PCR digest: {pcr_digest:?}", - ); - - Ok(memcmp::eq(attested_pcr, &pcr_digest)) -@@ -1884,12 +1882,11 @@ fn perform_quote_and_pcr_read( - } - - log::info!( -- "PCR data and attestation data mismatched on attempt {}", -- attempt -+ "PCR data and attestation data mismatched on attempt {attempt}" - ); - } - -- log::error!("PCR data and attestation data mismatched on all {} attempts, giving up", NUM_ATTESTATION_ATTEMPTS); -+ log::error!("PCR data and attestation data mismatched on all {NUM_ATTESTATION_ATTEMPTS} attempts, giving up"); - Err(TpmError::TooManyAttestationMismatches { - attempts: NUM_ATTESTATION_ATTEMPTS, - }) -@@ -2128,8 +2125,7 @@ pub mod testing { - // Always 1 PCR digest should follow - if count != 1 { - return Err(TpmError::InvalidRequest(format!( -- "Expected 1 PCR digest, got {}", -- count -+ "Expected 1 PCR digest, got {count}" - ))); - } - --- -2.47.3 - diff --git a/0005-tpm-add-policy-auth-for-EK-to-activate-crendential.patch b/0005-tpm-add-policy-auth-for-EK-to-activate-crendential.patch deleted file mode 100644 index 369e5e8..0000000 --- a/0005-tpm-add-policy-auth-for-EK-to-activate-crendential.patch +++ /dev/null @@ -1,225 +0,0 @@ -From d55b898c645d6beeda2952cd798ebfd7f14090a4 Mon Sep 17 00:00:00 2001 -From: Sergio Correia -Date: Wed, 17 Sep 2025 11:43:21 +0000 -Subject: [PATCH 5/6] tpm: add policy auth for EK to activate crendential - -Backport of upstream commit https://github.com/keylime/rust-keylime/commit/88884a5 - -Signed-off-by: Sergio Correia ---- - keylime/src/tpm.rs | 151 +++++++++++++++++++++++++++++++++++---------- - 1 file changed, 118 insertions(+), 33 deletions(-) - -diff --git a/keylime/src/tpm.rs b/keylime/src/tpm.rs -index ac23720..5e27f3a 100644 ---- a/keylime/src/tpm.rs -+++ b/keylime/src/tpm.rs -@@ -16,6 +16,9 @@ use std::{ - sync::{Arc, Mutex, OnceLock}, - }; - use thiserror::Error; -+use tss_esapi::handles::SessionHandle; -+use tss_esapi::interface_types::session_handles::PolicySession; -+use tss_esapi::structures::{DigestList, SymmetricDefinition}; - - use openssl::{ - hash::{Hasher, MessageDigest}, -@@ -26,9 +29,7 @@ use openssl::{ - - use tss_esapi::{ - abstraction::{ -- ak, -- cipher::Cipher, -- ek, -+ ak, ek, - pcr::{read_all, PcrData}, - DefaultKey, - }, -@@ -40,7 +41,7 @@ use tss_esapi::{ - }, - handles::{ - AuthHandle, KeyHandle, ObjectHandle, PcrHandle, PersistentTpmHandle, -- SessionHandle, TpmHandle, -+ TpmHandle, - }, - interface_types::{ - algorithm::{AsymmetricAlgorithm, HashingAlgorithm, PublicAlgorithm}, -@@ -116,6 +117,47 @@ const IAK_AUTH_POLICY_SHA256: [u8; 32] = [ - ]; - const UNIQUE_IAK: [u8; 3] = [0x49, 0x41, 0x4b]; - -+// Source: TCG EK Credential Profile for TPM Family 2.0; Level 0 Version 2.5 Revision 2 -+// Section B.6 -+const POLICY_A_SHA384: [u8; 48] = [ -+ 0x8b, 0xbf, 0x22, 0x66, 0x53, 0x7c, 0x17, 0x1c, 0xb5, 0x6e, 0x40, 0x3c, -+ 0x4d, 0xc1, 0xd4, 0xb6, 0x4f, 0x43, 0x26, 0x11, 0xdc, 0x38, 0x6e, 0x6f, -+ 0x53, 0x20, 0x50, 0xc3, 0x27, 0x8c, 0x93, 0x0e, 0x14, 0x3e, 0x8b, 0xb1, -+ 0x13, 0x38, 0x24, 0xcc, 0xb4, 0x31, 0x05, 0x38, 0x71, 0xc6, 0xdb, 0x53, -+]; -+const POLICY_A_SHA512: [u8; 64] = [ -+ 0x1e, 0x3b, 0x76, 0x50, 0x2c, 0x8a, 0x14, 0x25, 0xaa, 0x0b, 0x7b, 0x3f, -+ 0xc6, 0x46, 0xa1, 0xb0, 0xfa, 0xe0, 0x63, 0xb0, 0x3b, 0x53, 0x68, 0xf9, -+ 0xc4, 0xcd, 0xde, 0xca, 0xff, 0x08, 0x91, 0xdd, 0x68, 0x2b, 0xac, 0x1a, -+ 0x85, 0xd4, 0xd8, 0x32, 0xb7, 0x81, 0xea, 0x45, 0x19, 0x15, 0xde, 0x5f, -+ 0xc5, 0xbf, 0x0d, 0xc4, 0xa1, 0x91, 0x7c, 0xd4, 0x2f, 0xa0, 0x41, 0xe3, -+ 0xf9, 0x98, 0xe0, 0xee, -+]; -+const POLICY_A_SM3_256: [u8; 32] = [ -+ 0xc6, 0x7f, 0x7d, 0x35, 0xf6, 0x6f, 0x3b, 0xec, 0x13, 0xc8, 0x9f, 0xe8, -+ 0x98, 0x92, 0x1c, 0x65, 0x1b, 0x0c, 0xb5, 0xa3, 0x8a, 0x92, 0x69, 0x0a, -+ 0x62, 0xa4, 0x3c, 0x00, 0x12, 0xe4, 0xfb, 0x8b, -+]; -+const POLICY_C_SHA384: [u8; 48] = [ -+ 0xd6, 0x03, 0x2c, 0xe6, 0x1f, 0x2f, 0xb3, 0xc2, 0x40, 0xeb, 0x3c, 0xf6, -+ 0xa3, 0x32, 0x37, 0xef, 0x2b, 0x6a, 0x16, 0xf4, 0x29, 0x3c, 0x22, 0xb4, -+ 0x55, 0xe2, 0x61, 0xcf, 0xfd, 0x21, 0x7a, 0xd5, 0xb4, 0x94, 0x7c, 0x2d, -+ 0x73, 0xe6, 0x30, 0x05, 0xee, 0xd2, 0xdc, 0x2b, 0x35, 0x93, 0xd1, 0x65, -+]; -+const POLICY_C_SHA512: [u8; 64] = [ -+ 0x58, 0x9e, 0xe1, 0xe1, 0x46, 0x54, 0x47, 0x16, 0xe8, 0xde, 0xaf, 0xe6, -+ 0xdb, 0x24, 0x7b, 0x01, 0xb8, 0x1e, 0x9f, 0x9c, 0x7d, 0xd1, 0x6b, 0x81, -+ 0x4a, 0xa1, 0x59, 0x13, 0x87, 0x49, 0x10, 0x5f, 0xba, 0x53, 0x88, 0xdd, -+ 0x1d, 0xea, 0x70, 0x2f, 0x35, 0x24, 0x0c, 0x18, 0x49, 0x33, 0x12, 0x1e, -+ 0x2c, 0x61, 0xb8, 0xf5, 0x0d, 0x3e, 0xf9, 0x13, 0x93, 0xa4, 0x9a, 0x38, -+ 0xc3, 0xf7, 0x3f, 0xc8, -+]; -+const POLICY_C_SM3_256: [u8; 32] = [ -+ 0x2d, 0x4e, 0x81, 0x57, 0x8c, 0x35, 0x31, 0xd9, 0xbd, 0x1c, 0xdd, 0x7d, -+ 0x02, 0xba, 0x29, 0x8d, 0x56, 0x99, 0xa3, 0xe3, 0x9f, 0xc3, 0x55, 0x1b, -+ 0xfe, 0xff, 0xcf, 0x13, 0x2b, 0x49, 0xe1, 0x1d, -+]; -+ - /// TpmError wraps all possible errors raised in tpm.rs - #[derive(Error, Debug)] - pub enum TpmError { -@@ -1215,19 +1257,14 @@ impl Context<'_> { - /// Creates an empty authentication session - fn create_empty_session( - &mut self, -+ ctx: &mut tss_esapi::Context, - ses_type: SessionType, -+ symmetric: SymmetricDefinition, -+ hash_alg: HashingAlgorithm, - ) -> Result { -- let mut ctx = self.inner.lock().unwrap(); //#[allow_ci] - let Some(session) = ctx - .start_auth_session( -- None, -- None, -- None, -- ses_type, -- Cipher::aes_128_cfb().try_into().map_err(|source| { -- TpmError::TSSSymmetricDefinitionFromCipher { source } -- })?, -- HashingAlgorithm::Sha256, -+ None, None, None, ses_type, symmetric, hash_alg, - ) - .map_err(|source| { - TpmError::TSSStartAuthenticationSessionError { source } -@@ -1255,35 +1292,83 @@ impl Context<'_> { - ak: KeyHandle, - ek: KeyHandle, - ) -> Result { -- let (credential, secret) = parse_cred_and_secret(keyblob)?; -- -- let ek_auth = self.create_empty_session(SessionType::Policy)?; -- - let mut ctx = self.inner.lock().unwrap(); //#[allow_ci] - -- // We authorize ses2 with PolicySecret(ENDORSEMENT) as per PolicyA -- let _ = ctx.execute_with_nullauth_session(|context| { -- context.policy_secret( -- ek_auth.try_into()?, -- AuthHandle::Endorsement, -- Default::default(), -- Default::default(), -- Default::default(), -- None, -- ) -- })?; -+ let (credential, secret) = parse_cred_and_secret(keyblob)?; -+ let mut policy_digests = DigestList::new(); -+ let (parent_public, _, _) = ctx.read_public(ek)?; -+ let ek_hash_alg = parent_public.name_hashing_algorithm(); -+ let ek_symmetric = -+ parent_public.symmetric_algorithm().ok_or_else(|| { -+ TpmError::TSSReadPublicError { -+ source: tss_esapi::Error::WrapperError( -+ tss_esapi::WrapperErrorKind::InvalidParam, -+ ), -+ } -+ })?; -+ match ek_hash_alg { -+ HashingAlgorithm::Sha384 => { -+ policy_digests -+ .add(Digest::try_from(POLICY_A_SHA384.as_slice())?)?; -+ policy_digests -+ .add(Digest::try_from(POLICY_C_SHA384.as_slice())?)?; -+ } -+ HashingAlgorithm::Sha512 => { -+ policy_digests -+ .add(Digest::try_from(POLICY_A_SHA512.as_slice())?)?; -+ policy_digests -+ .add(Digest::try_from(POLICY_C_SHA512.as_slice())?)?; -+ } -+ HashingAlgorithm::Sm3_256 => { -+ policy_digests -+ .add(Digest::try_from(POLICY_A_SM3_256.as_slice())?)?; -+ policy_digests -+ .add(Digest::try_from(POLICY_C_SM3_256.as_slice())?)?; -+ } -+ _ => (), -+ }; -+ -+ let ek_auth = self.create_empty_session( -+ &mut ctx, -+ SessionType::Policy, -+ ek_symmetric.into(), -+ ek_hash_alg, -+ )?; - -+ // We authorize session according to the EK profile spec - let result = ctx -- .execute_with_sessions( -- (Some(AuthSession::Password), Some(ek_auth), None), -- |context| { -- context.activate_credential(ak, ek, credential, secret) -+ .execute_with_temporary_object( -+ SessionHandle::from(ek_auth).into(), -+ |ctx, _| { -+ let _ = ctx.execute_with_nullauth_session(|ctx| { -+ ctx.policy_secret( -+ PolicySession::try_from(ek_auth)?, -+ AuthHandle::Endorsement, -+ Default::default(), -+ Default::default(), -+ Default::default(), -+ None, -+ ) -+ })?; -+ if !policy_digests.is_empty() { -+ ctx.policy_or( -+ PolicySession::try_from(ek_auth)?, -+ policy_digests, -+ )? -+ } -+ ctx.execute_with_sessions( -+ (Some(AuthSession::Password), Some(ek_auth), None), -+ |ctx| { -+ ctx.activate_credential( -+ ak, ek, credential, secret, -+ ) -+ }, -+ ) - }, - ) - .map_err(TpmError::from); - - // Clear sessions after use -- ctx.flush_context(SessionHandle::from(ek_auth).into())?; - ctx.clear_sessions(); - - result --- -2.47.3 - diff --git a/0006-keylime-agent.conf-add-all-accepted-TPM-encryption-a.patch b/0006-keylime-agent.conf-add-all-accepted-TPM-encryption-a.patch deleted file mode 100644 index 51f859b..0000000 --- a/0006-keylime-agent.conf-add-all-accepted-TPM-encryption-a.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 2542812cf92ef35c71734694599dfb3aab9fdabd Mon Sep 17 00:00:00 2001 -From: Sergio Correia -Date: Wed, 17 Sep 2025 12:45:54 +0100 -Subject: [PATCH 6/6] keylime-agent.conf: add all accepted TPM encryption algs - -Backported from upstream commit https://github.com/keylime/rust-keylime/commit/a99bb40 - -Signed-off-by: Sergio Correia ---- - keylime-agent.conf | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/keylime-agent.conf b/keylime-agent.conf -index 71f6096..7669604 100644 ---- a/keylime-agent.conf -+++ b/keylime-agent.conf -@@ -217,7 +217,7 @@ allow_payload_revocation_actions = true - # - # Currently accepted values include: - # - hashing: sha512, sha384, sha256 or sha1 --# - encryption: ecc or rsa -+# - encryption: rsa (alias for rsa2048), rsa1024, rsa2048, rsa3072, rsa4096, ecc (alias for ecc256), ecc192, ecc224, ecc256, ecc384, ecc521 or ecc_sm2. - # - signing: rsassa, rsapss, ecdsa, ecdaa or ecschnorr - # - # To override tpm_hash_alg, set KEYLIME_AGENT_TPM_HASH_ALG environment variable. --- -2.47.3 - diff --git a/0007-Fix-ECC-RSA-algorithm-selection-and-reporting-for-ke.patch b/0007-Fix-ECC-RSA-algorithm-selection-and-reporting-for-ke.patch deleted file mode 100644 index 96e7b5f..0000000 --- a/0007-Fix-ECC-RSA-algorithm-selection-and-reporting-for-ke.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 9b90f051cddce7c62b7b2fb6f6349f8db9bcabb5 Mon Sep 17 00:00:00 2001 -From: Sergio Correia -Date: Mon, 6 Oct 2025 14:37:29 +0000 -Subject: [PATCH 7/7] Fix ECC/RSA algorithm selection and reporting for keylime - agent - -Backport of upstream PRs: -- https://github.com/keylime/rust-keylime/pull/1132 -- https://github.com/keylime/rust-keylime/pull/1134 - -Signed-off-by: Sergio Correia ---- - keylime-agent/src/agent_handler.rs | 2 +- - keylime-agent/src/quotes_handler.rs | 6 +++--- - keylime/src/algorithms.rs | 4 ++-- - keylime/src/tpm.rs | 4 ++-- - 4 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/keylime-agent/src/agent_handler.rs b/keylime-agent/src/agent_handler.rs -index 13bcc37..ec7f8ed 100644 ---- a/keylime-agent/src/agent_handler.rs -+++ b/keylime-agent/src/agent_handler.rs -@@ -109,7 +109,7 @@ mod tests { - let result: JsonWrapper = test::read_body_json(resp).await; - assert_eq!(result.results.agent_uuid.as_str(), "DEADBEEF"); - assert_eq!(result.results.tpm_hash_alg.as_str(), "sha256"); -- assert_eq!(result.results.tpm_enc_alg.as_str(), "rsa"); -+ assert_eq!(result.results.tpm_enc_alg.as_str(), "rsa2048"); - assert_eq!(result.results.tpm_sign_alg.as_str(), "rsassa"); - - // Explicitly drop QuoteData to cleanup keys -diff --git a/keylime-agent/src/quotes_handler.rs b/keylime-agent/src/quotes_handler.rs -index d61adf2..bc0ddaa 100644 ---- a/keylime-agent/src/quotes_handler.rs -+++ b/keylime-agent/src/quotes_handler.rs -@@ -405,7 +405,7 @@ mod tests { - let result: JsonWrapper = - test::read_body_json(resp).await; - assert_eq!(result.results.hash_alg.as_str(), "sha256"); -- assert_eq!(result.results.enc_alg.as_str(), "rsa"); -+ assert_eq!(result.results.enc_alg.as_str(), "rsa2048"); - assert_eq!(result.results.sign_alg.as_str(), "rsassa"); - assert!( - pkey_pub_from_pem(&result.results.pubkey.unwrap()) //#[allow_ci] -@@ -451,7 +451,7 @@ mod tests { - let result: JsonWrapper = - test::read_body_json(resp).await; - assert_eq!(result.results.hash_alg.as_str(), "sha256"); -- assert_eq!(result.results.enc_alg.as_str(), "rsa"); -+ assert_eq!(result.results.enc_alg.as_str(), "rsa2048"); - assert_eq!(result.results.sign_alg.as_str(), "rsassa"); - assert!( - pkey_pub_from_pem(&result.results.pubkey.unwrap()) //#[allow_ci] -@@ -513,7 +513,7 @@ mod tests { - let result: JsonWrapper = - test::read_body_json(resp).await; - assert_eq!(result.results.hash_alg.as_str(), "sha256"); -- assert_eq!(result.results.enc_alg.as_str(), "rsa"); -+ assert_eq!(result.results.enc_alg.as_str(), "rsa2048"); - assert_eq!(result.results.sign_alg.as_str(), "rsassa"); - - if let Some(ima_mutex) = "edata.ima_ml_file { -diff --git a/keylime/src/algorithms.rs b/keylime/src/algorithms.rs -index cda8966..4b4205a 100644 ---- a/keylime/src/algorithms.rs -+++ b/keylime/src/algorithms.rs -@@ -195,12 +195,12 @@ impl fmt::Display for EncryptionAlgorithm { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let value = match self { - EncryptionAlgorithm::Rsa1024 => "rsa1024", -- EncryptionAlgorithm::Rsa2048 => "rsa", /* for backwards compatibility */ -+ EncryptionAlgorithm::Rsa2048 => "rsa2048", - EncryptionAlgorithm::Rsa3072 => "rsa3072", - EncryptionAlgorithm::Rsa4096 => "rsa4096", - EncryptionAlgorithm::Ecc192 => "ecc192", - EncryptionAlgorithm::Ecc224 => "ecc224", -- EncryptionAlgorithm::Ecc256 => "ecc", /* for backwards compatibility */ -+ EncryptionAlgorithm::Ecc256 => "ecc256", - EncryptionAlgorithm::Ecc384 => "ecc384", - EncryptionAlgorithm::Ecc521 => "ecc521", - EncryptionAlgorithm::EccSm2 => "ecc_sm2", -diff --git a/keylime/src/tpm.rs b/keylime/src/tpm.rs -index 5e27f3a..f907aca 100644 ---- a/keylime/src/tpm.rs -+++ b/keylime/src/tpm.rs -@@ -31,7 +31,7 @@ use tss_esapi::{ - abstraction::{ - ak, ek, - pcr::{read_all, PcrData}, -- DefaultKey, -+ AsymmetricAlgorithmSelection, DefaultKey, - }, - attributes::{ - object::ObjectAttributesBuilder, session::SessionAttributesBuilder, -@@ -682,7 +682,7 @@ impl Context<'_> { - &mut self.inner.lock().unwrap(), //#[allow_ci] - handle, - hash_alg.into(), -- key_alg.into(), -+ Into::::into(key_alg), - sign_alg.into(), - None, - DefaultKey, --- -2.47.3 - diff --git a/keylime-agent-rust.spec b/keylime-agent-rust.spec index 06d25ff..5322bbf 100644 --- a/keylime-agent-rust.spec +++ b/keylime-agent-rust.spec @@ -15,9 +15,9 @@ %endif Name: keylime-agent-rust -Version: 0.2.7 +Version: 0.2.9 Release: %{?autorelease}%{!?autorelease:1%{?dist}} -Summary: Rust agent for Keylime +Summary: The Keylime agent # Upstream license specification: Apache-2.0 # @@ -55,27 +55,27 @@ Source0: %{url}/archive/refs/tags/v%{version}.tar.gz # Rename the vendor.tar.zstd tarball to rust-keylime-%%{version}-vendor.tar.zstd Source1: rust-keylime-%{version}-vendor.tar.zstd ## (0-99) General patches -# Enable logging for the keylime library -# Patch from https://github.com/keylime/rust-keylime/pull/922 -Patch0: rust-keylime-enable-logging-keylime-lib.patch # Drop completely the legacy-python-actions feature -Patch1: rust-keylime-metadata.patch -# Update to openssl 0.10.70 to fix CVE-2025-24898 -# Patch from https://github.com/keylime/rust-keylime/pull/926 -Patch2: rust-keylime-openssl-0.10.70.patch -# Backport of https://github.com/keylime/rust-keylime/pull/846 -# to enable different key sizes and curves for EK and AK. -Patch3: 0003-Enable-non-standard-key-sizes-and-curves-for-EK-and-.patch -Patch4: 0004-Clippy-fixes.patch -Patch5: 0005-tpm-add-policy-auth-for-EK-to-activate-crendential.patch -Patch6: 0006-keylime-agent.conf-add-all-accepted-TPM-encryption-a.patch -Patch7: 0007-Fix-ECC-RSA-algorithm-selection-and-reporting-for-ke.patch +Patch1: 0001-rust-keylime-metadata.patch +# Do not require /usr/libexec/keylime to be present +Patch2: 0002-rust-keylime-do-not-require-usr-libexec.patch ## (100-199) Patches for building from system Rust libraries (Fedora) ## (200+) Patches for building from vendored Rust libraries (RHEL) ExclusiveArch: %{rust_arches} +BuildRequires: clang +BuildRequires: git-core +BuildRequires: openssl-devel +BuildRequires: systemd +BuildRequires: tpm2-tss-devel +%if 0%{?bundled_rust_deps} +BuildRequires: rust-toolset +%else +BuildRequires: rust-packaging >= 21-2 +%endif + Requires: tpm2-tss Requires: util-linux-core @@ -85,24 +85,78 @@ Requires: util-linux-core Requires: keylime-base %endif -BuildRequires: git-core -BuildRequires: systemd -BuildRequires: openssl-devel -BuildRequires: libarchive-devel -BuildRequires: tpm2-tss-devel -BuildRequires: clang -%if 0%{?bundled_rust_deps} -BuildRequires: rust-toolset -%else -BuildRequires: rust-packaging >= 21-2 -%endif +# Requires common files from exact same release +Requires: keylime-agent-rust-common = %{version}-%{release} +# Require the IMA emulator +Requires: keylime-agent-rust-ima-emulator%{?_isa} = %{version}-%{release} -# Virtual Provides to support swapping between Python and Rust implementation -Provides: keylime-agent -Conflicts: keylime-agent +# Virtual Provides to support swapping between pull and push model agents +Provides: keylime-agent = %{version}-%{release} %description -Rust agent for Keylime +The Keylime agent + +#=============================================================================== + +%package common +Summary: Common files for Keylime agent +License: (Apache-2.0 OR MIT) AND BSD-3-Clause AND (MIT OR Apache-2.0) AND Unicode-DFS-2016 AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 OR MIT OR Zlib) AND Apache-2.0 WITH LLVM-exception AND ISC AND MIT AND (MIT OR Unlicense) +BuildArch: noarch + +# This is necessary to provide a clean upgrade path from the previous +# keylime-agent-rust which shipped the IMA emulator +Obsoletes: keylime-agent-rust < %{version}-%{release} + +%description common +Common files for the Keylime agent in both push and pull models + +#=============================================================================== + +%package push +Summary: The Keylime agent for push model deployment +License: (Apache-2.0 OR MIT) AND BSD-3-Clause AND (MIT OR Apache-2.0) AND Unicode-DFS-2016 AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 OR MIT OR Zlib) AND Apache-2.0 WITH LLVM-exception AND ISC AND MIT AND (MIT OR Unlicense) +Requires: tpm2-tss +Requires: util-linux-core + +# Requires common files from exact same release +Requires: keylime-agent-rust-common = %{version}-%{release} +# Require the IMA emulator +Requires: keylime-agent-rust-ima-emulator%{?_isa} = %{version}-%{release} + +# The keylime-base package provides the keylime user creation. It is available +# from Fedora 36 +%if 0%{?fedora} >= 36 || 0%{?rhel} >= 9 +Requires: keylime-base +%endif + +# Virtual Provides to support swapping between pull and push model agents +Provides: keylime-agent = %{version}-%{release} + +%description push +The Keylime agent for push model deployment + +#=============================================================================== + +%package ima-emulator +Summary: The Keylime IMA emulator +License: (Apache-2.0 OR MIT) AND BSD-3-Clause AND (MIT OR Apache-2.0) AND Unicode-DFS-2016 AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 OR MIT OR Zlib) AND Apache-2.0 WITH LLVM-exception AND ISC AND MIT AND (MIT OR Unlicense) +Requires: tpm2-tss + +# Requires common files from exact same release +Requires: keylime-agent-rust-common = %{version}-%{release} + +# The keylime-base package provides the keylime user creation. It is available +# from Fedora 36 +%if 0%{?fedora} >= 36 || 0%{?rhel} >= 9 +Requires: keylime-base +%endif + +Provides: keylime-ima-emulator = %{version}-%{release} + +%description ima-emulator +The Keylime IMA emulator for testing with emulated TPM + +#=============================================================================== %prep %autosetup -S git -n rust-keylime-%{version} -N %{?bundled_rust_deps:-a1} @@ -110,9 +164,11 @@ Rust agent for Keylime %if 0%{?bundled_rust_deps} # Source1 is vendored dependencies %cargo_prep -v vendor -%autopatch -m 200 -p1 +# Add back the line below if patches are added (do not forget the '%') +# autopatch -m 200 -p1 %else -%autopatch -m 100 -M 199 -p1 +# Add back the line below if patches are added (do not forget the '%') +# autopatch -m 100 -M 199 -p1 %cargo_prep %generate_buildrequires %cargo_generate_buildrequires @@ -130,7 +186,6 @@ Rust agent for Keylime mkdir -p %{buildroot}/%{_sharedstatedir}/keylime mkdir -p --mode=0700 %{buildroot}/%{_rundir}/keylime -mkdir -p --mode=0700 %{buildroot}/%{_libexecdir}/keylime mkdir -p --mode=0700 %{buildroot}/%{_sysconfdir}/keylime mkdir -p --mode=0700 %{buildroot}/%{_sysconfdir}/keylime/agent.conf.d @@ -143,6 +198,9 @@ install -Dpm 644 ./dist/systemd/system/keylime_agent.service \ install -Dpm 644 ./dist/systemd/system/var-lib-keylime-secure.mount \ %{buildroot}%{_unitdir}/var-lib-keylime-secure.mount +install -Dpm 644 ./dist/systemd/system/keylime_push_model_agent.service \ + %{buildroot}%{_unitdir}/keylime_push_model_agent.service + # Setting up the agent to use keylime:keylime user/group after dropping privileges. cat > %{buildroot}/%{_sysconfdir}/keylime/agent.conf.d/001-run_as.conf << EOF [agent] @@ -155,6 +213,9 @@ install -Dpm 0755 \ install -Dpm 0755 \ -t %{buildroot}%{_bindir} \ ./target/release/keylime_ima_emulator +install -Dpm 0755 \ + -t %{buildroot}%{_bindir} \ + ./target/release/keylime_push_model_agent %posttrans chmod 500 %{_sysconfdir}/keylime/agent.conf.d @@ -163,30 +224,48 @@ chmod 500 %{_sysconfdir}/keylime chown -R keylime:keylime %{_sysconfdir}/keylime %preun +%systemd_preun keylime_push_model_agent.service %systemd_preun keylime_agent.service %systemd_preun var-lib-keylime-secure.mount %postun +%systemd_postun_with_restart keylime_push_model_agent.service %systemd_postun_with_restart keylime_agent.service %systemd_postun_with_restart var-lib-keylime-secure.mount -%files +%files common %license LICENSE -%license LICENSE.dependencies -%if 0%{?bundled_rust_deps} -%license cargo-vendor.txt -%endif %doc README.md %attr(500,keylime,keylime) %dir %{_sysconfdir}/keylime %attr(500,keylime,keylime) %dir %{_sysconfdir}/keylime/agent.conf.d %config(noreplace) %attr(400,keylime,keylime) %{_sysconfdir}/keylime/agent.conf.d/001-run_as.conf %config(noreplace) %attr(400,keylime,keylime) %{_sysconfdir}/keylime/agent.conf -%{_unitdir}/keylime_agent.service -%{_unitdir}/var-lib-keylime-secure.mount %attr(700,keylime,keylime) %dir %{_rundir}/keylime %attr(700,keylime,keylime) %{_sharedstatedir}/keylime -%attr(700,keylime,keylime) %{_libexecdir}/keylime + +%files +%license LICENSE.dependencies +%if 0%{?bundled_rust_deps} +%license cargo-vendor.txt +%endif +%config(noreplace) %attr(400,keylime,keylime) %{_sysconfdir}/keylime/agent.conf +%{_unitdir}/keylime_agent.service +%{_unitdir}/var-lib-keylime-secure.mount %{_bindir}/keylime_agent + +%files push +%license LICENSE.dependencies +%if 0%{?bundled_rust_deps} +%license cargo-vendor.txt +%endif +%{_unitdir}/keylime_push_model_agent.service +%{_bindir}/keylime_push_model_agent + +%files ima-emulator +%license LICENSE.dependencies +%if 0%{?bundled_rust_deps} +%license cargo-vendor.txt +%endif %{_bindir}/keylime_ima_emulator %if %{with check} diff --git a/rust-keylime-openssl-0.10.70.patch b/rust-keylime-openssl-0.10.70.patch deleted file mode 100644 index 3e695f7..0000000 --- a/rust-keylime-openssl-0.10.70.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 6087804c15b16a1456a191ccea25acec7a3f7fc0 Mon Sep 17 00:00:00 2001 -From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> -Date: Tue, 4 Feb 2025 09:55:03 +0000 -Subject: [PATCH] build(deps): bump openssl from 0.10.68 to 0.10.70 - -Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.68 to 0.10.70. -- [Release notes](https://github.com/sfackler/rust-openssl/releases) -- [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.68...openssl-v0.10.70) - ---- -updated-dependencies: -- dependency-name: openssl - dependency-type: direct:production -... - -Signed-off-by: dependabot[bot] ---- - Cargo.lock | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/Cargo.lock b/Cargo.lock -index 6cf79ea7..4c0ac1e6 100644 ---- a/Cargo.lock -+++ b/Cargo.lock -@@ -1387,9 +1387,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - - [[package]] - name = "openssl" --version = "0.10.68" -+version = "0.10.70" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -+checksum = "61cfb4e166a8bb8c9b55c500bc2308550148ece889be90f609377e58140f42c6" - dependencies = [ - "bitflags 2.4.0", - "cfg-if", -@@ -1402,20 +1402,20 @@ dependencies = [ - - [[package]] - name = "openssl-macros" --version = "0.1.0" -+version = "0.1.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" -+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" - dependencies = [ - "proc-macro2", - "quote", -- "syn 1.0.100", -+ "syn 2.0.90", - ] - - [[package]] - name = "openssl-sys" --version = "0.9.104" -+version = "0.9.105" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -+checksum = "8b22d5b84be05a8d6947c7cb71f7c849aa0f112acd4bf51c2a7c1c988ac0a9dc" - dependencies = [ - "cc", - "libc", diff --git a/sources b/sources index ffed746..386cd23 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (rust-keylime-0.2.7-vendor.tar.zstd) = cac2cbe6b1831e5f8c1c7981df54b94dfab38e3784b672fe4a5ef85f22af7cb1accb3f726951579a10abb11205d50e58977e7146eba386195b1d6d126043e906 -SHA512 (v0.2.7.tar.gz) = 6a9f4e581aa49c8be1599d235a54c6a65d0f45340ef37c3d08124b75c4c5ca2b8467dc00cac8dfae5402b5690bb90fe69a994770fe2715de6e9d4070dabebb7d +SHA512 (v0.2.9.tar.gz) = f51ce187462278328a96a05dfb6315167bd3be154cb1c9ad933de33d246e696b25bb487071a824ed552456016bb64154e89f5f8a0dc76b94eb896be0f4787e9f +SHA512 (rust-keylime-0.2.9-vendor.tar.zstd) = 86899e58a2ba7a26c29ba15b6c7bca51dd4500ade8468a2f1697e6b23feb2e2be2e5323b8fc351e3c04aa970dfb07b909c07349f822358b33d439a40f4ab596b