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 <flokli@flokli.de>
Reviewed-by: raitobezarius <tvl@lahfa.xyz>
Tested-by: BuildkiteCI
This commit is contained in:
Florian Klink 2023-11-19 22:21:24 +02:00 committed by clbot
parent 9322d29ea9
commit bb18556bf3
6 changed files with 1388 additions and 211 deletions

222
tvix/Cargo.lock generated
View file

@ -112,8 +112,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"syn 2.0.16", "syn 2.0.39",
] ]
[[package]] [[package]]
@ -134,8 +134,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"syn 2.0.16", "syn 2.0.39",
] ]
[[package]] [[package]]
@ -145,8 +145,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"syn 2.0.16", "syn 2.0.39",
] ]
[[package]] [[package]]
@ -232,6 +232,12 @@ version = "0.21.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
[[package]]
name = "base64ct"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
[[package]] [[package]]
name = "bit-set" name = "bit-set"
version = "0.5.3" version = "0.5.3"
@ -420,8 +426,8 @@ checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4"
dependencies = [ dependencies = [
"heck", "heck",
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"syn 2.0.16", "syn 2.0.39",
] ]
[[package]] [[package]]
@ -473,6 +479,12 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
[[package]]
name = "const-oid"
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f"
[[package]] [[package]]
name = "constant_time_eq" name = "constant_time_eq"
version = "0.2.5" version = "0.2.5"
@ -614,12 +626,50 @@ dependencies = [
"typenum", "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]] [[package]]
name = "data-encoding" name = "data-encoding"
version = "2.3.3" version = "2.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" 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]] [[package]]
name = "diff" name = "diff"
version = "0.1.13" version = "0.1.13"
@ -687,6 +737,30 @@ dependencies = [
"litrs", "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]] [[package]]
name = "either" name = "either"
version = "1.8.1" version = "1.8.1"
@ -759,6 +833,12 @@ dependencies = [
"windows-sys 0.48.0", "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]] [[package]]
name = "fixedbitset" name = "fixedbitset"
version = "0.4.2" version = "0.4.2"
@ -860,8 +940,8 @@ version = "0.3.29"
source = "git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85" source = "git+https://github.com/edef1c/futures-rs?rev=23e25061f2261794d6d611675a6372c96b70fa85#23e25061f2261794d6d611675a6372c96b70fa85"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"syn 2.0.16", "syn 2.0.39",
] ]
[[package]] [[package]]
@ -1467,6 +1547,8 @@ dependencies = [
"bstr", "bstr",
"criterion", "criterion",
"data-encoding", "data-encoding",
"ed25519",
"ed25519-dalek",
"futures", "futures",
"futures-util", "futures-util",
"glob", "glob",
@ -1657,8 +1739,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"syn 2.0.16", "syn 2.0.39",
] ]
[[package]] [[package]]
@ -1673,12 +1755,28 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 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]] [[package]]
name = "pkg-config" name = "pkg-config"
version = "0.3.27" version = "0.3.27"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
[[package]]
name = "platforms"
version = "3.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0"
[[package]] [[package]]
name = "plotters" name = "plotters"
version = "0.3.4" version = "0.3.4"
@ -1730,7 +1828,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9825a04601d60621feed79c4e6b56d65db77cdca55cef43b46b0de1096d1c282" checksum = "9825a04601d60621feed79c4e6b56d65db77cdca55cef43b46b0de1096d1c282"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"syn 2.0.16", "syn 2.0.39",
] ]
[[package]] [[package]]
@ -1741,7 +1839,7 @@ checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [ dependencies = [
"proc-macro-error-attr", "proc-macro-error-attr",
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"syn 1.0.109", "syn 1.0.109",
"version_check", "version_check",
] ]
@ -1753,7 +1851,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"version_check", "version_check",
] ]
@ -1822,7 +1920,7 @@ dependencies = [
"prost", "prost",
"prost-types", "prost-types",
"regex", "regex",
"syn 2.0.16", "syn 2.0.39",
"tempfile", "tempfile",
"which", "which",
] ]
@ -1836,8 +1934,8 @@ dependencies = [
"anyhow", "anyhow",
"itertools", "itertools",
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"syn 2.0.16", "syn 2.0.39",
] ]
[[package]] [[package]]
@ -1866,9 +1964,9 @@ dependencies = [
[[package]] [[package]]
name = "quote" name = "quote"
version = "1.0.26" version = "1.0.33"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
] ]
@ -2096,6 +2194,15 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 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]] [[package]]
name = "rustix" name = "rustix"
version = "0.37.19" version = "0.37.19"
@ -2257,6 +2364,12 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "semver"
version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.162" version = "1.0.162"
@ -2273,8 +2386,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2a0814352fd64b58489904a44ea8d90cb1a91dcb6b4f5ebabc32c8318e93cb6" checksum = "a2a0814352fd64b58489904a44ea8d90cb1a91dcb6b4f5ebabc32c8318e93cb6"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"syn 2.0.16", "syn 2.0.39",
] ]
[[package]] [[package]]
@ -2338,6 +2451,15 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "signature"
version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
dependencies = [
"rand_core",
]
[[package]] [[package]]
name = "slab" name = "slab"
version = "0.4.8" version = "0.4.8"
@ -2405,6 +2527,16 @@ version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" 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]] [[package]]
name = "static_assertions" name = "static_assertions"
version = "1.1.0" version = "1.1.0"
@ -2430,7 +2562,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "104842d6278bf64aa9d2f182ba4bde31e8aec7a131d29b7f444bb9b344a09e2a" checksum = "104842d6278bf64aa9d2f182ba4bde31e8aec7a131d29b7f444bb9b344a09e2a"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"structmeta-derive", "structmeta-derive",
"syn 1.0.109", "syn 1.0.109",
] ]
@ -2442,7 +2574,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24420be405b590e2d746d83b01f09af673270cf80e9b003a5fa7b651c58c7d93" checksum = "24420be405b590e2d746d83b01f09af673270cf80e9b003a5fa7b651c58c7d93"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"syn 1.0.109", "syn 1.0.109",
] ]
@ -2470,18 +2602,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"unicode-ident", "unicode-ident",
] ]
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.16" version = "2.0.39"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01" checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"unicode-ident", "unicode-ident",
] ]
@ -2561,7 +2693,7 @@ dependencies = [
"cfg-if", "cfg-if",
"proc-macro-error", "proc-macro-error",
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"syn 1.0.109", "syn 1.0.109",
] ]
@ -2583,7 +2715,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62d6408d1406657be2f9d1701fbae379331d30d2f6e92050710edb0d34eeb480" checksum = "62d6408d1406657be2f9d1701fbae379331d30d2f6e92050710edb0d34eeb480"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"structmeta", "structmeta",
"syn 1.0.109", "syn 1.0.109",
] ]
@ -2616,8 +2748,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"syn 2.0.16", "syn 2.0.39",
] ]
[[package]] [[package]]
@ -2707,8 +2839,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"syn 2.0.16", "syn 2.0.39",
] ]
[[package]] [[package]]
@ -2832,8 +2964,8 @@ dependencies = [
"prettyplease", "prettyplease",
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"prost-build", "prost-build",
"quote 1.0.26", "quote 1.0.33",
"syn 2.0.16", "syn 2.0.39",
] ]
[[package]] [[package]]
@ -2901,8 +3033,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"syn 2.0.16", "syn 2.0.39",
] ]
[[package]] [[package]]
@ -3048,7 +3180,7 @@ name = "tvix-eval-builtin-macros"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"syn 1.0.109", "syn 1.0.109",
"tvix-eval", "tvix-eval",
] ]
@ -3340,7 +3472,7 @@ dependencies = [
"log", "log",
"once_cell", "once_cell",
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"syn 1.0.109", "syn 1.0.109",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@ -3363,7 +3495,7 @@ version = "0.2.84"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
dependencies = [ dependencies = [
"quote 1.0.26", "quote 1.0.33",
"wasm-bindgen-macro-support", "wasm-bindgen-macro-support",
] ]
@ -3374,7 +3506,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
dependencies = [ dependencies = [
"proc-macro2 1.0.67", "proc-macro2 1.0.67",
"quote 1.0.26", "quote 1.0.33",
"syn 1.0.109", "syn 1.0.109",
"wasm-bindgen-backend", "wasm-bindgen-backend",
"wasm-bindgen-shared", "wasm-bindgen-shared",
@ -3625,6 +3757,12 @@ version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
[[package]]
name = "zeroize"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
[[package]] [[package]]
name = "zstd" name = "zstd"
version = "0.9.2+zstd.1.5.1" version = "0.9.2+zstd.1.5.1"

File diff suppressed because it is too large Load diff

View file

@ -12,6 +12,8 @@ async = ["futures-util"]
bitflags = "2.4.1" bitflags = "2.4.1"
bstr = { version = "1.6.0", features = ["alloc", "unicode", "serde"] } bstr = { version = "1.6.0", features = ["alloc", "unicode", "serde"] }
data-encoding = "2.3.3" data-encoding = "2.3.3"
ed25519 = "2.2.3"
ed25519-dalek = "2.1.0"
futures-util = { version = "0.3.28", features = ["io"], optional = true } futures-util = { version = "0.3.28", features = ["io"], optional = true }
glob = "0.3.0" glob = "0.3.0"
nom = "7.1.3" nom = "7.1.3"

View file

@ -35,6 +35,13 @@ impl<'a> Signature<'a> {
pub fn bytes(&self) -> &[u8; 64] { pub fn bytes(&self) -> &[u8; 64] {
&self.bytes &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)] #[derive(Debug, thiserror::Error)]
@ -52,3 +59,50 @@ impl Display for Signature<'_> {
write!(w, "{}:{}", self.name, BASE64.encode(&self.bytes)) 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));
}
}

View file

@ -178,6 +178,12 @@ version = "0.21.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
[[package]]
name = "base64ct"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "1.3.2" version = "1.3.2"
@ -291,6 +297,12 @@ dependencies = [
"windows-targets", "windows-targets",
] ]
[[package]]
name = "const-oid"
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f"
[[package]] [[package]]
name = "core-foundation-sys" name = "core-foundation-sys"
version = "0.8.4" version = "0.8.4"
@ -378,12 +390,50 @@ dependencies = [
"typenum", "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]] [[package]]
name = "data-encoding" name = "data-encoding"
version = "2.4.0" version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" 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]] [[package]]
name = "digest" name = "digest"
version = "0.10.7" version = "0.10.7"
@ -400,6 +450,30 @@ version = "1.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" 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]] [[package]]
name = "either" name = "either"
version = "1.9.0" version = "1.9.0"
@ -452,6 +526,12 @@ version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
[[package]]
name = "fiat-crypto"
version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7"
[[package]] [[package]]
name = "flate2" name = "flate2"
version = "1.0.28" version = "1.0.28"
@ -900,6 +980,8 @@ dependencies = [
"bitflags 2.4.1", "bitflags 2.4.1",
"bstr", "bstr",
"data-encoding", "data-encoding",
"ed25519",
"ed25519-dalek",
"glob", "glob",
"nom", "nom",
"serde", "serde",
@ -1018,6 +1100,16 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 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]] [[package]]
name = "pkg-config" name = "pkg-config"
version = "0.3.27" version = "0.3.27"
@ -1033,6 +1125,12 @@ dependencies = [
"array-init-cursor", "array-init-cursor",
] ]
[[package]]
name = "platforms"
version = "3.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0"
[[package]] [[package]]
name = "polars" name = "polars"
version = "0.34.2" version = "0.34.2"
@ -1529,6 +1627,15 @@ dependencies = [
"digest", "digest",
] ]
[[package]]
name = "signature"
version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
dependencies = [
"rand_core",
]
[[package]] [[package]]
name = "simdutf8" name = "simdutf8"
version = "0.1.4" version = "0.1.4"
@ -1571,6 +1678,16 @@ dependencies = [
"windows-sys", "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]] [[package]]
name = "sqlparser" name = "sqlparser"
version = "0.38.0" version = "0.38.0"
@ -1620,6 +1737,12 @@ dependencies = [
"syn 2.0.39", "syn 2.0.39",
] ]
[[package]]
name = "subtle"
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
[[package]] [[package]]
name = "syn" name = "syn"
version = "1.0.109" version = "1.0.109"
@ -1936,6 +2059,12 @@ dependencies = [
"syn 2.0.39", "syn 2.0.39",
] ]
[[package]]
name = "zeroize"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
[[package]] [[package]]
name = "zstd" name = "zstd"
version = "0.12.4" version = "0.12.4"

View file

@ -147,7 +147,7 @@ rec {
name = "once_cell"; name = "once_cell";
packageId = "once_cell"; packageId = "once_cell";
usesDefaultFeatures = false; 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" ]; features = [ "unstable" "alloc" ];
} }
{ {
@ -475,7 +475,7 @@ rec {
name = "addr2line"; name = "addr2line";
packageId = "addr2line"; packageId = "addr2line";
usesDefaultFeatures = false; 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"; name = "cfg-if";
@ -485,19 +485,19 @@ rec {
name = "libc"; name = "libc";
packageId = "libc"; packageId = "libc";
usesDefaultFeatures = false; 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"; name = "miniz_oxide";
packageId = "miniz_oxide"; packageId = "miniz_oxide";
usesDefaultFeatures = false; 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"; name = "object";
packageId = "object"; packageId = "object";
usesDefaultFeatures = false; 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" ]; features = [ "read_core" "elf" "macho" "pe" "unaligned" "archive" ];
} }
{ {
@ -538,6 +538,19 @@ rec {
}; };
resolvedDefaultFeatures = [ "alloc" "default" "std" ]; 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 { "bitflags 1.3.2" = rec {
crateName = "bitflags"; crateName = "bitflags";
version = "1.3.2"; version = "1.3.2";
@ -818,7 +831,7 @@ rec {
name = "android-tzdata"; name = "android-tzdata";
packageId = "android-tzdata"; packageId = "android-tzdata";
optional = true; optional = true;
target = { target, features }: ("android" == target."os"); target = { target, features }: ("android" == target."os" or null);
} }
{ {
name = "iana-time-zone"; name = "iana-time-zone";
@ -858,6 +871,18 @@ rec {
}; };
resolvedDefaultFeatures = [ "android-tzdata" "clock" "iana-time-zone" "std" "winapi" "windows-targets" ]; 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 { "core-foundation-sys" = rec {
crateName = "core-foundation-sys"; crateName = "core-foundation-sys";
version = "0.8.4"; version = "0.8.4";
@ -885,17 +910,17 @@ rec {
{ {
name = "libc"; name = "libc";
packageId = "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"; name = "libc";
packageId = "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"; name = "libc";
packageId = "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" ]; resolvedDefaultFeatures = [ "std" ];
}; };
"curve25519-dalek" = rec {
crateName = "curve25519-dalek";
version = "4.1.1";
edition = "2021";
sha256 = "0p7ns5917k6369gajrsbfj24llc5zfm635yh3abla7sb5rm8r6z8";
authors = [
"Isis Lovecruft <isis@patternsinthevoid.net>"
"Henry de Valence <hdevalence@hdevalence.ca>"
];
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 { "data-encoding" = rec {
crateName = "data-encoding"; crateName = "data-encoding";
version = "2.4.0"; version = "2.4.0";
@ -1094,6 +1213,41 @@ rec {
}; };
resolvedDefaultFeatures = [ "alloc" "default" "std" ]; 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 { "digest" = rec {
crateName = "digest"; crateName = "digest";
version = "0.10.7"; 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 <isis@patternsinthevoid.net>"
"Tony Arcieri <bascule@gmail.com>"
"Michael Rosenberg <michael@mrosenberg.pub>"
];
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 { "either" = rec {
crateName = "either"; crateName = "either";
version = "1.9.0"; version = "1.9.0";
@ -1202,13 +1465,13 @@ rec {
name = "libc"; name = "libc";
packageId = "libc"; packageId = "libc";
usesDefaultFeatures = false; usesDefaultFeatures = false;
target = { target, features }: ("hermit" == target."os"); target = { target, features }: ("hermit" == target."os" or null);
} }
{ {
name = "libc"; name = "libc";
packageId = "libc"; packageId = "libc";
usesDefaultFeatures = false; usesDefaultFeatures = false;
target = { target, features }: ("wasi" == target."os"); target = { target, features }: ("wasi" == target."os" or null);
} }
{ {
name = "libc"; name = "libc";
@ -1269,6 +1532,18 @@ rec {
}; };
resolvedDefaultFeatures = [ "alloc" "default" "std" ]; resolvedDefaultFeatures = [ "alloc" "default" "std" ];
}; };
"fiat-crypto" = rec {
crateName = "fiat-crypto";
version = "0.2.5";
edition = "2018";
sha256 = "1dxn0g50pv0ppal779vi7k40fr55pbhkyv4in7i13pgl4sn3wmr7";
authors = [
"Fiat Crypto library authors <jgross@mit.edu>"
];
features = {
"default" = [ "std" ];
};
};
"flate2" = rec { "flate2" = rec {
crateName = "flate2"; crateName = "flate2";
version = "1.0.28"; version = "1.0.28";
@ -1294,7 +1569,7 @@ rec {
name = "miniz_oxide"; name = "miniz_oxide";
packageId = "miniz_oxide"; packageId = "miniz_oxide";
usesDefaultFeatures = false; 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" ]; features = [ "with-alloc" ];
} }
]; ];
@ -1640,7 +1915,7 @@ rec {
name = "js-sys"; name = "js-sys";
packageId = "js-sys"; packageId = "js-sys";
optional = true; 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"; name = "libc";
@ -1652,14 +1927,14 @@ rec {
name = "wasi"; name = "wasi";
packageId = "wasi"; packageId = "wasi";
usesDefaultFeatures = false; usesDefaultFeatures = false;
target = { target, features }: ("wasi" == target."os"); target = { target, features }: ("wasi" == target."os" or null);
} }
{ {
name = "wasm-bindgen"; name = "wasm-bindgen";
packageId = "wasm-bindgen"; packageId = "wasm-bindgen";
optional = true; optional = true;
usesDefaultFeatures = false; 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 = { features = {
@ -1811,32 +2086,32 @@ rec {
{ {
name = "android_system_properties"; name = "android_system_properties";
packageId = "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"; name = "core-foundation-sys";
packageId = "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"; name = "iana-time-zone-haiku";
packageId = "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"; name = "js-sys";
packageId = "js-sys"; packageId = "js-sys";
target = { target, features }: ("wasm32" == target."arch"); target = { target, features }: ("wasm32" == target."arch" or null);
} }
{ {
name = "wasm-bindgen"; name = "wasm-bindgen";
packageId = "wasm-bindgen"; packageId = "wasm-bindgen";
target = { target, features }: ("wasm32" == target."arch"); target = { target, features }: ("wasm32" == target."arch" or null);
} }
{ {
name = "windows-core"; name = "windows-core";
packageId = "windows-core"; packageId = "windows-core";
target = { target, features }: ("windows" == target."os"); target = { target, features }: ("windows" == target."os" or null);
} }
]; ];
features = { }; features = { };
@ -2449,7 +2724,7 @@ rec {
{ {
name = "libc"; name = "libc";
packageId = "libc"; packageId = "libc";
target = { target, features }: ("wasi" == target."os"); target = { target, features }: ("wasi" == target."os" or null);
} }
{ {
name = "libc"; name = "libc";
@ -2459,7 +2734,7 @@ rec {
{ {
name = "wasi"; name = "wasi";
packageId = "wasi"; packageId = "wasi";
target = { target, features }: ("wasi" == target."os"); target = { target, features }: ("wasi" == target."os" or null);
} }
{ {
name = "windows-sys"; name = "windows-sys";
@ -2606,6 +2881,14 @@ rec {
name = "data-encoding"; name = "data-encoding";
packageId = "data-encoding"; packageId = "data-encoding";
} }
{
name = "ed25519";
packageId = "ed25519";
}
{
name = "ed25519-dalek";
packageId = "ed25519-dalek";
}
{ {
name = "glob"; name = "glob";
packageId = "glob"; packageId = "glob";
@ -2747,7 +3030,7 @@ rec {
{ {
name = "hermit-abi"; name = "hermit-abi";
packageId = "hermit-abi"; packageId = "hermit-abi";
target = { target, features }: ("hermit" == target."os"); target = { target, features }: ("hermit" == target."os" or null);
} }
{ {
name = "libc"; 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 { "pkg-config" = rec {
crateName = "pkg-config"; crateName = "pkg-config";
version = "0.3.27"; version = "0.3.27";
@ -2982,6 +3299,21 @@ rec {
}; };
resolvedDefaultFeatures = [ "default" "std" ]; resolvedDefaultFeatures = [ "default" "std" ];
}; };
"platforms" = rec {
crateName = "platforms";
version = "3.2.0";
edition = "2018";
sha256 = "1c6bzwn877aqdbbmyqsl753ycbciwvbdh4lpzijb8vrfb4zsprhl";
authors = [
"Tony Arcieri <bascule@gmail.com>"
"Sergey \"Shnatsel\" Davidoff <shnatsel@gmail.com>"
];
features = {
"default" = [ "std" ];
"serde" = [ "dep:serde" ];
};
resolvedDefaultFeatures = [ "default" "std" ];
};
"polars" = rec { "polars" = rec {
crateName = "polars"; crateName = "polars";
version = "0.34.2"; version = "0.34.2";
@ -4974,14 +5306,14 @@ rec {
rename = "libc_errno"; rename = "libc_errno";
optional = true; optional = true;
usesDefaultFeatures = false; 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"; name = "errno";
packageId = "errno"; packageId = "errno";
rename = "libc_errno"; rename = "libc_errno";
usesDefaultFeatures = false; 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"; name = "errno";
@ -4995,28 +5327,28 @@ rec {
packageId = "libc"; packageId = "libc";
optional = true; optional = true;
usesDefaultFeatures = false; 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" ]; features = [ "extra_traits" ];
} }
{ {
name = "libc"; name = "libc";
packageId = "libc"; packageId = "libc";
usesDefaultFeatures = false; 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" ]; features = [ "extra_traits" ];
} }
{ {
name = "linux-raw-sys"; name = "linux-raw-sys";
packageId = "linux-raw-sys"; packageId = "linux-raw-sys";
usesDefaultFeatures = false; 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" ]; features = [ "general" "ioctl" "no_std" ];
} }
{ {
name = "linux-raw-sys"; name = "linux-raw-sys";
packageId = "linux-raw-sys"; packageId = "linux-raw-sys";
usesDefaultFeatures = false; 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" ]; features = [ "general" "errno" "ioctl" "no_std" "elf" ];
} }
{ {
@ -5240,7 +5572,7 @@ rec {
{ {
name = "cpufeatures"; name = "cpufeatures";
packageId = "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"; name = "digest";
@ -5264,6 +5596,30 @@ rec {
}; };
resolvedDefaultFeatures = [ "default" "std" ]; 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 { "simdutf8" = rec {
crateName = "simdutf8"; crateName = "simdutf8";
version = "0.1.4"; version = "0.1.4";
@ -5365,6 +5721,38 @@ rec {
features = { }; features = { };
resolvedDefaultFeatures = [ "all" ]; 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 { "sqlparser" = rec {
crateName = "sqlparser"; crateName = "sqlparser";
version = "0.38.0"; version = "0.38.0";
@ -5469,6 +5857,19 @@ rec {
]; ];
}; };
"subtle" = rec {
crateName = "subtle";
version = "2.5.0";
edition = "2018";
sha256 = "1g2yjs7gffgmdvkkq0wrrh0pxds3q0dv6dhkw9cdpbib656xdkc1";
authors = [
"Isis Lovecruft <isis@patternsinthevoid.net>"
"Henry de Valence <hdevalence@hdevalence.ca>"
];
features = {
"default" = [ "std" "i128" ];
};
};
"syn 1.0.109" = rec { "syn 1.0.109" = rec {
crateName = "syn"; crateName = "syn";
version = "1.0.109"; version = "1.0.109";
@ -5553,12 +5954,12 @@ rec {
{ {
name = "core-foundation-sys"; name = "core-foundation-sys";
packageId = "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"; name = "libc";
packageId = "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"; name = "ntapi";
@ -5568,7 +5969,7 @@ rec {
{ {
name = "once_cell"; name = "once_cell";
packageId = "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"; name = "winapi";
@ -5619,12 +6020,12 @@ rec {
{ {
name = "redox_syscall"; name = "redox_syscall";
packageId = "redox_syscall"; packageId = "redox_syscall";
target = { target, features }: ("redox" == target."os"); target = { target, features }: ("redox" == target."os" or null);
} }
{ {
name = "rustix"; name = "rustix";
packageId = "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" ]; features = [ "fs" ];
} }
{ {
@ -6422,22 +6823,22 @@ rec {
{ {
name = "windows_aarch64_msvc"; name = "windows_aarch64_msvc";
packageId = "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"; name = "windows_i686_gnu";
packageId = "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"; name = "windows_i686_msvc";
packageId = "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"; name = "windows_x86_64_gnu";
packageId = "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"; name = "windows_x86_64_gnullvm";
@ -6447,7 +6848,7 @@ rec {
{ {
name = "windows_x86_64_msvc"; name = "windows_x86_64_msvc";
packageId = "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 { "zstd 0.12.4" = rec {
crateName = "zstd"; crateName = "zstd";
version = "0.12.4"; version = "0.12.4";