diff --git a/.github/workflows/rust_checks.yml b/.github/workflows/rust_checks.yml
index 6dd89c2..4df7d9c 100644
--- a/.github/workflows/rust_checks.yml
+++ b/.github/workflows/rust_checks.yml
@@ -1,61 +1,15 @@
name: 'Rust Checks: rustfml, clippy & test'
-'on':
+on:
pull_request: null
workflow_dispatch: null
push:
branches:
- main
jobs:
- rustfmt:
+ check-all:
runs-on: ubuntu-latest
steps:
- - name: Checkout code
- uses: actions/checkout@v2
- - name: Install Rust
- uses: actions-rs/toolchain@v1
- with:
- profile: minimal
- toolchain: stable
- components: rustfmt
- - name: Run rustfmt
- run: cargo fmt --all -- --check
- clippy:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v2
- - name: Install Rust
- uses: actions-rs/toolchain@v1
- with:
- profile: minimal
- toolchain: stable
- components: clippy
- - name: Run clippy
- run: cargo clippy --workspace --all-targets --all-features -- -D warnings
- test:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v2
- - name: Install Rust
- uses: actions-rs/toolchain@v1
- with:
- profile: minimal
- toolchain: nightly
- components: cargo
- - name: Run tests
- run: |
- cargo +nightly test --workspace --all-targets --all-features -- -Z unstable-options --format json --report-time | tee results.json
- - name: Prepare junit report
- id: cargo_reporter
- uses: innoq/action-cargo-test-report@v1
- with:
- cargo-test-report-json: results.json
- - name: Publish Test Report
- uses: mikepenz/action-junit-report@v4.3.1
- if: always()
- with:
- check_name: Test Report
- fail_on_failure: true
- require_tests: true
- summary: '${{ steps.cargo_reporter.outputs.summary }}'
+ - uses: actions/checkout@v4
+ - uses: UbiqueInnovation/action-systems-rust-clippy@v1.0.0
+ - uses: UbiqueInnovation/action-systems-rust-format@v1.0.0
+ - uses: UbiqueInnovation/action-systems-rust-test@v1.0.0
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index e040625..e666629 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
/.vscode
/target
+
+.DS_STORE
\ No newline at end of file
diff --git a/Cargo.lock b/Cargo.lock
index a854986..5ad67d5 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2,13 +2,32 @@
# It is not intended for manual editing.
version = 3
+[[package]]
+name = "abnf"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "087113bd50d9adce24850eed5d0476c7d199d532fce8fab5173650331e09033a"
+dependencies = [
+ "abnf-core",
+ "nom",
+]
+
+[[package]]
+name = "abnf-core"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c44e09c43ae1c368fb91a03a566472d0087c26cf7e1b9e8e289c14ede681dd7d"
+dependencies = [
+ "nom",
+]
+
[[package]]
name = "addr2line"
version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375"
dependencies = [
- "gimli",
+ "gimli 0.31.0",
]
[[package]]
@@ -38,6 +57,17 @@ dependencies = [
"cpufeatures",
]
+[[package]]
+name = "ahash"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
+dependencies = [
+ "getrandom",
+ "once_cell",
+ "version_check",
+]
+
[[package]]
name = "ahash"
version = "0.8.11"
@@ -59,6 +89,21 @@ dependencies = [
"memchr",
]
+[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
[[package]]
name = "anyhow"
version = "1.0.89"
@@ -77,6 +122,25 @@ dependencies = [
"ark-std",
]
+[[package]]
+name = "ark-crypto-primitives"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56"
+dependencies = [
+ "ark-ec",
+ "ark-ff",
+ "ark-relations",
+ "ark-serialize",
+ "ark-snark",
+ "ark-std",
+ "blake2",
+ "derivative",
+ "digest",
+ "rayon",
+ "sha2",
+]
+
[[package]]
name = "ark-ec"
version = "0.4.2"
@@ -139,6 +203,22 @@ dependencies = [
"syn 1.0.109",
]
+[[package]]
+name = "ark-groth16"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc"
+dependencies = [
+ "ark-crypto-primitives",
+ "ark-ec",
+ "ark-ff",
+ "ark-poly",
+ "ark-relations",
+ "ark-serialize",
+ "ark-std",
+ "rayon",
+]
+
[[package]]
name = "ark-poly"
version = "0.4.2"
@@ -153,6 +233,35 @@ dependencies = [
"rayon",
]
+[[package]]
+name = "ark-r1cs-std"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de1d1472e5cb020cb3405ce2567c91c8d43f21b674aef37b0202f5c3304761db"
+dependencies = [
+ "ark-ec",
+ "ark-ff",
+ "ark-relations",
+ "ark-std",
+ "derivative",
+ "num-bigint",
+ "num-integer",
+ "num-traits",
+ "tracing",
+]
+
+[[package]]
+name = "ark-relations"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0"
+dependencies = [
+ "ark-ff",
+ "ark-std",
+ "tracing",
+ "tracing-subscriber 0.2.25",
+]
+
[[package]]
name = "ark-serialize"
version = "0.4.2"
@@ -176,6 +285,18 @@ dependencies = [
"syn 1.0.109",
]
+[[package]]
+name = "ark-snark"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63"
+dependencies = [
+ "ark-ff",
+ "ark-relations",
+ "ark-serialize",
+ "ark-std",
+]
+
[[package]]
name = "ark-std"
version = "0.4.0"
@@ -187,6 +308,12 @@ dependencies = [
"rayon",
]
+[[package]]
+name = "arrayvec"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
+
[[package]]
name = "async-stream"
version = "0.3.5"
@@ -206,7 +333,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.77",
+ "syn 2.0.87",
]
[[package]]
@@ -217,7 +344,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.77",
+ "syn 2.0.87",
]
[[package]]
@@ -235,6 +362,12 @@ dependencies = [
"bytemuck",
]
+[[package]]
+name = "atomic-waker"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+
[[package]]
name = "autocfg"
version = "1.3.0"
@@ -256,6 +389,18 @@ dependencies = [
"windows-targets 0.52.6",
]
+[[package]]
+name = "base-x"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270"
+
+[[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"
@@ -280,7 +425,7 @@ dependencies = [
"schnorr_pok",
"secret_sharing_and_dkg",
"serde",
- "serde_with",
+ "serde_with 1.14.0",
"sha3",
"zeroize",
]
@@ -291,12 +436,39 @@ version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "383d29d513d8764dcdc42ea295d979eb99c3c9f00607b3692cf68a431f7dca72"
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
[[package]]
name = "bitflags"
version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
+[[package]]
+name = "bitmaps"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2"
+dependencies = [
+ "typenum",
+]
+
+[[package]]
+name = "bitvec"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
+dependencies = [
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
+]
+
[[package]]
name = "blake2"
version = "0.10.6"
@@ -315,6 +487,77 @@ dependencies = [
"generic-array",
]
+[[package]]
+name = "btree-range-map"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1be5c9672446d3800bcbcaabaeba121fe22f1fb25700c4562b22faf76d377c33"
+dependencies = [
+ "btree-slab",
+ "cc-traits",
+ "range-traits",
+ "serde",
+ "slab",
+]
+
+[[package]]
+name = "btree-slab"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a2b56d3029f075c4fa892428a098425b86cef5c89ae54073137ece416aef13c"
+dependencies = [
+ "cc-traits",
+ "slab",
+ "smallvec",
+]
+
+[[package]]
+name = "bulletproofs_plus_plus"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72efdc2e468364bf7b9f86fdc5690c4cd4d6ef62534215fe30331337908e0c88"
+dependencies = [
+ "ark-ec",
+ "ark-ff",
+ "ark-poly",
+ "ark-serialize",
+ "ark-std",
+ "digest",
+ "dock_crypto_utils",
+ "rayon",
+ "serde",
+ "serde_with 1.14.0",
+ "zeroize",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
+
+[[package]]
+name = "bytecheck"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2"
+dependencies = [
+ "bytecheck_derive",
+ "ptr_meta",
+ "simdutf8",
+]
+
+[[package]]
+name = "bytecheck_derive"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
[[package]]
name = "bytemuck"
version = "1.18.0"
@@ -343,111 +586,413 @@ dependencies = [
]
[[package]]
-name = "cfg-if"
-version = "1.0.0"
+name = "cc-traits"
+version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+checksum = "060303ef31ef4a522737e1b1ab68c67916f2a787bb2f4f54f383279adba962b5"
+dependencies = [
+ "slab",
+]
[[package]]
-name = "cipher"
-version = "0.4.4"
+name = "cfg-if"
+version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
-dependencies = [
- "crypto-common",
- "inout",
-]
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
-name = "cookie"
-version = "0.18.1"
+name = "chacha20"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747"
+checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818"
dependencies = [
- "percent-encoding",
- "time",
- "version_check",
+ "cfg-if",
+ "cipher",
+ "cpufeatures",
]
[[package]]
-name = "cpufeatures"
-version = "0.2.14"
+name = "chacha20poly1305"
+version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0"
+checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35"
dependencies = [
- "libc",
+ "aead",
+ "chacha20",
+ "cipher",
+ "poly1305",
+ "zeroize",
]
[[package]]
-name = "crossbeam-deque"
-version = "0.8.5"
+name = "chrono"
+version = "0.4.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
dependencies = [
- "crossbeam-epoch",
- "crossbeam-utils",
+ "android-tzdata",
+ "iana-time-zone",
+ "js-sys",
+ "num-traits",
+ "serde",
+ "wasm-bindgen",
+ "windows-targets 0.52.6",
]
[[package]]
-name = "crossbeam-epoch"
-version = "0.9.18"
+name = "ciborium"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
dependencies = [
- "crossbeam-utils",
+ "ciborium-io",
+ "ciborium-ll",
+ "serde",
]
[[package]]
-name = "crossbeam-utils"
-version = "0.8.20"
+name = "ciborium-io"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
+checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
[[package]]
-name = "crypto-common"
-version = "0.1.6"
+name = "ciborium-ll"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
dependencies = [
- "generic-array",
- "typenum",
+ "ciborium-io",
+ "half",
]
[[package]]
-name = "darling"
-version = "0.13.4"
+name = "cipher"
+version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c"
+checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
dependencies = [
- "darling_core",
- "darling_macro",
+ "crypto-common",
+ "inout",
+ "zeroize",
]
[[package]]
-name = "darling_core"
-version = "0.13.4"
+name = "coconut-crypto"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
+checksum = "3d5b98c93d9d14e68d50808ef36fc2751e5f71c5666f006d0fedd3c81d87b5c0"
dependencies = [
- "fnv",
- "ident_case",
- "proc-macro2",
- "quote",
- "strsim",
- "syn 1.0.109",
+ "ark-ec",
+ "ark-ff",
+ "ark-poly",
+ "ark-serialize",
+ "ark-std",
+ "digest",
+ "dock_crypto_utils",
+ "itertools 0.12.1",
+ "rayon",
+ "schnorr_pok",
+ "secret_sharing_and_dkg",
+ "serde",
+ "serde_with 1.14.0",
+ "zeroize",
]
[[package]]
-name = "darling_macro"
-version = "0.13.4"
+name = "contextual"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05ca71f324d19e85a2e976be04b5ecbb193253794a75adfe2e5044c8bef03f6a"
+
+[[package]]
+name = "cookie"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747"
+dependencies = [
+ "percent-encoding",
+ "time",
+ "version_check",
+]
+
+[[package]]
+name = "core-foundation"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
+
+[[package]]
+name = "corosensei"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80128832c58ea9cbd041d2a759ec449224487b2c1e400453d99d244eead87a8e"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "libc",
+ "scopeguard",
+ "windows-sys 0.33.0",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "cranelift-bforest"
+version = "0.91.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a2ab4512dfd3a6f4be184403a195f76e81a8a9f9e6c898e19d2dc3ce20e0115"
+dependencies = [
+ "cranelift-entity",
+]
+
+[[package]]
+name = "cranelift-codegen"
+version = "0.91.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98b022ed2a5913a38839dfbafe6cf135342661293b08049843362df4301261dc"
+dependencies = [
+ "arrayvec",
+ "bumpalo",
+ "cranelift-bforest",
+ "cranelift-codegen-meta",
+ "cranelift-codegen-shared",
+ "cranelift-egraph",
+ "cranelift-entity",
+ "cranelift-isle",
+ "gimli 0.26.2",
+ "log",
+ "regalloc2",
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cranelift-codegen-meta"
+version = "0.91.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "639307b45434ad112a98f8300c0f0ab085cbefcd767efcdef9ef19d4c0756e74"
+dependencies = [
+ "cranelift-codegen-shared",
+]
+
+[[package]]
+name = "cranelift-codegen-shared"
+version = "0.91.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "278e52e29c53fcf32431ef08406c295699a70306d05a0715c5b1bf50e33a9ab7"
+
+[[package]]
+name = "cranelift-egraph"
+version = "0.91.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "624b54323b06e675293939311943ba82d323bb340468ce1889be5da7932c8d73"
+dependencies = [
+ "cranelift-entity",
+ "fxhash",
+ "hashbrown 0.12.3",
+ "indexmap 1.9.3",
+ "log",
+ "smallvec",
+]
+
+[[package]]
+name = "cranelift-entity"
+version = "0.91.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a59bcbca89c3f1b70b93ab3cbba5e5e0cbf3e63dadb23c7525cb142e21a9d4c"
+
+[[package]]
+name = "cranelift-frontend"
+version = "0.91.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d70abacb8cfef3dc8ff7e8836e9c1d70f7967dfdac824a4cd5e30223415aca6"
+dependencies = [
+ "cranelift-codegen",
+ "log",
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cranelift-isle"
+version = "0.91.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "393bc73c451830ff8dbb3a07f61843d6cb41a084f9996319917c0b291ed785bb"
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "darling"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c"
+dependencies = [
+ "darling_core 0.13.4",
+ "darling_macro 0.13.4",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"
+dependencies = [
+ "darling_core 0.20.10",
+ "darling_macro 0.20.10",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim 0.10.0",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim 0.11.1",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.13.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
dependencies = [
- "darling_core",
+ "darling_core 0.13.4",
"quote",
"syn 1.0.109",
]
+[[package]]
+name = "darling_macro"
+version = "0.20.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
+dependencies = [
+ "darling_core 0.20.10",
+ "quote",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "dashmap"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+dependencies = [
+ "cfg-if",
+ "hashbrown 0.14.5",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "data-encoding"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2"
+
+[[package]]
+name = "data-encoding-macro"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639"
+dependencies = [
+ "data-encoding",
+ "data-encoding-macro-internal",
+]
+
+[[package]]
+name = "data-encoding-macro-internal"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f"
+dependencies = [
+ "data-encoding",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "decoded-char"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5440d1dc8ea7cae44cda3c64568db29bfa2434aba51ae66a50c00488841a65a3"
+
[[package]]
name = "deranged"
version = "0.3.11"
@@ -455,6 +1000,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
dependencies = [
"powerfmt",
+ "serde",
]
[[package]]
@@ -494,11 +1040,11 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b035a542cf7abf01f2e3c4d5a7acbaebfefe120ae4efc7bde3df98186e4b8af7"
dependencies = [
- "bitflags",
+ "bitflags 2.6.0",
"proc-macro2",
"proc-macro2-diagnostics",
"quote",
- "syn 2.0.77",
+ "syn 2.0.87",
]
[[package]]
@@ -531,7 +1077,7 @@ dependencies = [
"num",
"rayon",
"serde",
- "serde_with",
+ "serde_with 1.14.0",
"sha2",
"zeroize",
]
@@ -551,6 +1097,30 @@ dependencies = [
"zeroize",
]
+[[package]]
+name = "educe"
+version = "0.4.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f0042ff8246a363dbe77d2ceedb073339e85a804b9a47636c6e016a9a32c05f"
+dependencies = [
+ "enum-ordinalize 3.1.15",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "educe"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4bd92664bf78c4d3dba9b7cdafce6fa15b13ed3ed16175218196942e99168a8"
+dependencies = [
+ "enum-ordinalize 4.3.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
[[package]]
name = "either"
version = "1.13.0"
@@ -567,58 +1137,153 @@ dependencies = [
]
[[package]]
-name = "equivalent"
-version = "1.0.1"
+name = "enum-iterator"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6"
+dependencies = [
+ "enum-iterator-derive",
+]
[[package]]
-name = "errno"
-version = "0.3.9"
+name = "enum-iterator-derive"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
+checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159"
dependencies = [
- "libc",
- "windows-sys 0.52.0",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
]
[[package]]
-name = "fastrand"
-version = "2.1.1"
+name = "enum-ordinalize"
+version = "3.1.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6"
+checksum = "1bf1fa3f06bbff1ea5b1a9c7b14aa992a39657db60a2759457328d7e058f49ee"
+dependencies = [
+ "num-bigint",
+ "num-traits",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
[[package]]
-name = "figment"
-version = "0.10.19"
+name = "enum-ordinalize"
+version = "4.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cb01cd46b0cf372153850f4c6c272d9cbea2da513e07538405148f95bd789f3"
+checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5"
dependencies = [
- "atomic 0.6.0",
- "pear",
- "serde",
- "toml",
- "uncased",
- "version_check",
+ "enum-ordinalize-derive",
]
[[package]]
-name = "fips204"
-version = "0.2.2"
+name = "enum-ordinalize-derive"
+version = "4.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea2461567040f75a882162ffe38f6dc35bf5a193e995ca3f8c1f5d3c101be1d"
+checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff"
dependencies = [
- "rand_core",
- "sha3",
- "zeroize",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
]
[[package]]
-name = "fnv"
-version = "1.0.7"
+name = "enumset"
+version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
+checksum = "d07a4b049558765cef5f0c1a273c3fc57084d768b44d2f98127aef4cceb17293"
+dependencies = [
+ "enumset_derive",
+]
+
+[[package]]
+name = "enumset_derive"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59c3b24c345d8c314966bdc1832f6c2635bfcce8e7cf363bd115987bba2ee242"
+dependencies = [
+ "darling 0.20.10",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "fallible-iterator"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
+
+[[package]]
+name = "fastrand"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6"
+
+[[package]]
+name = "figment"
+version = "0.10.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8cb01cd46b0cf372153850f4c6c272d9cbea2da513e07538405148f95bd789f3"
+dependencies = [
+ "atomic 0.6.0",
+ "pear",
+ "serde",
+ "toml",
+ "uncased",
+ "version_check",
+]
+
+[[package]]
+name = "fips204"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea2461567040f75a882162ffe38f6dc35bf5a193e995ca3f8c1f5d3c101be1d"
+dependencies = [
+ "rand_core",
+ "sha3",
+ "zeroize",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
[[package]]
name = "form_urlencoded"
version = "1.2.1"
@@ -628,6 +1293,12 @@ dependencies = [
"percent-encoding",
]
+[[package]]
+name = "funty"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
+
[[package]]
name = "futures"
version = "0.3.30"
@@ -636,6 +1307,7 @@ checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
dependencies = [
"futures-channel",
"futures-core",
+ "futures-executor",
"futures-io",
"futures-sink",
"futures-task",
@@ -658,12 +1330,34 @@ version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+[[package]]
+name = "futures-executor"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
[[package]]
name = "futures-io"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+[[package]]
+name = "futures-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
[[package]]
name = "futures-sink"
version = "0.3.30"
@@ -685,6 +1379,7 @@ dependencies = [
"futures-channel",
"futures-core",
"futures-io",
+ "futures-macro",
"futures-sink",
"futures-task",
"memchr",
@@ -693,6 +1388,15 @@ dependencies = [
"slab",
]
+[[package]]
+name = "fxhash"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
+dependencies = [
+ "byteorder",
+]
+
[[package]]
name = "generator"
version = "0.7.5"
@@ -723,8 +1427,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
dependencies = [
"cfg-if",
+ "js-sys",
"libc",
"wasi",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "gimli"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d"
+dependencies = [
+ "fallible-iterator",
+ "indexmap 1.9.3",
+ "stable_deref_trait",
]
[[package]]
@@ -751,20 +1468,58 @@ dependencies = [
"futures-sink",
"futures-util",
"http 0.2.12",
- "indexmap",
+ "indexmap 2.5.0",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "h2"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205"
+dependencies = [
+ "atomic-waker",
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "http 1.1.0",
+ "indexmap 2.5.0",
"slab",
"tokio",
"tokio-util",
"tracing",
]
+[[package]]
+name = "half"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
+dependencies = [
+ "cfg-if",
+ "crunchy",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+dependencies = [
+ "ahash 0.7.8",
+]
+
[[package]]
name = "hashbrown"
version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
dependencies = [
- "ahash",
+ "ahash 0.8.11",
]
[[package]]
@@ -785,6 +1540,18 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "hex_fmt"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336f"
+
[[package]]
name = "hkdf"
version = "0.12.4"
@@ -836,6 +1603,29 @@ dependencies = [
"pin-project-lite",
]
+[[package]]
+name = "http-body"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
+dependencies = [
+ "bytes",
+ "http 1.1.0",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f"
+dependencies = [
+ "bytes",
+ "futures-util",
+ "http 1.1.0",
+ "http-body 1.0.1",
+ "pin-project-lite",
+]
+
[[package]]
name = "httparse"
version = "1.9.4"
@@ -858,9 +1648,9 @@ dependencies = [
"futures-channel",
"futures-core",
"futures-util",
- "h2",
+ "h2 0.3.26",
"http 0.2.12",
- "http-body",
+ "http-body 0.4.6",
"httparse",
"httpdate",
"itoa",
@@ -873,1274 +1663,3328 @@ dependencies = [
]
[[package]]
-name = "ident_case"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
-
-[[package]]
-name = "indexmap"
-version = "2.5.0"
+name = "hyper"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5"
+checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a"
dependencies = [
- "equivalent",
- "hashbrown 0.14.5",
- "serde",
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "h2 0.4.6",
+ "http 1.1.0",
+ "http-body 1.0.1",
+ "httparse",
+ "itoa",
+ "pin-project-lite",
+ "smallvec",
+ "tokio",
+ "want",
]
[[package]]
-name = "inlinable_string"
-version = "0.1.15"
+name = "hyper-rustls"
+version = "0.27.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb"
+checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333"
+dependencies = [
+ "futures-util",
+ "http 1.1.0",
+ "hyper 1.5.0",
+ "hyper-util",
+ "rustls",
+ "rustls-pki-types",
+ "tokio",
+ "tokio-rustls",
+ "tower-service",
+]
[[package]]
-name = "inout"
-version = "0.1.3"
+name = "hyper-tls"
+version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
+checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0"
dependencies = [
- "generic-array",
+ "bytes",
+ "http-body-util",
+ "hyper 1.5.0",
+ "hyper-util",
+ "native-tls",
+ "tokio",
+ "tokio-native-tls",
+ "tower-service",
]
[[package]]
-name = "is-terminal"
-version = "0.4.13"
+name = "hyper-util"
+version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b"
+checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b"
dependencies = [
- "hermit-abi 0.4.0",
- "libc",
- "windows-sys 0.52.0",
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "http 1.1.0",
+ "http-body 1.0.1",
+ "hyper 1.5.0",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower-service",
+ "tracing",
]
[[package]]
-name = "itertools"
-version = "0.10.5"
+name = "iana-time-zone"
+version = "0.1.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220"
dependencies = [
- "either",
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core",
]
[[package]]
-name = "itertools"
-version = "0.12.1"
+name = "iana-time-zone-haiku"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
dependencies = [
- "either",
+ "cc",
]
[[package]]
-name = "itoa"
-version = "1.0.11"
+name = "ident_case"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
[[package]]
-name = "keccak"
-version = "0.1.5"
+name = "idna"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
dependencies = [
- "cpufeatures",
+ "unicode-bidi",
+ "unicode-normalization",
]
[[package]]
-name = "lazy_static"
-version = "1.5.0"
+name = "im"
+version = "15.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
+checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9"
+dependencies = [
+ "bitmaps",
+ "rand_core",
+ "rand_xoshiro",
+ "sized-chunks",
+ "typenum",
+ "version_check",
+]
[[package]]
-name = "libc"
-version = "0.2.158"
+name = "indexmap"
+version = "1.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.4.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+dependencies = [
+ "autocfg",
+ "hashbrown 0.12.3",
+ "serde",
+]
[[package]]
-name = "lock_api"
-version = "0.4.12"
+name = "indexmap"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
+checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5"
dependencies = [
- "autocfg",
- "scopeguard",
+ "equivalent",
+ "hashbrown 0.14.5",
+ "serde",
]
[[package]]
-name = "log"
-version = "0.4.22"
+name = "indoc"
+version = "2.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
+checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
[[package]]
-name = "loom"
-version = "0.5.6"
+name = "inlinable_string"
+version = "0.1.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5"
-dependencies = [
- "cfg-if",
- "generator",
- "scoped-tls",
- "serde",
- "serde_json",
- "tracing",
- "tracing-subscriber",
-]
+checksum = "c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb"
[[package]]
-name = "matchers"
-version = "0.1.0"
+name = "inout"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
+checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
dependencies = [
- "regex-automata 0.1.10",
+ "generic-array",
]
[[package]]
-name = "memchr"
-version = "2.7.4"
+name = "ipnet"
+version = "2.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
+checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4"
[[package]]
-name = "mime"
-version = "0.3.17"
+name = "iref"
+version = "3.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+checksum = "374372d9ca7331cec26f307b12552554849143e6b2077be3553576aa9aa8258c"
+dependencies = [
+ "iref-core",
+]
[[package]]
-name = "miniz_oxide"
-version = "0.8.0"
+name = "iref-core"
+version = "3.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
+checksum = "b10559a0d518effd4f2cee107f40f83acf8583dcd3e6760b9b60293b0d2c2a70"
dependencies = [
- "adler2",
+ "pct-str",
+ "smallvec",
+ "static-regular-grammar",
+ "thiserror",
]
[[package]]
-name = "mio"
-version = "1.0.2"
+name = "is-terminal"
+version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
+checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b"
dependencies = [
- "hermit-abi 0.3.9",
+ "hermit-abi 0.4.0",
"libc",
- "wasi",
"windows-sys 0.52.0",
]
[[package]]
-name = "multer"
-version = "3.1.0"
+name = "itertools"
+version = "0.10.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83e87776546dc87511aa5ee218730c92b666d7264ab6ed41f9d215af9cd5224b"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
dependencies = [
- "bytes",
- "encoding_rs",
- "futures-util",
- "http 1.1.0",
- "httparse",
- "memchr",
- "mime",
- "spin",
- "tokio",
- "tokio-util",
- "version_check",
+ "either",
]
[[package]]
-name = "next-gen-signatures"
-version = "0.0.4"
+name = "itertools"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
dependencies = [
- "anyhow",
- "ark-bls12-381",
- "ark-ec",
- "ark-serialize",
- "ark-std",
- "base64",
- "bbs_plus",
- "blake2",
- "dock_crypto_utils",
- "fips204",
- "num-bigint",
- "paste",
- "rand",
- "rocket",
- "schnorr_pok",
+ "either",
]
[[package]]
-name = "next-gen-signing-service"
-version = "0.0.4"
+name = "itertools"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
dependencies = [
- "next-gen-signatures",
- "paste",
- "rocket",
- "rocket-errors",
- "serde_urlencoded",
+ "either",
]
[[package]]
-name = "nu-ansi-term"
-version = "0.46.0"
+name = "itoa"
+version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+
+[[package]]
+name = "js-sys"
+version = "0.3.70"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a"
dependencies = [
- "overload",
- "winapi",
+ "wasm-bindgen",
]
[[package]]
-name = "num"
-version = "0.4.3"
+name = "json-event-parser"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23"
+checksum = "32f12e624eaeb74accb9bb48f01cb071427f68115aaafa5689acb372d7e22977"
+
+[[package]]
+name = "json-ld"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a5e03a47a0118ce03ca3a843d1cc1d6d89c91c0b035dab53ed57ad07068b4a3"
dependencies = [
- "num-bigint",
- "num-complex",
- "num-integer",
- "num-iter",
- "num-rational",
- "num-traits",
+ "contextual",
+ "futures",
+ "iref",
+ "json-ld-compaction",
+ "json-ld-context-processing",
+ "json-ld-core",
+ "json-ld-expansion",
+ "json-ld-serialization",
+ "json-ld-syntax",
+ "json-syntax",
+ "locspan",
+ "rdf-types",
+ "thiserror",
]
[[package]]
-name = "num-bigint"
-version = "0.4.6"
+name = "json-ld-compaction"
+version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
+checksum = "5fec236664e058a0a43e46ad28bbf00858a7cede40ad17ffdced395a9628a928"
dependencies = [
- "num-integer",
- "num-traits",
+ "contextual",
+ "educe 0.4.23",
+ "futures",
+ "indexmap 2.5.0",
+ "iref",
+ "json-ld-context-processing",
+ "json-ld-core",
+ "json-ld-expansion",
+ "json-ld-syntax",
+ "json-syntax",
+ "langtag",
+ "mown",
+ "rdf-types",
+ "thiserror",
]
[[package]]
-name = "num-complex"
-version = "0.4.6"
+name = "json-ld-context-processing"
+version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
+checksum = "6aaf38d5a714ed573340f921a67c212935335e055ff2bb785337d38f6be282a4"
dependencies = [
- "num-traits",
+ "contextual",
+ "futures",
+ "iref",
+ "json-ld-core",
+ "json-ld-syntax",
+ "mown",
+ "owning_ref",
+ "rdf-types",
+ "thiserror",
]
[[package]]
-name = "num-conv"
-version = "0.1.0"
+name = "json-ld-core"
+version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+checksum = "2a82b473e2951a3cc3fed5061eb62dfbe3f984bdfb9e918214ad571674f09c8b"
+dependencies = [
+ "bytes",
+ "contextual",
+ "educe 0.4.23",
+ "futures",
+ "hashbrown 0.13.2",
+ "indexmap 2.5.0",
+ "iref",
+ "json-ld-syntax",
+ "json-syntax",
+ "langtag",
+ "linked-data",
+ "log",
+ "mime",
+ "once_cell",
+ "permutohedron",
+ "pretty_dtoa",
+ "rdf-types",
+ "reqwest",
+ "reqwest-middleware",
+ "ryu-js",
+ "smallvec",
+ "static-iref",
+ "thiserror",
+ "utf8-decode",
+]
[[package]]
-name = "num-integer"
-version = "0.1.46"
+name = "json-ld-expansion"
+version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
+checksum = "f05cf1f43e51f7360a889f83b2ccb075d21b8229d325f3c80764fb0bce49f1ce"
dependencies = [
- "num-traits",
+ "contextual",
+ "educe 0.4.23",
+ "futures",
+ "indexmap 2.5.0",
+ "iref",
+ "json-ld-context-processing",
+ "json-ld-core",
+ "json-ld-syntax",
+ "json-syntax",
+ "langtag",
+ "mown",
+ "rdf-types",
+ "thiserror",
]
[[package]]
-name = "num-iter"
-version = "0.1.45"
+name = "json-ld-serialization"
+version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf"
+checksum = "9fe6e8a89c6aff8c955a6b9128be4da54f1d64b9564bcd647995610c657e2a4e"
dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
+ "indexmap 2.5.0",
+ "iref",
+ "json-ld-core",
+ "json-syntax",
+ "linked-data",
+ "rdf-types",
+ "thiserror",
+ "xsd-types",
]
[[package]]
-name = "num-rational"
-version = "0.4.2"
+name = "json-ld-syntax"
+version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
+checksum = "8a52919be632986e14dd1dbcfe12ce4573db02bf7044a09e7ec882a1ec2af7e6"
dependencies = [
- "num-bigint",
- "num-integer",
- "num-traits",
+ "contextual",
+ "decoded-char",
+ "educe 0.4.23",
+ "hashbrown 0.13.2",
+ "indexmap 2.5.0",
+ "iref",
+ "json-syntax",
+ "langtag",
+ "locspan",
+ "rdf-types",
+ "smallvec",
+ "thiserror",
]
[[package]]
-name = "num-traits"
-version = "0.2.19"
+name = "json-number"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
+checksum = "4c54d19ae7e6fc83aafa649707655a9a0ac956a0f62793bde4cfd193b0693fdf"
dependencies = [
- "autocfg",
+ "lexical",
+ "ryu-js",
+ "smallvec",
]
[[package]]
-name = "num_cpus"
-version = "1.16.0"
+name = "json-syntax"
+version = "0.12.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+checksum = "044a68aba3f96d712f492b72be25e10f96201eaaca3207a7d6e68d6d5105fda9"
dependencies = [
- "hermit-abi 0.3.9",
- "libc",
+ "contextual",
+ "decoded-char",
+ "hashbrown 0.12.3",
+ "indexmap 1.9.3",
+ "json-number",
+ "locspan",
+ "locspan-derive",
+ "ryu-js",
+ "smallstr",
+ "smallvec",
+ "utf8-decode",
]
[[package]]
-name = "object"
-version = "0.36.4"
+name = "keccak"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a"
+checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654"
dependencies = [
- "memchr",
+ "cpufeatures",
]
[[package]]
-name = "oblivious_transfer_protocols"
-version = "0.9.0"
+name = "kvac"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "330a05f454419f17296f011a136db6399d8900a6cf90a8191b0f208a66c00048"
+checksum = "1e674e9ab3e6423f0387f7670238ff10885ec3e25c456cfe7904aed1283d404f"
dependencies = [
- "aes",
"ark-ec",
"ark-ff",
"ark-serialize",
"ark-std",
- "byteorder",
- "cc",
- "cipher",
"digest",
"dock_crypto_utils",
"itertools 0.12.1",
"rayon",
"schnorr_pok",
"serde",
- "serde_with",
- "sha3",
+ "serde_with 1.14.0",
"zeroize",
]
[[package]]
-name = "once_cell"
-version = "1.19.0"
+name = "langtag"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+checksum = "9ecb4c689a30e48ebeaa14237f34037e300dd072e6ad21a9ec72e810ff3c6600"
+dependencies = [
+ "static-regular-grammar",
+ "thiserror",
+]
[[package]]
-name = "overload"
-version = "0.1.1"
+name = "lazy_static"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
-name = "parking_lot"
-version = "0.12.3"
+name = "leb128"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
+checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
+
+[[package]]
+name = "legogroth16"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d2de1a0a97357f35fcf344fa94d71dbc180bc6318ec8e89c462aa5d166e2a3f"
dependencies = [
- "lock_api",
- "parking_lot_core",
+ "ark-ec",
+ "ark-ff",
+ "ark-groth16",
+ "ark-poly",
+ "ark-relations",
+ "ark-serialize",
+ "ark-snark",
+ "ark-std",
+ "dock_crypto_utils",
+ "fnv",
+ "log",
+ "num-bigint",
+ "rayon",
+ "wasmer",
]
[[package]]
-name = "parking_lot_core"
-version = "0.9.10"
+name = "lexical"
+version = "6.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
+checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6"
dependencies = [
- "cfg-if",
- "libc",
- "redox_syscall",
- "smallvec",
- "windows-targets 0.52.6",
+ "lexical-core",
]
[[package]]
-name = "paste"
-version = "1.0.15"
+name = "lexical-core"
+version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
+checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46"
+dependencies = [
+ "lexical-parse-float",
+ "lexical-parse-integer",
+ "lexical-util",
+ "lexical-write-float",
+ "lexical-write-integer",
+]
[[package]]
-name = "pear"
-version = "0.2.9"
+name = "lexical-parse-float"
+version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdeeaa00ce488657faba8ebf44ab9361f9365a97bd39ffb8a60663f57ff4b467"
+checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f"
dependencies = [
- "inlinable_string",
- "pear_codegen",
- "yansi",
+ "lexical-parse-integer",
+ "lexical-util",
+ "static_assertions",
]
[[package]]
-name = "pear_codegen"
-version = "0.2.9"
+name = "lexical-parse-integer"
+version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bab5b985dc082b345f812b7df84e1bef27e7207b39e448439ba8bd69c93f147"
+checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9"
dependencies = [
- "proc-macro2",
- "proc-macro2-diagnostics",
- "quote",
- "syn 2.0.77",
+ "lexical-util",
+ "static_assertions",
]
[[package]]
-name = "percent-encoding"
-version = "2.3.1"
+name = "lexical-util"
+version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc"
+dependencies = [
+ "static_assertions",
+]
[[package]]
-name = "pin-project-lite"
-version = "0.2.14"
+name = "lexical-write-float"
+version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862"
+dependencies = [
+ "lexical-util",
+ "lexical-write-integer",
+ "static_assertions",
+]
[[package]]
-name = "pin-utils"
-version = "0.1.0"
+name = "lexical-write-integer"
+version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446"
+dependencies = [
+ "lexical-util",
+ "static_assertions",
+]
[[package]]
-name = "powerfmt"
-version = "0.2.0"
+name = "libc"
+version = "0.2.158"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
[[package]]
-name = "ppv-lite86"
-version = "0.2.20"
+name = "linked-data"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
+checksum = "04fd672ff31f4a6007acbdd33e1b65e1144081ec09b4189b3d20da3997603e90"
dependencies = [
- "zerocopy",
+ "educe 0.4.23",
+ "im",
+ "iref",
+ "json-syntax",
+ "linked-data-derive",
+ "rdf-types",
+ "serde",
+ "static-iref",
+ "thiserror",
+ "xsd-types",
]
[[package]]
-name = "proc-macro2"
-version = "1.0.86"
+name = "linked-data-derive"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
+checksum = "887a1903665b47c2dcff59682d8de1be46813819ae0337d8eaa885035762fbee"
dependencies = [
- "unicode-ident",
+ "iref",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "static-iref",
+ "syn 2.0.87",
+ "thiserror",
]
[[package]]
-name = "proc-macro2-diagnostics"
-version = "0.10.1"
+name = "linux-raw-sys"
+version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
+
+[[package]]
+name = "lock_api"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.77",
- "version_check",
- "yansi",
+ "autocfg",
+ "scopeguard",
]
[[package]]
-name = "quote"
-version = "1.0.37"
+name = "locspan"
+version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
+checksum = "33890449fcfac88e94352092944bf321f55e5deb4e289a6f51c87c55731200a0"
+
+[[package]]
+name = "locspan-derive"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e88991223b049a3d29ca1f60c05639581336a0f3ee4bf8a659dddecc11c4961a"
dependencies = [
+ "proc-macro-error",
"proc-macro2",
+ "quote",
+ "syn 1.0.109",
]
[[package]]
-name = "rand"
-version = "0.8.5"
+name = "log"
+version = "0.4.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-dependencies = [
- "libc",
- "rand_chacha",
- "rand_core",
-]
+checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
[[package]]
-name = "rand_chacha"
-version = "0.3.1"
+name = "loom"
+version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5"
dependencies = [
- "ppv-lite86",
- "rand_core",
+ "cfg-if",
+ "generator",
+ "scoped-tls",
+ "serde",
+ "serde_json",
+ "tracing",
+ "tracing-subscriber 0.3.18",
]
[[package]]
-name = "rand_core"
-version = "0.6.4"
+name = "mach"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa"
dependencies = [
- "getrandom",
+ "libc",
]
[[package]]
-name = "rayon"
-version = "1.10.0"
+name = "mach2"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
+checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709"
dependencies = [
- "either",
- "rayon-core",
+ "libc",
]
[[package]]
-name = "rayon-core"
-version = "1.12.1"
+name = "matchers"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
dependencies = [
- "crossbeam-deque",
- "crossbeam-utils",
+ "regex-automata 0.1.10",
]
[[package]]
-name = "redox_syscall"
-version = "0.5.4"
+name = "md-5"
+version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
dependencies = [
- "bitflags",
+ "cfg-if",
+ "digest",
]
[[package]]
-name = "ref-cast"
-version = "1.0.23"
+name = "memchr"
+version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931"
-dependencies = [
- "ref-cast-impl",
-]
+checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
-name = "ref-cast-impl"
-version = "1.0.23"
+name = "memmap2"
+version = "0.5.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6"
+checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.77",
+ "libc",
]
[[package]]
-name = "regex"
-version = "1.10.6"
+name = "memoffset"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619"
+checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
dependencies = [
- "aho-corasick",
- "memchr",
- "regex-automata 0.4.7",
- "regex-syntax 0.8.4",
+ "autocfg",
]
[[package]]
-name = "regex-automata"
-version = "0.1.10"
+name = "mime"
+version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
dependencies = [
- "regex-syntax 0.6.29",
+ "adler2",
]
[[package]]
-name = "regex-automata"
-version = "0.4.7"
+name = "mio"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
+checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax 0.8.4",
+ "hermit-abi 0.3.9",
+ "libc",
+ "wasi",
+ "windows-sys 0.52.0",
]
[[package]]
-name = "regex-syntax"
-version = "0.6.29"
+name = "more-asserts"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389"
[[package]]
-name = "regex-syntax"
-version = "0.8.4"
+name = "mown"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
+checksum = "e7627d8bbeb17edbf1c3f74b21488e4af680040da89713b4217d0010e9cbd97e"
[[package]]
-name = "rocket"
-version = "0.5.1"
+name = "multer"
+version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a516907296a31df7dc04310e7043b61d71954d703b603cc6867a026d7e72d73f"
+checksum = "83e87776546dc87511aa5ee218730c92b666d7264ab6ed41f9d215af9cd5224b"
dependencies = [
- "async-stream",
- "async-trait",
- "atomic 0.5.3",
- "binascii",
"bytes",
- "either",
- "figment",
- "futures",
- "indexmap",
- "log",
+ "encoding_rs",
+ "futures-util",
+ "http 1.1.0",
+ "httparse",
"memchr",
- "multer",
- "num_cpus",
- "parking_lot",
- "pin-project-lite",
- "rand",
- "ref-cast",
- "rocket_codegen",
- "rocket_http",
- "serde",
- "serde_json",
- "state",
- "tempfile",
- "time",
+ "mime",
+ "spin",
"tokio",
- "tokio-stream",
"tokio-util",
- "ubyte",
"version_check",
- "yansi",
-]
-
-[[package]]
-name = "rocket-errors"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5ac1222b4578d545cc19d71a01cad41b43b383dc00c52737c2629c9c1affc0f"
-dependencies = [
- "anyhow",
- "rocket",
]
[[package]]
-name = "rocket_codegen"
-version = "0.5.1"
+name = "multibase"
+version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "575d32d7ec1a9770108c879fc7c47815a80073f96ca07ff9525a94fcede1dd46"
+checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404"
dependencies = [
- "devise",
- "glob",
- "indexmap",
- "proc-macro2",
- "quote",
- "rocket_http",
- "syn 2.0.77",
- "unicode-xid",
- "version_check",
+ "base-x",
+ "data-encoding",
+ "data-encoding-macro",
]
[[package]]
-name = "rocket_http"
-version = "0.5.1"
+name = "native-tls"
+version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e274915a20ee3065f611c044bd63c40757396b6dbc057d6046aec27f14f882b9"
+checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466"
dependencies = [
- "cookie",
- "either",
- "futures",
- "http 0.2.12",
- "hyper",
- "indexmap",
+ "libc",
"log",
- "memchr",
- "pear",
- "percent-encoding",
- "pin-project-lite",
- "ref-cast",
- "serde",
- "smallvec",
- "stable-pattern",
- "state",
- "time",
- "tokio",
- "uncased",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
]
[[package]]
-name = "rustc-demangle"
-version = "0.1.24"
+name = "next-gen-signatures"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "ark-bls12-381",
+ "ark-ec",
+ "ark-serialize",
+ "ark-std",
+ "base64",
+ "bbs_plus",
+ "blake2",
+ "chrono",
+ "dock_crypto_utils",
+ "fips204",
+ "iref",
+ "itertools 0.13.0",
+ "json-ld",
+ "legogroth16",
+ "multibase",
+ "num-bigint",
+ "openssl",
+ "oxigraph",
+ "oxrdf 0.2.1",
+ "oxttl",
+ "paste",
+ "proof_system",
+ "rand",
+ "rdf-canon",
+ "rdf-proofs",
+ "rdf-types",
+ "regex",
+ "rocket",
+ "schnorr_pok",
+ "serde",
+ "serde_json",
+ "static-iref",
+ "tokio",
+]
+
+[[package]]
+name = "next-gen-signing-service"
+version = "0.1.0"
+dependencies = [
+ "next-gen-signatures",
+ "paste",
+ "rand",
+ "rocket",
+ "rocket-errors",
+ "serde_json",
+ "serde_urlencoded",
+]
+
+[[package]]
+name = "nom"
+version = "7.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
[[package]]
-name = "rustc_version"
-version = "0.4.1"
+name = "nu-ansi-term"
+version = "0.46.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
dependencies = [
- "semver",
+ "overload",
+ "winapi",
]
[[package]]
-name = "rustix"
-version = "0.38.37"
+name = "num"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811"
+checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23"
dependencies = [
- "bitflags",
- "errno",
- "libc",
- "linux-raw-sys",
- "windows-sys 0.52.0",
+ "num-bigint",
+ "num-complex",
+ "num-integer",
+ "num-iter",
+ "num-rational",
+ "num-traits",
]
[[package]]
-name = "rustversion"
-version = "1.0.17"
+name = "num-bigint"
+version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
+checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
+dependencies = [
+ "num-integer",
+ "num-traits",
+]
[[package]]
-name = "ryu"
-version = "1.0.18"
+name = "num-complex"
+version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
+checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
+dependencies = [
+ "num-traits",
+]
[[package]]
-name = "schnorr_pok"
-version = "0.20.0"
+name = "num-conv"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a166f138517fe7359112179cb075ec04fb845267dfefb1c7f71258c5a817af49"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
+name = "num-integer"
+version = "0.1.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
dependencies = [
- "ark-ec",
- "ark-ff",
- "ark-serialize",
- "ark-std",
- "digest",
- "dock_crypto_utils",
- "rayon",
- "serde",
- "serde_with",
- "zeroize",
+ "num-traits",
]
[[package]]
-name = "scoped-tls"
-version = "1.0.1"
+name = "num-iter"
+version = "0.1.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
[[package]]
-name = "scopeguard"
-version = "1.2.0"
+name = "num-rational"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
+dependencies = [
+ "num-bigint",
+ "num-integer",
+ "num-traits",
+]
[[package]]
-name = "secret_sharing_and_dkg"
-version = "0.13.0"
+name = "num-traits"
+version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b40ba413c8cbba3aa7dd76ffaef86af19d7bc4e93f9bccf5fc929c89b18b021d"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi 0.3.9",
+ "libc",
+]
+
+[[package]]
+name = "object"
+version = "0.36.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "oblivious_transfer_protocols"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "330a05f454419f17296f011a136db6399d8900a6cf90a8191b0f208a66c00048"
dependencies = [
+ "aes",
"ark-ec",
"ark-ff",
- "ark-poly",
"ark-serialize",
"ark-std",
+ "byteorder",
+ "cc",
+ "cipher",
"digest",
"dock_crypto_utils",
+ "itertools 0.12.1",
"rayon",
"schnorr_pok",
"serde",
- "serde_with",
+ "serde_with 1.14.0",
+ "sha3",
"zeroize",
]
[[package]]
-name = "semver"
-version = "1.0.23"
+name = "once_cell"
+version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
[[package]]
-name = "serde"
-version = "1.0.210"
+name = "opaque-debug"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
+
+[[package]]
+name = "openssl"
+version = "0.10.66"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
+checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1"
dependencies = [
- "serde_derive",
+ "bitflags 2.6.0",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-src"
+version = "300.4.0+3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a709e02f2b4aca747929cca5ed248880847c650233cf8b8cdc48f40aaf4898a6"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.103"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6"
+dependencies = [
+ "cc",
+ "libc",
+ "openssl-src",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "ordered-float"
+version = "3.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "owning_ref"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ff55baddef9e4ad00f88b6c743a2a8062d4c6ade126c2a528644b8e444d52ce"
+dependencies = [
+ "stable_deref_trait",
+]
+
+[[package]]
+name = "oxigraph"
+version = "0.3.22"
+source = "git+https://github.com/UbiqueInnovation/oxigraph-v0.3.22-patch.git#c402c7d57743241cb6ece84dd6d1afc056a4e064"
+dependencies = [
+ "digest",
+ "getrandom",
+ "hex",
+ "js-sys",
+ "json-event-parser",
+ "lazy_static",
+ "libc",
+ "md-5",
+ "oxilangtag",
+ "oxiri",
+ "oxrdf 0.1.7",
+ "oxsdatatypes 0.1.3",
+ "rand",
+ "regex",
+ "rio_api",
+ "rio_turtle",
+ "rio_xml",
+ "sha-1",
+ "sha2",
+ "siphasher",
+ "sparesults",
+ "spargebra",
+]
+
+[[package]]
+name = "oxilangtag"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23f3f87617a86af77fa3691e6350483e7154c2ead9f1261b75130e21ca0f8acb"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "oxiri"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1584efc0f222d0fc8f31e6c229b8fd93f69280aab398828f0dbce3957178a1ac"
+
+[[package]]
+name = "oxrdf"
+version = "0.1.7"
+source = "git+https://github.com/UbiqueInnovation/oxigraph-v0.3.22-patch.git#c402c7d57743241cb6ece84dd6d1afc056a4e064"
+dependencies = [
+ "oxilangtag",
+ "oxiri",
+ "oxsdatatypes 0.1.3",
+ "rand",
+]
+
+[[package]]
+name = "oxrdf"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b2115dc40840037ba86c494ffa2925ab435ec0c383dcf73d49600c9142db081"
+dependencies = [
+ "oxilangtag",
+ "oxiri",
+ "rand",
+ "thiserror",
+]
+
+[[package]]
+name = "oxsdatatypes"
+version = "0.1.3"
+source = "git+https://github.com/UbiqueInnovation/oxigraph-v0.3.22-patch.git#c402c7d57743241cb6ece84dd6d1afc056a4e064"
+dependencies = [
+ "js-sys",
+]
+
+[[package]]
+name = "oxsdatatypes"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2aded4e13b58cbac3d7541ddd42b2b583323d2fcf4f9b2250394c6a07a39d51f"
+dependencies = [
+ "thiserror",
+]
+
+[[package]]
+name = "oxttl"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5ff45d05226b72a41cb43bb5818149be337231c2db7c3501f0f3b1e29977748"
+dependencies = [
+ "memchr",
+ "oxilangtag",
+ "oxiri",
+ "oxrdf 0.2.1",
+ "thiserror",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "paste"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
+
+[[package]]
+name = "pct-str"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf1bdcc492c285a50bed60860dfa00b50baf1f60c73c7d6b435b01a2a11fd6ff"
+dependencies = [
+ "thiserror",
+ "utf8-decode",
+]
+
+[[package]]
+name = "pear"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdeeaa00ce488657faba8ebf44ab9361f9365a97bd39ffb8a60663f57ff4b467"
+dependencies = [
+ "inlinable_string",
+ "pear_codegen",
+ "yansi",
+]
+
+[[package]]
+name = "pear_codegen"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bab5b985dc082b345f812b7df84e1bef27e7207b39e448439ba8bd69c93f147"
+dependencies = [
+ "proc-macro2",
+ "proc-macro2-diagnostics",
+ "quote",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "peg"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "295283b02df346d1ef66052a757869b2876ac29a6bb0ac3f5f7cd44aebe40e8f"
+dependencies = [
+ "peg-macros",
+ "peg-runtime",
+]
+
+[[package]]
+name = "peg-macros"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdad6a1d9cf116a059582ce415d5f5566aabcd4008646779dab7fdc2a9a9d426"
+dependencies = [
+ "peg-runtime",
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "peg-runtime"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3aeb8f54c078314c2065ee649a7241f46b9d8e418e1a9581ba0546657d7aa3a"
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "permutohedron"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b687ff7b5da449d39e418ad391e5e08da53ec334903ddbb921db208908fc372c"
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2"
+
+[[package]]
+name = "poly1305"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"
+dependencies = [
+ "cpufeatures",
+ "opaque-debug",
+ "universal-hash",
+]
+
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
+dependencies = [
+ "zerocopy",
+]
+
+[[package]]
+name = "pretty_dtoa"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a239bcdfda2c685fda1add3b4695c06225f50075e3cfb5b954e91545587edff2"
+dependencies = [
+ "ryu_floating_decimal",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.89"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "proc-macro2-diagnostics"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+ "version_check",
+ "yansi",
+]
+
+[[package]]
+name = "proof_system"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2f8d0c8e7ddd54bbf16bd2f9d7b9219b10f7b673b20336119a881782e16cd7a"
+dependencies = [
+ "aead",
+ "ark-ec",
+ "ark-ff",
+ "ark-groth16",
+ "ark-r1cs-std",
+ "ark-relations",
+ "ark-serialize",
+ "ark-std",
+ "bbs_plus",
+ "bulletproofs_plus_plus",
+ "chacha20poly1305",
+ "coconut-crypto",
+ "digest",
+ "dock_crypto_utils",
+ "dock_merlin",
+ "itertools 0.12.1",
+ "kvac",
+ "legogroth16",
+ "rayon",
+ "saver",
+ "schnorr_pok",
+ "serde",
+ "serde_with 1.14.0",
+ "short_group_sig",
+ "smc_range_proof",
+ "vb_accumulator",
+ "zeroize",
+]
+
+[[package]]
+name = "ptr_meta"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1"
+dependencies = [
+ "ptr_meta_derive",
+]
+
+[[package]]
+name = "ptr_meta_derive"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.28.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.36.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "radium"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[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 = "rand_xoshiro"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "range-traits"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d20581732dd76fa913c7dff1a2412b714afe3573e94d41c34719de73337cc8ab"
+
+[[package]]
+name = "raw-btree"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a9a77e61cd9f37af08f952c1c072081563e129c0949ac4ede30f9e8b6b4b74f"
+
+[[package]]
+name = "rayon"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "rdf-canon"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac1887472923223a7e4d2b35471ffbf46225dcbefc344fdbea80dbbb19b6b708"
+dependencies = [
+ "base16ct",
+ "digest",
+ "itertools 0.13.0",
+ "oxrdf 0.2.1",
+ "sha2",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "rdf-proofs"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5db75b99df781bce856b8433148c08be7c5fc70b3e7b6d756da6881a7f6722dd"
+dependencies = [
+ "ark-bls12-381",
+ "ark-ec",
+ "ark-ff",
+ "ark-serialize",
+ "ark-std",
+ "bbs_plus",
+ "blake2",
+ "chrono",
+ "ciborium",
+ "dock_crypto_utils",
+ "legogroth16",
+ "multibase",
+ "oxiri",
+ "oxrdf 0.2.1",
+ "oxsdatatypes 0.2.0",
+ "oxttl",
+ "proof_system",
+ "rdf-canon",
+ "regex",
+ "serde",
+ "serde_with 3.11.0",
+ "sha2",
+ "unsigned-varint",
+]
+
+[[package]]
+name = "rdf-types"
+version = "0.22.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b8d685353ee1b343c708b6be7751d98a7df8e1d0caaeee67c754318854c01d5"
+dependencies = [
+ "contextual",
+ "educe 0.5.11",
+ "indexmap 2.5.0",
+ "iref",
+ "langtag",
+ "raw-btree",
+ "replace_with",
+ "slab",
+ "static-iref",
+ "thiserror",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853"
+dependencies = [
+ "bitflags 2.6.0",
+]
+
+[[package]]
+name = "ref-cast"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931"
+dependencies = [
+ "ref-cast-impl",
+]
+
+[[package]]
+name = "ref-cast-impl"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "regalloc2"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "300d4fbfb40c1c66a78ba3ddd41c1110247cf52f97b87d0f2fc9209bd49b030c"
+dependencies = [
+ "fxhash",
+ "log",
+ "slice-group-by",
+ "smallvec",
+]
+
+[[package]]
+name = "regex"
+version = "1.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata 0.4.8",
+ "regex-syntax 0.8.5",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+dependencies = [
+ "regex-syntax 0.6.29",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax 0.8.5",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
+
+[[package]]
+name = "region"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6b6ebd13bc009aef9cd476c1310d49ac354d36e240cf1bd753290f3dc7199a7"
+dependencies = [
+ "bitflags 1.3.2",
+ "libc",
+ "mach2",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rend"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c"
+dependencies = [
+ "bytecheck",
+]
+
+[[package]]
+name = "replace_with"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3a8614ee435691de62bcffcf4a66d91b3594bf1428a5722e79103249a095690"
+
+[[package]]
+name = "reqwest"
+version = "0.12.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63"
+dependencies = [
+ "base64",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2 0.4.6",
+ "http 1.1.0",
+ "http-body 1.0.1",
+ "http-body-util",
+ "hyper 1.5.0",
+ "hyper-rustls",
+ "hyper-tls",
+ "hyper-util",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "native-tls",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls-pemfile",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "system-configuration",
+ "tokio",
+ "tokio-native-tls",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "windows-registry",
+]
+
+[[package]]
+name = "reqwest-middleware"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "http 1.1.0",
+ "reqwest",
+ "serde",
+ "thiserror",
+ "tower-service",
+]
+
+[[package]]
+name = "ring"
+version = "0.17.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
+dependencies = [
+ "cc",
+ "cfg-if",
+ "getrandom",
+ "libc",
+ "spin",
+ "untrusted",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rio_api"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61d0c76ddf8b00cbb4d2c5932d067d49245c2f1f651809bde3cf265033ddb1af"
+
+[[package]]
+name = "rio_turtle"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6f351b77353c7c896f0cd5ced2a25a7e95b5360cb68d1d7c16682ee096d7f40"
+dependencies = [
+ "oxilangtag",
+ "oxiri",
+ "rio_api",
+]
+
+[[package]]
+name = "rio_xml"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abd3384ae785ed3b0159607adc08adef580a28e277fbfa375c42d162e9da93b1"
+dependencies = [
+ "oxilangtag",
+ "oxiri",
+ "quick-xml 0.36.2",
+ "rio_api",
+]
+
+[[package]]
+name = "rkyv"
+version = "0.7.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b"
+dependencies = [
+ "bitvec",
+ "bytecheck",
+ "bytes",
+ "hashbrown 0.12.3",
+ "indexmap 1.9.3",
+ "ptr_meta",
+ "rend",
+ "rkyv_derive",
+ "seahash",
+ "tinyvec",
+ "uuid",
+]
+
+[[package]]
+name = "rkyv_derive"
+version = "0.7.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "rocket"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a516907296a31df7dc04310e7043b61d71954d703b603cc6867a026d7e72d73f"
+dependencies = [
+ "async-stream",
+ "async-trait",
+ "atomic 0.5.3",
+ "binascii",
+ "bytes",
+ "either",
+ "figment",
+ "futures",
+ "indexmap 2.5.0",
+ "log",
+ "memchr",
+ "multer",
+ "num_cpus",
+ "parking_lot",
+ "pin-project-lite",
+ "rand",
+ "ref-cast",
+ "rocket_codegen",
+ "rocket_http",
+ "serde",
+ "serde_json",
+ "state",
+ "tempfile",
+ "time",
+ "tokio",
+ "tokio-stream",
+ "tokio-util",
+ "ubyte",
+ "version_check",
+ "yansi",
+]
+
+[[package]]
+name = "rocket-errors"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5ac1222b4578d545cc19d71a01cad41b43b383dc00c52737c2629c9c1affc0f"
+dependencies = [
+ "anyhow",
+ "rocket",
+]
+
+[[package]]
+name = "rocket_codegen"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "575d32d7ec1a9770108c879fc7c47815a80073f96ca07ff9525a94fcede1dd46"
+dependencies = [
+ "devise",
+ "glob",
+ "indexmap 2.5.0",
+ "proc-macro2",
+ "quote",
+ "rocket_http",
+ "syn 2.0.87",
+ "unicode-xid",
+ "version_check",
+]
+
+[[package]]
+name = "rocket_http"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e274915a20ee3065f611c044bd63c40757396b6dbc057d6046aec27f14f882b9"
+dependencies = [
+ "cookie",
+ "either",
+ "futures",
+ "http 0.2.12",
+ "hyper 0.14.30",
+ "indexmap 2.5.0",
+ "log",
+ "memchr",
+ "pear",
+ "percent-encoding",
+ "pin-project-lite",
+ "ref-cast",
+ "serde",
+ "smallvec",
+ "stable-pattern",
+ "state",
+ "time",
+ "tokio",
+ "uncased",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811"
+dependencies = [
+ "bitflags 2.6.0",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustls"
+version = "0.23.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8"
+dependencies = [
+ "once_cell",
+ "rustls-pki-types",
+ "rustls-webpki",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425"
+dependencies = [
+ "base64",
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0"
+
+[[package]]
+name = "rustls-webpki"
+version = "0.102.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9"
+dependencies = [
+ "ring",
+ "rustls-pki-types",
+ "untrusted",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
+
+[[package]]
+name = "ryu"
+version = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
+
+[[package]]
+name = "ryu-js"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6518fc26bced4d53678a22d6e423e9d8716377def84545fe328236e3af070e7f"
+
+[[package]]
+name = "ryu_floating_decimal"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "700de91d5fd6091442d00fdd9ee790af6d4f0f480562b0f5a1e8f59e90aafe73"
+
+[[package]]
+name = "saver"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "256ae60411b80d857ad5ff09aefb06003ab978fba47a2ba648a6a2c2889911e5"
+dependencies = [
+ "ark-ec",
+ "ark-ff",
+ "ark-groth16",
+ "ark-r1cs-std",
+ "ark-relations",
+ "ark-serialize",
+ "ark-std",
+ "digest",
+ "dock_crypto_utils",
+ "dock_merlin",
+ "legogroth16",
+ "rayon",
+ "serde",
+ "serde_with 1.14.0",
+ "zeroize",
+]
+
+[[package]]
+name = "schannel"
+version = "0.1.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b"
+dependencies = [
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "schnorr_pok"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a166f138517fe7359112179cb075ec04fb845267dfefb1c7f71258c5a817af49"
+dependencies = [
+ "ark-ec",
+ "ark-ff",
+ "ark-serialize",
+ "ark-std",
+ "digest",
+ "dock_crypto_utils",
+ "rayon",
+ "serde",
+ "serde_with 1.14.0",
+ "zeroize",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "seahash"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
+
+[[package]]
+name = "secret_sharing_and_dkg"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b40ba413c8cbba3aa7dd76ffaef86af19d7bc4e93f9bccf5fc929c89b18b021d"
+dependencies = [
+ "ark-ec",
+ "ark-ff",
+ "ark-poly",
+ "ark-serialize",
+ "ark-std",
+ "digest",
+ "dock_crypto_utils",
+ "rayon",
+ "schnorr_pok",
+ "serde",
+ "serde_with 1.14.0",
+ "zeroize",
+]
+
+[[package]]
+name = "security-framework"
+version = "2.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02"
+dependencies = [
+ "bitflags 2.6.0",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
+
+[[package]]
+name = "serde"
+version = "1.0.214"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde-wasm-bindgen"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3b4c031cd0d9014307d82b8abf653c0290fbdaeb4c02d00c63cf52f728628bf"
+dependencies = [
+ "js-sys",
+ "serde",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.214"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.132"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03"
+dependencies = [
+ "itoa",
+ "memchr",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_with"
+version = "1.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff"
+dependencies = [
+ "serde",
+ "serde_with_macros 1.5.2",
+]
+
+[[package]]
+name = "serde_with"
+version = "3.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817"
+dependencies = [
+ "base64",
+ "chrono",
+ "hex",
+ "indexmap 1.9.3",
+ "indexmap 2.5.0",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "serde_with_macros 3.11.0",
+ "time",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "1.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082"
+dependencies = [
+ "darling 0.13.4",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "3.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d"
+dependencies = [
+ "darling 0.20.10",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "sha-1"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha3"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60"
+dependencies = [
+ "digest",
+ "keccak",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[package]]
+name = "short_group_sig"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "601e96ef28b48820f50155fe97639a68d5c6c6f0be71eaa0c8a7598e50a0bef2"
+dependencies = [
+ "ark-ec",
+ "ark-ff",
+ "ark-poly",
+ "ark-serialize",
+ "ark-std",
+ "digest",
+ "dock_crypto_utils",
+ "rayon",
+ "schnorr_pok",
+ "serde",
+ "serde_with 1.14.0",
+ "zeroize",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "simdutf8"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e"
+
+[[package]]
+name = "siphasher"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d"
+
+[[package]]
+name = "sized-chunks"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e"
+dependencies = [
+ "bitmaps",
+ "typenum",
+]
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "slice-group-by"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7"
+
+[[package]]
+name = "smallstr"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "63b1aefdf380735ff8ded0b15f31aab05daf1f70216c01c02a12926badd1df9d"
+dependencies = [
+ "smallvec",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+
+[[package]]
+name = "smc_range_proof"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2752d05d96e4bf44928d5819b3d2d6cca75bdd918bd0f9c8c1f9ecece7db38d9"
+dependencies = [
+ "ark-ec",
+ "ark-ff",
+ "ark-serialize",
+ "ark-std",
+ "digest",
+ "dock_crypto_utils",
+ "rayon",
+ "schnorr_pok",
+ "short_group_sig",
+ "zeroize",
+]
+
+[[package]]
+name = "socket2"
+version = "0.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "sparesults"
+version = "0.1.8"
+source = "git+https://github.com/UbiqueInnovation/oxigraph-v0.3.22-patch.git#c402c7d57743241cb6ece84dd6d1afc056a4e064"
+dependencies = [
+ "json-event-parser",
+ "oxrdf 0.1.7",
+ "quick-xml 0.28.2",
+]
+
+[[package]]
+name = "spargebra"
+version = "0.2.8"
+source = "git+https://github.com/UbiqueInnovation/oxigraph-v0.3.22-patch.git#c402c7d57743241cb6ece84dd6d1afc056a4e064"
+dependencies = [
+ "oxilangtag",
+ "oxiri",
+ "oxrdf 0.1.7",
+ "peg",
+ "rand",
+]
+
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+
+[[package]]
+name = "stable-pattern"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4564168c00635f88eaed410d5efa8131afa8d8699a612c80c455a0ba05c21045"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "state"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b8c4a4445d81357df8b1a650d0d0d6fbbbfe99d064aa5e02f3e4022061476d8"
+dependencies = [
+ "loom",
+]
+
+[[package]]
+name = "static-iref"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3cc4068497ae43896d41174586dcdc2153a1af2c82856fb308bfaaddc28e5549"
+dependencies = [
+ "iref",
+ "quote",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "static-regular-grammar"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f4a6c40247579acfbb138c3cd7de3dab113ab4ac6227f1b7de7d626ee667957"
+dependencies = [
+ "abnf",
+ "btree-range-map",
+ "ciborium",
+ "hex_fmt",
+ "indoc",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "serde",
+ "sha2",
+ "syn 2.0.87",
+ "thiserror",
+]
+
+[[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.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[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 = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.87"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "sync_wrapper"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "system-configuration"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b"
+dependencies = [
+ "bitflags 2.6.0",
+ "core-foundation",
+ "system-configuration-sys",
+]
+
+[[package]]
+name = "system-configuration-sys"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "tap"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
+
+[[package]]
+name = "tempfile"
+version = "3.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "once_cell",
+ "rustix",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[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.87",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "time"
+version = "0.3.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
+dependencies = [
+ "deranged",
+ "itoa",
+ "num-conv",
+ "powerfmt",
+ "serde",
+ "time-core",
+ "time-macros",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+
+[[package]]
+name = "time-macros"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
+dependencies = [
+ "num-conv",
+ "time-core",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938"
+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 = "tokio"
+version = "1.41.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2",
+ "tokio-macros",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
+[[package]]
+name = "tokio-native-tls"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
+dependencies = [
+ "native-tls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4"
+dependencies = [
+ "rustls",
+ "rustls-pki-types",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-stream"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+ "tokio",
]
[[package]]
-name = "serde_derive"
-version = "1.0.210"
+name = "tokio-util"
+version = "0.7.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
+checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.77",
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
]
[[package]]
-name = "serde_json"
-version = "1.0.128"
+name = "toml"
+version = "0.8.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
+checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
dependencies = [
- "itoa",
- "memchr",
- "ryu",
"serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit",
]
[[package]]
-name = "serde_spanned"
-version = "0.6.7"
+name = "toml_datetime"
+version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d"
+checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
dependencies = [
"serde",
]
[[package]]
-name = "serde_urlencoded"
-version = "0.7.1"
+name = "toml_edit"
+version = "0.22.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+checksum = "3b072cee73c449a636ffd6f32bd8de3a9f7119139aff882f44943ce2986dc5cf"
dependencies = [
- "form_urlencoded",
- "itoa",
- "ryu",
+ "indexmap 2.5.0",
"serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
]
[[package]]
-name = "serde_with"
-version = "1.14.0"
+name = "tower-service"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff"
+checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
dependencies = [
- "serde",
- "serde_with_macros",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
]
[[package]]
-name = "serde_with_macros"
-version = "1.5.2"
+name = "tracing-attributes"
+version = "0.1.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
- "darling",
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn 2.0.87",
]
[[package]]
-name = "sha2"
-version = "0.10.8"
+name = "tracing-core"
+version = "0.1.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
dependencies = [
- "cfg-if",
- "cpufeatures",
- "digest",
+ "once_cell",
+ "valuable",
]
[[package]]
-name = "sha3"
-version = "0.10.8"
+name = "tracing-log"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
dependencies = [
- "digest",
- "keccak",
+ "log",
+ "once_cell",
+ "tracing-core",
]
[[package]]
-name = "sharded-slab"
-version = "0.1.7"
+name = "tracing-subscriber"
+version = "0.2.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71"
dependencies = [
- "lazy_static",
+ "tracing-core",
]
[[package]]
-name = "shlex"
-version = "1.3.0"
+name = "tracing-subscriber"
+version = "0.3.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+dependencies = [
+ "matchers",
+ "nu-ansi-term",
+ "once_cell",
+ "regex",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing",
+ "tracing-core",
+ "tracing-log",
+]
[[package]]
-name = "signal-hook-registry"
-version = "1.4.2"
+name = "try-lock"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "ubyte"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f720def6ce1ee2fc44d40ac9ed6d3a59c361c80a75a7aa8e75bb9baed31cf2ea"
dependencies = [
- "libc",
+ "serde",
]
[[package]]
-name = "slab"
-version = "0.4.9"
+name = "uncased"
+version = "0.9.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+checksum = "e1b88fcfe09e89d3866a5c11019378088af2d24c3fbd4f0543f96b479ec90697"
dependencies = [
- "autocfg",
+ "serde",
+ "version_check",
]
[[package]]
-name = "smallvec"
-version = "1.13.2"
+name = "unicode-bidi"
+version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893"
[[package]]
-name = "socket2"
-version = "0.5.7"
+name = "unicode-ident"
+version = "1.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
+checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956"
dependencies = [
- "libc",
- "windows-sys 0.52.0",
+ "tinyvec",
]
[[package]]
-name = "spin"
-version = "0.9.8"
+name = "unicode-width"
+version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
[[package]]
-name = "stable-pattern"
-version = "0.1.0"
+name = "unicode-xid"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4564168c00635f88eaed410d5efa8131afa8d8699a612c80c455a0ba05c21045"
-dependencies = [
- "memchr",
-]
+checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a"
[[package]]
-name = "state"
-version = "0.6.0"
+name = "universal-hash"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b8c4a4445d81357df8b1a650d0d0d6fbbbfe99d064aa5e02f3e4022061476d8"
+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
dependencies = [
- "loom",
+ "crypto-common",
+ "subtle",
]
[[package]]
-name = "strsim"
-version = "0.10.0"
+name = "unsigned-varint"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06"
[[package]]
-name = "subtle"
-version = "2.6.1"
+name = "untrusted"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
[[package]]
-name = "syn"
-version = "1.0.109"
+name = "url"
+version = "2.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c"
dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
]
[[package]]
-name = "syn"
-version = "2.0.77"
+name = "utf8-decode"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
+checksum = "ca61eb27fa339aa08826a29f03e87b99b4d8f0fc2255306fd266bb1b6a9de498"
[[package]]
-name = "tempfile"
-version = "3.12.0"
+name = "uuid"
+version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64"
-dependencies = [
- "cfg-if",
- "fastrand",
- "once_cell",
- "rustix",
- "windows-sys 0.59.0",
-]
+checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314"
[[package]]
-name = "thread_local"
-version = "1.1.8"
+name = "valuable"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
-dependencies = [
- "cfg-if",
- "once_cell",
-]
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
[[package]]
-name = "time"
-version = "0.3.36"
+name = "vb_accumulator"
+version = "0.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
+checksum = "cb38526c42d26848760a47cd39af3228bd2c20d9ddb673895c43914caa521d48"
dependencies = [
- "deranged",
- "itoa",
- "num-conv",
- "powerfmt",
+ "ark-ec",
+ "ark-ff",
+ "ark-poly",
+ "ark-serialize",
+ "ark-std",
+ "digest",
+ "dock_crypto_utils",
+ "kvac",
+ "oblivious_transfer_protocols",
+ "rayon",
+ "schnorr_pok",
+ "secret_sharing_and_dkg",
"serde",
- "time-core",
- "time-macros",
+ "serde_with 1.14.0",
+ "short_group_sig",
+ "zeroize",
]
[[package]]
-name = "time-core"
-version = "0.1.2"
+name = "vcpkg"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version_check"
+version = "0.9.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
+
+[[package]]
+name = "want"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
+dependencies = [
+ "try-lock",
+]
[[package]]
-name = "time-macros"
-version = "0.2.18"
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
-dependencies = [
- "num-conv",
- "time-core",
-]
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
-name = "tokio"
-version = "1.40.0"
+name = "wasm-bindgen"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998"
+checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
dependencies = [
- "backtrace",
- "bytes",
- "libc",
- "mio",
- "pin-project-lite",
- "signal-hook-registry",
- "socket2",
- "tokio-macros",
- "windows-sys 0.52.0",
+ "cfg-if",
+ "once_cell",
+ "wasm-bindgen-macro",
]
[[package]]
-name = "tokio-macros"
-version = "2.4.0"
+name = "wasm-bindgen-backend"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
+checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
"proc-macro2",
"quote",
- "syn 2.0.77",
+ "syn 2.0.87",
+ "wasm-bindgen-shared",
]
[[package]]
-name = "tokio-stream"
-version = "0.1.16"
+name = "wasm-bindgen-downcast"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1"
+checksum = "5dac026d43bcca6e7ce1c0956ba68f59edf6403e8e930a5d891be72c31a44340"
dependencies = [
- "futures-core",
- "pin-project-lite",
- "tokio",
+ "js-sys",
+ "once_cell",
+ "wasm-bindgen",
+ "wasm-bindgen-downcast-macros",
]
[[package]]
-name = "tokio-util"
-version = "0.7.12"
+name = "wasm-bindgen-downcast-macros"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a"
+checksum = "c5020cfa87c7cecefef118055d44e3c1fc122c7ec25701d528ee458a0b45f38f"
dependencies = [
- "bytes",
- "futures-core",
- "futures-sink",
- "pin-project-lite",
- "tokio",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
]
[[package]]
-name = "toml"
-version = "0.8.19"
+name = "wasm-bindgen-futures"
+version = "0.4.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
+checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed"
dependencies = [
- "serde",
- "serde_spanned",
- "toml_datetime",
- "toml_edit",
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
]
[[package]]
-name = "toml_datetime"
-version = "0.6.8"
+name = "wasm-bindgen-macro"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
+checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
dependencies = [
- "serde",
+ "quote",
+ "wasm-bindgen-macro-support",
]
[[package]]
-name = "toml_edit"
-version = "0.22.21"
+name = "wasm-bindgen-macro-support"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b072cee73c449a636ffd6f32bd8de3a9f7119139aff882f44943ce2986dc5cf"
+checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
dependencies = [
- "indexmap",
- "serde",
- "serde_spanned",
- "toml_datetime",
- "winnow",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
]
[[package]]
-name = "tower-service"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
-
-[[package]]
-name = "tracing"
-version = "0.1.40"
+name = "wasm-bindgen-shared"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
-dependencies = [
- "pin-project-lite",
- "tracing-attributes",
- "tracing-core",
-]
+checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
[[package]]
-name = "tracing-attributes"
-version = "0.1.27"
+name = "wasm-encoder"
+version = "0.218.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+checksum = "22b896fa8ceb71091ace9bcb81e853f54043183a1c9667cf93422c40252ffa0a"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.77",
+ "leb128",
]
[[package]]
-name = "tracing-core"
-version = "0.1.32"
+name = "wasmer"
+version = "3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+checksum = "78caedecd8cb71ed47ccca03b68d69414a3d278bb031e6f93f15759344efdd52"
dependencies = [
- "once_cell",
- "valuable",
+ "bytes",
+ "cfg-if",
+ "derivative",
+ "indexmap 1.9.3",
+ "js-sys",
+ "more-asserts",
+ "rustc-demangle",
+ "serde",
+ "serde-wasm-bindgen",
+ "target-lexicon",
+ "thiserror",
+ "wasm-bindgen",
+ "wasm-bindgen-downcast",
+ "wasmer-compiler",
+ "wasmer-compiler-cranelift",
+ "wasmer-derive",
+ "wasmer-types",
+ "wasmer-vm",
+ "wat",
+ "winapi",
]
[[package]]
-name = "tracing-log"
-version = "0.2.0"
+name = "wasmer-compiler"
+version = "3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+checksum = "726a8450541af4a57c34af7b6973fdbfc79f896cc7e733429577dfd1d1687180"
dependencies = [
- "log",
- "once_cell",
- "tracing-core",
+ "backtrace",
+ "cfg-if",
+ "enum-iterator",
+ "enumset",
+ "lazy_static",
+ "leb128",
+ "memmap2",
+ "more-asserts",
+ "region",
+ "smallvec",
+ "thiserror",
+ "wasmer-types",
+ "wasmer-vm",
+ "wasmparser",
+ "winapi",
]
[[package]]
-name = "tracing-subscriber"
-version = "0.3.18"
+name = "wasmer-compiler-cranelift"
+version = "3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+checksum = "a1e5633f90f372563ebbdf3f9799c7b29ba11c90e56cf9b54017112d2e656c95"
dependencies = [
- "matchers",
- "nu-ansi-term",
- "once_cell",
- "regex",
- "sharded-slab",
+ "cranelift-codegen",
+ "cranelift-entity",
+ "cranelift-frontend",
+ "gimli 0.26.2",
+ "more-asserts",
+ "rayon",
"smallvec",
- "thread_local",
+ "target-lexicon",
"tracing",
- "tracing-core",
- "tracing-log",
+ "wasmer-compiler",
+ "wasmer-types",
]
[[package]]
-name = "try-lock"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
-
-[[package]]
-name = "typenum"
-version = "1.17.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
-
-[[package]]
-name = "ubyte"
-version = "0.10.4"
+name = "wasmer-derive"
+version = "3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f720def6ce1ee2fc44d40ac9ed6d3a59c361c80a75a7aa8e75bb9baed31cf2ea"
+checksum = "97901fdbaae383dbb90ea162cc3a76a9fa58ac39aec7948b4c0b9bbef9307738"
dependencies = [
- "serde",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
]
[[package]]
-name = "uncased"
-version = "0.9.10"
+name = "wasmer-types"
+version = "3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1b88fcfe09e89d3866a5c11019378088af2d24c3fbd4f0543f96b479ec90697"
+checksum = "67f1f2839f4f61509550e4ddcd0e658e19f3af862b51c79fda15549d735d659b"
dependencies = [
- "serde",
- "version_check",
+ "bytecheck",
+ "enum-iterator",
+ "enumset",
+ "indexmap 1.9.3",
+ "more-asserts",
+ "rkyv",
+ "target-lexicon",
+ "thiserror",
]
[[package]]
-name = "unicode-ident"
-version = "1.0.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.5"
+name = "wasmer-vm"
+version = "3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a"
+checksum = "043118ec4f16d1714fed3aab758b502b864bd865e1d5188626c9ad290100563f"
+dependencies = [
+ "backtrace",
+ "cc",
+ "cfg-if",
+ "corosensei",
+ "dashmap",
+ "derivative",
+ "enum-iterator",
+ "fnv",
+ "indexmap 1.9.3",
+ "lazy_static",
+ "libc",
+ "mach",
+ "memoffset",
+ "more-asserts",
+ "region",
+ "scopeguard",
+ "thiserror",
+ "wasmer-types",
+ "winapi",
+]
[[package]]
-name = "valuable"
-version = "0.1.0"
+name = "wasmparser"
+version = "0.95.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+checksum = "f2ea896273ea99b15132414be1da01ab0d8836415083298ecaffbe308eaac87a"
+dependencies = [
+ "indexmap 1.9.3",
+ "url",
+]
[[package]]
-name = "version_check"
-version = "0.9.5"
+name = "wast"
+version = "218.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
+checksum = "8a53cd1f0fa505df97557e36a58bddb8296e2fcdcd089529545ebfdb18a1b9d7"
+dependencies = [
+ "bumpalo",
+ "leb128",
+ "memchr",
+ "unicode-width",
+ "wasm-encoder",
+]
[[package]]
-name = "want"
-version = "0.3.1"
+name = "wat"
+version = "1.218.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
+checksum = "4f87f8e14e776762e07927c27c2054d2cf678aab9aae2d431a79b3e31e4dd391"
dependencies = [
- "try-lock",
+ "wast",
]
[[package]]
-name = "wasi"
-version = "0.11.0+wasi-snapshot-preview1"
+name = "web-sys"
+version = "0.3.70"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
[[package]]
name = "winapi"
@@ -2173,6 +5017,58 @@ dependencies = [
"windows-targets 0.48.5",
]
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-registry"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0"
+dependencies = [
+ "windows-result",
+ "windows-strings",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-result"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e"
+dependencies = [
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-strings"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10"
+dependencies = [
+ "windows-result",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43dbb096663629518eb1dfa72d80243ca5a6aca764cae62a2df70af760a9be75"
+dependencies = [
+ "windows_aarch64_msvc 0.33.0",
+ "windows_i686_gnu 0.33.0",
+ "windows_i686_msvc 0.33.0",
+ "windows_x86_64_gnu 0.33.0",
+ "windows_x86_64_msvc 0.33.0",
+]
+
[[package]]
name = "windows-sys"
version = "0.52.0"
@@ -2234,6 +5130,12 @@ version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd761fd3eb9ab8cc1ed81e56e567f02dd82c4c837e48ac3b2181b9ffc5060807"
+
[[package]]
name = "windows_aarch64_msvc"
version = "0.48.5"
@@ -2246,6 +5148,12 @@ version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
+[[package]]
+name = "windows_i686_gnu"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cab0cf703a96bab2dc0c02c0fa748491294bf9b7feb27e1f4f96340f208ada0e"
+
[[package]]
name = "windows_i686_gnu"
version = "0.48.5"
@@ -2264,6 +5172,12 @@ version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
+[[package]]
+name = "windows_i686_msvc"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8cfdbe89cc9ad7ce618ba34abc34bbb6c36d99e96cae2245b7943cd75ee773d0"
+
[[package]]
name = "windows_i686_msvc"
version = "0.48.5"
@@ -2276,6 +5190,12 @@ version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4dd9b0c0e9ece7bb22e84d70d01b71c6d6248b81a3c60d11869451b4cb24784"
+
[[package]]
name = "windows_x86_64_gnu"
version = "0.48.5"
@@ -2300,6 +5220,12 @@ version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff1e4aa646495048ec7f3ffddc411e1d829c026a2ec62b39da15c1055e406eaa"
+
[[package]]
name = "windows_x86_64_msvc"
version = "0.48.5"
@@ -2321,6 +5247,35 @@ dependencies = [
"memchr",
]
+[[package]]
+name = "wyz"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
+dependencies = [
+ "tap",
+]
+
+[[package]]
+name = "xsd-types"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5bf1ac247150da9bff673820d7dcc22bca6ab621b4ee4f76650b581aff47580"
+dependencies = [
+ "chrono",
+ "iref",
+ "lazy_static",
+ "num-bigint",
+ "num-rational",
+ "num-traits",
+ "once_cell",
+ "ordered-float",
+ "pretty_dtoa",
+ "static-iref",
+ "static-regular-grammar",
+ "thiserror",
+]
+
[[package]]
name = "yansi"
version = "1.0.1"
@@ -2348,7 +5303,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.77",
+ "syn 2.0.87",
]
[[package]]
@@ -2368,5 +5323,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.77",
+ "syn 2.0.87",
]
diff --git a/Justfile b/Justfile
new file mode 100644
index 0000000..4c68a1a
--- /dev/null
+++ b/Justfile
@@ -0,0 +1,8 @@
+clippy:
+ cargo clippy --workspace --all-targets --all-features
+
+test-all:
+ cargo test --workspace --all-targets --all-features -- --nocapture
+
+test TEST:
+ cargo test --all-targets --all-features -- {{TEST}} --exact --nocapture
\ No newline at end of file
diff --git a/next-gen-signatures/Cargo.toml b/next-gen-signatures/Cargo.toml
index b0e1d96..9627299 100644
--- a/next-gen-signatures/Cargo.toml
+++ b/next-gen-signatures/Cargo.toml
@@ -1,9 +1,10 @@
[package]
name = "next-gen-signatures"
-version = "0.0.4"
+version = "0.1.0"
edition = "2021"
[features]
+rocket = ["dep:rocket"]
all-algos = ["fips204", "bbs"]
fips204 = ["dep:fips204"]
bbs = [
@@ -17,13 +18,32 @@ bbs = [
"dep:num-bigint",
"dep:rand",
"dep:schnorr_pok",
+ "dep:proof_system",
+ "dep:json-ld",
+ "dep:rdf-types",
+ "dep:static-iref",
+ "dep:iref",
+ "dep:oxigraph",
+ "dep:oxrdf",
+ "dep:oxttl",
+ "dep:rdf-proofs",
+ "dep:legogroth16",
+ "dep:multibase",
+ "dep:serde_json",
+ "dep:serde",
+ "dep:itertools",
+
+ "dep:regex",
+ "dep:tokio",
+ "dep:rdf-canon",
+ "dep:chrono",
]
[dependencies]
anyhow = "1.0.89"
base64 = "0.22.1"
paste = "1.0.15"
-rocket = "0.5.1"
+rocket = { version = "0.5.1", optional = true }
# FIPS204
fips204 = { version = "0.2.2", optional = true }
@@ -39,3 +59,25 @@ dock_crypto_utils = { version = "0.20.0", optional = true }
num-bigint = { version = "0.4.6", optional = true }
rand = { version = "0.8.5", optional = true }
schnorr_pok = { version = "0.20.0", optional = true }
+proof_system = { version = "0.31.0", optional = true }
+json-ld = { version = "0.21.1", features = ["reqwest"], optional = true }
+rdf-types = { version = "0.22.4", optional = true }
+static-iref = { version = "3.0.0", optional = true }
+iref = { version = "3.2.2", optional = true }
+oxigraph = { git = "https://github.com/UbiqueInnovation/oxigraph-v0.3.22-patch.git", optional = true }
+oxrdf = { version = "0.2.1", optional = true }
+oxttl = { version = "0.1.1", optional = true }
+rdf-proofs = { version = "0.10.0", optional = true }
+legogroth16 = { version = "0.15.0", optional = true }
+multibase = { version = "0.9.1", optional = true }
+serde_json = { version = "1.0.132", optional = true }
+serde = { version = "1.0.214", features = ["derive"], optional = true }
+# BBS+ tests
+regex = { version = "1.11.0", optional = true }
+tokio = { version = "1.40.0", optional = true }
+rdf-canon = { version = "0.15.0", optional = true }
+chrono = { version = "0.4.38", optional = true }
+itertools = { version = "0.13.0", optional = true }
+
+[target.'cfg(any(target_os = "android"))'.dependencies]
+openssl = { version = "0.10", features = ["vendored"] }
diff --git a/next-gen-signatures/circom/bls12381/less_than_eq_prv_prv_64.r1cs b/next-gen-signatures/circom/bls12381/less_than_eq_prv_prv_64.r1cs
new file mode 100644
index 0000000..3af20bd
Binary files /dev/null and b/next-gen-signatures/circom/bls12381/less_than_eq_prv_prv_64.r1cs differ
diff --git a/next-gen-signatures/circom/bls12381/less_than_eq_prv_prv_64.wasm b/next-gen-signatures/circom/bls12381/less_than_eq_prv_prv_64.wasm
new file mode 100644
index 0000000..fd1fcd2
Binary files /dev/null and b/next-gen-signatures/circom/bls12381/less_than_eq_prv_prv_64.wasm differ
diff --git a/next-gen-signatures/circom/bls12381/less_than_eq_prv_pub_64.r1cs b/next-gen-signatures/circom/bls12381/less_than_eq_prv_pub_64.r1cs
new file mode 100644
index 0000000..515d9c1
Binary files /dev/null and b/next-gen-signatures/circom/bls12381/less_than_eq_prv_pub_64.r1cs differ
diff --git a/next-gen-signatures/circom/bls12381/less_than_eq_prv_pub_64.wasm b/next-gen-signatures/circom/bls12381/less_than_eq_prv_pub_64.wasm
new file mode 100644
index 0000000..89c3b19
Binary files /dev/null and b/next-gen-signatures/circom/bls12381/less_than_eq_prv_pub_64.wasm differ
diff --git a/next-gen-signatures/circom/bls12381/less_than_eq_pub_prv_64.r1cs b/next-gen-signatures/circom/bls12381/less_than_eq_pub_prv_64.r1cs
new file mode 100644
index 0000000..3b4d28a
Binary files /dev/null and b/next-gen-signatures/circom/bls12381/less_than_eq_pub_prv_64.r1cs differ
diff --git a/next-gen-signatures/circom/bls12381/less_than_eq_pub_prv_64.wasm b/next-gen-signatures/circom/bls12381/less_than_eq_pub_prv_64.wasm
new file mode 100644
index 0000000..fd1fcd2
Binary files /dev/null and b/next-gen-signatures/circom/bls12381/less_than_eq_pub_prv_64.wasm differ
diff --git a/next-gen-signatures/circom/bls12381/less_than_prv_prv_64.r1cs b/next-gen-signatures/circom/bls12381/less_than_prv_prv_64.r1cs
new file mode 100644
index 0000000..f999469
Binary files /dev/null and b/next-gen-signatures/circom/bls12381/less_than_prv_prv_64.r1cs differ
diff --git a/next-gen-signatures/circom/bls12381/less_than_prv_prv_64.wasm b/next-gen-signatures/circom/bls12381/less_than_prv_prv_64.wasm
new file mode 100644
index 0000000..db41e9a
Binary files /dev/null and b/next-gen-signatures/circom/bls12381/less_than_prv_prv_64.wasm differ
diff --git a/next-gen-signatures/circom/bls12381/less_than_prv_pub_64.r1cs b/next-gen-signatures/circom/bls12381/less_than_prv_pub_64.r1cs
new file mode 100644
index 0000000..8b5f4ab
Binary files /dev/null and b/next-gen-signatures/circom/bls12381/less_than_prv_pub_64.r1cs differ
diff --git a/next-gen-signatures/circom/bls12381/less_than_prv_pub_64.wasm b/next-gen-signatures/circom/bls12381/less_than_prv_pub_64.wasm
new file mode 100644
index 0000000..75b0cc1
Binary files /dev/null and b/next-gen-signatures/circom/bls12381/less_than_prv_pub_64.wasm differ
diff --git a/next-gen-signatures/circom/bls12381/less_than_pub_prv_64.r1cs b/next-gen-signatures/circom/bls12381/less_than_pub_prv_64.r1cs
new file mode 100644
index 0000000..8a7d2ae
Binary files /dev/null and b/next-gen-signatures/circom/bls12381/less_than_pub_prv_64.r1cs differ
diff --git a/next-gen-signatures/circom/bls12381/less_than_pub_prv_64.wasm b/next-gen-signatures/circom/bls12381/less_than_pub_prv_64.wasm
new file mode 100644
index 0000000..db41e9a
Binary files /dev/null and b/next-gen-signatures/circom/bls12381/less_than_pub_prv_64.wasm differ
diff --git a/next-gen-signatures/circom/bls12381/less_than_public_64.r1cs b/next-gen-signatures/circom/bls12381/less_than_public_64.r1cs
new file mode 100644
index 0000000..4ec4c25
Binary files /dev/null and b/next-gen-signatures/circom/bls12381/less_than_public_64.r1cs differ
diff --git a/next-gen-signatures/circom/bls12381/less_than_public_64.wasm b/next-gen-signatures/circom/bls12381/less_than_public_64.wasm
new file mode 100644
index 0000000..7e6e191
Binary files /dev/null and b/next-gen-signatures/circom/bls12381/less_than_public_64.wasm differ
diff --git a/next-gen-signatures/circom/circuits/comparators.circom b/next-gen-signatures/circom/circuits/comparators.circom
new file mode 100644
index 0000000..6215c3a
--- /dev/null
+++ b/next-gen-signatures/circom/circuits/comparators.circom
@@ -0,0 +1,121 @@
+/*
+ Copyright 2018 0KIMS association.
+
+ This file is part of circom (Zero Knowledge Circuit Compiler).
+
+ circom is a free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ circom is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with circom. If not, see .
+*/
+pragma circom 2.0.0;
+
+// `out` signal will contain the bits of input `in` with LSB in the beginning and MSB in end. `in` is expected to be
+// of `n` bits at most.
+template Num2Bits(n) {
+ signal input in;
+ signal output out[n];
+ var lc1=0;
+
+ var e2=1;
+ for (var i = 0; i> i) & 1;
+ out[i] * (out[i] -1 ) === 0;
+ lc1 += out[i] * e2;
+ e2 = e2+e2;
+ }
+
+ lc1 === in;
+}
+
+// `out` signal will be set to 1 if `a < b` else 0.
+template LessThan(n) {
+ assert(n <= 252);
+ signal input a;
+ signal input b;
+ signal output out;
+
+ component n2b = Num2Bits(n+1);
+
+ // 1< b, a-b > 0, even the largest a-b will be less than (1< out;
+}
+
+// N is the number of bits the input have.
+// The MSF is the sign bit.
+template GreaterThan(n) {
+ signal input a;
+ signal input b;
+ signal output out;
+
+ component lt = LessThan(n);
+
+ lt.a <== b;
+ lt.b <== a;
+ lt.out ==> out;
+}
+
+// N is the number of bits the input have.
+// The MSF is the sign bit.
+template GreaterEqThan(n) {
+ signal input a;
+ signal input b;
+ signal output out;
+
+ component lt = LessThan(n);
+
+ lt.a <== b;
+ lt.b <== a+1;
+ lt.out ==> out;
+}
+
+// `out` signal will be set to 1 if `in == 0` else 0.
+template IsZero() {
+ signal input in;
+ signal output out;
+
+ signal inv;
+
+ inv <-- in!=0 ? 1/in : 0;
+
+ out <== -in*inv +1;
+ in*out === 0;
+}
+
+// `out` signal will be set to 1 if `a == b` else 0.
+template IsEqual() {
+ signal input a;
+ signal input b;
+ signal output out;
+
+ component isz = IsZero();
+
+ b - a ==> isz.in;
+
+ isz.out ==> out;
+}
\ No newline at end of file
diff --git a/next-gen-signatures/circom/circuits/less_than_public_64.circom b/next-gen-signatures/circom/circuits/less_than_public_64.circom
new file mode 100644
index 0000000..2ff6fb3
--- /dev/null
+++ b/next-gen-signatures/circom/circuits/less_than_public_64.circom
@@ -0,0 +1,7 @@
+pragma circom 2.0.0;
+
+include "comparators.circom";
+
+/* Checks that the private input signal is less than the public input signal and both signals are expected to be of 64 bits */
+
+component main {public [b]} = LessThan(64);
\ No newline at end of file
diff --git a/next-gen-signatures/examples/sample.jsonld b/next-gen-signatures/examples/sample.jsonld
new file mode 100644
index 0000000..9fff44f
--- /dev/null
+++ b/next-gen-signatures/examples/sample.jsonld
@@ -0,0 +1,7 @@
+{
+ "@context": {
+ "name": "http://xmlns.com/foaf/0.1/name"
+ },
+ "@id": "https://example.org/timothee-haudebourg",
+ "name": "Timothée Haudebourg"
+}
\ No newline at end of file
diff --git a/next-gen-signatures/src/common.rs b/next-gen-signatures/src/common.rs
index 3ea520b..ecfc76c 100644
--- a/next-gen-signatures/src/common.rs
+++ b/next-gen-signatures/src/common.rs
@@ -1,15 +1,24 @@
use std::fmt::Display;
use anyhow::Result;
-use rocket::form::{self, DataField, FromForm, ValueField};
pub type ByteArray = Vec;
pub trait CryptoProvider {
+ #[cfg(feature = "rocket")]
type GenParams: for<'a> FromForm<'a> + TestDefault;
+ #[cfg(feature = "rocket")]
type SignParams: for<'a> FromForm<'a> + TestDefault;
+ #[cfg(feature = "rocket")]
type VerifyParams: for<'a> FromForm<'a> + TestDefault;
+ #[cfg(not(feature = "rocket"))]
+ type GenParams: TestDefault;
+ #[cfg(not(feature = "rocket"))]
+ type SignParams: TestDefault;
+ #[cfg(not(feature = "rocket"))]
+ type VerifyParams: TestDefault;
+
type PublicKey;
type SecretKey;
@@ -34,6 +43,10 @@ impl Display for NoArguments {
}
}
+#[cfg(feature = "rocket")]
+use rocket::form::{self, DataField, FromForm, ValueField};
+
+#[cfg(feature = "rocket")]
#[rocket::async_trait]
impl<'r> FromForm<'r> for NoArguments {
type Context = ();
diff --git a/next-gen-signatures/src/crypto/bbs.rs b/next-gen-signatures/src/crypto/bbs.rs
index 25f0d8f..d840aff 100644
--- a/next-gen-signatures/src/crypto/bbs.rs
+++ b/next-gen-signatures/src/crypto/bbs.rs
@@ -16,7 +16,6 @@ use blake2::Blake2b512;
use dock_crypto_utils::signature::MessageOrBlinding;
use num_bigint::BigUint;
use rand::RngCore;
-use rocket::FromForm;
use schnorr_pok::compute_random_oracle_challenge;
pub type Digest = Blake2b512;
@@ -25,16 +24,33 @@ fn get_rng() -> impl RngCore {
rand::rngs::OsRng
}
+#[cfg(feature = "rocket")]
+use rocket::FromForm;
+
+#[cfg(feature = "rocket")]
#[derive(FromForm)]
pub struct GenParams {
- nonce: String,
- message_count: u32,
+ pub nonce: String,
+ pub message_count: u32,
+}
+
+#[cfg(not(feature = "rocket"))]
+pub struct GenParams {
+ pub nonce: String,
+ pub message_count: u32,
}
+#[cfg(feature = "rocket")]
#[derive(FromForm)]
pub struct SignParams {
- nonce: String,
- messages: Vec,
+ pub nonce: String,
+ pub messages: Vec,
+}
+
+#[cfg(not(feature = "rocket"))]
+pub struct SignParams {
+ pub nonce: String,
+ pub messages: Vec,
}
pub type VerifyParams = SignParams;
@@ -353,3 +369,306 @@ pub mod tests {
// NOTE: Why only G1 see above (pok-notes)
test_pok_of_sig!(G1);
}
+
+pub mod test {
+ use std::{collections::HashMap, io::Cursor};
+
+ use ark_bls12_381::Bls12_381;
+ use legogroth16::circom::{r1cs::R1CSFile, CircomCircuit, R1CS as R1CSOrig};
+ use multibase::Base;
+ use oxrdf::GraphName;
+ use rand::{prelude::StdRng, SeedableRng};
+ use rdf_proofs::{
+ ark_to_base64url, CircuitString, KeyGraph, KeyPairBase58Btc, VcPairString,
+ VerifiableCredential,
+ };
+
+ use crate::rdf::RdfQuery;
+
+ pub type R1CS = R1CSOrig;
+ pub fn test_get_rng() -> StdRng {
+ StdRng::seed_from_u64(1337)
+ }
+
+ pub fn test_get_keypair() -> KeyPairBase58Btc {
+ let mut rng = test_get_rng();
+ KeyPairBase58Btc::new(&mut rng).unwrap()
+ }
+
+ pub fn test_get_snark() -> (String, String) {
+ let mut rng = test_get_rng();
+
+ let circuit_r1cs = test_get_r1cs();
+ let commit_witness_count = 1;
+ let snark_proving_key = CircomCircuit::setup(circuit_r1cs.clone())
+ .generate_proving_key(commit_witness_count, &mut rng)
+ .unwrap();
+
+ // serialize to multibase
+ let snark_proving_key_string = ark_to_base64url(&snark_proving_key).unwrap();
+ let snark_verifying_key_string = ark_to_base64url(&snark_proving_key.vk).unwrap();
+
+ (snark_proving_key_string, snark_verifying_key_string)
+ }
+
+ pub fn test_get_r1cs() -> R1CS {
+ let bytes = include_bytes!("../../circom/bls12381/less_than_public_64.r1cs");
+ R1CSFile::new(Cursor::new(bytes)).unwrap().into()
+ }
+
+ const ISSUER_SECRET: &str = r#"
+ .
+ .
+ .
+ "z489BikWV616m6F5ayUNDnLxWpHVmw3tG6hSgCVE9ZxDEXz3"^^ .
+ "zUC77roR12AzeB1bjwU6eK86NBBpJf5Rxvyqh8QcaEK6BxRTDoQucp2DSARoAABMWchDk4zxXmwfpHUeaWBg7T4q3Pne9YfnZBhStoGBmCzQcdj8pY3joRbr37w4TMcU1Pipqdp"^^ .
+"#;
+
+ const ISSUER_PUBLIC: &str = r#"
+ .
+ .
+ .
+ "zUC77roR12AzeB1bjwU6eK86NBBpJf5Rxvyqh8QcaEK6BxRTDoQucp2DSARoAABMWchDk4zxXmwfpHUeaWBg7T4q3Pne9YfnZBhStoGBmCzQcdj8pY3joRbr37w4TMcU1Pipqdp"^^ .
+"#;
+
+ const VC: &str = r#"
+ .
+ .
+ "2024-01-01T00:00:00Z"^^ .
+ "2028-01-01T00:00:00Z"^^ .
+ .
+ .
+ "1337"^^ .
+ "John Doe"^^ .
+"#;
+
+ const VC_HIDDEN: &str = r#"
+ .
+ .
+ "2024-01-01T00:00:00Z"^^ .
+ "2028-01-01T00:00:00Z"^^ .
+ _:e0 .
+_:e0 .
+_:e0 _:e1 .
+_:e0 "John Doe"^^ .
+"#;
+
+ const VC_PROOF_CFG: &str = r#"
+_:b0 .
+_:b0 "2024-01-01T12:00:00.000Z"^^ .
+_:b0 "bbs-termwise-signature-2023" .
+_:b0 .
+_:b0 .
+"#;
+
+ pub async fn test_get_issuer() -> String {
+ let issuer = test_get_keypair();
+ let issuer_sk = issuer.secret_key;
+ let issuer_pk = issuer.public_key;
+
+ let issuer = RdfQuery::from_jsonld(
+ &format!(
+ r#"
+ {{
+ "@context": [
+ "https://www.w3.org/ns/controller/v1",
+ "https://w3id.org/security/data-integrity/v2"
+ ],
+ "id": "did:example:issuer0",
+ "type": "Controller",
+ "verificationMethod": {{
+ "id": "did:example:issuer0#bls12_381-g2-pub001",
+ "type": "Multikey",
+ "controller": "did:example:issuer0",
+ "secretKeyMultibase": "{issuer_sk}",
+ "publicKeyMultibase": "{issuer_pk}"
+ }}
+ }}"#
+ ),
+ Some("b".to_string()),
+ )
+ .await
+ .unwrap();
+ issuer.to_rdf_string()
+ }
+
+ pub fn test_issue() -> (String, String) {
+ let mut rng = test_get_rng();
+
+ let kg: KeyGraph = RdfQuery::new(ISSUER_SECRET)
+ .unwrap()
+ .as_graph(GraphName::DefaultGraph)
+ .into();
+
+ let mut vc = VerifiableCredential::new(
+ RdfQuery::new(VC).unwrap().as_graph(GraphName::DefaultGraph),
+ RdfQuery::new(VC_PROOF_CFG)
+ .unwrap()
+ .as_graph(GraphName::DefaultGraph),
+ );
+ rdf_proofs::sign(&mut rng, &mut vc, &kg).unwrap();
+
+ (vc.document.to_string(), vc.proof.to_string())
+ }
+
+ pub fn test_present() -> String {
+ let mut rng = test_get_rng();
+
+ let vc_signed = r#"
+ "John Doe"^^ .
+ .
+ "1337"^^ .
+ "2024-01-01T00:00:00Z"^^ .
+ .
+ "2028-01-01T00:00:00Z"^^ .
+ .
+ .
+"#;
+ let vc_proof_signed = r#"
+_:b0 "bbs-termwise-signature-2023" .
+_:b0 .
+_:b0 "2024-01-01T12:00:00.000Z"^^ .
+_:b0 .
+_:b0 .
+_:b0 "urmwROr8i6uMDe_2JSAKzV0oHFMUCob2lKfPG_zN3hYMuc84cfhyZaANSr85vl_B4nVbAf9v5-4CnD8HmtLIXh6R58ypeXPvhP0WuTe_Kf0n4hBOSPwmOXikaDEOzKGDcikDBg6sipzCdov-bUxsCTA"^^ .
+"#;
+
+ let deanon_map = HashMap::from([
+ ("_:e0".to_string(), "".to_string()),
+ (
+ "_:e1".to_string(),
+ "\"1337\"^^".to_string(),
+ ),
+ ]);
+
+ let vc_pairs = vec![VcPairString::new(
+ vc_signed,
+ vc_proof_signed,
+ VC_HIDDEN,
+ VC_PROOF_CFG,
+ )];
+
+ // define circuit
+ let circuit_r1cs = test_get_r1cs();
+ let circuit_wasm = include_bytes!("../../circom/bls12381/less_than_public_64.wasm");
+
+ // serialize to multibase
+ let circuit_r1cs = ark_to_base64url(&circuit_r1cs).unwrap();
+ let circuit_wasm = multibase::encode(Base::Base64Url, circuit_wasm);
+
+ let (snark_proving_key_string, _) = test_get_snark();
+
+ let predicates = vec![
+r#"
+_:b0 .
+_:b0 .
+_:b0 _:b1 .
+_:b1 _:b2 .
+_:b2 .
+_:b2 "a" .
+_:b2 _:e1 .
+_:b1 .
+_:b0 _:b3 .
+_:b3 _:b4 .
+_:b4 .
+_:b4 "b" .
+_:b4 "9999"^^ .
+_:b3 .
+"#.to_string(),
+ ];
+
+ let circuits = HashMap::from([(
+ "https://zkp-ld.org/circuit/alexey/lessThanPublic".to_string(),
+ CircuitString {
+ circuit_r1cs,
+ circuit_wasm,
+ snark_proving_key: snark_proving_key_string,
+ },
+ )]);
+
+ rdf_proofs::derive_proof_string(
+ &mut rng,
+ &vc_pairs,
+ &deanon_map,
+ ISSUER_PUBLIC,
+ None,
+ None,
+ None,
+ None,
+ None,
+ Some(&predicates),
+ Some(&circuits),
+ )
+ .unwrap()
+ }
+
+ pub fn test_verify() {
+ let mut rng = test_get_rng();
+
+ let proof = r#"
+ _:c14n10 .
+ _:c14n9 _:c14n10 .
+ _:c14n5 _:c14n10 .
+ "2028-01-01T00:00:00Z"^^ _:c14n10 .
+ "2024-01-01T00:00:00Z"^^ _:c14n10 .
+ _:c14n10 .
+_:c14n0 "2024-11-07T10:36:33.912496Z"^^ _:c14n11 .
+_:c14n0 _:c14n11 .
+_:c14n0 "bbs-termwise-proof-2023" _:c14n11 .
+_:c14n0 _:c14n11 .
+_:c14n0 "uomFhWQN-AgAAAAAAAAAArKUTk0kCQOLNQw9nAPyeyxJAppgPXiJF7Xr7z9cCZ8EFL1ydqMmKlW358DDJ1_FOpUD5q0trrI3dNFgHxBoIDdi6aA5gnp9DRUltq8FkJsADriwz9fSKnjYvBZGwCjYPgLfYzOqY2vm1DS9tcZ8QoQuCucMkRRI-dwUuj3TLnuH39GVYxgB76lyJCfVumaQ9ruHBGkMW2L6F7dASV2QDzwhFPVG0yZHTI9XWiHV0VWr5V9DFF7Dq7GrW6A-XXcrUX6nbqIw5EFoPiB-kezPQP-z8vYiuD-VIio1ZtdRMsyhnR7pX-UDw-hk0F-3aAnWqQWkQ6HPYlmTOT2zK72cnWbCLUGwGpgaSbJs0XYkGx7w_3mkTRrcQhGoNXm-I_ZgWAlszH2l6vzqmdo720sIA7QABBQAAAAAAAAAAAAAAAAAAAMpVr-TyDpOTFWzxOwCGBVnmtGi5oU6fRjUlcwK0CJNIAQAAAAAAAACAfPYg9ap9Td-qcmSw0yRdrdaqflKYfnCWiZs_ZdiPUAUAAAAAAAAAUHSWZ2sXhJO0-he2HuaNHwYChPhPdx-ryMVzMk5FnGMKAAAAAAAAAFF9M3WpcD14lwLuFJ5tN-I7PSM7-dItCc_SgJdR5oUtCwAAAAAAAAAvbUf_pMmHjgrl3IM342r9bt6lD5qEFywjaAbjx4PNIQwAAAAAAAAABo8hdBPUj4mL_h4sc6Tamjgww81eXERlytfE1DucFQNAcSjAQTC9GOGe_5I-g5RE-rIbgGmMm_6nBiLYqT3UuDfMCZYVVwerq0hkGGrMhMpTt8-D15aAv_nMt5q5SXaLpxIIl3GLNH73bXLKmI6x24Mf9Gz5zi5_hDxhCdE9K-aVJWejOLQXZxLSzfzm_p6o-bUdiE5zs835KibotBv8Cr5dxFwL44mlmM2W6gNLJN5Fq6Q5Yqj3mwju7iEoQ60vKLDsSoXl7eBYa0w9x92pDTlfZOp_c5uD_zexAmis8OU3qQMcmVCgwnHKL3NDTOVxJJeHINvI6mDOXIYZAx_hKPaLAcMJBFJDIiYmWsr0T2Nv0T_NJ4I8dBI4SdSmAj40CwIAAAAAAAAAgHz2IPWqfU3fqnJksNMkXa3Wqn5SmH5wlombP2XYj1DFV05WtxG837tt_aDUqTX5hpj1Suqr8Za6CROmBfDwCwAAYWKBpGFhiAMEBQYHAAECYWIIYWOFAAECAwRhZAU"^^ _:c14n11 .
+_:c14n1 .
+_:c14n1 _:c14n11 .
+_:c14n1 _:c14n10 .
+_:c14n1 _:c14n13 .
+_:c14n12 _:c14n2 _:c14n13 .
+_:c14n12 _:c14n13 .
+_:c14n2 _:c14n13 .
+_:c14n2 "9999"^^ _:c14n13 .
+_:c14n2 "b" _:c14n13 .
+_:c14n3 _:c14n13 .
+_:c14n3 _:c14n8 _:c14n13 .
+_:c14n3 "a" _:c14n13 .
+_:c14n4 _:c14n3 _:c14n13 .
+_:c14n4 _:c14n13 .
+_:c14n5 _:c14n8 _:c14n10 .
+_:c14n5 "John Doe"^^ _:c14n10 .
+_:c14n5 _:c14n10 .
+_:c14n6 _:c14n13 .
+_:c14n6 _:c14n13 .
+_:c14n6 _:c14n4 _:c14n13 .
+_:c14n6 _:c14n12 _:c14n13 .
+_:c14n7 "2024-01-01T12:00:00.000Z"^^ _:c14n9 .
+_:c14n7 _:c14n9 .
+_:c14n7 "bbs-termwise-signature-2023" _:c14n9 .
+_:c14n7 _:c14n9 .
+_:c14n7 _:c14n9 .
+"#;
+
+ let (_, snark_verifying_key_string) = test_get_snark();
+
+ let snark_verifying_keys = HashMap::from([(
+ "https://zkp-ld.org/circuit/alexey/lessThanPublic".to_string(),
+ snark_verifying_key_string,
+ )]);
+
+ rdf_proofs::verify_proof_string(
+ &mut rng,
+ proof,
+ ISSUER_PUBLIC,
+ None,
+ None,
+ Some(snark_verifying_keys),
+ )
+ .unwrap();
+ }
+
+ #[tokio::test]
+ pub async fn test_1() {
+ test_issue();
+
+ test_present();
+
+ test_verify();
+ }
+}
diff --git a/next-gen-signatures/src/crypto/common.rs b/next-gen-signatures/src/crypto/common.rs
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/next-gen-signatures/src/crypto/common.rs
@@ -0,0 +1 @@
+
diff --git a/next-gen-signatures/src/crypto/fips204.rs b/next-gen-signatures/src/crypto/fips204.rs
index 32d310d..ae277b5 100644
--- a/next-gen-signatures/src/crypto/fips204.rs
+++ b/next-gen-signatures/src/crypto/fips204.rs
@@ -1,14 +1,22 @@
use base64::Engine;
use fips204::traits::{SerDes, Signer, Verifier};
+
+#[cfg(feature = "rocket")]
use rocket::FromForm;
use crate::common::{CryptoProvider, NoArguments, TestDefault};
+#[cfg(feature = "rocket")]
#[derive(FromForm)]
pub struct SignParams {
message: String,
}
+#[cfg(not(feature = "rocket"))]
+pub struct SignParams {
+ message: String,
+}
+
impl TestDefault for SignParams {
fn default_for_test() -> Self {
Self {
diff --git a/next-gen-signatures/src/crypto/mod.rs b/next-gen-signatures/src/crypto/mod.rs
index 834c7ad..2f2c4fe 100644
--- a/next-gen-signatures/src/crypto/mod.rs
+++ b/next-gen-signatures/src/crypto/mod.rs
@@ -9,3 +9,8 @@ pub use bbs::{BbsPlusG1Provider, BbsPlusG2Provider};
#[cfg(feature = "bbs")]
pub mod bbs;
+
+#[cfg(feature = "bbs")]
+pub mod zkp;
+
+pub mod common;
diff --git a/next-gen-signatures/src/crypto/zkp/circuits.rs b/next-gen-signatures/src/crypto/zkp/circuits.rs
new file mode 100644
index 0000000..ba56f92
--- /dev/null
+++ b/next-gen-signatures/src/crypto/zkp/circuits.rs
@@ -0,0 +1,79 @@
+use ark_bls12_381::Bls12_381;
+use legogroth16::circom::{r1cs::R1CSFile, CircomCircuit, R1CS as R1CSOrig};
+use multibase::Base;
+use rand::RngCore;
+use rdf_proofs::{ark_to_base64url, CircuitString};
+use std::{collections::HashMap, io::Cursor};
+
+use super::{Circuits, ProofRequirement};
+
+type R1CS = R1CSOrig;
+
+pub const LESS_THAN_PUBLIC_ID: &str = "https://zkp-ld.org/circuit/ubique/lessThanPublic";
+const LESS_THAN_PUBLIC_R1CS: &[u8] =
+ include_bytes!("../../../circom/bls12381/less_than_public_64.r1cs");
+const LESS_THAN_PUBLIC_WASM: &[u8] =
+ include_bytes!("../../../circom/bls12381/less_than_public_64.wasm");
+
+pub fn get_circuit_defs() -> HashMap {
+ HashMap::from([(
+ LESS_THAN_PUBLIC_ID.to_string(),
+ (LESS_THAN_PUBLIC_R1CS, LESS_THAN_PUBLIC_WASM),
+ )])
+}
+
+pub fn generate_circuits(rng: &mut R, reqs: &Vec) -> Circuits {
+ let lookup = get_circuit_defs();
+
+ let mut verifying_keys = HashMap::::new();
+ let mut proving_keys = HashMap::::new();
+
+ for req in reqs {
+ if let ProofRequirement::Circuit { id, .. } = req {
+ let (r1cs, _) = lookup.get(id).unwrap();
+ let r1cs: R1CS = R1CSFile::new(Cursor::new(r1cs)).unwrap().into();
+
+ let commit_witness_count = 1;
+ let snark_proving_key = CircomCircuit::setup(r1cs)
+ .generate_proving_key(commit_witness_count, rng)
+ .unwrap();
+
+ // serialize to multibase
+ let snark_proving_key_string = ark_to_base64url(&snark_proving_key).unwrap();
+ let snark_verifying_key_string = ark_to_base64url(&snark_proving_key.vk).unwrap();
+
+ verifying_keys.insert(id.clone(), snark_verifying_key_string);
+ proving_keys.insert(id.clone(), snark_proving_key_string);
+ }
+ }
+
+ Circuits {
+ verifying_keys,
+ proving_keys,
+ }
+}
+
+pub fn load_circuits(keys: &HashMap) -> HashMap {
+ type R1CS = R1CSOrig;
+
+ let lookup = get_circuit_defs();
+ let mut circuits = HashMap::::new();
+
+ for (id, key) in keys {
+ let (r1cs, wasm) = lookup.get(id).unwrap();
+ let r1cs: R1CS = R1CSFile::new(Cursor::new(r1cs)).unwrap().into();
+
+ let wasm = multibase::encode(Base::Base64Url, wasm);
+ let r1cs = ark_to_base64url(&r1cs).unwrap();
+
+ let circuit = CircuitString {
+ circuit_r1cs: r1cs,
+ circuit_wasm: wasm,
+ snark_proving_key: key.clone(),
+ };
+
+ circuits.insert(id.clone(), circuit);
+ }
+
+ circuits
+}
diff --git a/next-gen-signatures/src/crypto/zkp/common.rs b/next-gen-signatures/src/crypto/zkp/common.rs
new file mode 100644
index 0000000..fd1d938
--- /dev/null
+++ b/next-gen-signatures/src/crypto/zkp/common.rs
@@ -0,0 +1,26 @@
+use std::time::SystemTime;
+
+use chrono::{DateTime, Utc};
+use rand::RngCore;
+use rdf_proofs::KeyPairBase58Btc;
+use serde_json::{json, Value as JsonValue};
+
+pub(super) fn get_proof_cfg(issuer_key_id: &str) -> JsonValue {
+ let now: DateTime = SystemTime::now().into();
+ let now = now.format("%Y-%m-%dT%H:%M:%SZ").to_string();
+ json!(
+ {
+ "@context": "https://www.w3.org/ns/data-integrity/v1",
+ "type": "DataIntegrityProof",
+ "created": now,
+ "cryptosuite": "bbs-termwise-signature-2023",
+ "proofPurpose": "assertionMethod",
+ "verificationMethod": issuer_key_id
+ }
+ )
+}
+
+pub fn generate_keypair(rng: &mut R) -> (String, String) {
+ let kp = KeyPairBase58Btc::new(rng).unwrap();
+ (kp.public_key, kp.secret_key)
+}
diff --git a/next-gen-signatures/src/crypto/zkp/issuance.rs b/next-gen-signatures/src/crypto/zkp/issuance.rs
new file mode 100644
index 0000000..16f3e08
--- /dev/null
+++ b/next-gen-signatures/src/crypto/zkp/issuance.rs
@@ -0,0 +1,96 @@
+use std::time::SystemTime;
+
+use chrono::{DateTime, Months, Utc};
+use oxrdf::GraphName;
+use rand::RngCore;
+use rdf_proofs::VerifiableCredential;
+use serde_json::{json, Value as JsonValue};
+
+use crate::rdf::RdfQuery;
+
+use super::{common::get_proof_cfg, Credential};
+
+pub async fn issue(
+ rng: &mut R,
+ data: JsonValue,
+ issuer_pk: String,
+ issuer_sk: String,
+ issuer_id: &str,
+ issuer_key_id: &str,
+ exp_months: u32,
+) -> Credential {
+ let issuer = RdfQuery::from_jsonld(
+ &json!(
+ {
+ "@context": [
+ "https://www.w3.org/ns/controller/v1",
+ "https://w3id.org/security/data-integrity/v2"
+ ],
+ "id": issuer_id,
+ "type": "Controller",
+ "verificationMethod": {
+ "id": issuer_key_id,
+ "type": "Multikey",
+ "controller": issuer_id,
+ "secretKeyMultibase": issuer_sk,
+ "publicKeyMultibase": issuer_pk
+ }
+ }
+ )
+ .to_string(),
+ Some("b".to_string()),
+ )
+ .await
+ .unwrap();
+
+ let now: DateTime = SystemTime::now().into();
+ let exp = now
+ .checked_add_months(Months::new(exp_months))
+ .expect("Failed to get expiration date");
+ let now = now.format("%Y-%m-%dT%H:%M:%SZ").to_string();
+ let exp = exp.format("%Y-%m-%dT%H:%M:%SZ").to_string();
+
+ let credential_id = "http://example.org/credentials/person/0";
+
+ let data = RdfQuery::from_jsonld(
+ &json!({
+ "@context": [
+ "https://www.w3.org/2018/credentials/v1",
+ "https://www.w3.org/ns/data-integrity/v1"
+ ],
+ "id": credential_id,
+ "type": "VerifiableCredential",
+ "issuer": issuer_id,
+ "issuanceDate": now,
+ "expirationDate": exp,
+ "credentialSubject": data
+ })
+ .to_string(),
+ Some("b".to_string()),
+ )
+ .await
+ .unwrap();
+
+ let proof_cfg = RdfQuery::from_jsonld(
+ &get_proof_cfg(issuer_key_id).to_string(),
+ Some("b".to_string()),
+ )
+ .await
+ .unwrap();
+
+ let mut vc = VerifiableCredential::new(
+ data.as_graph(GraphName::DefaultGraph),
+ proof_cfg.as_graph(GraphName::DefaultGraph),
+ );
+ rdf_proofs::sign(
+ rng,
+ &mut vc,
+ &issuer.as_graph(GraphName::DefaultGraph).into(),
+ )
+ .expect("Failed to sign vc!");
+
+ let doc = multibase::encode(multibase::Base::Base64Url, vc.document.to_string());
+ let proof = multibase::encode(multibase::Base::Base64Url, vc.proof.to_string());
+
+ Credential::new(&doc, &proof)
+}
diff --git a/next-gen-signatures/src/crypto/zkp/mod.rs b/next-gen-signatures/src/crypto/zkp/mod.rs
new file mode 100644
index 0000000..0c49008
--- /dev/null
+++ b/next-gen-signatures/src/crypto/zkp/mod.rs
@@ -0,0 +1,13 @@
+use circuits::*;
+pub use common::generate_keypair;
+pub use issuance::issue;
+pub use presentation::present;
+pub use types::*;
+pub use verification::verify;
+
+pub mod circuits;
+mod common;
+mod issuance;
+mod presentation;
+mod types;
+mod verification;
diff --git a/next-gen-signatures/src/crypto/zkp/presentation.rs b/next-gen-signatures/src/crypto/zkp/presentation.rs
new file mode 100644
index 0000000..ccadd1d
--- /dev/null
+++ b/next-gen-signatures/src/crypto/zkp/presentation.rs
@@ -0,0 +1,166 @@
+use std::collections::HashMap;
+
+use oxrdf::{GraphName, NamedNode};
+use rand::RngCore;
+use rdf_proofs::VcPairString;
+use rdf_types::generator;
+use serde_json::{json, Value as JsonValue};
+
+use crate::rdf::RdfQuery;
+
+use super::{load_circuits, Credential, Presentation, ProofRequirement};
+
+pub async fn present(
+ rng: &mut R,
+ vc: Credential,
+ reqs: &Vec,
+ proving_keys: &HashMap,
+ issuer_pk: String,
+ issuer_id: &str,
+ issuer_key_id: &str,
+) -> Presentation {
+ let circuits = load_circuits(proving_keys);
+
+ let json = vc.as_json();
+
+ let mut subject = HashMap::::new();
+ let mut deanon_map = HashMap::::new();
+ let mut predicates = Vec::::new();
+
+ let issuer = RdfQuery::from_jsonld(
+ &json!(
+ {
+ "@context": [
+ "https://www.w3.org/ns/controller/v1",
+ "https://w3id.org/security/data-integrity/v2"
+ ],
+ "id": issuer_id,
+ "type": "Controller",
+ "verificationMethod": {
+ "id": issuer_key_id,
+ "type": "Multikey",
+ "controller": issuer_id,
+ "publicKeyMultibase": issuer_pk
+ }
+ }
+ )
+ .to_string(),
+ Some("b".to_string()),
+ )
+ .await
+ .unwrap()
+ .to_rdf_string();
+
+ let body = json["https://www.w3.org/2018/credentials#credentialSubject"]
+ .as_object()
+ .unwrap();
+
+ let rdf_body = vc
+ .graph
+ .get_value(
+ NamedNode::new_unchecked("https://www.w3.org/2018/credentials#credentialSubject"),
+ Some(&vc.graph.get_graph_by_name(GraphName::DefaultGraph)),
+ )
+ .unwrap()
+ .as_graph()
+ .unwrap();
+
+ let mut gen = generator::Blank::new_with_prefix("e".to_string());
+
+ for req in reqs {
+ let (key, value) = body.iter().find(|(key, _)| req.get_key() == *key).unwrap();
+
+ match req {
+ ProofRequirement::Required { .. } => {
+ subject.insert(key.clone(), value.clone());
+ }
+ ProofRequirement::Circuit {
+ id,
+ private_var,
+ public_var,
+ public_val,
+ ..
+ } => {
+ let value = rdf_body
+ .get_value(NamedNode::new_unchecked(key), None)
+ .unwrap()
+ .as_value()
+ .unwrap();
+
+ let public_val = serde_json::to_value(public_val).unwrap();
+
+ let blank = deanon_map
+ .iter()
+ .find_map(|(k, v)| (v == &value).then_some(k.clone()))
+ .unwrap_or_else(|| gen.next_blank_id().to_string());
+
+ deanon_map.insert(blank.clone(), value);
+
+ let predicate = json!({
+ "@type": "https://zkp-ld.org/security#Predicate",
+ "https://zkp-ld.org/security#circuit": { "@id": id },
+ "https://zkp-ld.org/security#private": {
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": {
+ "@type": "https://zkp-ld.org/security#PrivateVariable",
+ "https://zkp-ld.org/security#val": { "@id": "to:be:verified" },
+ "https://zkp-ld.org/security#var": private_var
+ },
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": {
+ "@id": "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"
+ }
+ },
+ "https://zkp-ld.org/security#public": {
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#first": {
+ "@type": "https://zkp-ld.org/security#PublicVariable",
+ "https://zkp-ld.org/security#val": public_val,
+ "https://zkp-ld.org/security#var": public_var
+ },
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#rest": {
+ "@id": "http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"
+ }
+ }
+ });
+
+ let predicate =
+ RdfQuery::from_jsonld(&predicate.to_string(), Some("b".to_string()))
+ .await
+ .unwrap()
+ .to_rdf_string()
+ .replace("", &blank);
+
+ predicates.push(predicate);
+
+ subject.insert(key.clone(), json!({ "@id": blank }));
+ }
+ }
+ }
+
+ let disc_vc = {
+ let mut disc_vc = json.clone();
+
+ disc_vc["https://www.w3.org/2018/credentials#credentialSubject"] = json!(subject);
+ RdfQuery::from_jsonld(&disc_vc.to_string(), Some("e".to_string()))
+ .await
+ .unwrap()
+ .to_rdf_string()
+ };
+
+ let vc_pair = VcPairString::new(&vc.rdf_doc, &vc.rdf_proof, &disc_vc, &vc.rdf_proof);
+
+ let proof = rdf_proofs::derive_proof_string(
+ rng,
+ &vec![vc_pair],
+ &deanon_map,
+ &issuer,
+ None,
+ None,
+ None,
+ None,
+ None,
+ Some(&predicates),
+ Some(&circuits),
+ )
+ .unwrap();
+
+ Presentation::new(&proof)
+}
diff --git a/next-gen-signatures/src/crypto/zkp/types.rs b/next-gen-signatures/src/crypto/zkp/types.rs
new file mode 100644
index 0000000..04c7a2e
--- /dev/null
+++ b/next-gen-signatures/src/crypto/zkp/types.rs
@@ -0,0 +1,149 @@
+use std::collections::HashMap;
+
+use multibase::Base;
+use oxrdf::{GraphName, NamedNode, Term};
+use serde::{Deserialize, Serialize};
+use serde_json::{json, Value as JsonValue};
+
+use crate::rdf::RdfQuery;
+
+#[derive(Debug)]
+pub struct Credential {
+ pub(super) graph: RdfQuery,
+ pub(super) rdf_doc: String,
+ pub(super) rdf_proof: String,
+}
+
+#[derive(Debug)]
+pub struct Presentation {
+ pub(super) graph: RdfQuery,
+}
+
+impl Presentation {
+ pub fn new(proof: &str) -> Self {
+ let graph = RdfQuery::new(proof).unwrap();
+
+ Self { graph }
+ }
+
+ pub fn serialize(&self) -> String {
+ let str = self.graph.to_rdf_string();
+ multibase::encode(Base::Base64Url, str)
+ }
+
+ pub fn deserialize(str: &str) -> Self {
+ let (_, quads) = multibase::decode(str).unwrap();
+ let quads = String::from_utf8(quads).unwrap();
+ Self::new(&quads)
+ }
+}
+
+#[derive(Debug, Serialize, Deserialize)]
+pub struct Circuits {
+ pub verifying_keys: HashMap,
+ pub proving_keys: HashMap,
+}
+
+impl Credential {
+ pub fn new(doc: &str, proof: &str) -> Self {
+ let (_, doc) = multibase::decode(doc).unwrap();
+ let doc = String::from_utf8(doc).unwrap();
+
+ let (_, proof) = multibase::decode(proof).unwrap();
+ let proof = String::from_utf8(proof).unwrap();
+
+ Self {
+ graph: RdfQuery::new(&doc).unwrap(),
+ rdf_doc: doc,
+ rdf_proof: proof,
+ }
+ }
+
+ pub fn as_json(&self) -> JsonValue {
+ self.graph.to_json(
+ Some(GraphName::DefaultGraph),
+ Some(vec![
+ Term::NamedNode(NamedNode::new_unchecked(
+ "https://www.w3.org/2018/credentials#VerifiableCredential",
+ )),
+ /*
+ Term::NamedNode(NamedNode::new_unchecked(
+ "https://w3id.org/security#DataIntegrityProof",
+ )),
+ */
+ ]),
+ None,
+ )
+ }
+
+ pub fn serialize(&self) -> JsonValue {
+ let json = self.as_json();
+ let encoded = multibase::encode(
+ Base::Base64Url,
+ json!({
+ "rdf_doc": self.rdf_doc,
+ "rdf_proof": self.rdf_proof
+ })
+ .to_string(),
+ );
+
+ json!({
+ "humanReadable": json,
+ "encoded": encoded,
+ })
+ }
+
+ pub fn deserialize_encoded(encoded: &str) -> Self {
+ let (_, decoded) = multibase::decode(encoded).unwrap();
+
+ let decoded = String::from_utf8(decoded).unwrap();
+
+ println!("{decoded}");
+
+ let json = serde_json::from_str::(&decoded).unwrap();
+
+ println!("{json}");
+
+ let rdf_doc = json["rdf_doc"].as_str().unwrap();
+ let rdf_doc = multibase::encode(Base::Base64, rdf_doc);
+
+ let rdf_proof = json["rdf_proof"].as_str().unwrap();
+ let rdf_proof = multibase::encode(Base::Base64, rdf_proof);
+
+ Self::new(&rdf_doc, &rdf_proof)
+ }
+}
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct PublicValue {
+ #[serde(rename = "@type")]
+ pub r#type: String,
+ #[serde(rename = "@value")]
+ pub value: String,
+}
+
+#[derive(Debug, Serialize, Deserialize)]
+#[serde(tag = "type")]
+pub enum ProofRequirement {
+ Required {
+ key: String,
+ },
+ Circuit {
+ id: String,
+
+ private_var: String,
+ private_key: String,
+
+ public_var: String,
+ public_val: PublicValue,
+ },
+}
+
+impl ProofRequirement {
+ pub fn get_key(&self) -> &str {
+ match self {
+ ProofRequirement::Required { key } => key,
+ ProofRequirement::Circuit { private_key, .. } => private_key,
+ }
+ }
+}
diff --git a/next-gen-signatures/src/crypto/zkp/verification.rs b/next-gen-signatures/src/crypto/zkp/verification.rs
new file mode 100644
index 0000000..d92bd89
--- /dev/null
+++ b/next-gen-signatures/src/crypto/zkp/verification.rs
@@ -0,0 +1,155 @@
+use std::collections::HashMap;
+
+use crate::rdf::RdfQuery;
+
+use super::{Presentation, ProofRequirement};
+
+use itertools::Itertools;
+use oxrdf::{GraphName, NamedNode, Term};
+use rand::RngCore;
+use serde_json::{json, Value as JsonValue};
+
+pub async fn verify(
+ rng: &mut R,
+ pres: Presentation,
+ issuer_pk: String,
+ verifying_keys: HashMap,
+ reqs: &Vec,
+ issuer_id: &str,
+ issuer_key_id: &str,
+) -> JsonValue {
+ let issuer = RdfQuery::from_jsonld(
+ &json!(
+ {
+ "@context": [
+ "https://www.w3.org/ns/controller/v1",
+ "https://w3id.org/security/data-integrity/v2"
+ ],
+ "id": issuer_id,
+ "type": "Controller",
+ "verificationMethod": {
+ "id": issuer_key_id,
+ "type": "Multikey",
+ "controller": issuer_id,
+ "publicKeyMultibase": issuer_pk
+ }
+ }
+ )
+ .to_string(),
+ Some("b".to_string()),
+ )
+ .await
+ .unwrap()
+ .to_rdf_string();
+
+ let success = rdf_proofs::verify_proof_string(
+ rng,
+ &pres.graph.to_rdf_string(),
+ &issuer,
+ None,
+ None,
+ Some(verifying_keys),
+ );
+
+ assert!(success.is_ok(), "{success:#?}");
+
+ let json = pres.graph.to_json(None, None, None)
+ ["https://www.w3.org/2018/credentials#verifiableCredential"]
+ .clone();
+
+ let subject = json["https://www.w3.org/2018/credentials#credentialSubject"].clone();
+
+ for req in reqs {
+ match req {
+ ProofRequirement::Required { key } => {
+ assert!(subject.get(key).is_some());
+ }
+ ProofRequirement::Circuit {
+ id,
+ private_key,
+ private_var,
+ public_val,
+ public_var,
+ } => {
+ let blank_id = subject
+ .get(private_key)
+ .unwrap()
+ .get("@id")
+ .unwrap()
+ .as_str()
+ .unwrap();
+
+ let predicate = NamedNode::new_unchecked("https://zkp-ld.org/security#predicate");
+
+ let graphs = pres
+ .graph
+ .quads
+ .iter()
+ .filter_map(|q| (q.predicate == predicate).then_some(q.object.clone()))
+ .dedup()
+ .filter_map(|s| match s {
+ Term::Literal(_) => None,
+ Term::BlankNode(node) => Some(
+ pres.graph
+ .get_graph_by_name(GraphName::BlankNode(node))
+ .to_json(None, None, None),
+ ),
+ Term::NamedNode(node) => Some(
+ pres.graph
+ .get_graph_by_name(GraphName::NamedNode(node))
+ .to_json(None, None, None),
+ ),
+ })
+ .find(|json| {
+ let x = || {
+ let public = json
+ .get("https://zkp-ld.org/security#public")?
+ .get("http://www.w3.org/1999/02/22-rdf-syntax-ns#first")?;
+ let pub_val = public
+ .get("https://zkp-ld.org/security#val")?
+ .get("@value")?;
+ let pub_type = public
+ .get("https://zkp-ld.org/security#val")?
+ .get("@type")?;
+ let pub_var = public
+ .get("https://zkp-ld.org/security#var")?
+ .get("@value")?;
+
+ let priv_var = json
+ .get("https://zkp-ld.org/security#private")?
+ .get("http://www.w3.org/1999/02/22-rdf-syntax-ns#first")?
+ .get("https://zkp-ld.org/security#var")?
+ .get("@value")?;
+
+ let circuit_id = json
+ .get("https://zkp-ld.org/security#circuit")?
+ .get("@id")?;
+
+ Some(
+ pub_val == &public_val.value
+ && pub_type == &public_val.r#type
+ && pub_var == public_var
+ && priv_var == private_var
+ && circuit_id == id,
+ )
+ };
+
+ x().unwrap_or(false)
+ })
+ .unwrap();
+
+ assert!(
+ graphs
+ .get("https://zkp-ld.org/security#private")
+ .and_then(|j| j.get("http://www.w3.org/1999/02/22-rdf-syntax-ns#first"))
+ .and_then(|j| j.get("https://zkp-ld.org/security#val"))
+ .and_then(|j| j.get("@id"))
+ .unwrap()
+ == blank_id
+ );
+ }
+ }
+ }
+
+ subject
+}
diff --git a/next-gen-signatures/src/lib.rs b/next-gen-signatures/src/lib.rs
index 90567c1..bc996c0 100644
--- a/next-gen-signatures/src/lib.rs
+++ b/next-gen-signatures/src/lib.rs
@@ -2,4 +2,7 @@ pub mod common;
pub mod crypto;
pub mod macros;
+#[cfg(feature = "bbs")]
+pub mod rdf;
+
pub use base64::prelude::{Engine, BASE64_URL_SAFE_NO_PAD};
diff --git a/next-gen-signatures/src/rdf/mod.rs b/next-gen-signatures/src/rdf/mod.rs
new file mode 100644
index 0000000..84310e3
--- /dev/null
+++ b/next-gen-signatures/src/rdf/mod.rs
@@ -0,0 +1,314 @@
+use std::{
+ collections::{HashMap, HashSet},
+ fmt::Write,
+};
+
+use json_ld::{syntax::Parse as _, JsonLdProcessor as _, RemoteDocument, ReqwestLoader};
+use oxrdf::{Graph, GraphName, NamedNode, Quad, Subject, Term, Triple};
+use oxttl::NQuadsParser;
+use rdf_types::generator;
+use serde_json::{json, Value as JsonValue};
+
+const TYPE: &str = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type";
+
+#[derive(Debug, Clone)]
+pub struct RdfQuery {
+ pub quads: Vec,
+}
+
+#[derive(Debug, Clone)]
+pub enum RdfValue {
+ Graph(RdfQuery),
+ Value(String),
+}
+
+impl RdfValue {
+ pub fn as_graph(self) -> Result {
+ match self {
+ RdfValue::Graph(graph) => Ok(graph),
+ _ => Err(self),
+ }
+ }
+
+ pub fn as_value(self) -> Result {
+ match self {
+ RdfValue::Value(value) => Ok(value),
+ _ => Err(self),
+ }
+ }
+}
+
+impl RdfQuery {
+ pub fn new(source: &str) -> anyhow::Result {
+ let quads = NQuadsParser::new()
+ .for_reader(source.as_bytes())
+ .collect::, _>>()?;
+
+ Ok(Self { quads })
+ }
+
+ pub async fn from_jsonld(data: &str, prefix: Option) -> anyhow::Result {
+ let doc = RemoteDocument::new(None, None, json_ld::syntax::Value::parse_str(data)?.0);
+
+ let loader = ReqwestLoader::new();
+
+ let mut generator = if let Some(prefix) = prefix {
+ generator::Blank::new_with_prefix(prefix)
+ } else {
+ generator::Blank::new()
+ };
+
+ let mut rdf = doc.to_rdf(&mut generator, &loader).await?;
+
+ let rdf = rdf.cloned_quads().fold(String::new(), |mut output, q| {
+ let _ = writeln!(output, "{q} .");
+ output
+ });
+
+ Self::new(&rdf)
+ }
+
+ pub fn is_empty(&self) -> bool {
+ self.quads.is_empty()
+ }
+
+ pub fn ids(&self) -> Vec {
+ self.quads
+ .iter()
+ .filter_map(|q| match &q.subject {
+ Subject::NamedNode(n) => Some(n.clone().into_string()),
+ _ => None,
+ })
+ .collect::>()
+ .into_iter()
+ .collect::>()
+ }
+
+ pub fn get(&self, subject: Option, predicate: NamedNode) -> Option {
+ self.quads
+ .iter()
+ .find(|q| {
+ subject.as_ref().map(|s| &q.subject == s).unwrap_or(true)
+ && q.predicate == predicate
+ })
+ .map(|t| t.object.clone())
+ }
+
+ pub fn entries(&self) -> HashMap {
+ fn resolve_key(key: NamedNode) -> String {
+ let mut key = key.into_string();
+ if key == TYPE {
+ key = "type".to_string();
+ }
+ key
+ }
+
+ self.quads
+ .iter()
+ .map(|q| (resolve_key(q.predicate.clone()), q.object.clone()))
+ .collect::>()
+ }
+
+ pub fn get_graph_by_name(&self, name: GraphName) -> Self {
+ let quads = self
+ .quads
+ .iter()
+ .filter(|quad| quad.graph_name == name)
+ .cloned()
+ .collect::>();
+
+ Self { quads }
+ }
+
+ pub fn get_graph_by_subjects(&self, subjects: Vec) -> Self {
+ let quads = self
+ .quads
+ .iter()
+ .filter(|q| subjects.contains(&q.subject))
+ .cloned()
+ .collect::>();
+
+ Self { quads }
+ }
+
+ pub fn get_value(&self, predicate: NamedNode, root: Option<&RdfQuery>) -> Option