diff --git a/src/agent/Cargo.lock b/src/agent/Cargo.lock index e80742b740..e9244b8278 100644 --- a/src/agent/Cargo.lock +++ b/src/agent/Cargo.lock @@ -238,9 +238,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.12" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fec134f64e2bc57411226dfc4e52dec859ddfc7e711fc5e07b612584f000e4aa" +checksum = "df895a515f70646414f4b45c0b79082783b80552b373a68283012928df56f522" dependencies = [ "flate2", "futures-core", @@ -387,7 +387,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -443,13 +443,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.82" +version = "0.1.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" +checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -461,7 +461,7 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "attester" version = "0.1.0" -source = "git+https://github.com/confidential-containers/guest-components?rev=v0.10.0#075b9a9ee77227d9d92b6f3649ef69de5e72d204" +source = "git+https://github.com/confidential-containers/guest-components?rev=514c561d933cb11a0f1628621a0b930157af76cd#514c561d933cb11a0f1628621a0b930157af76cd" dependencies = [ "anyhow", "async-trait", @@ -474,7 +474,7 @@ dependencies = [ "serde_with", "sha2", "strum", - "thiserror", + "thiserror 2.0.11", ] [[package]] @@ -624,7 +624,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afb15541e888071f64592c0b4364fdff21b7cb0a247f984296699351963a8721" dependencies = [ "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -720,7 +720,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", "syn_derive", ] @@ -852,7 +852,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "190baaad529bcfbde9e1a19022c42781bdb6ff9de25721abdb8fd98c0807730b" dependencies = [ "libc", - "thiserror", + "thiserror 1.0.62", ] [[package]] @@ -896,7 +896,7 @@ dependencies = [ "libc", "nix 0.24.3", "notify", - "oci-spec", + "oci-spec 0.6.8", "once_cell", "path-clean", "regex", @@ -959,7 +959,7 @@ dependencies = [ "log", "nix 0.25.1", "regex", - "thiserror", + "thiserror 1.0.62", ] [[package]] @@ -1060,7 +1060,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -1290,7 +1290,7 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "crypto" version = "0.1.0" -source = "git+https://github.com/confidential-containers/guest-components?rev=v0.10.0#075b9a9ee77227d9d92b6f3649ef69de5e72d204" +source = "git+https://github.com/confidential-containers/guest-components?rev=514c561d933cb11a0f1628621a0b930157af76cd#514c561d933cb11a0f1628621a0b930157af76cd" dependencies = [ "aes-gcm", "anyhow", @@ -1383,7 +1383,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -1454,7 +1454,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -1487,7 +1487,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core 0.20.10", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -1526,7 +1526,7 @@ checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -1578,7 +1578,7 @@ dependencies = [ "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -1588,7 +1588,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "206868b8242f27cecce124c19fd88157fbd0dd334df2587f36417bafbc85097b" dependencies = [ "derive_builder_core", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -1641,7 +1641,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -1791,7 +1791,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -2013,9 +2013,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -2028,9 +2028,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -2038,15 +2038,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -2055,9 +2055,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" @@ -2089,26 +2089,26 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-timer" @@ -2118,9 +2118,9 @@ checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -2582,7 +2582,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -2622,20 +2622,29 @@ dependencies = [ [[package]] name = "idna" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd69211b9b519e98303c015e21a007e293db403b6c85b9b124e133d25e242cdd" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "icu_normalizer", - "icu_properties", + "idna_adapter", "smallvec", "utf8_iter", ] +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + [[package]] name = "image-rs" version = "0.1.0" -source = "git+https://github.com/confidential-containers/guest-components?rev=v0.10.0#075b9a9ee77227d9d92b6f3649ef69de5e72d204" +source = "git+https://github.com/confidential-containers/guest-components?rev=514c561d933cb11a0f1628621a0b930157af76cd#514c561d933cb11a0f1628621a0b930157af76cd" dependencies = [ "anyhow", "async-compression", @@ -2649,12 +2658,11 @@ dependencies = [ "hex", "kbc", "krata-tokio-tar", - "lazy_static", "log", "loopdev", "nix 0.29.0", - "oci-client", - "oci-spec", + "oci-client 0.14.0", + "oci-spec 0.7.1", "ocicrypt-rs", "protobuf 3.5.1", "reqwest", @@ -2667,7 +2675,7 @@ dependencies = [ "strum", "strum_macros", "tokio", - "tokio-util 0.7.11", + "tokio-util 0.7.13", "ttrpc", "ttrpc-codegen", "url", @@ -2833,7 +2841,7 @@ dependencies = [ "combine", "jni-sys", "log", - "thiserror", + "thiserror 1.0.62", "walkdir", "windows-sys 0.45.0", ] @@ -2883,7 +2891,7 @@ dependencies = [ "jsonptr", "serde", "serde_json", - "thiserror", + "thiserror 1.0.62", ] [[package]] @@ -2983,7 +2991,7 @@ dependencies = [ "serde", "serde_json", "superboring", - "thiserror", + "thiserror 1.0.62", "zeroize", ] @@ -3031,7 +3039,7 @@ dependencies = [ "netlink-packet-utils", "netlink-sys", "nix 0.24.3", - "oci-spec", + "oci-spec 0.6.8", "opentelemetry", "procfs 0.12.0", "prometheus", @@ -3057,7 +3065,7 @@ dependencies = [ "strum_macros", "tempfile", "test-utils", - "thiserror", + "thiserror 1.0.62", "tokio", "tokio-vsock 0.3.4", "toml", @@ -3101,7 +3109,7 @@ dependencies = [ "lazy_static", "libc", "nix 0.24.3", - "oci-spec", + "oci-spec 0.6.8", "once_cell", "rand", "runtime-spec", @@ -3111,7 +3119,7 @@ dependencies = [ "slog", "slog-scope", "subprocess", - "thiserror", + "thiserror 1.0.62", ] [[package]] @@ -3125,7 +3133,7 @@ dependencies = [ "glob", "lazy_static", "num_cpus", - "oci-spec", + "oci-spec 0.6.8", "regex", "safe-path", "serde", @@ -3134,14 +3142,14 @@ dependencies = [ "slog", "slog-scope", "sysinfo", - "thiserror", + "thiserror 1.0.62", "toml", ] [[package]] name = "kbc" version = "0.1.0" -source = "git+https://github.com/confidential-containers/guest-components?rev=v0.10.0#075b9a9ee77227d9d92b6f3649ef69de5e72d204" +source = "git+https://github.com/confidential-containers/guest-components?rev=514c561d933cb11a0f1628621a0b930157af76cd#514c561d933cb11a0f1628621a0b930157af76cd" dependencies = [ "anyhow", "async-trait", @@ -3170,7 +3178,7 @@ dependencies = [ [[package]] name = "kbs_protocol" version = "0.1.0" -source = "git+https://github.com/confidential-containers/guest-components?rev=v0.10.0#075b9a9ee77227d9d92b6f3649ef69de5e72d204" +source = "git+https://github.com/confidential-containers/guest-components?rev=514c561d933cb11a0f1628621a0b930157af76cd#514c561d933cb11a0f1628621a0b930157af76cd" dependencies = [ "anyhow", "async-trait", @@ -3185,7 +3193,7 @@ dependencies = [ "serde", "serde_json", "sha2", - "thiserror", + "thiserror 2.0.11", "tokio", "url", "zeroize", @@ -3356,9 +3364,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.155" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libloading" @@ -3452,9 +3460,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" dependencies = [ "value-bag", ] @@ -3648,7 +3656,7 @@ dependencies = [ "anyhow", "byteorder", "paste", - "thiserror", + "thiserror 1.0.62", ] [[package]] @@ -3955,9 +3963,9 @@ dependencies = [ [[package]] name = "oci-client" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f5098b86f972ac3484f7c9011bbbbd64aaa7e21d10d2c1a91fefb4ad0ba2ad9" +checksum = "53e050f8bab3f561aa5ab537e1a6ed24006d58b4ee93cd6bb2c0cb822726f306" dependencies = [ "bytes 1.6.1", "chrono", @@ -3966,23 +3974,24 @@ dependencies = [ "http-auth", "jwt", "lazy_static", + "oci-spec 0.7.1", "olpc-cjson", "regex", "reqwest", "serde", "serde_json", "sha2", - "thiserror", + "thiserror 1.0.62", "tokio", "tracing", "unicase", ] [[package]] -name = "oci-distribution" -version = "0.11.0" +name = "oci-client" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b95a2c51531af0cb93761f66094044ca6ea879320bccd35ab747ff3fcab3f422" +checksum = "474675fdc023fbcc9dcf4782e938a3a1ae5fd469c728d8db40599bd25c77e1ba" dependencies = [ "bytes 1.6.1", "chrono", @@ -3991,13 +4000,14 @@ dependencies = [ "http-auth", "jwt", "lazy_static", + "oci-spec 0.7.1", "olpc-cjson", "regex", "reqwest", "serde", "serde_json", "sha2", - "thiserror", + "thiserror 1.0.62", "tokio", "tracing", "unicase", @@ -4017,13 +4027,29 @@ dependencies = [ "serde_json", "strum", "strum_macros", - "thiserror", + "thiserror 1.0.62", +] + +[[package]] +name = "oci-spec" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da406e58efe2eb5986a6139626d611ce426e5324a824133d76367c765cf0b882" +dependencies = [ + "derive_builder", + "getset", + "regex", + "serde", + "serde_json", + "strum", + "strum_macros", + "thiserror 2.0.11", ] [[package]] name = "ocicrypt-rs" version = "0.1.0" -source = "git+https://github.com/confidential-containers/guest-components?rev=v0.10.0#075b9a9ee77227d9d92b6f3649ef69de5e72d204" +source = "git+https://github.com/confidential-containers/guest-components?rev=514c561d933cb11a0f1628621a0b930157af76cd#514c561d933cb11a0f1628621a0b930157af76cd" dependencies = [ "aes", "anyhow", @@ -4034,7 +4060,6 @@ dependencies = [ "ctr", "hmac", "kbc", - "lazy_static", "pin-project-lite", "protobuf 3.5.1", "ring", @@ -4083,7 +4108,7 @@ dependencies = [ "pin-project", "rand", "serde", - "thiserror", + "thiserror 1.0.62", "tokio", "tokio-stream", ] @@ -4335,14 +4360,14 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[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" @@ -4537,9 +4562,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] @@ -4596,7 +4621,7 @@ dependencies = [ "parking_lot 0.12.3", "procfs 0.16.0", "protobuf 2.28.0", - "thiserror", + "thiserror 1.0.62", ] [[package]] @@ -4664,7 +4689,7 @@ checksum = "0bcc343da15609eaecd65f8aa76df8dc4209d325131d8219358c0aaaebab0bf6" dependencies = [ "once_cell", "protobuf-support", - "thiserror", + "thiserror 1.0.62", ] [[package]] @@ -4688,7 +4713,7 @@ dependencies = [ "protobuf-parse", "regex", "tempfile", - "thiserror", + "thiserror 1.0.62", ] [[package]] @@ -4703,7 +4728,7 @@ dependencies = [ "protobuf 3.5.1", "protobuf-support", "tempfile", - "thiserror", + "thiserror 1.0.62", "which", ] @@ -4713,7 +4738,7 @@ version = "3.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0766e3675a627c327e4b3964582594b0e8741305d628a98a5de75a1d15f99b9" dependencies = [ - "thiserror", + "thiserror 1.0.62", ] [[package]] @@ -4721,7 +4746,7 @@ name = "protocols" version = "0.1.0" dependencies = [ "async-trait", - "oci-spec", + "oci-spec 0.6.8", "protobuf 3.5.1", "serde", "serde_json", @@ -4777,7 +4802,7 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls", - "thiserror", + "thiserror 1.0.62", "tokio", "tracing", ] @@ -4794,7 +4819,7 @@ dependencies = [ "rustc-hash", "rustls", "slab", - "thiserror", + "thiserror 1.0.62", "tinyvec", "tracing", ] @@ -4921,7 +4946,7 @@ checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ "getrandom", "libredox", - "thiserror", + "thiserror 1.0.62", ] [[package]] @@ -5034,7 +5059,7 @@ dependencies = [ "sync_wrapper", "tokio", "tokio-rustls", - "tokio-util 0.7.11", + "tokio-util 0.7.13", "tower-service", "url", "wasm-bindgen", @@ -5048,7 +5073,7 @@ dependencies = [ [[package]] name = "resource_uri" version = "0.1.0" -source = "git+https://github.com/confidential-containers/guest-components?rev=v0.10.0#075b9a9ee77227d9d92b6f3649ef69de5e72d204" +source = "git+https://github.com/confidential-containers/guest-components?rev=514c561d933cb11a0f1628621a0b930157af76cd#514c561d933cb11a0f1628621a0b930157af76cd" dependencies = [ "anyhow", "serde", @@ -5130,9 +5155,9 @@ dependencies = [ [[package]] name = "rsa" -version = "0.9.6" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +checksum = "47c75d7c5c6b673e58bf54d8544a9f432e3a925b0e80f7cd3602ab5c50c55519" dependencies = [ "const-oid", "digest", @@ -5174,7 +5199,7 @@ dependencies = [ "regex", "relative-path", "rustc_version", - "syn 2.0.71", + "syn 2.0.96", "unicode-ident", ] @@ -5189,7 +5214,7 @@ dependencies = [ "netlink-packet-route", "netlink-proto", "nix 0.22.3", - "thiserror", + "thiserror 1.0.62", "tokio", ] @@ -5286,7 +5311,7 @@ dependencies = [ "libc", "libseccomp", "nix 0.24.3", - "oci-spec", + "oci-spec 0.6.8", "path-absolutize", "protobuf 3.5.1", "protocols", @@ -5419,7 +5444,7 @@ checksum = "d2ee4885492bb655bfa05d039cd9163eb8fe9f79ddebf00ca23a1637510c2fd2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -5468,9 +5493,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "sequoia-openpgp" -version = "1.21.2" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13261ee216b44d932ef93b2d4a75d45199bef77864bcc5b77ecfc7bc0ecb02d6" +checksum = "e858e4e9e48ff079cede92e1b45c942a5466ce9a4e3cc0c2a7e66586a718ef59" dependencies = [ "aes", "aes-gcm", @@ -5497,7 +5522,7 @@ dependencies = [ "flate2", "getrandom", "idea", - "idna 1.0.2", + "idna 1.0.3", "lalrpop", "lalrpop-util", "lazy_static", @@ -5517,7 +5542,7 @@ dependencies = [ "rsa", "sha1collisiondetection", "sha2", - "thiserror", + "thiserror 1.0.62", "twofish", "typenum", "x25519-dalek", @@ -5571,7 +5596,7 @@ checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -5593,7 +5618,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -5735,8 +5760,8 @@ dependencies = [ [[package]] name = "sigstore" -version = "0.9.0" -source = "git+https://github.com/sigstore/sigstore-rs.git?rev=1b6ccf0f64d173350ec5515bd69ab48a26a9c0a3#1b6ccf0f64d173350ec5515bd69ab48a26a9c0a3" +version = "0.10.0" +source = "git+https://github.com/sigstore/sigstore-rs.git?rev=037b7be86a68bc63e1d2ee7f16ea8f843ddcc7d8#037b7be86a68bc63e1d2ee7f16ea8f843ddcc7d8" dependencies = [ "async-trait", "base64 0.22.1", @@ -5754,7 +5779,7 @@ dependencies = [ "hex", "json-syntax", "lazy_static", - "oci-distribution", + "oci-client 0.13.0", "olpc-cjson", "p256", "p384", @@ -5762,6 +5787,7 @@ dependencies = [ "pkcs1", "pkcs8", "rand", + "regex", "ring", "rsa", "rustls-webpki", @@ -5771,10 +5797,10 @@ dependencies = [ "serde_repr", "sha2", "signature", - "thiserror", + "thiserror 1.0.62", "tls_codec", "tokio", - "tokio-util 0.7.11", + "tokio-util 0.7.13", "tracing", "url", "webbrowser", @@ -5982,7 +6008,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -6027,9 +6053,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.71" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -6045,7 +6071,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -6062,7 +6088,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -6143,7 +6169,16 @@ version = "1.0.62" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2675633b1499176c2dff06b0856a27976a8f9d436737b4cf4f312d4d91d8bbb" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.62", +] + +[[package]] +name = "thiserror" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +dependencies = [ + "thiserror-impl 2.0.11", ] [[package]] @@ -6154,7 +6189,18 @@ checksum = "d20468752b09f49e909e55a5d338caa8bedf615594e9d80bc4c565d30faf798c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", ] [[package]] @@ -6250,14 +6296,14 @@ checksum = "8d9ef545650e79f30233c0003bcc2504d7efac6dad25fca40744de773fe2049c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] name = "tokio" -version = "1.40.0" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ "backtrace", "bytes 1.6.1", @@ -6273,13 +6319,13 @@ dependencies = [ [[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.71", + "syn 2.0.96", ] [[package]] @@ -6320,9 +6366,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ "bytes 1.6.1", "futures-core", @@ -6441,7 +6487,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -6532,7 +6578,7 @@ dependencies = [ "nix 0.26.4", "protobuf 3.5.1", "protobuf-codegen 3.5.1", - "thiserror", + "thiserror 1.0.62", "tokio", "tokio-vsock 0.4.0", "windows-sys 0.48.0", @@ -6657,12 +6703,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.2" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", - "idna 0.5.0", + "idna 1.0.3", "percent-encoding", ] @@ -6752,7 +6798,7 @@ dependencies = [ "opentelemetry", "serde", "slog", - "thiserror", + "thiserror 1.0.62", "tokio", "tokio-vsock 0.3.4", ] @@ -6818,7 +6864,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", "wasm-bindgen-shared", ] @@ -6852,7 +6898,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -7301,7 +7347,7 @@ checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", "synstructure", ] @@ -7388,7 +7434,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -7408,7 +7454,7 @@ checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", "synstructure", ] @@ -7429,7 +7475,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] @@ -7451,7 +7497,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.71", + "syn 2.0.96", ] [[package]] diff --git a/src/agent/Cargo.toml b/src/agent/Cargo.toml index d06c52b105..cb1b930222 100644 --- a/src/agent/Cargo.toml +++ b/src/agent/Cargo.toml @@ -78,7 +78,7 @@ strum = "0.26.2" strum_macros = "0.26.2" # Image pull/decrypt -image-rs = { git = "https://github.com/confidential-containers/guest-components", rev = "v0.10.0", default-features = false, optional = true } +image-rs = { git = "https://github.com/confidential-containers/guest-components", rev = "514c561d933cb11a0f1628621a0b930157af76cd", default-features = false, optional = true } # Agent Policy regorus = { version = "0.2.6", default-features = false, features = [ diff --git a/src/agent/src/image.rs b/src/agent/src/image.rs index bac4a2bc8b..74adb5dbbc 100644 --- a/src/agent/src/image.rs +++ b/src/agent/src/image.rs @@ -9,10 +9,11 @@ use safe_path::scoped_join; use std::collections::HashMap; use std::env; use std::fs; -use std::path::{Path, PathBuf}; +use std::path::Path; use std::sync::Arc; use anyhow::{anyhow, bail, Context, Result}; +use image_rs::builder::ClientBuilder; use image_rs::image::ImageClient; use kata_sys_util::validate::verify_id; use oci_spec::runtime as oci; @@ -57,15 +58,16 @@ pub struct ImageService { } impl ImageService { - pub fn new() -> Self { - let mut image_client = ImageClient::new(PathBuf::from(KATA_IMAGE_WORK_DIR)); + pub async fn new() -> Result { + let mut image_client_builder = + ClientBuilder::default().work_dir(KATA_IMAGE_WORK_DIR.into()); #[cfg(feature = "guest-pull")] { if !AGENT_CONFIG.image_registry_auth.is_empty() { let registry_auth = &AGENT_CONFIG.image_registry_auth; debug!(sl(), "Set registry auth file {:?}", registry_auth); - image_client.config.file_paths.auth_file = registry_auth.clone(); - image_client.config.auth = true; + image_client_builder = image_client_builder + .authenticated_registry_credentials_uri(registry_auth.into()); } let enable_signature_verification = &AGENT_CONFIG.enable_signature_verification; @@ -73,15 +75,15 @@ impl ImageService { sl(), "Enable image signature verification: {:?}", enable_signature_verification ); - image_client.config.security_validate = *enable_signature_verification; - - if !AGENT_CONFIG.image_policy_file.is_empty() { + if !AGENT_CONFIG.image_policy_file.is_empty() && *enable_signature_verification { let image_policy_file = &AGENT_CONFIG.image_policy_file; - debug!(sl(), "Use imagepolicy file {:?}", image_policy_file); - image_client.config.file_paths.policy_path = image_policy_file.clone(); + debug!(sl(), "Use image policy file {:?}", image_policy_file); + image_client_builder = + image_client_builder.image_security_policy_uri(image_policy_file.into()); } } - Self { image_client } + let image_client = image_client_builder.build().await?; + Ok(Self { image_client }) } /// get guest pause image process specification @@ -276,9 +278,10 @@ pub async fn set_proxy_env_vars() { } /// Init the image service -pub async fn init_image_service() { - let image_service = ImageService::new(); +pub async fn init_image_service() -> Result<()> { + let image_service = ImageService::new().await?; *IMAGE_SERVICE.lock().await = Some(image_service); + Ok(()) } pub async fn pull_image( diff --git a/src/agent/src/rpc.rs b/src/agent/src/rpc.rs index 5f2a3eb955..cbf4b5eefd 100644 --- a/src/agent/src/rpc.rs +++ b/src/agent/src/rpc.rs @@ -1294,6 +1294,9 @@ impl agent_ttrpc::AgentService for AgentService { } } + #[cfg(feature = "guest-pull")] + image::init_image_service().await.map_ttrpc_err(same)?; + Ok(Empty::new()) } @@ -1748,9 +1751,6 @@ pub async fn start( let health_service = Box::new(HealthService {}) as Box; let hservice = health_ttrpc::create_health(Arc::new(health_service)); - #[cfg(feature = "guest-pull")] - image::init_image_service().await; - let server = TtrpcServer::new() .bind(server_address)? .register_service(aservice) diff --git a/tests/integration/kubernetes/k8s-guest-pull-image-signature.bats b/tests/integration/kubernetes/k8s-guest-pull-image-signature.bats index 4a9f17e457..315bfc7585 100644 --- a/tests/integration/kubernetes/k8s-guest-pull-image-signature.bats +++ b/tests/integration/kubernetes/k8s-guest-pull-image-signature.bats @@ -97,7 +97,7 @@ EOF echo "Pod ${kata_pod}: $(cat ${kata_pod})" assert_pod_fail "${kata_pod}" - assert_logs_contain "${node}" kata "${node_start_time}" "Security validate failed: Validate image failed: Cannot pull manifest" + assert_logs_contain "${node}" kata "${node_start_time}" "image security validation failed" } @test "Create a pod from a signed image, on a 'restricted registry' is successful" { @@ -123,7 +123,7 @@ EOF echo "Pod ${kata_pod}: $(cat ${kata_pod})" assert_pod_fail "${kata_pod}" - assert_logs_contain "${node}" kata "${node_start_time}" "Security validate failed: Validate image failed: \[PublicKeyVerifier" + assert_logs_contain "${node}" kata "${node_start_time}" "image security validation failed" } @test "Create a pod from an unsigned image, on a 'restricted registry' works if policy files isn't set" {