The contract, stated in jcp-energy and sandbox-meter alike: measured when the
platform exposes it, estimated when it doesn't, "and the provenance always
says which". The parent commit makes sandbox-meter keep it. On macOS 27.0.1
no Apple Silicon host checked exposes a live CPU energy counter, so
PowerMeter declines IOReport and every span is the estimator's wall × TDP
record. On a live host, a span whose CPU counter held is estimated too. The
meter's consumers then threw that provenance away.
Ground truth: the consumers' own output at the parent commit. The same
binaries ran on an M5 Max and an M3 Ultra, both on macOS 27.0.1; the M5 Max
comes first.
- jcp-gateway printed "metering=estimator", then "allowed, 1541728 µJ
measured", and sealed energy_provenance "HwShunt" in the receipt. It
debited Energy::measured(total_uj()) whatever the span was. On the M3
Ultra: "999293 µJ measured", sealed HwShunt.
- joule-ui-serve sealed every interaction as Estimator with estimated_uj 0,
for 24-56 ms of work. Its sampler summed raw counters under the Meter
trait's default HwShunt. It returned None once no hardware probe was left,
and run_interaction turns None into 0 J.
- joule-fix printed "energy per verified fix: 1.446 J (attributed)" for an
estimate apportioned by CPU share, and sealed it ModelBased in the JCR-1
meter envelope (M3 Ultra: 7.377 J, ModelBased). The share is 0 whenever
the machine tick counters miss every window, so the figure can be 0 J. The
parent commit gave that as the likely cause of verified_fix_end_to_end's
1-in-16 failure.
- sandbox-proof said "ESTIMATED" here only because it asked is_hardware().
On a live host it would say "measured" for a span the meter estimated.
The defect. Each consumer labelled a span by the meter instead of by the
span's own records: is_hardware(), a trait default, or a hard-coded
"ModelBased" or "measured". Or it turned a meter with no reading into 0 J.
The fix. Every consumer derives the label from the Measurement it got: the
weakest of its records, because a sum is only as good as its weakest part.
- jcp-gateway. energy_of() builds the ledger entry with jcp-schema's own
constructors:
- Energy::estimator for the estimator's record;
- Energy::measured for a hardware reading that has a CPU record;
- Energy::measured_partial for a hardware reading without one (a GPU
counter alone, NVML without RAPL);
- Energy::modeled for ModelBased.
The figure is unchanged, so a runaway is still debited. Only what the
receipt says about it changes, through fields it already had:
energy_provenance, and energy_coverage when Partial. The flow monitor's
scan is sealed with its own span's provenance (flow_energy_provenance)
instead of is_hardware()'s. The binary's summary line reads the grade
back from the receipt it just sealed ("[Estimator]") instead of printing
"measured". The docs and the crate description said "metered on real
hardware" and "the MEASURED joules"; both are corrected. jcp-gateway now
depends on sandbox-schema directly, for the CPU class; the crate was
already in the lock graph.
- joule-code-remediate. An EnergyTally grades the run by its cargo windows.
The run is ModelBased only when every window was attributed. main needed
only one, and never reset the flag between runs. An attributed run's
receipts carry the attributed figure, anchored as before. Any other run's
receipts carry the unapportioned total over the windows, as an estimate:
- the JCR-1 meter envelope seals it with the Estimator grade;
- the JouleContract receipt seals it as Unaccounted;
- total_uj() and uj_per_verified_fix() return it.
An apportioned estimate is no better than an estimate, and apportioning can
put 0 J on the receipt for work that ran. joule-fix prints "estimated, not
attributed" and "(estimated)" to match.
- joule-ui-serve. SpanMeter replaces the summing sampler. Every sample closes
the span the previous sample opened, adds its figure to a running counter,
and opens the next. provenance() returns that span's own grade, which
run_interaction asks for right after its second sample. An estimated span
is sealed as Estimator with the estimator's figure, not 0 J, and a hardware
span as HwShunt. The Meter trait is untouched. The binary's doc and its
Cargo.toml said every receipt's HwShunt was true; corrected.
- sandbox-proof. prove_local says "measured" only when every record of the
span is a hardware reading (energy_word). The records were, and still are,
sealed verbatim into the receipt, the attestation and the proof cell.
- jcp-action-receipt. The end_to_end example sealed energy_provenance from
is_hardware(); it now takes the span's.
Checked and left alone:
- sandbox-jcp debits a declared ceiling as Energy::estimator and never reads
a PowerMeter.
- joule-ui-interaction's library labels nothing as a hardware reading that
its meter did not declare one. Its jcp_metered example wraps whatever figure
it is charged in Energy::measured, but only in a JCP runtime decision that
it neither seals nor prints. See below.
After the fix, with the same binaries on both chips:
- jcp-gateway prints "allowed, 2309714 µJ [Estimator]" and seals Estimator
(M3 Ultra: 973555 µJ, Estimator).
- joule-ui-serve seals 482410 and 1121739 µJ as Estimator for intensities 3
and 7 (M3 Ultra: 481236 and 1121485 µJ).
- joule-fix prints "44.352 J estimated, not attributed" and seals Estimator
and Unaccounted (M3 Ultra: 20.723 J).
- sandbox-proof still says ESTIMATED.
Tests. The same test binaries ran 5/5 green on each chip. On the M3 Ultra,
joule-code-remediate's the_shipped_formal_template_parses_and_validates
cannot find formal.example.json, whose path is fixed at compile time on the
dev machine, so the five runs there skip that one test. That host also has no
z3, so the two existing formal-proof tests return early there.
- jcp-gateway a_metered_span_enters_the_ledger_as_what_it_is: every span
shape maps to its constructor, and the debit is the span's own figure.
- jcp-gateway a_calls_receipt_says_how_its_joules_were_obtained: end to end,
the sealed energy_provenance is Estimator when the meter has no hardware
source ("gateway call: hardware=false sealed=Estimator cost_uj=30621").
Otherwise it is a reading or an estimate. cost_uj > 0 either way.
- jcp-gateway granted_tool_is_allowed_metered_and_debited and
budget_exhaustion_denies_further_calls_and_the_log_verifies asserted only
under metering_is_hardware(), so on these hosts they passed without
asserting. They now assert on every host: an estimate is debited, and the
budget exhausts.
- The exfiltration test now also checks flow_energy_provenance.
- joule-code-remediate
an_unattributed_run_is_sealed_as_an_estimate_never_an_apportioned_zero and
a_run_is_attributed_only_when_every_window_was pin the tally.
- joule-code-remediate verified_fix_end_to_end_ships_with_receipt now also
checks that joules_spent equals total_uj(), the JouleContract class, and
the grade inside the sealed meter envelope. It also checks that nothing is
attributed without a live CPU rail.
- joule-ui-serve each_served_interaction_carries_its_own_spans_provenance
replays a HwShunt span, then an Estimator span, through the real Host.
- joule-ui-serve the_served_meter_never_seals_zero_or_an_estimate_as_a_reading
runs the served meter on this host.
- sandbox-proof a_local_proof_says_estimated_for_an_estimated_span.
Falsified. Each mutation was restored with git checkout, leaving a clean tree.
- energy_of returns Energy::measured(total), main's rule: both new gateway
tests fail. The end-to-end one fails with left "HwShunt", right
"Estimator".
- eval_prov is sealed as HwShunt, which is what main sealed here: the
exfiltration test fails with "an estimated scan sealed as a reading".
Reverting eval_prov to is_hardware()'s answer is not caught on these hosts,
because with no hardware source both say Estimator.
- energy_of returns Energy::measured(0), as main did on the M3 Ultra: four
tests fail, including the two formerly hardware-only ones ("a real span
costs joules, measured or estimated", "the budget eventually exhausts").
- figure_uj returns the apportioned sum: three joule-code tests fail. The
unit tests see 10000000 against 60000000; end to end, 1.373789 J sealed
against 65.634219 J.
- The meter envelope is always graded ModelBased: three tests fail. End to
end: "an estimate sealed in the meter envelope as ModelBased".
- main's any-window attribution: the mixed-window test fails.
- main's total_uj, the apportioned figure: the end-to-end test fails
(45.799836 against 0.776724).
- SpanMeter without its provenance() override, so the trait's HwShunt
applies: both joule-ui-serve tests fail.
- served_meter returns the parent commit's HardwareMeter: the end-to-end test
fails with "~24 ms of work sealed at 0 J: Energy { measured_uj: None,
estimated_uj: 0, provenance: Estimator }".
- energy_word always says "measured": the sandbox-proof test fails.
Not separately tested: the per-run reset of the tally. It is observable only
with attributed windows, which need a live CPU rail.
Clippy --no-deps --all-targets is clean on every changed crate. It is also
clean for x86_64-unknown-linux-gnu, except that sandbox-proof could not be
checked for that target: zstd-sys's build script needs a Linux C cross
compiler, which is not installed here. One pre-existing warning, in
jcp-action-receipt's ar-verify.rs, is untouched.
Not done here, deliberately:
- The joule-ui Meter trait: its default provenance is HwShunt, and its
provenance is per meter, not per sample. SpanMeter relies on
run_interaction asking for provenance right after its second sample.
run_interaction also turns a None sample into Estimator(0), so an
Authorizer charges 0 for work that ran. Authorizer::charge carries no
provenance. Both joule-ui-interaction examples still use the summing
sampler. These are public API and SPEC §5/§6: David's call.
- Wire keys named measured_uj now carry estimates: jcp-gateway's _meta and
Relayed::Allowed, and joule-ui-serve's POST /action response. The sealed
provenance beside each key is right.
- A GPU counter alone (NVML without RAPL): the gateway seals it Partial but
still debits only the GPU figure, so CPU work goes undebited there. Its two
budget tests would fail on such a host, correctly. joule-ui has no coverage
field. Not observed: no such host here.
- JouleContract §4.2 says an Unaccounted figure seals its method reference
(energy_anchor). The harness leaves it None, as it always has.
- proof-cascade's joules: FormalOutcome, "(real z3, ModelBased)" in joule-fix,
and formal_fix's "µJ measured". Another change owns that meter.
- joule-code-remediate's Cargo.toml description still says hardware-measured.
This commit does not touch that file.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
1258 lines
28 KiB
TOML
1258 lines
28 KiB
TOML
# This file is automatically @generated by Cargo.
|
|
# It is not intended for manual editing.
|
|
version = 4
|
|
|
|
[[package]]
|
|
name = "arrayvec"
|
|
version = "0.7.8"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56"
|
|
|
|
[[package]]
|
|
name = "atomic-polyfill"
|
|
version = "1.0.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4"
|
|
dependencies = [
|
|
"critical-section",
|
|
]
|
|
|
|
[[package]]
|
|
name = "base16ct"
|
|
version = "0.2.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
|
|
|
|
[[package]]
|
|
name = "base64"
|
|
version = "0.22.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
|
|
|
|
[[package]]
|
|
name = "base64ct"
|
|
version = "1.8.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06"
|
|
|
|
[[package]]
|
|
name = "bitflags"
|
|
version = "2.13.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da"
|
|
|
|
[[package]]
|
|
name = "blake3"
|
|
version = "1.8.7"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "6d9e454fc11f76977dc803893aff6304ed33d6a26efae8696573bea74baa27ae"
|
|
dependencies = [
|
|
"arrayvec",
|
|
"cc",
|
|
"cfg-if",
|
|
"constant_time_eq",
|
|
"cpufeatures 0.3.0",
|
|
]
|
|
|
|
[[package]]
|
|
name = "block-buffer"
|
|
version = "0.10.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
|
|
dependencies = [
|
|
"generic-array",
|
|
]
|
|
|
|
[[package]]
|
|
name = "bs58"
|
|
version = "0.5.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4"
|
|
dependencies = [
|
|
"tinyvec",
|
|
]
|
|
|
|
[[package]]
|
|
name = "byteorder"
|
|
version = "1.5.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
|
|
|
[[package]]
|
|
name = "cc"
|
|
version = "1.4.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0ad534f4357a5264cce5019c989cf66a4f0dc4e0d1b1d15f8aacec0ff7360273"
|
|
dependencies = [
|
|
"find-msvc-tools",
|
|
"shlex",
|
|
]
|
|
|
|
[[package]]
|
|
name = "cfg-if"
|
|
version = "1.0.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
|
|
|
[[package]]
|
|
name = "ciborium"
|
|
version = "0.2.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
|
|
dependencies = [
|
|
"ciborium-io",
|
|
"ciborium-ll",
|
|
"serde",
|
|
]
|
|
|
|
[[package]]
|
|
name = "ciborium-io"
|
|
version = "0.2.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
|
|
|
|
[[package]]
|
|
name = "ciborium-ll"
|
|
version = "0.2.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
|
|
dependencies = [
|
|
"ciborium-io",
|
|
"half",
|
|
]
|
|
|
|
[[package]]
|
|
name = "cobs"
|
|
version = "0.3.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1"
|
|
dependencies = [
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "const-crc32-nostd"
|
|
version = "1.3.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "808ac43170e95b11dd23d78aa9eaac5bea45776a602955552c4e833f3f0f823d"
|
|
|
|
[[package]]
|
|
name = "const-oid"
|
|
version = "0.9.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
|
|
|
|
[[package]]
|
|
name = "constant_time_eq"
|
|
version = "0.4.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b"
|
|
|
|
[[package]]
|
|
name = "cpufeatures"
|
|
version = "0.2.17"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
|
|
dependencies = [
|
|
"libc",
|
|
]
|
|
|
|
[[package]]
|
|
name = "cpufeatures"
|
|
version = "0.3.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
|
|
dependencies = [
|
|
"libc",
|
|
]
|
|
|
|
[[package]]
|
|
name = "critical-section"
|
|
version = "1.2.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b"
|
|
|
|
[[package]]
|
|
name = "crunchy"
|
|
version = "0.2.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
|
|
|
|
[[package]]
|
|
name = "crypto-common"
|
|
version = "0.1.7"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
|
|
dependencies = [
|
|
"generic-array",
|
|
"typenum",
|
|
]
|
|
|
|
[[package]]
|
|
name = "curve25519-dalek"
|
|
version = "4.1.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"cpufeatures 0.2.17",
|
|
"curve25519-dalek-derive",
|
|
"digest",
|
|
"fiat-crypto",
|
|
"rand_core",
|
|
"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.119",
|
|
]
|
|
|
|
[[package]]
|
|
name = "darling"
|
|
version = "0.20.11"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee"
|
|
dependencies = [
|
|
"darling_core",
|
|
"darling_macro",
|
|
]
|
|
|
|
[[package]]
|
|
name = "darling_core"
|
|
version = "0.20.11"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e"
|
|
dependencies = [
|
|
"fnv",
|
|
"ident_case",
|
|
"proc-macro2",
|
|
"quote",
|
|
"strsim",
|
|
"syn 2.0.119",
|
|
]
|
|
|
|
[[package]]
|
|
name = "darling_macro"
|
|
version = "0.20.11"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead"
|
|
dependencies = [
|
|
"darling_core",
|
|
"quote",
|
|
"syn 2.0.119",
|
|
]
|
|
|
|
[[package]]
|
|
name = "debugless-unwrap"
|
|
version = "0.0.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f400d0750c0c069e8493f2256cb4da6f604b6d2eeb69a0ca8863acde352f8400"
|
|
|
|
[[package]]
|
|
name = "der"
|
|
version = "0.7.10"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb"
|
|
dependencies = [
|
|
"const-oid",
|
|
"zeroize",
|
|
]
|
|
|
|
[[package]]
|
|
name = "derive-getters"
|
|
version = "0.5.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "74ef43543e701c01ad77d3a5922755c6a1d71b22d942cb8042be4994b380caff"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn 2.0.119",
|
|
]
|
|
|
|
[[package]]
|
|
name = "digest"
|
|
version = "0.10.7"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
|
|
dependencies = [
|
|
"block-buffer",
|
|
"crypto-common",
|
|
]
|
|
|
|
[[package]]
|
|
name = "document-features"
|
|
version = "0.2.12"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61"
|
|
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.2.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9"
|
|
dependencies = [
|
|
"curve25519-dalek",
|
|
"ed25519",
|
|
"rand_core",
|
|
"serde",
|
|
"sha2",
|
|
"subtle",
|
|
"zeroize",
|
|
]
|
|
|
|
[[package]]
|
|
name = "either"
|
|
version = "1.18.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34"
|
|
|
|
[[package]]
|
|
name = "embedded-io"
|
|
version = "0.4.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced"
|
|
|
|
[[package]]
|
|
name = "embedded-io"
|
|
version = "0.6.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d"
|
|
|
|
[[package]]
|
|
name = "fiat-crypto"
|
|
version = "0.2.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d"
|
|
|
|
[[package]]
|
|
name = "find-msvc-tools"
|
|
version = "0.1.11"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890"
|
|
|
|
[[package]]
|
|
name = "fnv"
|
|
version = "1.0.7"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
|
|
|
|
[[package]]
|
|
name = "frost-core"
|
|
version = "2.2.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "2619366c227233c0f817ae01156bd21b8cf74d2bd96cbe0889f4c2e266724e44"
|
|
dependencies = [
|
|
"byteorder",
|
|
"const-crc32-nostd",
|
|
"debugless-unwrap",
|
|
"derive-getters",
|
|
"document-features",
|
|
"hex",
|
|
"itertools",
|
|
"postcard",
|
|
"rand_core",
|
|
"serde",
|
|
"serdect",
|
|
"thiserror 2.0.20",
|
|
"visibility",
|
|
"zeroize",
|
|
]
|
|
|
|
[[package]]
|
|
name = "frost-ed25519"
|
|
version = "2.2.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f73eb5fa9311d33450c2320199ad1663b5af7a50061d9627d2e0dc776f0acb27"
|
|
dependencies = [
|
|
"curve25519-dalek",
|
|
"document-features",
|
|
"frost-core",
|
|
"frost-rerandomized",
|
|
"rand_core",
|
|
"sha2",
|
|
]
|
|
|
|
[[package]]
|
|
name = "frost-rerandomized"
|
|
version = "2.2.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "4c5eb1ea58c0250b7ce834337f7b19e0417686d14ffc7f626137dea9149762d4"
|
|
dependencies = [
|
|
"derive-getters",
|
|
"document-features",
|
|
"frost-core",
|
|
"hex",
|
|
"rand_core",
|
|
]
|
|
|
|
[[package]]
|
|
name = "generic-array"
|
|
version = "0.14.7"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
|
|
dependencies = [
|
|
"typenum",
|
|
"version_check",
|
|
]
|
|
|
|
[[package]]
|
|
name = "getrandom"
|
|
version = "0.2.17"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"libc",
|
|
"wasi",
|
|
]
|
|
|
|
[[package]]
|
|
name = "half"
|
|
version = "2.7.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"crunchy",
|
|
"zerocopy",
|
|
]
|
|
|
|
[[package]]
|
|
name = "hash32"
|
|
version = "0.2.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67"
|
|
dependencies = [
|
|
"byteorder",
|
|
]
|
|
|
|
[[package]]
|
|
name = "heapless"
|
|
version = "0.7.17"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f"
|
|
dependencies = [
|
|
"atomic-polyfill",
|
|
"hash32",
|
|
"rustc_version",
|
|
"serde",
|
|
"spin",
|
|
"stable_deref_trait",
|
|
]
|
|
|
|
[[package]]
|
|
name = "hex"
|
|
version = "0.4.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
|
|
|
|
[[package]]
|
|
name = "ident_case"
|
|
version = "1.0.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
|
|
|
|
[[package]]
|
|
name = "itertools"
|
|
version = "0.14.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
|
|
dependencies = [
|
|
"either",
|
|
]
|
|
|
|
[[package]]
|
|
name = "itoa"
|
|
version = "1.0.18"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
|
|
|
|
[[package]]
|
|
name = "jcp-a2a"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"jcp-bridge",
|
|
"jcp-grant",
|
|
"jcp-receipt",
|
|
"jcp-runtime",
|
|
"jcp-schema",
|
|
"serde_json",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-action-receipt"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"hex",
|
|
"jcp-grant",
|
|
"jcp-receipt",
|
|
"jcp-runtime",
|
|
"jcp-schema",
|
|
"sandbox-meter",
|
|
"sandbox-schema",
|
|
"serde",
|
|
"serde_json",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-bridge"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"jcp-grant",
|
|
"jcp-receipt",
|
|
"jcp-runtime",
|
|
"jcp-schema",
|
|
"serde_json",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-channel"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"jcp-grant",
|
|
"jcp-runtime",
|
|
"jcp-schema",
|
|
"serde",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-cite"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"jcp-grant",
|
|
"jcp-receipt",
|
|
"jcp-runtime",
|
|
"jcp-schema",
|
|
"serde",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-cli"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"jcp-energy",
|
|
"jcp-grant",
|
|
"jcp-receipt",
|
|
"jcp-runtime",
|
|
"jcp-schema",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-conformance"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"hex",
|
|
"jcp-channel",
|
|
"jcp-energy",
|
|
"jcp-grant",
|
|
"jcp-receipt",
|
|
"jcp-runtime",
|
|
"jcp-schema",
|
|
"jcp-threshold",
|
|
"jcp-wire",
|
|
"rand_chacha",
|
|
"serde_json",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-efficiency"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"hex",
|
|
"jcp-receipt",
|
|
"jcp-schema",
|
|
"serde_json",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-energy"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"jcp-schema",
|
|
"nvml-wrapper",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-flow"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"blake3",
|
|
"jcp-schema",
|
|
"serde",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-gateway"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"jcp-bridge",
|
|
"jcp-flow",
|
|
"jcp-grant",
|
|
"jcp-receipt",
|
|
"jcp-runtime",
|
|
"jcp-schema",
|
|
"sandbox-meter",
|
|
"sandbox-schema",
|
|
"serde_json",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-grant"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"jcp-schema",
|
|
"serde",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-intercept"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"hex",
|
|
"jcp-energy",
|
|
"jcp-receipt",
|
|
"jcp-schema",
|
|
"serde_json",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-orchestrate"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"jcp-grant",
|
|
"jcp-receipt",
|
|
"jcp-runtime",
|
|
"jcp-schema",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-policy"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"hex",
|
|
"jcp-receipt",
|
|
"jcp-schema",
|
|
"serde_json",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-prompt"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"hex",
|
|
"jcp-receipt",
|
|
"jcp-schema",
|
|
"serde_json",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-receipt"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"hex",
|
|
"jcp-grant",
|
|
"jcp-runtime",
|
|
"jcp-schema",
|
|
"serde",
|
|
"serde_json",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-runtime"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"jcp-grant",
|
|
"jcp-schema",
|
|
"serde",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-schema"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"blake3",
|
|
"bs58",
|
|
"ed25519-dalek",
|
|
"hex",
|
|
"serde",
|
|
"serde_json",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-threshold"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"frost-ed25519",
|
|
"jcp-grant",
|
|
"jcp-runtime",
|
|
"jcp-schema",
|
|
"jcp-wire",
|
|
"rand_chacha",
|
|
"rand_core",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-trace"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"blake3",
|
|
"ed25519-dalek",
|
|
"hex",
|
|
"jcp-receipt",
|
|
"jcp-schema",
|
|
"serde",
|
|
"serde_json",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-wire"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"jcp-grant",
|
|
"jcp-receipt",
|
|
"jcp-runtime",
|
|
"jcp-schema",
|
|
"serde",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "jcp-x402"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"jcp-bridge",
|
|
"jcp-grant",
|
|
"jcp-receipt",
|
|
"jcp-runtime",
|
|
"jcp-schema",
|
|
"serde_json",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "libc"
|
|
version = "0.2.189"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
|
|
|
|
[[package]]
|
|
name = "libloading"
|
|
version = "0.8.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"windows-link",
|
|
]
|
|
|
|
[[package]]
|
|
name = "litrs"
|
|
version = "1.0.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092"
|
|
|
|
[[package]]
|
|
name = "lock_api"
|
|
version = "0.4.14"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
|
|
dependencies = [
|
|
"scopeguard",
|
|
]
|
|
|
|
[[package]]
|
|
name = "memchr"
|
|
version = "2.8.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
|
|
|
|
[[package]]
|
|
name = "nvml-wrapper"
|
|
version = "0.10.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0c9bff0aa1d48904a1385ea2a8b97576fbdcbc9a3cfccd0d31fe978e1c4038c5"
|
|
dependencies = [
|
|
"bitflags",
|
|
"libloading",
|
|
"nvml-wrapper-sys",
|
|
"static_assertions",
|
|
"thiserror 1.0.69",
|
|
"wrapcenum-derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "nvml-wrapper-sys"
|
|
version = "0.8.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "698d45156f28781a4e79652b6ebe2eaa0589057d588d3aec1333f6466f13fcb5"
|
|
dependencies = [
|
|
"libloading",
|
|
]
|
|
|
|
[[package]]
|
|
name = "pkcs8"
|
|
version = "0.10.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
|
|
dependencies = [
|
|
"der",
|
|
"spki",
|
|
]
|
|
|
|
[[package]]
|
|
name = "postcard"
|
|
version = "1.1.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24"
|
|
dependencies = [
|
|
"cobs",
|
|
"embedded-io 0.4.0",
|
|
"embedded-io 0.6.1",
|
|
"heapless",
|
|
"serde",
|
|
]
|
|
|
|
[[package]]
|
|
name = "ppv-lite86"
|
|
version = "0.2.21"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
|
|
dependencies = [
|
|
"zerocopy",
|
|
]
|
|
|
|
[[package]]
|
|
name = "proc-macro2"
|
|
version = "1.0.107"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
|
|
dependencies = [
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "quote"
|
|
version = "1.0.47"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
]
|
|
|
|
[[package]]
|
|
name = "rand_chacha"
|
|
version = "0.3.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
|
|
dependencies = [
|
|
"ppv-lite86",
|
|
"rand_core",
|
|
]
|
|
|
|
[[package]]
|
|
name = "rand_core"
|
|
version = "0.6.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
|
dependencies = [
|
|
"getrandom",
|
|
]
|
|
|
|
[[package]]
|
|
name = "rustc_version"
|
|
version = "0.4.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
|
|
dependencies = [
|
|
"semver",
|
|
]
|
|
|
|
[[package]]
|
|
name = "sandbox-meter"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"ed25519-dalek",
|
|
"libc",
|
|
"libloading",
|
|
"sandbox-schema",
|
|
"serde",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "sandbox-schema"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"base64",
|
|
"blake3",
|
|
"ciborium",
|
|
"serde",
|
|
"thiserror 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "scopeguard"
|
|
version = "1.2.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
|
|
|
[[package]]
|
|
name = "semver"
|
|
version = "1.0.28"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
|
|
|
|
[[package]]
|
|
name = "serde"
|
|
version = "1.0.229"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
|
|
dependencies = [
|
|
"serde_core",
|
|
"serde_derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_core"
|
|
version = "1.0.229"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
|
|
dependencies = [
|
|
"serde_derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_derive"
|
|
version = "1.0.229"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn 3.0.4",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_json"
|
|
version = "1.0.151"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14"
|
|
dependencies = [
|
|
"itoa",
|
|
"memchr",
|
|
"serde",
|
|
"serde_core",
|
|
"zmij",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serdect"
|
|
version = "0.2.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177"
|
|
dependencies = [
|
|
"base16ct",
|
|
"serde",
|
|
]
|
|
|
|
[[package]]
|
|
name = "sha2"
|
|
version = "0.10.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"cpufeatures 0.2.17",
|
|
"digest",
|
|
]
|
|
|
|
[[package]]
|
|
name = "shlex"
|
|
version = "2.0.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
|
|
|
|
[[package]]
|
|
name = "signature"
|
|
version = "2.2.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
|
|
dependencies = [
|
|
"rand_core",
|
|
]
|
|
|
|
[[package]]
|
|
name = "spin"
|
|
version = "0.9.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3763264f6b73151db08c50ff20d7d8a0b8796e021cdea7ceedad07b80155fa0e"
|
|
dependencies = [
|
|
"lock_api",
|
|
]
|
|
|
|
[[package]]
|
|
name = "spki"
|
|
version = "0.7.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
|
|
dependencies = [
|
|
"base64ct",
|
|
"der",
|
|
]
|
|
|
|
[[package]]
|
|
name = "stable_deref_trait"
|
|
version = "1.2.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
|
|
|
|
[[package]]
|
|
name = "static_assertions"
|
|
version = "1.1.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
|
|
|
[[package]]
|
|
name = "strsim"
|
|
version = "0.11.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
|
|
|
|
[[package]]
|
|
name = "subtle"
|
|
version = "2.6.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
|
|
|
|
[[package]]
|
|
name = "syn"
|
|
version = "2.0.119"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "syn"
|
|
version = "3.0.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "thiserror"
|
|
version = "1.0.69"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
|
|
dependencies = [
|
|
"thiserror-impl 1.0.69",
|
|
]
|
|
|
|
[[package]]
|
|
name = "thiserror"
|
|
version = "2.0.20"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f"
|
|
dependencies = [
|
|
"thiserror-impl 2.0.20",
|
|
]
|
|
|
|
[[package]]
|
|
name = "thiserror-impl"
|
|
version = "1.0.69"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn 2.0.119",
|
|
]
|
|
|
|
[[package]]
|
|
name = "thiserror-impl"
|
|
version = "2.0.20"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn 3.0.4",
|
|
]
|
|
|
|
[[package]]
|
|
name = "tinyvec"
|
|
version = "1.12.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "bb4ebadaa0af04fab11ae01eb5f9fdb5f9c5b875506e210e71c07873528baa7f"
|
|
dependencies = [
|
|
"tinyvec_macros",
|
|
]
|
|
|
|
[[package]]
|
|
name = "tinyvec_macros"
|
|
version = "0.1.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
|
|
|
|
[[package]]
|
|
name = "typenum"
|
|
version = "1.20.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20"
|
|
|
|
[[package]]
|
|
name = "unicode-ident"
|
|
version = "1.0.24"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
|
|
|
[[package]]
|
|
name = "version_check"
|
|
version = "0.9.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
|
|
|
|
[[package]]
|
|
name = "visibility"
|
|
version = "0.1.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn 2.0.119",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wasi"
|
|
version = "0.11.1+wasi-snapshot-preview1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
|
|
|
|
[[package]]
|
|
name = "windows-link"
|
|
version = "0.2.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
|
|
|
|
[[package]]
|
|
name = "wrapcenum-derive"
|
|
version = "0.4.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "a76ff259533532054cfbaefb115c613203c73707017459206380f03b3b3f266e"
|
|
dependencies = [
|
|
"darling",
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn 2.0.119",
|
|
]
|
|
|
|
[[package]]
|
|
name = "zerocopy"
|
|
version = "0.8.56"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb"
|
|
dependencies = [
|
|
"zerocopy-derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "zerocopy-derive"
|
|
version = "0.8.56"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn 2.0.119",
|
|
]
|
|
|
|
[[package]]
|
|
name = "zeroize"
|
|
version = "1.9.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e"
|
|
dependencies = [
|
|
"zeroize_derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "zeroize_derive"
|
|
version = "1.5.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn 2.0.119",
|
|
]
|
|
|
|
[[package]]
|
|
name = "zmij"
|
|
version = "1.0.23"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
|