From bb18556bf37475b096d7d39ecd27becbe7cafa01 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Sun, 19 Nov 2023 22:21:24 +0200 Subject: feat(tvix/nix-compat): add narinfo::Signature::verify This adds support for verifying signatures found in NARInfo files. This still needs to be hooked together with the nix+http[s] backend. Change-Id: Ic1c8ddbdecfb05cefca2492808388b0f7f3f2637 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10081 Autosubmit: flokli Reviewed-by: raitobezarius Tested-by: BuildkiteCI --- tvix/Cargo.lock | 222 ++++++++-- tvix/Cargo.nix | 692 +++++++++++++++++++++++++------ tvix/nix-compat/Cargo.toml | 2 + tvix/nix-compat/src/narinfo/signature.rs | 54 +++ tvix/tools/narinfo2parquet/Cargo.lock | 129 ++++++ tvix/tools/narinfo2parquet/Cargo.nix | 500 ++++++++++++++++++++-- 6 files changed, 1388 insertions(+), 211 deletions(-) (limited to 'tvix') diff --git a/tvix/Cargo.lock b/tvix/Cargo.lock index 2b05ed744e39..d6f96feaf889 100644 --- a/tvix/Cargo.lock +++ b/tvix/Cargo.lock @@ -112,8 +112,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2 1.0.67", - "quote 1.0.26", - "syn 2.0.16", + "quote 1.0.33", + "syn 2.0.39", ] [[package]] @@ -134,8 +134,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2 1.0.67", - "quote 1.0.26", - "syn 2.0.16", + "quote 1.0.33", + "syn 2.0.39", ] [[package]] @@ -145,8 +145,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" dependencies = [ "proc-macro2 1.0.67", - "quote 1.0.26", - "syn 2.0.16", + "quote 1.0.33", + "syn 2.0.39", ] [[package]] @@ -232,6 +232,12 @@ version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + [[package]] name = "bit-set" version = "0.5.3" @@ -420,8 +426,8 @@ checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" dependencies = [ "heck", "proc-macro2 1.0.67", - "quote 1.0.26", - "syn 2.0.16", + "quote 1.0.33", + "syn 2.0.39", ] [[package]] @@ -473,6 +479,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +[[package]] +name = "const-oid" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" + [[package]] name = "constant_time_eq" version = "0.2.5" @@ -614,12 +626,50 @@ dependencies = [ "typenum", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2 1.0.67", + "quote 1.0.33", + "syn 2.0.39", +] + [[package]] name = "data-encoding" version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "zeroize", +] + [[package]] name = "diff" version = "0.1.13" @@ -687,6 +737,30 @@ dependencies = [ "litrs", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" +dependencies = [ + "curve25519-dalek", + "ed25519", + "serde", + "sha2", + "subtle", + "zeroize", +] + [[package]] name = "either" version = "1.8.1" @@ -759,6 +833,12 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "fiat-crypto" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" + [[package]] name = "fixedbitset" version = "0.4.2" @@ -860,8 +940,8 @@ version = "0.3.29" source = "git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85" dependencies = [ "proc-macro2 1.0.67", - "quote 1.0.26", - "syn 2.0.16", + "quote 1.0.33", + "syn 2.0.39", ] [[package]] @@ -1467,6 +1547,8 @@ dependencies = [ "bstr", "criterion", "data-encoding", + "ed25519", + "ed25519-dalek", "futures", "futures-util", "glob", @@ -1657,8 +1739,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2 1.0.67", - "quote 1.0.26", - "syn 2.0.16", + "quote 1.0.33", + "syn 2.0.39", ] [[package]] @@ -1673,12 +1755,28 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + [[package]] name = "pkg-config" version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + [[package]] name = "plotters" version = "0.3.4" @@ -1730,7 +1828,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9825a04601d60621feed79c4e6b56d65db77cdca55cef43b46b0de1096d1c282" dependencies = [ "proc-macro2 1.0.67", - "syn 2.0.16", + "syn 2.0.39", ] [[package]] @@ -1741,7 +1839,7 @@ checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", "proc-macro2 1.0.67", - "quote 1.0.26", + "quote 1.0.33", "syn 1.0.109", "version_check", ] @@ -1753,7 +1851,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ "proc-macro2 1.0.67", - "quote 1.0.26", + "quote 1.0.33", "version_check", ] @@ -1822,7 +1920,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.16", + "syn 2.0.39", "tempfile", "which", ] @@ -1836,8 +1934,8 @@ dependencies = [ "anyhow", "itertools", "proc-macro2 1.0.67", - "quote 1.0.26", - "syn 2.0.16", + "quote 1.0.33", + "syn 2.0.39", ] [[package]] @@ -1866,9 +1964,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.26" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2 1.0.67", ] @@ -2096,6 +2194,15 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + [[package]] name = "rustix" version = "0.37.19" @@ -2257,6 +2364,12 @@ dependencies = [ "libc", ] +[[package]] +name = "semver" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" + [[package]] name = "serde" version = "1.0.162" @@ -2273,8 +2386,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2a0814352fd64b58489904a44ea8d90cb1a91dcb6b4f5ebabc32c8318e93cb6" dependencies = [ "proc-macro2 1.0.67", - "quote 1.0.26", - "syn 2.0.16", + "quote 1.0.33", + "syn 2.0.39", ] [[package]] @@ -2338,6 +2451,15 @@ dependencies = [ "libc", ] +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "rand_core", +] + [[package]] name = "slab" version = "0.4.8" @@ -2405,6 +2527,16 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spki" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" +dependencies = [ + "base64ct", + "der", +] + [[package]] name = "static_assertions" version = "1.1.0" @@ -2430,7 +2562,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "104842d6278bf64aa9d2f182ba4bde31e8aec7a131d29b7f444bb9b344a09e2a" dependencies = [ "proc-macro2 1.0.67", - "quote 1.0.26", + "quote 1.0.33", "structmeta-derive", "syn 1.0.109", ] @@ -2442,7 +2574,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24420be405b590e2d746d83b01f09af673270cf80e9b003a5fa7b651c58c7d93" dependencies = [ "proc-macro2 1.0.67", - "quote 1.0.26", + "quote 1.0.33", "syn 1.0.109", ] @@ -2470,18 +2602,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2 1.0.67", - "quote 1.0.26", + "quote 1.0.33", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.16" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2 1.0.67", - "quote 1.0.26", + "quote 1.0.33", "unicode-ident", ] @@ -2561,7 +2693,7 @@ dependencies = [ "cfg-if", "proc-macro-error", "proc-macro2 1.0.67", - "quote 1.0.26", + "quote 1.0.33", "syn 1.0.109", ] @@ -2583,7 +2715,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62d6408d1406657be2f9d1701fbae379331d30d2f6e92050710edb0d34eeb480" dependencies = [ "proc-macro2 1.0.67", - "quote 1.0.26", + "quote 1.0.33", "structmeta", "syn 1.0.109", ] @@ -2616,8 +2748,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2 1.0.67", - "quote 1.0.26", - "syn 2.0.16", + "quote 1.0.33", + "syn 2.0.39", ] [[package]] @@ -2707,8 +2839,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2 1.0.67", - "quote 1.0.26", - "syn 2.0.16", + "quote 1.0.33", + "syn 2.0.39", ] [[package]] @@ -2832,8 +2964,8 @@ dependencies = [ "prettyplease", "proc-macro2 1.0.67", "prost-build", - "quote 1.0.26", - "syn 2.0.16", + "quote 1.0.33", + "syn 2.0.39", ] [[package]] @@ -2901,8 +3033,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" dependencies = [ "proc-macro2 1.0.67", - "quote 1.0.26", - "syn 2.0.16", + "quote 1.0.33", + "syn 2.0.39", ] [[package]] @@ -3048,7 +3180,7 @@ name = "tvix-eval-builtin-macros" version = "0.0.1" dependencies = [ "proc-macro2 1.0.67", - "quote 1.0.26", + "quote 1.0.33", "syn 1.0.109", "tvix-eval", ] @@ -3340,7 +3472,7 @@ dependencies = [ "log", "once_cell", "proc-macro2 1.0.67", - "quote 1.0.26", + "quote 1.0.33", "syn 1.0.109", "wasm-bindgen-shared", ] @@ -3363,7 +3495,7 @@ version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" dependencies = [ - "quote 1.0.26", + "quote 1.0.33", "wasm-bindgen-macro-support", ] @@ -3374,7 +3506,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" dependencies = [ "proc-macro2 1.0.67", - "quote 1.0.26", + "quote 1.0.33", "syn 1.0.109", "wasm-bindgen-backend", "wasm-bindgen-shared", @@ -3625,6 +3757,12 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" + [[package]] name = "zstd" version = "0.9.2+zstd.1.5.1" diff --git a/tvix/Cargo.nix b/tvix/Cargo.nix index 98a0e67a6272..6270f89761e0 100644 --- a/tvix/Cargo.nix +++ b/tvix/Cargo.nix @@ -408,12 +408,12 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; usesDefaultFeatures = false; } { name = "syn"; - packageId = "syn 2.0.16"; + packageId = "syn 2.0.39"; usesDefaultFeatures = false; features = [ "full" "parsing" "printing" "proc-macro" "clone-impls" ]; } @@ -460,11 +460,11 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "syn"; - packageId = "syn 2.0.16"; + packageId = "syn 2.0.39"; features = [ "full" "visit-mut" ]; } ]; @@ -486,11 +486,11 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "syn"; - packageId = "syn 2.0.16"; + packageId = "syn 2.0.39"; features = [ "full" "visit-mut" ]; } ]; @@ -508,7 +508,7 @@ rec { { name = "hermit-abi"; packageId = "hermit-abi 0.1.19"; - target = { target, features }: ("hermit" == target."os"); + target = { target, features }: ("hermit" == target."os" or null); } { name = "libc"; @@ -736,7 +736,7 @@ rec { name = "addr2line"; packageId = "addr2line"; usesDefaultFeatures = false; - target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env") && (!("uwp" == target."vendor")))); + target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env" or null) && (!("uwp" == target."vendor" or null)))); } { name = "cfg-if"; @@ -746,19 +746,19 @@ rec { name = "libc"; packageId = "libc"; usesDefaultFeatures = false; - target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env") && (!("uwp" == target."vendor")))); + target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env" or null) && (!("uwp" == target."vendor" or null)))); } { name = "miniz_oxide"; packageId = "miniz_oxide"; usesDefaultFeatures = false; - target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env") && (!("uwp" == target."vendor")))); + target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env" or null) && (!("uwp" == target."vendor" or null)))); } { name = "object"; packageId = "object"; usesDefaultFeatures = false; - target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env") && (!("uwp" == target."vendor")))); + target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env" or null) && (!("uwp" == target."vendor" or null)))); features = [ "read_core" "elf" "macho" "pe" "unaligned" "archive" ]; } { @@ -798,6 +798,19 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; + "base64ct" = rec { + crateName = "base64ct"; + version = "1.6.0"; + edition = "2021"; + sha256 = "0nvdba4jb8aikv60az40x2w1y96sjdq8z3yp09rwzmkhiwv1lg4c"; + authors = [ + "RustCrypto Developers" + ]; + features = { + "std" = [ "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; "bit-set" = rec { crateName = "bit-set"; version = "0.5.3"; @@ -1319,11 +1332,11 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "syn"; - packageId = "syn 2.0.16"; + packageId = "syn 2.0.39"; features = [ "full" ]; } ]; @@ -1428,6 +1441,18 @@ rec { sha256 = "1ix7w85kwvyybwi2jdkl3yva2r2bvdcc3ka2grjfzfgrapqimgxc"; }; + "const-oid" = rec { + crateName = "const-oid"; + version = "0.9.5"; + edition = "2021"; + sha256 = "0vxb4d25mgk8y0phay7j078limx2553716ixsr1x5605k31j5h98"; + authors = [ + "RustCrypto Developers" + ]; + features = { + "arbitrary" = [ "dep:arbitrary" ]; + }; + }; "constant_time_eq" = rec { crateName = "constant_time_eq"; version = "0.2.5"; @@ -1523,12 +1548,12 @@ rec { { name = "libc"; packageId = "libc"; - target = { target, features }: (("aarch64" == target."arch") && ("linux" == target."os")); + target = { target, features }: (("aarch64" == target."arch" or null) && ("linux" == target."os" or null)); } { name = "libc"; packageId = "libc"; - target = { target, features }: (("aarch64" == target."arch") && ("apple" == target."vendor")); + target = { target, features }: (("aarch64" == target."arch" or null) && ("apple" == target."vendor" or null)); } ]; @@ -1823,6 +1848,100 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; + "curve25519-dalek" = rec { + crateName = "curve25519-dalek"; + version = "4.1.1"; + edition = "2021"; + sha256 = "0p7ns5917k6369gajrsbfj24llc5zfm635yh3abla7sb5rm8r6z8"; + authors = [ + "Isis Lovecruft " + "Henry de Valence " + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + { + name = "cpufeatures"; + packageId = "cpufeatures"; + target = { target, features }: ("x86_64" == target."arch" or null); + } + { + name = "curve25519-dalek-derive"; + packageId = "curve25519-dalek-derive"; + target = { target, features }: ((!("fiat" == target."curve25519_dalek_backend" or null)) && (!("serial" == target."curve25519_dalek_backend" or null)) && ("x86_64" == target."arch" or null)); + } + { + name = "digest"; + packageId = "digest"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "fiat-crypto"; + packageId = "fiat-crypto"; + usesDefaultFeatures = false; + target = { target, features }: ("fiat" == target."curve25519_dalek_backend" or null); + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } + ]; + buildDependencies = [ + { + name = "platforms"; + packageId = "platforms"; + } + { + name = "rustc_version"; + packageId = "rustc_version"; + } + ]; + features = { + "alloc" = [ "zeroize?/alloc" ]; + "default" = [ "alloc" "precomputed-tables" "zeroize" ]; + "digest" = [ "dep:digest" ]; + "ff" = [ "dep:ff" ]; + "group" = [ "dep:group" "rand_core" ]; + "group-bits" = [ "group" "ff/bits" ]; + "rand_core" = [ "dep:rand_core" ]; + "serde" = [ "dep:serde" ]; + "zeroize" = [ "dep:zeroize" ]; + }; + resolvedDefaultFeatures = [ "alloc" "digest" "precomputed-tables" "zeroize" ]; + }; + "curve25519-dalek-derive" = rec { + crateName = "curve25519-dalek-derive"; + version = "0.1.1"; + edition = "2021"; + sha256 = "1cry71xxrr0mcy5my3fb502cwfxy6822k4pm19cwrilrg7hq4s7l"; + procMacro = true; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2 1.0.67"; + } + { + name = "quote"; + packageId = "quote 1.0.33"; + } + { + name = "syn"; + packageId = "syn 2.0.39"; + features = [ "full" ]; + } + ]; + + }; "data-encoding" = rec { crateName = "data-encoding"; version = "2.3.3"; @@ -1837,6 +1956,41 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "default" "std" ]; }; + "der" = rec { + crateName = "der"; + version = "0.7.8"; + edition = "2021"; + sha256 = "070bwiyr80800h31c5zd96ckkgagfjgnrrdmz3dzg2lccsd3dypz"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "const-oid"; + packageId = "const-oid"; + optional = true; + } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } + ]; + features = { + "alloc" = [ "zeroize?/alloc" ]; + "arbitrary" = [ "dep:arbitrary" "const-oid?/arbitrary" "std" ]; + "bytes" = [ "dep:bytes" "alloc" ]; + "derive" = [ "dep:der_derive" ]; + "flagset" = [ "dep:flagset" ]; + "oid" = [ "dep:const-oid" ]; + "pem" = [ "dep:pem-rfc7468" "alloc" "zeroize" ]; + "std" = [ "alloc" ]; + "time" = [ "dep:time" ]; + "zeroize" = [ "dep:zeroize" ]; + }; + resolvedDefaultFeatures = [ "alloc" "oid" "std" "zeroize" ]; + }; "diff" = rec { crateName = "diff"; version = "0.1.13"; @@ -1941,7 +2095,7 @@ rec { name = "redox_users"; packageId = "redox_users"; usesDefaultFeatures = false; - target = { target, features }: ("redox" == target."os"); + target = { target, features }: ("redox" == target."os" or null); } { name = "winapi"; @@ -1970,7 +2124,7 @@ rec { name = "redox_users"; packageId = "redox_users"; usesDefaultFeatures = false; - target = { target, features }: ("redox" == target."os"); + target = { target, features }: ("redox" == target."os" or null); } { name = "winapi"; @@ -2001,6 +2155,115 @@ rec { features = { }; resolvedDefaultFeatures = [ "default" ]; }; + "ed25519" = rec { + crateName = "ed25519"; + version = "2.2.3"; + edition = "2021"; + sha256 = "0lydzdf26zbn82g7xfczcac9d7mzm3qgx934ijjrd5hjpjx32m8i"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "pkcs8"; + packageId = "pkcs8"; + optional = true; + } + { + name = "signature"; + packageId = "signature"; + usesDefaultFeatures = false; + } + ]; + features = { + "alloc" = [ "pkcs8?/alloc" ]; + "default" = [ "std" ]; + "pem" = [ "alloc" "pkcs8/pem" ]; + "pkcs8" = [ "dep:pkcs8" ]; + "serde" = [ "dep:serde" ]; + "serde_bytes" = [ "serde" "dep:serde_bytes" ]; + "std" = [ "pkcs8?/std" "signature/std" ]; + "zeroize" = [ "dep:zeroize" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" "std" ]; + }; + "ed25519-dalek" = rec { + crateName = "ed25519-dalek"; + version = "2.1.0"; + edition = "2021"; + sha256 = "1h13qm789m9gdjl6jazss80hqi8ll37m0afwcnw23zcbqjp8wqhz"; + authors = [ + "isis lovecruft " + "Tony Arcieri " + "Michael Rosenberg " + ]; + dependencies = [ + { + name = "curve25519-dalek"; + packageId = "curve25519-dalek"; + usesDefaultFeatures = false; + features = [ "digest" ]; + } + { + name = "ed25519"; + packageId = "ed25519"; + usesDefaultFeatures = false; + } + { + name = "serde"; + packageId = "serde"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "sha2"; + packageId = "sha2"; + usesDefaultFeatures = false; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "curve25519-dalek"; + packageId = "curve25519-dalek"; + usesDefaultFeatures = false; + features = [ "digest" "rand_core" ]; + } + { + name = "serde"; + packageId = "serde"; + features = [ "derive" ]; + } + ]; + features = { + "alloc" = [ "curve25519-dalek/alloc" "ed25519/alloc" "serde?/alloc" "zeroize/alloc" ]; + "asm" = [ "sha2/asm" ]; + "batch" = [ "alloc" "merlin" "rand_core" ]; + "default" = [ "fast" "std" "zeroize" ]; + "digest" = [ "signature/digest" ]; + "fast" = [ "curve25519-dalek/precomputed-tables" ]; + "legacy_compatibility" = [ "curve25519-dalek/legacy_compatibility" ]; + "merlin" = [ "dep:merlin" ]; + "pem" = [ "alloc" "ed25519/pem" "pkcs8" ]; + "pkcs8" = [ "ed25519/pkcs8" ]; + "rand_core" = [ "dep:rand_core" ]; + "serde" = [ "dep:serde" "ed25519/serde" ]; + "signature" = [ "dep:signature" ]; + "std" = [ "alloc" "ed25519/std" "serde?/std" "sha2/std" ]; + "zeroize" = [ "dep:zeroize" "curve25519-dalek/zeroize" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" "fast" "std" "zeroize" ]; + }; "either" = rec { crateName = "either"; version = "1.8.1"; @@ -2060,17 +2323,17 @@ rec { { name = "errno-dragonfly"; packageId = "errno-dragonfly"; - target = { target, features }: ("dragonfly" == target."os"); + target = { target, features }: ("dragonfly" == target."os" or null); } { name = "libc"; packageId = "libc"; - target = { target, features }: ("hermit" == target."os"); + target = { target, features }: ("hermit" == target."os" or null); } { name = "libc"; packageId = "libc"; - target = { target, features }: ("wasi" == target."os"); + target = { target, features }: ("wasi" == target."os" or null); } { name = "libc"; @@ -2144,14 +2407,14 @@ rec { { name = "instant"; packageId = "instant"; - target = { target, features }: (("wasm32" == target."arch") && (!("wasi" == target."os"))); + target = { target, features }: (("wasm32" == target."arch" or null) && (!("wasi" == target."os" or null))); } ]; devDependencies = [ { name = "instant"; packageId = "instant"; - target = { target, features }: (("wasm32" == target."arch") && (!("wasi" == target."os"))); + target = { target, features }: (("wasm32" == target."arch" or null) && (!("wasi" == target."os" or null))); features = [ "wasm-bindgen" ]; } ]; @@ -2185,6 +2448,18 @@ rec { ]; }; + "fiat-crypto" = rec { + crateName = "fiat-crypto"; + version = "0.2.5"; + edition = "2018"; + sha256 = "1dxn0g50pv0ppal779vi7k40fr55pbhkyv4in7i13pgl4sn3wmr7"; + authors = [ + "Fiat Crypto library authors " + ]; + features = { + "default" = [ "std" ]; + }; + }; "fixedbitset" = rec { crateName = "fixedbitset"; version = "0.4.2"; @@ -2285,13 +2560,13 @@ rec { name = "caps"; packageId = "caps"; optional = true; - target = { target, features }: ("linux" == target."os"); + target = { target, features }: ("linux" == target."os" or null); } { name = "core-foundation-sys"; packageId = "core-foundation-sys"; optional = true; - target = { target, features }: ("macos" == target."os"); + target = { target, features }: ("macos" == target."os" or null); } { name = "lazy_static"; @@ -2543,11 +2818,11 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "syn"; - packageId = "syn 2.0.16"; + packageId = "syn 2.0.39"; features = [ "full" ]; } ]; @@ -2776,7 +3051,7 @@ rec { name = "wasi"; packageId = "wasi"; usesDefaultFeatures = false; - target = { target, features }: ("wasi" == target."os"); + target = { target, features }: ("wasi" == target."os" or null); } ]; features = { @@ -3483,7 +3758,7 @@ rec { name = "hermit-abi"; packageId = "hermit-abi 0.3.1"; optional = true; - target = { target, features }: ("hermit" == target."os"); + target = { target, features }: ("hermit" == target."os" or null); } { name = "libc"; @@ -3545,7 +3820,7 @@ rec { { name = "hermit-abi"; packageId = "hermit-abi 0.3.1"; - target = { target, features }: ("hermit" == target."os"); + target = { target, features }: ("hermit" == target."os" or null); } { name = "io-lifetimes"; @@ -3554,7 +3829,7 @@ rec { { name = "rustix"; packageId = "rustix"; - target = { target, features }: (!((target."windows" or false) || ("hermit" == target."os") || ("unknown" == target."os"))); + target = { target, features }: (!((target."windows" or false) || ("hermit" == target."os" or null) || ("unknown" == target."os" or null))); features = [ "termios" ]; } { @@ -4138,7 +4413,7 @@ rec { { name = "libc"; packageId = "libc"; - target = { target, features }: ("wasi" == target."os"); + target = { target, features }: ("wasi" == target."os" or null); } { name = "libc"; @@ -4152,7 +4427,7 @@ rec { { name = "wasi"; packageId = "wasi"; - target = { target, features }: ("wasi" == target."os"); + target = { target, features }: ("wasi" == target."os" or null); } { name = "windows-sys"; @@ -4222,7 +4497,7 @@ rec { name = "memoffset"; packageId = "memoffset 0.6.5"; optional = true; - target = { target, features }: (!("redox" == target."os")); + target = { target, features }: (!("redox" == target."os" or null)); } ]; features = { @@ -4398,6 +4673,14 @@ rec { name = "data-encoding"; packageId = "data-encoding"; } + { + name = "ed25519"; + packageId = "ed25519"; + } + { + name = "ed25519-dalek"; + packageId = "ed25519-dalek"; + } { name = "futures-util"; packageId = "futures-util"; @@ -4541,7 +4824,7 @@ rec { { name = "winapi"; packageId = "winapi"; - target = { target, features }: ("windows" == target."os"); + target = { target, features }: ("windows" == target."os" or null); features = [ "consoleapi" "errhandlingapi" "fileapi" "handleapi" "processenv" ]; } ]; @@ -4589,7 +4872,7 @@ rec { { name = "hermit-abi"; packageId = "hermit-abi 0.2.6"; - target = { target, features }: ((("x86_64" == target."arch") || ("aarch64" == target."arch")) && ("hermit" == target."os")); + target = { target, features }: ((("x86_64" == target."arch" or null) || ("aarch64" == target."arch" or null)) && ("hermit" == target."os" or null)); } { name = "libc"; @@ -4783,7 +5066,7 @@ rec { { name = "redox_syscall"; packageId = "redox_syscall 0.2.16"; - target = { target, features }: ("redox" == target."os"); + target = { target, features }: ("redox" == target."os" or null); } { name = "smallvec"; @@ -4824,7 +5107,7 @@ rec { { name = "redox_syscall"; packageId = "redox_syscall 0.3.5"; - target = { target, features }: ("redox" == target."os"); + target = { target, features }: ("redox" == target."os" or null); } { name = "smallvec"; @@ -4924,11 +5207,11 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "syn"; - packageId = "syn 2.0.16"; + packageId = "syn 2.0.39"; features = [ "full" "visit-mut" ]; } ]; @@ -4951,6 +5234,40 @@ rec { ]; }; + "pkcs8" = rec { + crateName = "pkcs8"; + version = "0.10.2"; + edition = "2021"; + sha256 = "1dx7w21gvn07azszgqd3ryjhyphsrjrmq5mmz1fbxkj5g0vv4l7r"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "der"; + packageId = "der"; + features = [ "oid" ]; + } + { + name = "spki"; + packageId = "spki"; + } + ]; + features = { + "3des" = [ "encryption" "pkcs5/3des" ]; + "alloc" = [ "der/alloc" "der/zeroize" "spki/alloc" ]; + "des-insecure" = [ "encryption" "pkcs5/des-insecure" ]; + "encryption" = [ "alloc" "pkcs5/alloc" "pkcs5/pbes2" "rand_core" ]; + "getrandom" = [ "rand_core/getrandom" ]; + "pem" = [ "alloc" "der/pem" "spki/pem" ]; + "pkcs5" = [ "dep:pkcs5" ]; + "rand_core" = [ "dep:rand_core" ]; + "sha1-insecure" = [ "encryption" "pkcs5/sha1-insecure" ]; + "std" = [ "alloc" "der/std" "spki/std" ]; + "subtle" = [ "dep:subtle" ]; + }; + resolvedDefaultFeatures = [ "alloc" "std" ]; + }; "pkg-config" = rec { crateName = "pkg-config"; version = "0.3.27"; @@ -4961,6 +5278,21 @@ rec { ]; }; + "platforms" = rec { + crateName = "platforms"; + version = "3.2.0"; + edition = "2018"; + sha256 = "1c6bzwn877aqdbbmyqsl753ycbciwvbdh4lpzijb8vrfb4zsprhl"; + authors = [ + "Tony Arcieri " + "Sergey \"Shnatsel\" Davidoff " + ]; + features = { + "default" = [ "std" ]; + "serde" = [ "dep:serde" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; "plotters" = rec { crateName = "plotters"; version = "0.3.4"; @@ -4986,12 +5318,12 @@ rec { { name = "wasm-bindgen"; packageId = "wasm-bindgen"; - target = { target, features }: (("wasm32" == target."arch") && (!("wasi" == target."os"))); + target = { target, features }: (("wasm32" == target."arch" or null) && (!("wasi" == target."os" or null))); } { name = "web-sys"; packageId = "web-sys"; - target = { target, features }: (("wasm32" == target."arch") && (!("wasi" == target."os"))); + target = { target, features }: (("wasm32" == target."arch" or null) && (!("wasi" == target."os" or null))); features = [ "Document" "DomRect" "Element" "HtmlElement" "Node" "Window" "HtmlCanvasElement" "CanvasRenderingContext2d" ]; } ]; @@ -5102,7 +5434,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.16"; + packageId = "syn 2.0.39"; usesDefaultFeatures = false; features = [ "full" ]; } @@ -5110,7 +5442,7 @@ rec { devDependencies = [ { name = "syn"; - packageId = "syn 2.0.16"; + packageId = "syn 2.0.39"; usesDefaultFeatures = false; features = [ "parsing" ]; } @@ -5138,7 +5470,7 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "syn"; @@ -5176,7 +5508,7 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } ]; buildDependencies = [ @@ -5407,7 +5739,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.16"; + packageId = "syn 2.0.39"; optional = true; features = [ "full" ]; } @@ -5459,11 +5791,11 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "syn"; - packageId = "syn 2.0.16"; + packageId = "syn 2.0.39"; features = [ "extra-traits" ]; } ]; @@ -5525,11 +5857,11 @@ rec { }; resolvedDefaultFeatures = [ "default" "proc-macro" ]; }; - "quote 1.0.26" = rec { + "quote 1.0.33" = rec { crateName = "quote"; - version = "1.0.26"; + version = "1.0.33"; edition = "2018"; - sha256 = "1z521piwggwzs0rj4wjx4ma6af1g6f1h5dkp382y5akqyx5sy924"; + sha256 = "1biw54hbbr12wdwjac55z1m2x2rylciw83qnjn564a3096jgqrsj"; authors = [ "David Tolnay " ]; @@ -5942,7 +6274,7 @@ rec { { name = "encoding_rs"; packageId = "encoding_rs"; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); } { name = "futures-core"; @@ -5957,7 +6289,7 @@ rec { { name = "h2"; packageId = "h2"; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); } { name = "http"; @@ -5966,13 +6298,13 @@ rec { { name = "http-body"; packageId = "http-body"; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); } { name = "hyper"; packageId = "hyper"; usesDefaultFeatures = false; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); features = [ "tcp" "http1" "http2" "client" "runtime" ]; } { @@ -5980,55 +6312,55 @@ rec { packageId = "hyper-rustls"; optional = true; usesDefaultFeatures = false; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); } { name = "ipnet"; packageId = "ipnet"; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); } { name = "js-sys"; packageId = "js-sys"; - target = { target, features }: ("wasm32" == target."arch"); + target = { target, features }: ("wasm32" == target."arch" or null); } { name = "log"; packageId = "log"; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); } { name = "mime"; packageId = "mime"; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); } { name = "once_cell"; packageId = "once_cell"; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); } { name = "percent-encoding"; packageId = "percent-encoding"; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); } { name = "pin-project-lite"; packageId = "pin-project-lite"; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); } { name = "rustls"; packageId = "rustls"; optional = true; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); features = [ "dangerous_configuration" ]; } { name = "rustls-pemfile"; packageId = "rustls-pemfile"; optional = true; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); } { name = "serde"; @@ -6042,7 +6374,7 @@ rec { { name = "serde_json"; packageId = "serde_json"; - target = { target, features }: ("wasm32" == target."arch"); + target = { target, features }: ("wasm32" == target."arch" or null); } { name = "serde_urlencoded"; @@ -6051,27 +6383,27 @@ rec { { name = "system-configuration"; packageId = "system-configuration"; - target = { target, features }: ("macos" == target."os"); + target = { target, features }: ("macos" == target."os" or null); } { name = "tokio"; packageId = "tokio"; usesDefaultFeatures = false; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); features = [ "net" "time" ]; } { name = "tokio-rustls"; packageId = "tokio-rustls"; optional = true; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); } { name = "tokio-util"; packageId = "tokio-util"; optional = true; usesDefaultFeatures = false; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); features = [ "codec" "io" ]; } { @@ -6085,30 +6417,30 @@ rec { { name = "wasm-bindgen"; packageId = "wasm-bindgen"; - target = { target, features }: ("wasm32" == target."arch"); + target = { target, features }: ("wasm32" == target."arch" or null); } { name = "wasm-bindgen-futures"; packageId = "wasm-bindgen-futures"; - target = { target, features }: ("wasm32" == target."arch"); + target = { target, features }: ("wasm32" == target."arch" or null); } { name = "wasm-streams"; packageId = "wasm-streams"; optional = true; - target = { target, features }: ("wasm32" == target."arch"); + target = { target, features }: ("wasm32" == target."arch" or null); } { name = "web-sys"; packageId = "web-sys"; - target = { target, features }: ("wasm32" == target."arch"); + target = { target, features }: ("wasm32" == target."arch" or null); features = [ "AbortController" "AbortSignal" "Headers" "Request" "RequestInit" "RequestMode" "Response" "Window" "FormData" "Blob" "BlobPropertyBag" "ServiceWorkerGlobalScope" "RequestCredentials" "File" "ReadableStream" ]; } { name = "webpki-roots"; packageId = "webpki-roots"; optional = true; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); } { name = "winreg"; @@ -6121,26 +6453,26 @@ rec { name = "hyper"; packageId = "hyper"; usesDefaultFeatures = false; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); features = [ "tcp" "stream" "http1" "http2" "client" "server" "runtime" ]; } { name = "serde"; packageId = "serde"; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); features = [ "derive" ]; } { name = "tokio"; packageId = "tokio"; usesDefaultFeatures = false; - target = { target, features }: (!("wasm32" == target."arch")); + target = { target, features }: (!("wasm32" == target."arch" or null)); features = [ "macros" "rt-multi-thread" ]; } { name = "wasm-bindgen"; packageId = "wasm-bindgen"; - target = { target, features }: ("wasm32" == target."arch"); + target = { target, features }: ("wasm32" == target."arch" or null); features = [ "serde-serialize" ]; } ]; @@ -6204,28 +6536,28 @@ rec { name = "libc"; packageId = "libc"; usesDefaultFeatures = false; - target = { target, features }: (("android" == target."os") || ("linux" == target."os")); + target = { target, features }: (("android" == target."os" or null) || ("linux" == target."os" or null)); } { name = "once_cell"; packageId = "once_cell"; optional = true; usesDefaultFeatures = false; - target = { target, features }: (("android" == target."os") || ("linux" == target."os")); + target = { target, features }: (("android" == target."os" or null) || ("linux" == target."os" or null)); features = [ "std" ]; } { name = "once_cell"; packageId = "once_cell"; usesDefaultFeatures = false; - target = { target, features }: (("dragonfly" == target."os") || ("freebsd" == target."os") || ("illumos" == target."os") || ("netbsd" == target."os") || ("openbsd" == target."os") || ("solaris" == target."os")); + target = { target, features }: (("dragonfly" == target."os" or null) || ("freebsd" == target."os" or null) || ("illumos" == target."os" or null) || ("netbsd" == target."os" or null) || ("openbsd" == target."os" or null) || ("solaris" == target."os" or null)); features = [ "std" ]; } { name = "spin"; packageId = "spin"; usesDefaultFeatures = false; - target = { target, features }: (("x86" == target."arch") || ("x86_64" == target."arch") || ((("aarch64" == target."arch") || ("arm" == target."arch")) && (("android" == target."os") || ("fuchsia" == target."os") || ("linux" == target."os")))); + target = { target, features }: (("x86" == target."arch" or null) || ("x86_64" == target."arch" or null) || ((("aarch64" == target."arch" or null) || ("arm" == target."arch" or null)) && (("android" == target."os" or null) || ("fuchsia" == target."os" or null) || ("linux" == target."os" or null)))); } { name = "untrusted"; @@ -6235,14 +6567,14 @@ rec { name = "web-sys"; packageId = "web-sys"; usesDefaultFeatures = false; - target = { target, features }: (("wasm32" == target."arch") && ("unknown" == target."vendor") && ("unknown" == target."os") && ("" == target."env")); + target = { target, features }: (("wasm32" == target."arch" or null) && ("unknown" == target."vendor" or null) && ("unknown" == target."os" or null) && ("" == target."env" or null)); features = [ "Crypto" "Window" ]; } { name = "winapi"; packageId = "winapi"; usesDefaultFeatures = false; - target = { target, features }: ("windows" == target."os"); + target = { target, features }: ("windows" == target."os" or null); features = [ "ntsecapi" "wtypesbase" ]; } ]; @@ -6349,6 +6681,23 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; + "rustc_version" = rec { + crateName = "rustc_version"; + version = "0.4.0"; + edition = "2018"; + sha256 = "0rpk9rcdk405xhbmgclsh4pai0svn49x35aggl4nhbkd4a2zb85z"; + authors = [ + "Dirkjan Ochtman " + "Marvin Löbel " + ]; + dependencies = [ + { + name = "semver"; + packageId = "semver"; + } + ]; + + }; "rustix" = rec { crateName = "rustix"; version = "0.37.19"; @@ -6369,14 +6718,14 @@ rec { rename = "libc_errno"; optional = true; usesDefaultFeatures = false; - target = { target, features }: ((!(target."rustix_use_libc" or false)) && (!(target."miri" or false)) && ("linux" == target."os") && (("x86" == target."arch") || (("x86_64" == target."arch") && ("64" == target."pointer_width")) || (("little" == target."endian") && (("arm" == target."arch") || (("aarch64" == target."arch") && ("64" == target."pointer_width")) || ("powerpc64" == target."arch") || ("riscv64" == target."arch") || ("mips" == target."arch") || ("mips64" == target."arch"))))); + target = { target, features }: ((!(target."rustix_use_libc" or false)) && (!(target."miri" or false)) && ("linux" == target."os" or null) && (("x86" == target."arch" or null) || (("x86_64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || (("little" == target."endian" or null) && (("arm" == target."arch" or null) || (("aarch64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || ("powerpc64" == target."arch" or null) || ("riscv64" == target."arch" or null) || ("mips" == target."arch" or null) || ("mips64" == target."arch" or null))))); } { name = "errno"; packageId = "errno"; rename = "libc_errno"; usesDefaultFeatures = false; - target = { target, features }: ((!(target."windows" or false)) && ((target."rustix_use_libc" or false) || (target."miri" or false) || (!(("linux" == target."os") && (("x86" == target."arch") || (("x86_64" == target."arch") && ("64" == target."pointer_width")) || (("little" == target."endian") && (("arm" == target."arch") || (("aarch64" == target."arch") && ("64" == target."pointer_width")) || ("powerpc64" == target."arch") || ("riscv64" == target."arch") || ("mips" == target."arch") || ("mips64" == target."arch")))))))); + target = { target, features }: ((!(target."windows" or false)) && ((target."rustix_use_libc" or false) || (target."miri" or false) || (!(("linux" == target."os" or null) && (("x86" == target."arch" or null) || (("x86_64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || (("little" == target."endian" or null) && (("arm" == target."arch" or null) || (("aarch64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || ("powerpc64" == target."arch" or null) || ("riscv64" == target."arch" or null) || ("mips" == target."arch" or null) || ("mips64" == target."arch" or null)))))))); } { name = "errno"; @@ -6396,27 +6745,27 @@ rec { name = "libc"; packageId = "libc"; optional = true; - target = { target, features }: ((!(target."rustix_use_libc" or false)) && (!(target."miri" or false)) && ("linux" == target."os") && (("x86" == target."arch") || (("x86_64" == target."arch") && ("64" == target."pointer_width")) || (("little" == target."endian") && (("arm" == target."arch") || (("aarch64" == target."arch") && ("64" == target."pointer_width")) || ("powerpc64" == target."arch") || ("riscv64" == target."arch") || ("mips" == target."arch") || ("mips64" == target."arch"))))); + target = { target, features }: ((!(target."rustix_use_libc" or false)) && (!(target."miri" or false)) && ("linux" == target."os" or null) && (("x86" == target."arch" or null) || (("x86_64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || (("little" == target."endian" or null) && (("arm" == target."arch" or null) || (("aarch64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || ("powerpc64" == target."arch" or null) || ("riscv64" == target."arch" or null) || ("mips" == target."arch" or null) || ("mips64" == target."arch" or null))))); features = [ "extra_traits" ]; } { name = "libc"; packageId = "libc"; - target = { target, features }: ((!(target."windows" or false)) && ((target."rustix_use_libc" or false) || (target."miri" or false) || (!(("linux" == target."os") && (("x86" == target."arch") || (("x86_64" == target."arch") && ("64" == target."pointer_width")) || (("little" == target."endian") && (("arm" == target."arch") || (("aarch64" == target."arch") && ("64" == target."pointer_width")) || ("powerpc64" == target."arch") || ("riscv64" == target."arch") || ("mips" == target."arch") || ("mips64" == target."arch")))))))); + target = { target, features }: ((!(target."windows" or false)) && ((target."rustix_use_libc" or false) || (target."miri" or false) || (!(("linux" == target."os" or null) && (("x86" == target."arch" or null) || (("x86_64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || (("little" == target."endian" or null) && (("arm" == target."arch" or null) || (("aarch64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || ("powerpc64" == target."arch" or null) || ("riscv64" == target."arch" or null) || ("mips" == target."arch" or null) || ("mips64" == target."arch" or null)))))))); features = [ "extra_traits" ]; } { name = "linux-raw-sys"; packageId = "linux-raw-sys"; usesDefaultFeatures = false; - target = { target, features }: ((("android" == target."os") || ("linux" == target."os")) && ((target."rustix_use_libc" or false) || (target."miri" or false) || (!(("linux" == target."os") && (("x86" == target."arch") || (("x86_64" == target."arch") && ("64" == target."pointer_width")) || (("little" == target."endian") && (("arm" == target."arch") || (("aarch64" == target."arch") && ("64" == target."pointer_width")) || ("powerpc64" == target."arch") || ("riscv64" == target."arch") || ("mips" == target."arch") || ("mips64" == target."arch")))))))); + target = { target, features }: ((("android" == target."os" or null) || ("linux" == target."os" or null)) && ((target."rustix_use_libc" or false) || (target."miri" or false) || (!(("linux" == target."os" or null) && (("x86" == target."arch" or null) || (("x86_64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || (("little" == target."endian" or null) && (("arm" == target."arch" or null) || (("aarch64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || ("powerpc64" == target."arch" or null) || ("riscv64" == target."arch" or null) || ("mips" == target."arch" or null) || ("mips64" == target."arch" or null)))))))); features = [ "general" "ioctl" "no_std" ]; } { name = "linux-raw-sys"; packageId = "linux-raw-sys"; usesDefaultFeatures = false; - target = { target, features }: ((!(target."rustix_use_libc" or false)) && (!(target."miri" or false)) && ("linux" == target."os") && (("x86" == target."arch") || (("x86_64" == target."arch") && ("64" == target."pointer_width")) || (("little" == target."endian") && (("arm" == target."arch") || (("aarch64" == target."arch") && ("64" == target."pointer_width")) || ("powerpc64" == target."arch") || ("riscv64" == target."arch") || ("mips" == target."arch") || ("mips64" == target."arch"))))); + target = { target, features }: ((!(target."rustix_use_libc" or false)) && (!(target."miri" or false)) && ("linux" == target."os" or null) && (("x86" == target."arch" or null) || (("x86_64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || (("little" == target."endian" or null) && (("arm" == target."arch" or null) || (("aarch64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || ("powerpc64" == target."arch" or null) || ("riscv64" == target."arch" or null) || ("mips" == target."arch" or null) || ("mips64" == target."arch" or null))))); features = [ "general" "errno" "ioctl" "no_std" ]; } { @@ -6520,7 +6869,7 @@ rec { { name = "openssl-probe"; packageId = "openssl-probe"; - target = { target, features }: ((target."unix" or false) && (!("macos" == target."os"))); + target = { target, features }: ((target."unix" or false) && (!("macos" == target."os" or null))); } { name = "rustls-pemfile"; @@ -6534,7 +6883,7 @@ rec { { name = "security-framework"; packageId = "security-framework"; - target = { target, features }: ("macos" == target."os"); + target = { target, features }: ("macos" == target."os" or null); } ]; @@ -6879,6 +7228,20 @@ rec { }; resolvedDefaultFeatures = [ "OSX_10_9" ]; }; + "semver" = rec { + crateName = "semver"; + version = "1.0.20"; + edition = "2018"; + sha256 = "140hmbfa743hbmah1zjf07s8apavhvn04204qjigjiz5w6iscvw3"; + authors = [ + "David Tolnay " + ]; + features = { + "default" = [ "std" ]; + "serde" = [ "dep:serde" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; "serde" = rec { crateName = "serde"; version = "1.0.162"; @@ -6925,11 +7288,11 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "syn"; - packageId = "syn 2.0.16"; + packageId = "syn 2.0.39"; } ]; features = { }; @@ -7036,7 +7399,7 @@ rec { { name = "cpufeatures"; packageId = "cpufeatures"; - target = { target, features }: (("aarch64" == target."arch") || ("x86_64" == target."arch") || ("x86" == target."arch")); + target = { target, features }: (("aarch64" == target."arch" or null) || ("x86_64" == target."arch" or null) || ("x86" == target."arch" or null)); } { name = "digest"; @@ -7095,6 +7458,30 @@ rec { ]; }; + "signature" = rec { + crateName = "signature"; + version = "2.2.0"; + edition = "2021"; + sha256 = "1pi9hd5vqfr3q3k49k37z06p7gs5si0in32qia4mmr1dancr6m3p"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "rand_core"; + packageId = "rand_core"; + optional = true; + usesDefaultFeatures = false; + } + ]; + features = { + "derive" = [ "dep:derive" ]; + "digest" = [ "dep:digest" ]; + "rand_core" = [ "dep:rand_core" ]; + "std" = [ "alloc" "rand_core?/std" ]; + }; + resolvedDefaultFeatures = [ "alloc" "std" ]; + }; "slab" = rec { crateName = "slab"; version = "0.4.8"; @@ -7139,7 +7526,7 @@ rec { { name = "fs2"; packageId = "fs2"; - target = { target, features }: (("linux" == target."os") || ("macos" == target."os") || ("windows" == target."os")); + target = { target, features }: (("linux" == target."os" or null) || ("macos" == target."os" or null) || ("windows" == target."os" or null)); } { name = "fxhash"; @@ -7289,6 +7676,38 @@ rec { ]; }; + "spki" = rec { + crateName = "spki"; + version = "0.7.2"; + edition = "2021"; + sha256 = "0jhq00sv4w3psdi6li3vjjmspc6z2d9b1wc1srbljircy1p9j7lx"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "base64ct"; + packageId = "base64ct"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "der"; + packageId = "der"; + features = [ "oid" ]; + } + ]; + features = { + "alloc" = [ "base64ct?/alloc" "der/alloc" ]; + "arbitrary" = [ "std" "dep:arbitrary" "der/arbitrary" ]; + "base64" = [ "dep:base64ct" ]; + "fingerprint" = [ "sha2" ]; + "pem" = [ "alloc" "der/pem" ]; + "sha2" = [ "dep:sha2" ]; + "std" = [ "der/std" "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" "std" ]; + }; "static_assertions" = rec { crateName = "static_assertions"; version = "1.1.0"; @@ -7336,7 +7755,7 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "structmeta-derive"; @@ -7372,7 +7791,7 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "syn"; @@ -7450,7 +7869,7 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; optional = true; usesDefaultFeatures = false; } @@ -7468,11 +7887,11 @@ rec { }; resolvedDefaultFeatures = [ "clone-impls" "default" "derive" "extra-traits" "full" "parsing" "printing" "proc-macro" "quote" "visit" "visit-mut" ]; }; - "syn 2.0.16" = rec { + "syn 2.0.39" = rec { crateName = "syn"; - version = "2.0.16"; + version = "2.0.39"; edition = "2021"; - sha256 = "00fg96sqsswq7nwc8yxxhj3dyf96zrksxh0rxjnqxnzznpa73xm6"; + sha256 = "0ymyhxnk1yi4pzf72qk3lrdm9lgjwcrcwci0hhz5vx7wya88prr3"; authors = [ "David Tolnay " ]; @@ -7484,7 +7903,7 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; optional = true; usesDefaultFeatures = false; } @@ -7603,12 +8022,12 @@ rec { { name = "redox_syscall"; packageId = "redox_syscall 0.3.5"; - target = { target, features }: ("redox" == target."os"); + target = { target, features }: ("redox" == target."os" or null); } { name = "rustix"; packageId = "rustix"; - target = { target, features }: ((target."unix" or false) || ("wasi" == target."os")); + target = { target, features }: ((target."unix" or false) || ("wasi" == target."os" or null)); features = [ "fs" ]; } { @@ -7685,7 +8104,7 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "syn"; @@ -7746,7 +8165,7 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "structmeta"; @@ -7822,11 +8241,11 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "syn"; - packageId = "syn 2.0.16"; + packageId = "syn 2.0.39"; } ]; @@ -8143,11 +8562,11 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "syn"; - packageId = "syn 2.0.16"; + packageId = "syn 2.0.39"; features = [ "full" ]; } ]; @@ -8603,11 +9022,11 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "syn"; - packageId = "syn 2.0.16"; + packageId = "syn 2.0.39"; } ]; features = { @@ -8873,11 +9292,11 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "syn"; - packageId = "syn 2.0.16"; + packageId = "syn 2.0.39"; usesDefaultFeatures = false; features = [ "full" "parsing" "printing" "visit-mut" "clone-impls" "extra-traits" "proc-macro" ]; } @@ -9443,7 +9862,7 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "syn"; @@ -10146,7 +10565,7 @@ rec { { name = "bitflags"; packageId = "bitflags 1.3.2"; - target = { target, features }: (("linux" == target."os") || ("android" == target."os")); + target = { target, features }: (("linux" == target."os" or null) || ("android" == target."os" or null)); } { name = "libc"; @@ -10292,7 +10711,7 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "syn"; @@ -10354,7 +10773,7 @@ rec { dependencies = [ { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "wasm-bindgen-macro-support"; @@ -10382,7 +10801,7 @@ rec { } { name = "quote"; - packageId = "quote 1.0.26"; + packageId = "quote 1.0.33"; } { name = "syn"; @@ -11673,37 +12092,37 @@ rec { { name = "windows_aarch64_gnullvm"; packageId = "windows_aarch64_gnullvm 0.48.0"; - target = { target, features }: (("aarch64" == target."arch") && ("gnu" == target."env") && ("llvm" == target."abi") && (!(target."windows_raw_dylib" or false))); + target = { target, features }: (("aarch64" == target."arch" or null) && ("gnu" == target."env" or null) && ("llvm" == target."abi" or null) && (!(target."windows_raw_dylib" or false))); } { name = "windows_aarch64_msvc"; packageId = "windows_aarch64_msvc 0.48.0"; - target = { target, features }: (("aarch64" == target."arch") && ("msvc" == target."env") && (!(target."windows_raw_dylib" or false))); + target = { target, features }: (("aarch64" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } { name = "windows_i686_gnu"; packageId = "windows_i686_gnu 0.48.0"; - target = { target, features }: (("x86" == target."arch") && ("gnu" == target."env") && (!(target."windows_raw_dylib" or false))); + target = { target, features }: (("x86" == target."arch" or null) && ("gnu" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } { name = "windows_i686_msvc"; packageId = "windows_i686_msvc 0.48.0"; - target = { target, features }: (("x86" == target."arch") && ("msvc" == target."env") && (!(target."windows_raw_dylib" or false))); + target = { target, features }: (("x86" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } { name = "windows_x86_64_gnu"; packageId = "windows_x86_64_gnu 0.48.0"; - target = { target, features }: (("x86_64" == target."arch") && ("gnu" == target."env") && (!("llvm" == target."abi")) && (!(target."windows_raw_dylib" or false))); + target = { target, features }: (("x86_64" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); } { name = "windows_x86_64_gnullvm"; packageId = "windows_x86_64_gnullvm 0.48.0"; - target = { target, features }: (("x86_64" == target."arch") && ("gnu" == target."env") && ("llvm" == target."abi") && (!(target."windows_raw_dylib" or false))); + target = { target, features }: (("x86_64" == target."arch" or null) && ("gnu" == target."env" or null) && ("llvm" == target."abi" or null) && (!(target."windows_raw_dylib" or false))); } { name = "windows_x86_64_msvc"; packageId = "windows_x86_64_msvc 0.48.0"; - target = { target, features }: (("x86_64" == target."arch") && ("msvc" == target."env") && (!(target."windows_raw_dylib" or false))); + target = { target, features }: (("x86_64" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } ]; @@ -11931,6 +12350,23 @@ rec { ]; }; + "zeroize" = rec { + crateName = "zeroize"; + version = "1.7.0"; + edition = "2021"; + sha256 = "0bfvby7k9pdp6623p98yz2irqnamcyzpn7zh20nqmdn68b0lwnsj"; + authors = [ + "The RustCrypto Project Developers" + ]; + features = { + "default" = [ "alloc" ]; + "derive" = [ "zeroize_derive" ]; + "serde" = [ "dep:serde" ]; + "std" = [ "alloc" ]; + "zeroize_derive" = [ "dep:zeroize_derive" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; "zstd" = rec { crateName = "zstd"; version = "0.9.2+zstd.1.5.1"; diff --git a/tvix/nix-compat/Cargo.toml b/tvix/nix-compat/Cargo.toml index db6c772019c8..115c1b739764 100644 --- a/tvix/nix-compat/Cargo.toml +++ b/tvix/nix-compat/Cargo.toml @@ -12,6 +12,8 @@ async = ["futures-util"] bitflags = "2.4.1" bstr = { version = "1.6.0", features = ["alloc", "unicode", "serde"] } data-encoding = "2.3.3" +ed25519 = "2.2.3" +ed25519-dalek = "2.1.0" futures-util = { version = "0.3.28", features = ["io"], optional = true } glob = "0.3.0" nom = "7.1.3" diff --git a/tvix/nix-compat/src/narinfo/signature.rs b/tvix/nix-compat/src/narinfo/signature.rs index 5a7481591ce5..a0e56f93488e 100644 --- a/tvix/nix-compat/src/narinfo/signature.rs +++ b/tvix/nix-compat/src/narinfo/signature.rs @@ -35,6 +35,13 @@ impl<'a> Signature<'a> { pub fn bytes(&self) -> &[u8; 64] { &self.bytes } + + /// For a given fingerprint and ed25519 verifying key, ensure if the signature is valid. + pub fn verify(&self, fingerprint: &[u8], verifying_key: &ed25519_dalek::VerifyingKey) -> bool { + let signature = ed25519_dalek::Signature::from_bytes(self.bytes()); + + verifying_key.verify_strict(fingerprint, &signature).is_ok() + } } #[derive(Debug, thiserror::Error)] @@ -52,3 +59,50 @@ impl Display for Signature<'_> { write!(w, "{}:{}", self.name, BASE64.encode(&self.bytes)) } } + +#[cfg(test)] +mod test { + use data_encoding::BASE64; + use ed25519_dalek::VerifyingKey; + use lazy_static::lazy_static; + + use super::Signature; + use test_case::test_case; + + const FINGERPRINT: &'static str = "1;/nix/store/syd87l2rxw8cbsxmxl853h0r6pdwhwjr-curl-7.82.0-bin;sha256:1b4sb93wp679q4zx9k1ignby1yna3z7c4c2ri3wphylbc2dwsys0;196040;/nix/store/0jqd0rlxzra1rs38rdxl43yh6rxchgc6-curl-7.82.0,/nix/store/6w8g7njm4mck5dmjxws0z1xnrxvl81xa-glibc-2.34-115,/nix/store/j5jxw3iy7bbz4a57fh9g2xm2gxmyal8h-zlib-1.2.12,/nix/store/yxvjs9drzsphm9pcf42a4byzj1kb9m7k-openssl-1.1.1n"; + + // The signing key labelled as `cache.nixos.org-1`, + lazy_static! { + static ref PUB_CACHE_NIXOS_ORG_1: VerifyingKey = ed25519_dalek::VerifyingKey::from_bytes( + BASE64 + .decode(b"6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=") + .unwrap()[..] + .try_into() + .unwrap() + ) + .unwrap(); + static ref PUB_TEST_1: VerifyingKey = ed25519_dalek::VerifyingKey::from_bytes( + BASE64 + .decode(b"tLAEn+EeaBUJYqEpTd2yeerr7Ic6+0vWe+aXL/vYUpE=") + .unwrap()[..] + .try_into() + .unwrap() + ) + .unwrap(); + } + + #[test_case(&PUB_CACHE_NIXOS_ORG_1, &"cache.nixos.org-1:TsTTb3WGTZKphvYdBHXwo6weVILmTytUjLB+vcX89fOjjRicCHmKA4RCPMVLkj6TMJ4GMX3HPVWRdD1hkeKZBQ==", FINGERPRINT, true; "valid cache.nixos.org-1")] + #[test_case(&PUB_CACHE_NIXOS_ORG_1, &"cache.nixos.org-1:TsTTb3WGTZKphvYdBHXwo6weVILmTytUjLB+vcX89fOjjRicCHmKA4RCPMVLkj6TMJ4GMX3HPVWRdD1hkeKZBQ==", FINGERPRINT, true; "valid test1")] + #[test_case(&PUB_CACHE_NIXOS_ORG_1, &"cache.nixos.org-2:TsTTb3WGTZKphvYdBHXwo6weVILmTytUjLB+vcX89fOjjRicCHmKA4RCPMVLkj6TMJ4GMX3HPVWRdD1hkeKZBQ==", FINGERPRINT, true; "valid cache.nixos.org different name")] + #[test_case(&PUB_CACHE_NIXOS_ORG_1, &"cache.nixos.org-1:TsTTb000000000000000000000000ytUjLB+vcX89fOjjRicCHmKA4RCPMVLkj6TMJ4GMX3HPVWRdD1hkeKZBQ==", FINGERPRINT, false; "fail invalid cache.nixos.org-1 signature")] + #[test_case(&PUB_CACHE_NIXOS_ORG_1, &"cache.nixos.org-1:TsTTb3WGTZKphvYdBHXwo6weVILmTytUjLB+vcX89fOjjRicCHmKA4RCPMVLkj6TMJ4GMX3HPVWRdD1hkeKZBQ==", &FINGERPRINT[0..5], false; "fail valid sig but wrong fp cache.nixos.org-1")] + fn verify_sigs( + verifying_key: &VerifyingKey, + sig_str: &'static str, + fp: &str, + expect_valid: bool, + ) { + let sig = Signature::parse(sig_str).expect("must parse"); + assert_eq!(expect_valid, sig.verify(fp.as_bytes(), verifying_key)); + } +} diff --git a/tvix/tools/narinfo2parquet/Cargo.lock b/tvix/tools/narinfo2parquet/Cargo.lock index 311c18161c11..0fc91db5adc7 100644 --- a/tvix/tools/narinfo2parquet/Cargo.lock +++ b/tvix/tools/narinfo2parquet/Cargo.lock @@ -178,6 +178,12 @@ version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + [[package]] name = "bitflags" version = "1.3.2" @@ -291,6 +297,12 @@ dependencies = [ "windows-targets", ] +[[package]] +name = "const-oid" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" + [[package]] name = "core-foundation-sys" version = "0.8.4" @@ -378,12 +390,50 @@ dependencies = [ "typenum", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "data-encoding" version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "zeroize", +] + [[package]] name = "digest" version = "0.10.7" @@ -400,6 +450,30 @@ version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" +dependencies = [ + "curve25519-dalek", + "ed25519", + "serde", + "sha2", + "subtle", + "zeroize", +] + [[package]] name = "either" version = "1.9.0" @@ -452,6 +526,12 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +[[package]] +name = "fiat-crypto" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" + [[package]] name = "flate2" version = "1.0.28" @@ -900,6 +980,8 @@ dependencies = [ "bitflags 2.4.1", "bstr", "data-encoding", + "ed25519", + "ed25519-dalek", "glob", "nom", "serde", @@ -1018,6 +1100,16 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + [[package]] name = "pkg-config" version = "0.3.27" @@ -1033,6 +1125,12 @@ dependencies = [ "array-init-cursor", ] +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + [[package]] name = "polars" version = "0.34.2" @@ -1529,6 +1627,15 @@ dependencies = [ "digest", ] +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "rand_core", +] + [[package]] name = "simdutf8" version = "0.1.4" @@ -1571,6 +1678,16 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "spki" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" +dependencies = [ + "base64ct", + "der", +] + [[package]] name = "sqlparser" version = "0.38.0" @@ -1620,6 +1737,12 @@ dependencies = [ "syn 2.0.39", ] +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + [[package]] name = "syn" version = "1.0.109" @@ -1936,6 +2059,12 @@ dependencies = [ "syn 2.0.39", ] +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" + [[package]] name = "zstd" version = "0.12.4" diff --git a/tvix/tools/narinfo2parquet/Cargo.nix b/tvix/tools/narinfo2parquet/Cargo.nix index 02c924fcc12a..98fc64f22110 100644 --- a/tvix/tools/narinfo2parquet/Cargo.nix +++ b/tvix/tools/narinfo2parquet/Cargo.nix @@ -147,7 +147,7 @@ rec { name = "once_cell"; packageId = "once_cell"; usesDefaultFeatures = false; - target = { target, features }: (!(("arm" == target."arch") && ("none" == target."os"))); + target = { target, features }: (!(("arm" == target."arch" or null) && ("none" == target."os" or null))); features = [ "unstable" "alloc" ]; } { @@ -475,7 +475,7 @@ rec { name = "addr2line"; packageId = "addr2line"; usesDefaultFeatures = false; - target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env") && (!("uwp" == target."vendor")))); + target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env" or null) && (!("uwp" == target."vendor" or null)))); } { name = "cfg-if"; @@ -485,19 +485,19 @@ rec { name = "libc"; packageId = "libc"; usesDefaultFeatures = false; - target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env") && (!("uwp" == target."vendor")))); + target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env" or null) && (!("uwp" == target."vendor" or null)))); } { name = "miniz_oxide"; packageId = "miniz_oxide"; usesDefaultFeatures = false; - target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env") && (!("uwp" == target."vendor")))); + target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env" or null) && (!("uwp" == target."vendor" or null)))); } { name = "object"; packageId = "object"; usesDefaultFeatures = false; - target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env") && (!("uwp" == target."vendor")))); + target = { target, features }: (!((target."windows" or false) && ("msvc" == target."env" or null) && (!("uwp" == target."vendor" or null)))); features = [ "read_core" "elf" "macho" "pe" "unaligned" "archive" ]; } { @@ -538,6 +538,19 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "default" "std" ]; }; + "base64ct" = rec { + crateName = "base64ct"; + version = "1.6.0"; + edition = "2021"; + sha256 = "0nvdba4jb8aikv60az40x2w1y96sjdq8z3yp09rwzmkhiwv1lg4c"; + authors = [ + "RustCrypto Developers" + ]; + features = { + "std" = [ "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; "bitflags 1.3.2" = rec { crateName = "bitflags"; version = "1.3.2"; @@ -818,7 +831,7 @@ rec { name = "android-tzdata"; packageId = "android-tzdata"; optional = true; - target = { target, features }: ("android" == target."os"); + target = { target, features }: ("android" == target."os" or null); } { name = "iana-time-zone"; @@ -858,6 +871,18 @@ rec { }; resolvedDefaultFeatures = [ "android-tzdata" "clock" "iana-time-zone" "std" "winapi" "windows-targets" ]; }; + "const-oid" = rec { + crateName = "const-oid"; + version = "0.9.5"; + edition = "2021"; + sha256 = "0vxb4d25mgk8y0phay7j078limx2553716ixsr1x5605k31j5h98"; + authors = [ + "RustCrypto Developers" + ]; + features = { + "arbitrary" = [ "dep:arbitrary" ]; + }; + }; "core-foundation-sys" = rec { crateName = "core-foundation-sys"; version = "0.8.4"; @@ -885,17 +910,17 @@ rec { { name = "libc"; packageId = "libc"; - target = { target, features }: (("aarch64" == target."arch") && ("linux" == target."os")); + target = { target, features }: (("aarch64" == target."arch" or null) && ("linux" == target."os" or null)); } { name = "libc"; packageId = "libc"; - target = { target, features }: (("aarch64" == target."arch") && ("apple" == target."vendor")); + target = { target, features }: (("aarch64" == target."arch" or null) && ("apple" == target."vendor" or null)); } { name = "libc"; packageId = "libc"; - target = { target, features }: (("loongarch64" == target."arch") && ("linux" == target."os")); + target = { target, features }: (("loongarch64" == target."arch" or null) && ("linux" == target."os" or null)); } ]; @@ -1080,6 +1105,100 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; + "curve25519-dalek" = rec { + crateName = "curve25519-dalek"; + version = "4.1.1"; + edition = "2021"; + sha256 = "0p7ns5917k6369gajrsbfj24llc5zfm635yh3abla7sb5rm8r6z8"; + authors = [ + "Isis Lovecruft " + "Henry de Valence " + ]; + dependencies = [ + { + name = "cfg-if"; + packageId = "cfg-if"; + } + { + name = "cpufeatures"; + packageId = "cpufeatures"; + target = { target, features }: ("x86_64" == target."arch" or null); + } + { + name = "curve25519-dalek-derive"; + packageId = "curve25519-dalek-derive"; + target = { target, features }: ((!("fiat" == target."curve25519_dalek_backend" or null)) && (!("serial" == target."curve25519_dalek_backend" or null)) && ("x86_64" == target."arch" or null)); + } + { + name = "digest"; + packageId = "digest"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "fiat-crypto"; + packageId = "fiat-crypto"; + usesDefaultFeatures = false; + target = { target, features }: ("fiat" == target."curve25519_dalek_backend" or null); + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } + ]; + buildDependencies = [ + { + name = "platforms"; + packageId = "platforms"; + } + { + name = "rustc_version"; + packageId = "rustc_version"; + } + ]; + features = { + "alloc" = [ "zeroize?/alloc" ]; + "default" = [ "alloc" "precomputed-tables" "zeroize" ]; + "digest" = [ "dep:digest" ]; + "ff" = [ "dep:ff" ]; + "group" = [ "dep:group" "rand_core" ]; + "group-bits" = [ "group" "ff/bits" ]; + "rand_core" = [ "dep:rand_core" ]; + "serde" = [ "dep:serde" ]; + "zeroize" = [ "dep:zeroize" ]; + }; + resolvedDefaultFeatures = [ "alloc" "digest" "precomputed-tables" "zeroize" ]; + }; + "curve25519-dalek-derive" = rec { + crateName = "curve25519-dalek-derive"; + version = "0.1.1"; + edition = "2021"; + sha256 = "1cry71xxrr0mcy5my3fb502cwfxy6822k4pm19cwrilrg7hq4s7l"; + procMacro = true; + dependencies = [ + { + name = "proc-macro2"; + packageId = "proc-macro2"; + } + { + name = "quote"; + packageId = "quote"; + } + { + name = "syn"; + packageId = "syn 2.0.39"; + features = [ "full" ]; + } + ]; + + }; "data-encoding" = rec { crateName = "data-encoding"; version = "2.4.0"; @@ -1094,6 +1213,41 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "default" "std" ]; }; + "der" = rec { + crateName = "der"; + version = "0.7.8"; + edition = "2021"; + sha256 = "070bwiyr80800h31c5zd96ckkgagfjgnrrdmz3dzg2lccsd3dypz"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "const-oid"; + packageId = "const-oid"; + optional = true; + } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } + ]; + features = { + "alloc" = [ "zeroize?/alloc" ]; + "arbitrary" = [ "dep:arbitrary" "const-oid?/arbitrary" "std" ]; + "bytes" = [ "dep:bytes" "alloc" ]; + "derive" = [ "dep:der_derive" ]; + "flagset" = [ "dep:flagset" ]; + "oid" = [ "dep:const-oid" ]; + "pem" = [ "dep:pem-rfc7468" "alloc" "zeroize" ]; + "std" = [ "alloc" ]; + "time" = [ "dep:time" ]; + "zeroize" = [ "dep:zeroize" ]; + }; + resolvedDefaultFeatures = [ "alloc" "oid" "std" "zeroize" ]; + }; "digest" = rec { crateName = "digest"; version = "0.10.7"; @@ -1138,6 +1292,115 @@ rec { ]; }; + "ed25519" = rec { + crateName = "ed25519"; + version = "2.2.3"; + edition = "2021"; + sha256 = "0lydzdf26zbn82g7xfczcac9d7mzm3qgx934ijjrd5hjpjx32m8i"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "pkcs8"; + packageId = "pkcs8"; + optional = true; + } + { + name = "signature"; + packageId = "signature"; + usesDefaultFeatures = false; + } + ]; + features = { + "alloc" = [ "pkcs8?/alloc" ]; + "default" = [ "std" ]; + "pem" = [ "alloc" "pkcs8/pem" ]; + "pkcs8" = [ "dep:pkcs8" ]; + "serde" = [ "dep:serde" ]; + "serde_bytes" = [ "serde" "dep:serde_bytes" ]; + "std" = [ "pkcs8?/std" "signature/std" ]; + "zeroize" = [ "dep:zeroize" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" "std" ]; + }; + "ed25519-dalek" = rec { + crateName = "ed25519-dalek"; + version = "2.1.0"; + edition = "2021"; + sha256 = "1h13qm789m9gdjl6jazss80hqi8ll37m0afwcnw23zcbqjp8wqhz"; + authors = [ + "isis lovecruft " + "Tony Arcieri " + "Michael Rosenberg " + ]; + dependencies = [ + { + name = "curve25519-dalek"; + packageId = "curve25519-dalek"; + usesDefaultFeatures = false; + features = [ "digest" ]; + } + { + name = "ed25519"; + packageId = "ed25519"; + usesDefaultFeatures = false; + } + { + name = "serde"; + packageId = "serde"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "sha2"; + packageId = "sha2"; + usesDefaultFeatures = false; + } + { + name = "subtle"; + packageId = "subtle"; + usesDefaultFeatures = false; + } + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + usesDefaultFeatures = false; + } + ]; + devDependencies = [ + { + name = "curve25519-dalek"; + packageId = "curve25519-dalek"; + usesDefaultFeatures = false; + features = [ "digest" "rand_core" ]; + } + { + name = "serde"; + packageId = "serde"; + features = [ "derive" ]; + } + ]; + features = { + "alloc" = [ "curve25519-dalek/alloc" "ed25519/alloc" "serde?/alloc" "zeroize/alloc" ]; + "asm" = [ "sha2/asm" ]; + "batch" = [ "alloc" "merlin" "rand_core" ]; + "default" = [ "fast" "std" "zeroize" ]; + "digest" = [ "signature/digest" ]; + "fast" = [ "curve25519-dalek/precomputed-tables" ]; + "legacy_compatibility" = [ "curve25519-dalek/legacy_compatibility" ]; + "merlin" = [ "dep:merlin" ]; + "pem" = [ "alloc" "ed25519/pem" "pkcs8" ]; + "pkcs8" = [ "ed25519/pkcs8" ]; + "rand_core" = [ "dep:rand_core" ]; + "serde" = [ "dep:serde" "ed25519/serde" ]; + "signature" = [ "dep:signature" ]; + "std" = [ "alloc" "ed25519/std" "serde?/std" "sha2/std" ]; + "zeroize" = [ "dep:zeroize" "curve25519-dalek/zeroize" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" "fast" "std" "zeroize" ]; + }; "either" = rec { crateName = "either"; version = "1.9.0"; @@ -1202,13 +1465,13 @@ rec { name = "libc"; packageId = "libc"; usesDefaultFeatures = false; - target = { target, features }: ("hermit" == target."os"); + target = { target, features }: ("hermit" == target."os" or null); } { name = "libc"; packageId = "libc"; usesDefaultFeatures = false; - target = { target, features }: ("wasi" == target."os"); + target = { target, features }: ("wasi" == target."os" or null); } { name = "libc"; @@ -1269,6 +1532,18 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "default" "std" ]; }; + "fiat-crypto" = rec { + crateName = "fiat-crypto"; + version = "0.2.5"; + edition = "2018"; + sha256 = "1dxn0g50pv0ppal779vi7k40fr55pbhkyv4in7i13pgl4sn3wmr7"; + authors = [ + "Fiat Crypto library authors " + ]; + features = { + "default" = [ "std" ]; + }; + }; "flate2" = rec { crateName = "flate2"; version = "1.0.28"; @@ -1294,7 +1569,7 @@ rec { name = "miniz_oxide"; packageId = "miniz_oxide"; usesDefaultFeatures = false; - target = { target, features }: (("wasm32" == target."arch") && (!("emscripten" == target."os"))); + target = { target, features }: (("wasm32" == target."arch" or null) && (!("emscripten" == target."os" or null))); features = [ "with-alloc" ]; } ]; @@ -1640,7 +1915,7 @@ rec { name = "js-sys"; packageId = "js-sys"; optional = true; - target = { target, features }: ((("wasm32" == target."arch") || ("wasm64" == target."arch")) && ("unknown" == target."os")); + target = { target, features }: ((("wasm32" == target."arch" or null) || ("wasm64" == target."arch" or null)) && ("unknown" == target."os" or null)); } { name = "libc"; @@ -1652,14 +1927,14 @@ rec { name = "wasi"; packageId = "wasi"; usesDefaultFeatures = false; - target = { target, features }: ("wasi" == target."os"); + target = { target, features }: ("wasi" == target."os" or null); } { name = "wasm-bindgen"; packageId = "wasm-bindgen"; optional = true; usesDefaultFeatures = false; - target = { target, features }: ((("wasm32" == target."arch") || ("wasm64" == target."arch")) && ("unknown" == target."os")); + target = { target, features }: ((("wasm32" == target."arch" or null) || ("wasm64" == target."arch" or null)) && ("unknown" == target."os" or null)); } ]; features = { @@ -1811,32 +2086,32 @@ rec { { name = "android_system_properties"; packageId = "android_system_properties"; - target = { target, features }: ("android" == target."os"); + target = { target, features }: ("android" == target."os" or null); } { name = "core-foundation-sys"; packageId = "core-foundation-sys"; - target = { target, features }: (("macos" == target."os") || ("ios" == target."os")); + target = { target, features }: (("macos" == target."os" or null) || ("ios" == target."os" or null)); } { name = "iana-time-zone-haiku"; packageId = "iana-time-zone-haiku"; - target = { target, features }: ("haiku" == target."os"); + target = { target, features }: ("haiku" == target."os" or null); } { name = "js-sys"; packageId = "js-sys"; - target = { target, features }: ("wasm32" == target."arch"); + target = { target, features }: ("wasm32" == target."arch" or null); } { name = "wasm-bindgen"; packageId = "wasm-bindgen"; - target = { target, features }: ("wasm32" == target."arch"); + target = { target, features }: ("wasm32" == target."arch" or null); } { name = "windows-core"; packageId = "windows-core"; - target = { target, features }: ("windows" == target."os"); + target = { target, features }: ("windows" == target."os" or null); } ]; features = { }; @@ -2449,7 +2724,7 @@ rec { { name = "libc"; packageId = "libc"; - target = { target, features }: ("wasi" == target."os"); + target = { target, features }: ("wasi" == target."os" or null); } { name = "libc"; @@ -2459,7 +2734,7 @@ rec { { name = "wasi"; packageId = "wasi"; - target = { target, features }: ("wasi" == target."os"); + target = { target, features }: ("wasi" == target."os" or null); } { name = "windows-sys"; @@ -2606,6 +2881,14 @@ rec { name = "data-encoding"; packageId = "data-encoding"; } + { + name = "ed25519"; + packageId = "ed25519"; + } + { + name = "ed25519-dalek"; + packageId = "ed25519-dalek"; + } { name = "glob"; packageId = "glob"; @@ -2747,7 +3030,7 @@ rec { { name = "hermit-abi"; packageId = "hermit-abi"; - target = { target, features }: ("hermit" == target."os"); + target = { target, features }: ("hermit" == target."os" or null); } { name = "libc"; @@ -2956,6 +3239,40 @@ rec { ]; }; + "pkcs8" = rec { + crateName = "pkcs8"; + version = "0.10.2"; + edition = "2021"; + sha256 = "1dx7w21gvn07azszgqd3ryjhyphsrjrmq5mmz1fbxkj5g0vv4l7r"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "der"; + packageId = "der"; + features = [ "oid" ]; + } + { + name = "spki"; + packageId = "spki"; + } + ]; + features = { + "3des" = [ "encryption" "pkcs5/3des" ]; + "alloc" = [ "der/alloc" "der/zeroize" "spki/alloc" ]; + "des-insecure" = [ "encryption" "pkcs5/des-insecure" ]; + "encryption" = [ "alloc" "pkcs5/alloc" "pkcs5/pbes2" "rand_core" ]; + "getrandom" = [ "rand_core/getrandom" ]; + "pem" = [ "alloc" "der/pem" "spki/pem" ]; + "pkcs5" = [ "dep:pkcs5" ]; + "rand_core" = [ "dep:rand_core" ]; + "sha1-insecure" = [ "encryption" "pkcs5/sha1-insecure" ]; + "std" = [ "alloc" "der/std" "spki/std" ]; + "subtle" = [ "dep:subtle" ]; + }; + resolvedDefaultFeatures = [ "alloc" "std" ]; + }; "pkg-config" = rec { crateName = "pkg-config"; version = "0.3.27"; @@ -2982,6 +3299,21 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; + "platforms" = rec { + crateName = "platforms"; + version = "3.2.0"; + edition = "2018"; + sha256 = "1c6bzwn877aqdbbmyqsl753ycbciwvbdh4lpzijb8vrfb4zsprhl"; + authors = [ + "Tony Arcieri " + "Sergey \"Shnatsel\" Davidoff " + ]; + features = { + "default" = [ "std" ]; + "serde" = [ "dep:serde" ]; + }; + resolvedDefaultFeatures = [ "default" "std" ]; + }; "polars" = rec { crateName = "polars"; version = "0.34.2"; @@ -4974,14 +5306,14 @@ rec { rename = "libc_errno"; optional = true; usesDefaultFeatures = false; - target = { target, features }: ((!(target."rustix_use_libc" or false)) && (!(target."miri" or false)) && ("linux" == target."os") && ("little" == target."endian") && (("arm" == target."arch") || (("aarch64" == target."arch") && ("64" == target."pointer_width")) || ("riscv64" == target."arch") || ((target."rustix_use_experimental_asm" or false) && ("powerpc64" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips32r6" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips64" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips64r6" == target."arch")) || ("x86" == target."arch") || (("x86_64" == target."arch") && ("64" == target."pointer_width")))); + target = { target, features }: ((!(target."rustix_use_libc" or false)) && (!(target."miri" or false)) && ("linux" == target."os" or null) && ("little" == target."endian" or null) && (("arm" == target."arch" or null) || (("aarch64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || ("riscv64" == target."arch" or null) || ((target."rustix_use_experimental_asm" or false) && ("powerpc64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips32r6" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64r6" == target."arch" or null)) || ("x86" == target."arch" or null) || (("x86_64" == target."arch" or null) && ("64" == target."pointer_width" or null)))); } { name = "errno"; packageId = "errno"; rename = "libc_errno"; usesDefaultFeatures = false; - target = { target, features }: ((!(target."windows" or false)) && ((target."rustix_use_libc" or false) || (target."miri" or false) || (!(("linux" == target."os") && ("little" == target."endian") && (("arm" == target."arch") || (("aarch64" == target."arch") && ("64" == target."pointer_width")) || ("riscv64" == target."arch") || ((target."rustix_use_experimental_asm" or false) && ("powerpc64" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips32r6" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips64" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips64r6" == target."arch")) || ("x86" == target."arch") || (("x86_64" == target."arch") && ("64" == target."pointer_width"))))))); + target = { target, features }: ((!(target."windows" or false)) && ((target."rustix_use_libc" or false) || (target."miri" or false) || (!(("linux" == target."os" or null) && ("little" == target."endian" or null) && (("arm" == target."arch" or null) || (("aarch64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || ("riscv64" == target."arch" or null) || ((target."rustix_use_experimental_asm" or false) && ("powerpc64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips32r6" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64r6" == target."arch" or null)) || ("x86" == target."arch" or null) || (("x86_64" == target."arch" or null) && ("64" == target."pointer_width" or null))))))); } { name = "errno"; @@ -4995,28 +5327,28 @@ rec { packageId = "libc"; optional = true; usesDefaultFeatures = false; - target = { target, features }: ((!(target."rustix_use_libc" or false)) && (!(target."miri" or false)) && ("linux" == target."os") && ("little" == target."endian") && (("arm" == target."arch") || (("aarch64" == target."arch") && ("64" == target."pointer_width")) || ("riscv64" == target."arch") || ((target."rustix_use_experimental_asm" or false) && ("powerpc64" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips32r6" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips64" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips64r6" == target."arch")) || ("x86" == target."arch") || (("x86_64" == target."arch") && ("64" == target."pointer_width")))); + target = { target, features }: ((!(target."rustix_use_libc" or false)) && (!(target."miri" or false)) && ("linux" == target."os" or null) && ("little" == target."endian" or null) && (("arm" == target."arch" or null) || (("aarch64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || ("riscv64" == target."arch" or null) || ((target."rustix_use_experimental_asm" or false) && ("powerpc64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips32r6" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64r6" == target."arch" or null)) || ("x86" == target."arch" or null) || (("x86_64" == target."arch" or null) && ("64" == target."pointer_width" or null)))); features = [ "extra_traits" ]; } { name = "libc"; packageId = "libc"; usesDefaultFeatures = false; - target = { target, features }: ((!(target."windows" or false)) && ((target."rustix_use_libc" or false) || (target."miri" or false) || (!(("linux" == target."os") && ("little" == target."endian") && (("arm" == target."arch") || (("aarch64" == target."arch") && ("64" == target."pointer_width")) || ("riscv64" == target."arch") || ((target."rustix_use_experimental_asm" or false) && ("powerpc64" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips32r6" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips64" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips64r6" == target."arch")) || ("x86" == target."arch") || (("x86_64" == target."arch") && ("64" == target."pointer_width"))))))); + target = { target, features }: ((!(target."windows" or false)) && ((target."rustix_use_libc" or false) || (target."miri" or false) || (!(("linux" == target."os" or null) && ("little" == target."endian" or null) && (("arm" == target."arch" or null) || (("aarch64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || ("riscv64" == target."arch" or null) || ((target."rustix_use_experimental_asm" or false) && ("powerpc64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips32r6" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64r6" == target."arch" or null)) || ("x86" == target."arch" or null) || (("x86_64" == target."arch" or null) && ("64" == target."pointer_width" or null))))))); features = [ "extra_traits" ]; } { name = "linux-raw-sys"; packageId = "linux-raw-sys"; usesDefaultFeatures = false; - target = { target, features }: ((("android" == target."os") || ("linux" == target."os")) && ((target."rustix_use_libc" or false) || (target."miri" or false) || (!(("linux" == target."os") && ("little" == target."endian") && (("arm" == target."arch") || (("aarch64" == target."arch") && ("64" == target."pointer_width")) || ("riscv64" == target."arch") || ((target."rustix_use_experimental_asm" or false) && ("powerpc64" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips32r6" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips64" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips64r6" == target."arch")) || ("x86" == target."arch") || (("x86_64" == target."arch") && ("64" == target."pointer_width"))))))); + target = { target, features }: ((("android" == target."os" or null) || ("linux" == target."os" or null)) && ((target."rustix_use_libc" or false) || (target."miri" or false) || (!(("linux" == target."os" or null) && ("little" == target."endian" or null) && (("arm" == target."arch" or null) || (("aarch64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || ("riscv64" == target."arch" or null) || ((target."rustix_use_experimental_asm" or false) && ("powerpc64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips32r6" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64r6" == target."arch" or null)) || ("x86" == target."arch" or null) || (("x86_64" == target."arch" or null) && ("64" == target."pointer_width" or null))))))); features = [ "general" "ioctl" "no_std" ]; } { name = "linux-raw-sys"; packageId = "linux-raw-sys"; usesDefaultFeatures = false; - target = { target, features }: ((!(target."rustix_use_libc" or false)) && (!(target."miri" or false)) && ("linux" == target."os") && ("little" == target."endian") && (("arm" == target."arch") || (("aarch64" == target."arch") && ("64" == target."pointer_width")) || ("riscv64" == target."arch") || ((target."rustix_use_experimental_asm" or false) && ("powerpc64" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips32r6" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips64" == target."arch")) || ((target."rustix_use_experimental_asm" or false) && ("mips64r6" == target."arch")) || ("x86" == target."arch") || (("x86_64" == target."arch") && ("64" == target."pointer_width")))); + target = { target, features }: ((!(target."rustix_use_libc" or false)) && (!(target."miri" or false)) && ("linux" == target."os" or null) && ("little" == target."endian" or null) && (("arm" == target."arch" or null) || (("aarch64" == target."arch" or null) && ("64" == target."pointer_width" or null)) || ("riscv64" == target."arch" or null) || ((target."rustix_use_experimental_asm" or false) && ("powerpc64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips32r6" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64" == target."arch" or null)) || ((target."rustix_use_experimental_asm" or false) && ("mips64r6" == target."arch" or null)) || ("x86" == target."arch" or null) || (("x86_64" == target."arch" or null) && ("64" == target."pointer_width" or null)))); features = [ "general" "errno" "ioctl" "no_std" "elf" ]; } { @@ -5240,7 +5572,7 @@ rec { { name = "cpufeatures"; packageId = "cpufeatures"; - target = { target, features }: (("aarch64" == target."arch") || ("x86_64" == target."arch") || ("x86" == target."arch")); + target = { target, features }: (("aarch64" == target."arch" or null) || ("x86_64" == target."arch" or null) || ("x86" == target."arch" or null)); } { name = "digest"; @@ -5264,6 +5596,30 @@ rec { }; resolvedDefaultFeatures = [ "default" "std" ]; }; + "signature" = rec { + crateName = "signature"; + version = "2.2.0"; + edition = "2021"; + sha256 = "1pi9hd5vqfr3q3k49k37z06p7gs5si0in32qia4mmr1dancr6m3p"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "rand_core"; + packageId = "rand_core"; + optional = true; + usesDefaultFeatures = false; + } + ]; + features = { + "derive" = [ "dep:derive" ]; + "digest" = [ "dep:digest" ]; + "rand_core" = [ "dep:rand_core" ]; + "std" = [ "alloc" "rand_core?/std" ]; + }; + resolvedDefaultFeatures = [ "alloc" "std" ]; + }; "simdutf8" = rec { crateName = "simdutf8"; version = "0.1.4"; @@ -5365,6 +5721,38 @@ rec { features = { }; resolvedDefaultFeatures = [ "all" ]; }; + "spki" = rec { + crateName = "spki"; + version = "0.7.2"; + edition = "2021"; + sha256 = "0jhq00sv4w3psdi6li3vjjmspc6z2d9b1wc1srbljircy1p9j7lx"; + authors = [ + "RustCrypto Developers" + ]; + dependencies = [ + { + name = "base64ct"; + packageId = "base64ct"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "der"; + packageId = "der"; + features = [ "oid" ]; + } + ]; + features = { + "alloc" = [ "base64ct?/alloc" "der/alloc" ]; + "arbitrary" = [ "std" "dep:arbitrary" "der/arbitrary" ]; + "base64" = [ "dep:base64ct" ]; + "fingerprint" = [ "sha2" ]; + "pem" = [ "alloc" "der/pem" ]; + "sha2" = [ "dep:sha2" ]; + "std" = [ "der/std" "alloc" ]; + }; + resolvedDefaultFeatures = [ "alloc" "std" ]; + }; "sqlparser" = rec { crateName = "sqlparser"; version = "0.38.0"; @@ -5469,6 +5857,19 @@ rec { ]; }; + "subtle" = rec { + crateName = "subtle"; + version = "2.5.0"; + edition = "2018"; + sha256 = "1g2yjs7gffgmdvkkq0wrrh0pxds3q0dv6dhkw9cdpbib656xdkc1"; + authors = [ + "Isis Lovecruft " + "Henry de Valence " + ]; + features = { + "default" = [ "std" "i128" ]; + }; + }; "syn 1.0.109" = rec { crateName = "syn"; version = "1.0.109"; @@ -5553,12 +5954,12 @@ rec { { name = "core-foundation-sys"; packageId = "core-foundation-sys"; - target = { target, features }: (("macos" == target."os") || ("ios" == target."os")); + target = { target, features }: (("macos" == target."os" or null) || ("ios" == target."os" or null)); } { name = "libc"; packageId = "libc"; - target = { target, features }: (!(("unknown" == target."os") || ("wasm32" == target."arch"))); + target = { target, features }: (!(("unknown" == target."os" or null) || ("wasm32" == target."arch" or null))); } { name = "ntapi"; @@ -5568,7 +5969,7 @@ rec { { name = "once_cell"; packageId = "once_cell"; - target = { target, features }: ((target."windows" or false) || ("linux" == target."os") || ("android" == target."os")); + target = { target, features }: ((target."windows" or false) || ("linux" == target."os" or null) || ("android" == target."os" or null)); } { name = "winapi"; @@ -5619,12 +6020,12 @@ rec { { name = "redox_syscall"; packageId = "redox_syscall"; - target = { target, features }: ("redox" == target."os"); + target = { target, features }: ("redox" == target."os" or null); } { name = "rustix"; packageId = "rustix"; - target = { target, features }: ((target."unix" or false) || ("wasi" == target."os")); + target = { target, features }: ((target."unix" or false) || ("wasi" == target."os" or null)); features = [ "fs" ]; } { @@ -6422,22 +6823,22 @@ rec { { name = "windows_aarch64_msvc"; packageId = "windows_aarch64_msvc"; - target = { target, features }: (("aarch64" == target."arch") && ("msvc" == target."env") && (!(target."windows_raw_dylib" or false))); + target = { target, features }: (("aarch64" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } { name = "windows_i686_gnu"; packageId = "windows_i686_gnu"; - target = { target, features }: (("x86" == target."arch") && ("gnu" == target."env") && (!(target."windows_raw_dylib" or false))); + target = { target, features }: (("x86" == target."arch" or null) && ("gnu" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } { name = "windows_i686_msvc"; packageId = "windows_i686_msvc"; - target = { target, features }: (("x86" == target."arch") && ("msvc" == target."env") && (!(target."windows_raw_dylib" or false))); + target = { target, features }: (("x86" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } { name = "windows_x86_64_gnu"; packageId = "windows_x86_64_gnu"; - target = { target, features }: (("x86_64" == target."arch") && ("gnu" == target."env") && (!("llvm" == target."abi")) && (!(target."windows_raw_dylib" or false))); + target = { target, features }: (("x86_64" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); } { name = "windows_x86_64_gnullvm"; @@ -6447,7 +6848,7 @@ rec { { name = "windows_x86_64_msvc"; packageId = "windows_x86_64_msvc"; - target = { target, features }: (("x86_64" == target."arch") && ("msvc" == target."env") && (!(target."windows_raw_dylib" or false))); + target = { target, features }: (("x86_64" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } ]; @@ -6594,6 +6995,23 @@ rec { ]; }; + "zeroize" = rec { + crateName = "zeroize"; + version = "1.7.0"; + edition = "2021"; + sha256 = "0bfvby7k9pdp6623p98yz2irqnamcyzpn7zh20nqmdn68b0lwnsj"; + authors = [ + "The RustCrypto Project Developers" + ]; + features = { + "default" = [ "alloc" ]; + "derive" = [ "zeroize_derive" ]; + "serde" = [ "dep:serde" ]; + "std" = [ "alloc" ]; + "zeroize_derive" = [ "dep:zeroize_derive" ]; + }; + resolvedDefaultFeatures = [ "alloc" ]; + }; "zstd 0.12.4" = rec { crateName = "zstd"; version = "0.12.4"; -- cgit 1.4.1