Radish alpha
h
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Radicle Heartwood Protocol & Stack
Radicle
Git
KERI
Draft lorenz opened 1 year ago
5 files changed +2351 -134 e130b4dc 85c5dcc1
modified Cargo.lock
@@ -3,6 +3,15 @@
version = 3

[[package]]
+
name = "addr2line"
+
version = "0.21.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+
dependencies = [
+
 "gimli",
+
]
+

+
[[package]]
name = "adler"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -172,18 +181,236 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"

[[package]]
+
name = "array-init"
+
version = "0.0.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "23589ecb866b460d3a0f1278834750268c607e8e28a1b982c907219f3178cd72"
+
dependencies = [
+
 "nodrop",
+
]
+

+
[[package]]
+
name = "arrayref"
+
version = "0.3.8"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a"
+

+
[[package]]
+
name = "arrayvec"
+
version = "0.7.6"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
+

+
[[package]]
name = "ascii"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16"

[[package]]
+
name = "async-attributes"
+
version = "1.1.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5"
+
dependencies = [
+
 "quote",
+
 "syn 1.0.109",
+
]
+

+
[[package]]
+
name = "async-channel"
+
version = "1.9.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
+
dependencies = [
+
 "concurrent-queue",
+
 "event-listener 2.5.3",
+
 "futures-core",
+
]
+

+
[[package]]
+
name = "async-channel"
+
version = "2.3.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
+
dependencies = [
+
 "concurrent-queue",
+
 "event-listener-strategy",
+
 "futures-core",
+
 "pin-project-lite",
+
]
+

+
[[package]]
+
name = "async-executor"
+
version = "1.13.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7"
+
dependencies = [
+
 "async-task",
+
 "concurrent-queue",
+
 "fastrand 2.1.0",
+
 "futures-lite 2.3.0",
+
 "slab",
+
]
+

+
[[package]]
+
name = "async-global-executor"
+
version = "2.4.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c"
+
dependencies = [
+
 "async-channel 2.3.1",
+
 "async-executor",
+
 "async-io 2.3.3",
+
 "async-lock 3.4.0",
+
 "blocking",
+
 "futures-lite 2.3.0",
+
 "once_cell",
+
 "tokio",
+
]
+

+
[[package]]
+
name = "async-io"
+
version = "1.13.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
+
dependencies = [
+
 "async-lock 2.8.0",
+
 "autocfg",
+
 "cfg-if",
+
 "concurrent-queue",
+
 "futures-lite 1.13.0",
+
 "log",
+
 "parking",
+
 "polling 2.8.0",
+
 "rustix 0.37.27",
+
 "slab",
+
 "socket2 0.4.10",
+
 "waker-fn",
+
]
+

+
[[package]]
+
name = "async-io"
+
version = "2.3.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964"
+
dependencies = [
+
 "async-lock 3.4.0",
+
 "cfg-if",
+
 "concurrent-queue",
+
 "futures-io",
+
 "futures-lite 2.3.0",
+
 "parking",
+
 "polling 3.7.2",
+
 "rustix 0.38.34",
+
 "slab",
+
 "tracing",
+
 "windows-sys 0.52.0",
+
]
+

+
[[package]]
+
name = "async-lock"
+
version = "2.8.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
+
dependencies = [
+
 "event-listener 2.5.3",
+
]
+

+
[[package]]
+
name = "async-lock"
+
version = "3.4.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
+
dependencies = [
+
 "event-listener 5.3.1",
+
 "event-listener-strategy",
+
 "pin-project-lite",
+
]
+

+
[[package]]
+
name = "async-std"
+
version = "1.12.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
+
dependencies = [
+
 "async-attributes",
+
 "async-channel 1.9.0",
+
 "async-global-executor",
+
 "async-io 1.13.0",
+
 "async-lock 2.8.0",
+
 "crossbeam-utils",
+
 "futures-channel",
+
 "futures-core",
+
 "futures-io",
+
 "futures-lite 1.13.0",
+
 "gloo-timers",
+
 "kv-log-macro",
+
 "log",
+
 "memchr",
+
 "once_cell",
+
 "pin-project-lite",
+
 "pin-utils",
+
 "slab",
+
 "wasm-bindgen-futures",
+
]
+

+
[[package]]
+
name = "async-task"
+
version = "4.7.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
+

+
[[package]]
+
name = "async-trait"
+
version = "0.1.81"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "syn 2.0.60",
+
]
+

+
[[package]]
+
name = "atomic-waker"
+
version = "1.1.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+

+
[[package]]
+
name = "atty"
+
version = "0.2.14"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+
dependencies = [
+
 "hermit-abi 0.1.19",
+
 "libc",
+
 "winapi",
+
]
+

+
[[package]]
name = "autocfg"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"

[[package]]
+
name = "backtrace"
+
version = "0.3.71"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
+
dependencies = [
+
 "addr2line",
+
 "cc",
+
 "cfg-if",
+
 "libc",
+
 "miniz_oxide",
+
 "object",
+
 "rustc-demangle",
+
]
+

+
[[package]]
name = "base-x"
version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -227,7 +454,7 @@ checksum = "6aeac2e1fe888769f34f05ac343bbef98b14d1ffb292ab69d4608b3abc86f2a2"
dependencies = [
 "blowfish",
 "pbkdf2",
-
 "sha2",
+
 "sha2 0.10.8",
]

[[package]]
@@ -243,6 +470,40 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"

[[package]]
+
name = "blake2"
+
version = "0.9.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0a4e37d16930f5459780f5621038b6382b9bb37c19016f39fb6b5808d831f174"
+
dependencies = [
+
 "crypto-mac 0.8.0",
+
 "digest 0.9.0",
+
 "opaque-debug",
+
]
+

+
[[package]]
+
name = "blake3"
+
version = "1.5.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e9ec96fe9a81b5e365f9db71fe00edc4fe4ca2cc7dcb7861f0603012a7caa210"
+
dependencies = [
+
 "arrayref",
+
 "arrayvec",
+
 "cc",
+
 "cfg-if",
+
 "constant_time_eq",
+
]
+

+
[[package]]
+
name = "block-buffer"
+
version = "0.9.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
+
dependencies = [
+
 "block-padding 0.2.1",
+
 "generic-array",
+
]
+

+
[[package]]
name = "block-buffer"
version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -253,6 +514,12 @@ dependencies = [

[[package]]
name = "block-padding"
+
version = "0.2.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
+

+
[[package]]
+
name = "block-padding"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
@@ -261,6 +528,19 @@ dependencies = [
]

[[package]]
+
name = "blocking"
+
version = "1.6.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea"
+
dependencies = [
+
 "async-channel 2.3.1",
+
 "async-task",
+
 "futures-io",
+
 "futures-lite 2.3.0",
+
 "piper",
+
]
+

+
[[package]]
name = "bloomy"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -303,6 +583,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"

[[package]]
+
name = "bytes"
+
version = "1.7.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
+

+
[[package]]
name = "cbc"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -323,6 +609,22 @@ dependencies = [
]

[[package]]
+
name = "cesrox"
+
version = "0.1.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "85521bf1c8081199db779589496bdfe65aa09ae283a20b53df7bd78cba591282"
+
dependencies = [
+
 "base64 0.13.1",
+
 "chrono",
+
 "nom",
+
 "rmp-serde 1.3.0",
+
 "serde",
+
 "serde_cbor",
+
 "serde_json",
+
 "thiserror",
+
]
+

+
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -360,7 +662,10 @@ checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
dependencies = [
 "android-tzdata",
 "iana-time-zone",
+
 "js-sys",
 "num-traits",
+
 "serde",
+
 "wasm-bindgen",
 "windows-targets 0.52.5",
]

@@ -376,6 +681,30 @@ dependencies = [
]

[[package]]
+
name = "clap"
+
version = "3.2.25"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
+
dependencies = [
+
 "atty",
+
 "bitflags 1.3.2",
+
 "clap_lex",
+
 "indexmap 1.9.3",
+
 "strsim",
+
 "termcolor",
+
 "textwrap",
+
]
+

+
[[package]]
+
name = "clap_lex"
+
version = "0.2.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+
dependencies = [
+
 "os_str_bytes",
+
]
+

+
[[package]]
name = "colorchoice"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -392,12 +721,43 @@ dependencies = [
]

[[package]]
+
name = "concurrent-queue"
+
version = "2.5.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
+
dependencies = [
+
 "crossbeam-utils",
+
]
+

+
[[package]]
+
name = "const-oid"
+
version = "0.6.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9d6f2aa4d0537bcc1c74df8755072bd31c1ef1a3a1b85a68e8404a8c353b7b8b"
+

+
[[package]]
name = "const-oid"
version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"

[[package]]
+
name = "constant_time_eq"
+
version = "0.3.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6"
+

+
[[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.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -431,6 +791,15 @@ dependencies = [
]

[[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.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -438,12 +807,24 @@ checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"

[[package]]
name = "crypto-bigint"
+
version = "0.2.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8658c15c5d921ddf980f7fe25b1e82f4b7a4083b2c4985fea4922edb8e43e07d"
+
dependencies = [
+
 "generic-array",
+
 "rand_core 0.6.4",
+
 "subtle",
+
 "zeroize",
+
]
+

+
[[package]]
+
name = "crypto-bigint"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
dependencies = [
 "generic-array",
-
 "rand_core",
+
 "rand_core 0.6.4",
 "subtle",
 "zeroize",
]
@@ -455,11 +836,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
dependencies = [
 "generic-array",
-
 "rand_core",
+
 "rand_core 0.6.4",
 "typenum",
]

[[package]]
+
name = "crypto-mac"
+
version = "0.8.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab"
+
dependencies = [
+
 "generic-array",
+
 "subtle",
+
]
+

+
[[package]]
+
name = "crypto-mac"
+
version = "0.11.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e"
+
dependencies = [
+
 "generic-array",
+
 "subtle",
+
]
+

+
[[package]]
name = "ct-codecs"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -475,6 +876,19 @@ dependencies = [
]

[[package]]
+
name = "curve25519-dalek"
+
version = "3.2.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61"
+
dependencies = [
+
 "byteorder",
+
 "digest 0.9.0",
+
 "rand_core 0.5.1",
+
 "subtle",
+
 "zeroize",
+
]
+

+
[[package]]
name = "cypheraddr"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -483,7 +897,7 @@ dependencies = [
 "amplify",
 "base32",
 "cyphergraphy",
-
 "sha3",
+
 "sha3 0.10.8",
]

[[package]]
@@ -495,7 +909,7 @@ dependencies = [
 "amplify",
 "ec25519",
 "multibase",
-
 "sha2",
+
 "sha2 0.10.8",
]

[[package]]
@@ -538,11 +952,20 @@ dependencies = [

[[package]]
name = "der"
+
version = "0.4.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "79b71cca7d95d7681a4b3b9cdf63c8dbc3730d0584c2c74e31416d64a90493f4"
+
dependencies = [
+
 "const-oid 0.6.2",
+
]
+

+
[[package]]
+
name = "der"
version = "0.7.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0"
dependencies = [
-
 "const-oid",
+
 "const-oid 0.9.6",
 "zeroize",
]

@@ -563,12 +986,21 @@ checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"

[[package]]
name = "digest"
+
version = "0.9.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
+
dependencies = [
+
 "generic-array",
+
]
+

+
[[package]]
+
name = "digest"
version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
dependencies = [
-
 "block-buffer",
-
 "const-oid",
+
 "block-buffer 0.10.4",
+
 "const-oid 0.9.6",
 "crypto-common",
 "subtle",
]
@@ -587,7 +1019,19 @@ checksum = "bdfd533a2fc01178c738c99412ae1f7e1ad2cb37c2e14bfd87e9d4618171c825"
dependencies = [
 "ct-codecs",
 "ed25519",
-
 "getrandom",
+
 "getrandom 0.2.14",
+
]
+

+
[[package]]
+
name = "ecdsa"
+
version = "0.12.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "43ee23aa5b4f68c7a092b5c3beb25f50c406adc75e2363634f242f28ab255372"
+
dependencies = [
+
 "der 0.4.5",
+
 "elliptic-curve 0.10.4",
+
 "hmac 0.11.0",
+
 "signature 1.3.2",
]

[[package]]
@@ -596,12 +1040,12 @@ version = "0.16.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca"
dependencies = [
-
 "der",
-
 "digest",
-
 "elliptic-curve",
+
 "der 0.7.9",
+
 "digest 0.10.7",
+
 "elliptic-curve 0.13.8",
 "rfc6979",
 "signature 2.2.0",
-
 "spki",
+
 "spki 0.7.3",
]

[[package]]
@@ -610,7 +1054,21 @@ version = "1.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7"
dependencies = [
-
 "signature 1.6.4",
+
 "signature 1.3.2",
+
]
+

+
[[package]]
+
name = "ed25519-dalek"
+
version = "1.0.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d"
+
dependencies = [
+
 "curve25519-dalek",
+
 "ed25519",
+
 "rand 0.7.3",
+
 "serde",
+
 "sha2 0.9.9",
+
 "zeroize",
]

[[package]]
@@ -621,24 +1079,49 @@ checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2"

[[package]]
name = "elliptic-curve"
+
version = "0.10.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "83e5c176479da93a0983f0a6fdc3c1b8e7d5be0d7fe3fe05a99f15b96582b9a8"
+
dependencies = [
+
 "crypto-bigint 0.2.5",
+
 "ff 0.10.1",
+
 "generic-array",
+
 "group 0.10.0",
+
 "pkcs8 0.7.6",
+
 "rand_core 0.6.4",
+
 "subtle",
+
 "zeroize",
+
]
+

+
[[package]]
+
name = "elliptic-curve"
version = "0.13.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47"
dependencies = [
 "base16ct",
-
 "crypto-bigint",
-
 "digest",
-
 "ff",
+
 "crypto-bigint 0.5.5",
+
 "digest 0.10.7",
+
 "ff 0.13.0",
 "generic-array",
-
 "group",
-
 "pkcs8",
-
 "rand_core",
+
 "group 0.13.0",
+
 "pkcs8 0.10.2",
+
 "rand_core 0.6.4",
 "sec1",
 "subtle",
 "zeroize",
]

[[package]]
+
name = "encoding_rs"
+
version = "0.8.34"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
+
dependencies = [
+
 "cfg-if",
+
]
+

+
[[package]]
name = "equivalent"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -667,6 +1150,33 @@ dependencies = [
]

[[package]]
+
name = "event-listener"
+
version = "2.5.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+

+
[[package]]
+
name = "event-listener"
+
version = "5.3.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba"
+
dependencies = [
+
 "concurrent-queue",
+
 "parking",
+
 "pin-project-lite",
+
]
+

+
[[package]]
+
name = "event-listener-strategy"
+
version = "0.5.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
+
dependencies = [
+
 "event-listener 5.3.1",
+
 "pin-project-lite",
+
]
+

+
[[package]]
name = "faster-hex"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -674,49 +1184,228 @@ checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183"

[[package]]
name = "fastrand"
+
version = "1.9.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+
dependencies = [
+
 "instant",
+
]
+

+
[[package]]
+
name = "fastrand"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"

[[package]]
name = "ff"
+
version = "0.10.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d0f40b2dcd8bc322217a5f6559ae5f9e9d1de202a2ecee2e9eafcbece7562a4f"
+
dependencies = [
+
 "rand_core 0.6.4",
+
 "subtle",
+
]
+

+
[[package]]
+
name = "ff"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
dependencies = [
-
 "rand_core",
+
 "rand_core 0.6.4",
 "subtle",
]

[[package]]
-
name = "filetime"
-
version = "0.2.23"
+
name = "filetime"
+
version = "0.2.23"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
+
dependencies = [
+
 "cfg-if",
+
 "libc",
+
 "redox_syscall 0.4.1",
+
 "windows-sys 0.52.0",
+
]
+

+
[[package]]
+
name = "flate2"
+
version = "1.0.28"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+
dependencies = [
+
 "crc32fast",
+
 "miniz_oxide",
+
]
+

+
[[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"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+
dependencies = [
+
 "percent-encoding",
+
]
+

+
[[package]]
+
name = "fraction"
+
version = "0.9.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "aba3510011eee8825018be07f08d9643421de007eaf62a3bde58d89b058abfa7"
+
dependencies = [
+
 "lazy_static",
+
 "num",
+
 "serde",
+
 "serde_derive",
+
]
+

+
[[package]]
+
name = "fs2"
+
version = "0.4.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213"
+
dependencies = [
+
 "libc",
+
 "winapi",
+
]
+

+
[[package]]
+
name = "futures"
+
version = "0.3.30"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
+
dependencies = [
+
 "futures-channel",
+
 "futures-core",
+
 "futures-executor",
+
 "futures-io",
+
 "futures-sink",
+
 "futures-task",
+
 "futures-util",
+
]
+

+
[[package]]
+
name = "futures-channel"
+
version = "0.3.30"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+
dependencies = [
+
 "futures-core",
+
 "futures-sink",
+
]
+

+
[[package]]
+
name = "futures-core"
+
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-lite"
+
version = "1.13.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
+
dependencies = [
+
 "fastrand 1.9.0",
+
 "futures-core",
+
 "futures-io",
+
 "memchr",
+
 "parking",
+
 "pin-project-lite",
+
 "waker-fn",
+
]
+

+
[[package]]
+
name = "futures-lite"
+
version = "2.3.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
+
dependencies = [
+
 "fastrand 2.1.0",
+
 "futures-core",
+
 "futures-io",
+
 "parking",
+
 "pin-project-lite",
+
]
+

+
[[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.60",
+
]
+

+
[[package]]
+
name = "futures-sink"
+
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
-
dependencies = [
-
 "cfg-if",
-
 "libc",
-
 "redox_syscall",
-
 "windows-sys 0.52.0",
-
]
+
checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"

[[package]]
-
name = "flate2"
-
version = "1.0.28"
+
name = "futures-task"
+
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
-
dependencies = [
-
 "crc32fast",
-
 "miniz_oxide",
-
]
+
checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"

[[package]]
-
name = "form_urlencoded"
-
version = "1.2.1"
+
name = "futures-util"
+
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+
checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
dependencies = [
-
 "percent-encoding",
+
 "futures-channel",
+
 "futures-core",
+
 "futures-io",
+
 "futures-macro",
+
 "futures-sink",
+
 "futures-task",
+
 "memchr",
+
 "pin-project-lite",
+
 "pin-utils",
+
 "slab",
]

[[package]]
@@ -741,13 +1430,24 @@ dependencies = [

[[package]]
name = "getrandom"
+
version = "0.1.16"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+
dependencies = [
+
 "cfg-if",
+
 "libc",
+
 "wasi 0.9.0+wasi-snapshot-preview1",
+
]
+

+
[[package]]
+
name = "getrandom"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c"
dependencies = [
 "cfg-if",
 "libc",
-
 "wasi",
+
 "wasi 0.11.0+wasi-snapshot-preview1",
]

[[package]]
@@ -761,6 +1461,12 @@ dependencies = [
]

[[package]]
+
name = "gimli"
+
version = "0.28.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+

+
[[package]]
name = "git-ref-format"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -933,7 +1639,7 @@ version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6adf99c27cdf17b1c4d77680c917e0d94d8783d4e1c73d3be0d1d63107163d7a"
dependencies = [
-
 "fastrand",
+
 "fastrand 2.1.0",
 "gix-features",
 "gix-utils",
]
@@ -955,8 +1661,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ddf80e16f3c19ac06ce415a38b8591993d3f73aede049cb561becb5b3a8e242"
dependencies = [
 "gix-hash",
-
 "hashbrown",
-
 "parking_lot",
+
 "hashbrown 0.14.3",
+
 "parking_lot 0.12.1",
]

[[package]]
@@ -973,7 +1679,7 @@ dependencies = [
 "gix-utils",
 "gix-validate",
 "itoa",
-
 "smallvec",
+
 "smallvec 1.13.2",
 "thiserror",
 "winnow",
]
@@ -993,7 +1699,7 @@ dependencies = [
 "gix-pack",
 "gix-path",
 "gix-quote",
-
 "parking_lot",
+
 "parking_lot 0.12.1",
 "tempfile",
 "thiserror",
]
@@ -1014,8 +1720,8 @@ dependencies = [
 "gix-tempfile",
 "gix-traverse",
 "memmap2",
-
 "parking_lot",
-
 "smallvec",
+
 "parking_lot 0.12.1",
+
 "smallvec 1.13.2",
 "thiserror",
]

@@ -1052,8 +1758,8 @@ checksum = "f5325eb17ce7b5e5d25dec5c2315d642a09d55b9888b3bf46b7d72e1621a55d8"
dependencies = [
 "gix-command",
 "gix-config-value",
-
 "parking_lot",
-
 "rustix",
+
 "parking_lot 0.12.1",
+
 "rustix 0.38.34",
 "thiserror",
]

@@ -1097,7 +1803,7 @@ dependencies = [
 "gix-hash",
 "gix-hashtable",
 "gix-object",
-
 "smallvec",
+
 "smallvec 1.13.2",
 "thiserror",
]

@@ -1122,7 +1828,7 @@ dependencies = [
 "gix-fs",
 "libc",
 "once_cell",
-
 "parking_lot",
+
 "parking_lot 0.12.1",
 "tempfile",
]

@@ -1161,7 +1867,7 @@ dependencies = [
 "gix-hashtable",
 "gix-object",
 "gix-revwalk",
-
 "smallvec",
+
 "smallvec 1.13.2",
 "thiserror",
]

@@ -1185,7 +1891,7 @@ version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35192df7fd0fa112263bad8021e2df7167df4cc2a6e6d15892e1e55621d3d4dc"
dependencies = [
-
 "fastrand",
+
 "fastrand 2.1.0",
 "unicode-normalization",
]

@@ -1200,29 +1906,120 @@ dependencies = [
]

[[package]]
+
name = "gloo-timers"
+
version = "0.2.6"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c"
+
dependencies = [
+
 "futures-channel",
+
 "futures-core",
+
 "js-sys",
+
 "wasm-bindgen",
+
]
+

+
[[package]]
+
name = "group"
+
version = "0.10.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "1c363a5301b8f153d80747126a04b3c82073b9fe3130571a9d170cacdeaf7912"
+
dependencies = [
+
 "ff 0.10.1",
+
 "rand_core 0.6.4",
+
 "subtle",
+
]
+

+
[[package]]
name = "group"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
dependencies = [
-
 "ff",
-
 "rand_core",
+
 "ff 0.13.0",
+
 "rand_core 0.6.4",
 "subtle",
]

[[package]]
+
name = "h2"
+
version = "0.3.26"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
+
dependencies = [
+
 "bytes",
+
 "fnv",
+
 "futures-core",
+
 "futures-sink",
+
 "futures-util",
+
 "http",
+
 "indexmap 2.5.0",
+
 "slab",
+
 "tokio",
+
 "tokio-util",
+
 "tracing",
+
]
+

+
[[package]]
+
name = "half"
+
version = "1.8.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403"
+

+
[[package]]
+
name = "hashbrown"
+
version = "0.12.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+

+
[[package]]
name = "hashbrown"
version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"

[[package]]
+
name = "heck"
+
version = "0.4.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+

+
[[package]]
+
name = "hermit-abi"
+
version = "0.1.19"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+
dependencies = [
+
 "libc",
+
]
+

+
[[package]]
+
name = "hermit-abi"
+
version = "0.3.9"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+

+
[[package]]
+
name = "hermit-abi"
+
version = "0.4.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
+

+
[[package]]
+
name = "hmac"
+
version = "0.11.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b"
+
dependencies = [
+
 "crypto-mac 0.11.0",
+
 "digest 0.9.0",
+
]
+

+
[[package]]
name = "hmac"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
dependencies = [
-
 "digest",
+
 "digest 0.10.7",
]

[[package]]
@@ -1235,6 +2032,77 @@ dependencies = [
]

[[package]]
+
name = "http"
+
version = "0.2.12"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
+
dependencies = [
+
 "bytes",
+
 "fnv",
+
 "itoa",
+
]
+

+
[[package]]
+
name = "http-body"
+
version = "0.4.6"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
+
dependencies = [
+
 "bytes",
+
 "http",
+
 "pin-project-lite",
+
]
+

+
[[package]]
+
name = "httparse"
+
version = "1.9.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9"
+

+
[[package]]
+
name = "httpdate"
+
version = "1.0.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+

+
[[package]]
+
name = "hyper"
+
version = "0.14.30"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9"
+
dependencies = [
+
 "bytes",
+
 "futures-channel",
+
 "futures-core",
+
 "futures-util",
+
 "h2",
+
 "http",
+
 "http-body",
+
 "httparse",
+
 "httpdate",
+
 "itoa",
+
 "pin-project-lite",
+
 "socket2 0.5.7",
+
 "tokio",
+
 "tower-service",
+
 "tracing",
+
 "want",
+
]
+

+
[[package]]
+
name = "hyper-tls"
+
version = "0.5.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
+
dependencies = [
+
 "bytes",
+
 "hyper",
+
 "native-tls",
+
 "tokio",
+
 "tokio-native-tls",
+
]
+

+
[[package]]
name = "iana-time-zone"
version = "0.1.60"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1269,12 +2137,23 @@ dependencies = [

[[package]]
name = "indexmap"
-
version = "2.2.6"
+
version = "1.9.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+
dependencies = [
+
 "autocfg",
+
 "hashbrown 0.12.3",
+
]
+

+
[[package]]
+
name = "indexmap"
+
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+
checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5"
dependencies = [
 "equivalent",
-
 "hashbrown",
+
 "hashbrown 0.14.3",
+
 "serde",
]

[[package]]
@@ -1283,7 +2162,7 @@ version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
dependencies = [
-
 "block-padding",
+
 "block-padding 0.3.3",
 "generic-array",
]

@@ -1305,6 +2184,26 @@ dependencies = [
]

[[package]]
+
name = "instant"
+
version = "0.1.13"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
+
dependencies = [
+
 "cfg-if",
+
]
+

+
[[package]]
+
name = "io-lifetimes"
+
version = "1.0.11"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+
dependencies = [
+
 "hermit-abi 0.3.9",
+
 "libc",
+
 "windows-sys 0.48.0",
+
]
+

+
[[package]]
name = "io-reactor"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1317,6 +2216,21 @@ dependencies = [
]

[[package]]
+
name = "ipnet"
+
version = "2.9.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+

+
[[package]]
+
name = "itertools"
+
version = "0.11.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+
dependencies = [
+
 "either",
+
]
+

+
[[package]]
name = "itoa"
version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1341,6 +2255,18 @@ dependencies = [
]

[[package]]
+
name = "k256"
+
version = "0.9.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "008b0281ca8032567c9711cd48631781c15228301860a39b32deb28d63125e46"
+
dependencies = [
+
 "cfg-if",
+
 "ecdsa 0.12.4",
+
 "elliptic-curve 0.10.4",
+
 "sha2 0.9.9",
+
]
+

+
[[package]]
name = "keccak"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1350,6 +2276,69 @@ dependencies = [
]

[[package]]
+
name = "keri-controller"
+
version = "0.12.7"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5b27e1e25b993e109781287b6d422fec95a878857ee47fefb376d0d27c83a7ce"
+
dependencies = [
+
 "async-std",
+
 "cesrox",
+
 "futures",
+
 "itertools",
+
 "keri-core",
+
 "serde_json",
+
 "teliox",
+
 "thiserror",
+
 "url",
+
]
+

+
[[package]]
+
name = "keri-core"
+
version = "0.12.7"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e843e8cf838b581d0195b13c662f4517c24a9588883c1874543e502085200a65"
+
dependencies = [
+
 "arrayref",
+
 "async-trait",
+
 "base64 0.13.1",
+
 "blake2",
+
 "blake3",
+
 "bytes",
+
 "cesrox",
+
 "chrono",
+
 "ed25519-dalek",
+
 "fraction",
+
 "http",
+
 "k256",
+
 "rand 0.7.3",
+
 "reqwest",
+
 "ryu",
+
 "said",
+
 "serde",
+
 "serde-hex",
+
 "serde_cbor",
+
 "serde_derive",
+
 "serde_json",
+
 "sha2 0.9.9",
+
 "sha3 0.9.1",
+
 "sled",
+
 "strum",
+
 "strum_macros",
+
 "thiserror",
+
 "url",
+
 "zeroize",
+
]
+

+
[[package]]
+
name = "kv-log-macro"
+
version = "1.0.7"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
+
dependencies = [
+
 "log",
+
]
+

+
[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1396,7 +2385,7 @@ checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607"
dependencies = [
 "bitflags 2.5.0",
 "libc",
-
 "redox_syscall",
+
 "redox_syscall 0.4.1",
]

[[package]]
@@ -1413,6 +2402,12 @@ dependencies = [

[[package]]
name = "linux-raw-sys"
+
version = "0.3.8"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+

+
[[package]]
+
name = "linux-raw-sys"
version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
@@ -1441,6 +2436,9 @@ name = "log"
version = "0.4.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
dependencies = [
+
 "value-bag",
+
]

[[package]]
name = "maybe-async"
@@ -1454,6 +2452,12 @@ dependencies = [
]

[[package]]
+
name = "maybe-uninit"
+
version = "2.0.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+

+
[[package]]
name = "memchr"
version = "2.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1469,6 +2473,18 @@ dependencies = [
]

[[package]]
+
name = "mime"
+
version = "0.3.17"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
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.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1478,6 +2494,18 @@ dependencies = [
]

[[package]]
+
name = "mio"
+
version = "1.0.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
+
dependencies = [
+
 "hermit-abi 0.3.9",
+
 "libc",
+
 "wasi 0.11.0+wasi-snapshot-preview1",
+
 "windows-sys 0.52.0",
+
]
+

+
[[package]]
name = "multibase"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1489,6 +2517,23 @@ dependencies = [
]

[[package]]
+
name = "native-tls"
+
version = "0.2.12"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466"
+
dependencies = [
+
 "libc",
+
 "log",
+
 "openssl",
+
 "openssl-probe",
+
 "openssl-sys",
+
 "schannel",
+
 "security-framework",
+
 "security-framework-sys",
+
 "tempfile",
+
]
+

+
[[package]]
name = "netservices"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1498,8 +2543,8 @@ dependencies = [
 "cyphernet",
 "io-reactor",
 "libc",
-
 "rand",
-
 "socket2",
+
 "rand 0.8.5",
+
 "socket2 0.5.7",
]

[[package]]
@@ -1512,6 +2557,12 @@ dependencies = [
]

[[package]]
+
name = "nodrop"
+
version = "0.1.14"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
+

+
[[package]]
name = "noise-framework"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1523,6 +2574,16 @@ dependencies = [
]

[[package]]
+
name = "nom"
+
version = "7.1.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+
dependencies = [
+
 "memchr",
+
 "minimal-lexical",
+
]
+

+
[[package]]
name = "nonempty"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1544,6 +2605,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"

[[package]]
+
name = "num"
+
version = "0.2.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36"
+
dependencies = [
+
 "num-bigint",
+
 "num-complex",
+
 "num-integer",
+
 "num-iter",
+
 "num-rational",
+
 "num-traits",
+
]
+

+
[[package]]
+
name = "num-bigint"
+
version = "0.2.6"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"
+
dependencies = [
+
 "autocfg",
+
 "num-integer",
+
 "num-traits",
+
 "serde",
+
]
+

+
[[package]]
name = "num-bigint-dig"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1555,9 +2642,20 @@ dependencies = [
 "num-integer",
 "num-iter",
 "num-traits",
-
 "rand",
-
 "smallvec",
-
 "zeroize",
+
 "rand 0.8.5",
+
 "smallvec 1.13.2",
+
 "zeroize",
+
]
+

+
[[package]]
+
name = "num-complex"
+
version = "0.2.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95"
+
dependencies = [
+
 "autocfg",
+
 "num-traits",
+
 "serde",
]

[[package]]
@@ -1587,6 +2685,19 @@ dependencies = [
]

[[package]]
+
name = "num-rational"
+
version = "0.2.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
+
dependencies = [
+
 "autocfg",
+
 "num-bigint",
+
 "num-integer",
+
 "num-traits",
+
 "serde",
+
]
+

+
[[package]]
name = "num-traits"
version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1612,6 +2723,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef"

[[package]]
+
name = "object"
+
version = "0.32.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+
dependencies = [
+
 "memchr",
+
]
+

+
[[package]]
name = "once_cell"
version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1624,15 +2744,65 @@ 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 = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1"
+
dependencies = [
+
 "bitflags 2.5.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.60",
+
]
+

+
[[package]]
+
name = "openssl-probe"
+
version = "0.1.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+

+
[[package]]
+
name = "openssl-sys"
+
version = "0.9.103"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6"
+
dependencies = [
+
 "cc",
+
 "libc",
+
 "pkg-config",
+
 "vcpkg",
+
]
+

+
[[package]]
+
name = "os_str_bytes"
+
version = "6.6.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1"
+

+
[[package]]
name = "p256"
version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
dependencies = [
-
 "ecdsa",
-
 "elliptic-curve",
+
 "ecdsa 0.16.9",
+
 "elliptic-curve 0.13.8",
 "primeorder",
-
 "sha2",
+
 "sha2 0.10.8",
]

[[package]]
@@ -1641,10 +2811,10 @@ version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209"
dependencies = [
-
 "ecdsa",
-
 "elliptic-curve",
+
 "ecdsa 0.16.9",
+
 "elliptic-curve 0.13.8",
 "primeorder",
-
 "sha2",
+
 "sha2 0.10.8",
]

[[package]]
@@ -1654,11 +2824,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fc9e2161f1f215afdfce23677034ae137bbd45016a880c2eb3ba8eb95f085b2"
dependencies = [
 "base16ct",
-
 "ecdsa",
-
 "elliptic-curve",
+
 "ecdsa 0.16.9",
+
 "elliptic-curve 0.13.8",
 "primeorder",
-
 "rand_core",
-
 "sha2",
+
 "rand_core 0.6.4",
+
 "sha2 0.10.8",
+
]
+

+
[[package]]
+
name = "parking"
+
version = "2.2.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+

+
[[package]]
+
name = "parking_lot"
+
version = "0.11.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
+
dependencies = [
+
 "instant",
+
 "lock_api",
+
 "parking_lot_core 0.8.6",
]

[[package]]
@@ -1668,7 +2855,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
dependencies = [
 "lock_api",
-
 "parking_lot_core",
+
 "parking_lot_core 0.9.9",
+
]
+

+
[[package]]
+
name = "parking_lot_core"
+
version = "0.8.6"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
+
dependencies = [
+
 "cfg-if",
+
 "instant",
+
 "libc",
+
 "redox_syscall 0.2.16",
+
 "smallvec 1.13.2",
+
 "winapi",
]

[[package]]
@@ -1679,19 +2880,25 @@ checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
dependencies = [
 "cfg-if",
 "libc",
-
 "redox_syscall",
-
 "smallvec",
+
 "redox_syscall 0.4.1",
+
 "smallvec 1.13.2",
 "windows-targets 0.48.5",
]

[[package]]
+
name = "paste"
+
version = "1.0.15"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
+

+
[[package]]
name = "pbkdf2"
version = "0.12.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
dependencies = [
-
 "digest",
-
 "hmac",
+
 "digest 0.10.7",
+
 "hmac 0.12.1",
]

[[package]]
@@ -1710,14 +2917,47 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"

[[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 = "piper"
+
version = "0.2.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066"
+
dependencies = [
+
 "atomic-waker",
+
 "fastrand 2.1.0",
+
 "futures-io",
+
]
+

+
[[package]]
name = "pkcs1"
version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f"
dependencies = [
-
 "der",
-
 "pkcs8",
-
 "spki",
+
 "der 0.7.9",
+
 "pkcs8 0.10.2",
+
 "spki 0.7.3",
+
]
+

+
[[package]]
+
name = "pkcs8"
+
version = "0.7.6"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ee3ef9b64d26bad0536099c816c6734379e45bbd5f14798def6809e5cc350447"
+
dependencies = [
+
 "der 0.4.5",
+
 "spki 0.4.1",
]

[[package]]
@@ -1726,8 +2966,8 @@ version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
dependencies = [
-
 "der",
-
 "spki",
+
 "der 0.7.9",
+
 "spki 0.7.3",
]

[[package]]
@@ -1737,6 +2977,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"

[[package]]
+
name = "polling"
+
version = "2.8.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
+
dependencies = [
+
 "autocfg",
+
 "bitflags 1.3.2",
+
 "cfg-if",
+
 "concurrent-queue",
+
 "libc",
+
 "log",
+
 "pin-project-lite",
+
 "windows-sys 0.48.0",
+
]
+

+
[[package]]
+
name = "polling"
+
version = "3.7.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a3ed00ed3fbf728b5816498ecd316d1716eecaced9c0c8d2c5a6740ca214985b"
+
dependencies = [
+
 "cfg-if",
+
 "concurrent-queue",
+
 "hermit-abi 0.4.0",
+
 "pin-project-lite",
+
 "rustix 0.38.34",
+
 "tracing",
+
 "windows-sys 0.52.0",
+
]
+

+
[[package]]
name = "poly1305"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1796,7 +3067,7 @@ version = "0.13.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6"
dependencies = [
-
 "elliptic-curve",
+
 "elliptic-curve 0.13.8",
]

[[package]]
@@ -1844,7 +3115,7 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b439bd4242da51d62d18c95e6a6add749346756b0d1a587dfd0cc22fa6b5f3f0"
dependencies = [
-
 "rand",
+
 "rand 0.8.5",
]

[[package]]
@@ -1877,7 +3148,7 @@ dependencies = [
 "colored",
 "crossbeam-channel",
 "cyphernet",
-
 "fastrand",
+
 "fastrand 2.1.0",
 "git2",
 "libc",
 "localtime",
@@ -1961,7 +3232,7 @@ dependencies = [
name = "radicle-cob"
version = "0.12.0"
dependencies = [
-
 "fastrand",
+
 "fastrand 2.1.0",
 "git2",
 "log",
 "nonempty 0.9.0",
@@ -1981,7 +3252,7 @@ dependencies = [
name = "radicle-crdt"
version = "0.1.0"
dependencies = [
-
 "fastrand",
+
 "fastrand 2.1.0",
 "num-traits",
 "qcheck",
 "qcheck-macros",
@@ -1998,7 +3269,7 @@ dependencies = [
 "amplify",
 "cyphernet",
 "ec25519",
-
 "fastrand",
+
 "fastrand 2.1.0",
 "multibase",
 "qcheck",
 "qcheck-macros",
@@ -2016,7 +3287,7 @@ dependencies = [
name = "radicle-dag"
version = "0.9.0"
dependencies = [
-
 "fastrand",
+
 "fastrand 2.1.0",
]

[[package]]
@@ -2054,6 +3325,17 @@ dependencies = [
]

[[package]]
+
name = "radicle-keri"
+
version = "0.9.0"
+
dependencies = [
+
 "async-std",
+
 "keri-controller",
+
 "keri-core",
+
 "serde_json",
+
 "tempfile",
+
]
+

+
[[package]]
name = "radicle-node"
version = "0.10.0"
dependencies = [
@@ -2065,7 +3347,7 @@ dependencies = [
 "colored",
 "crossbeam-channel",
 "cyphernet",
-
 "fastrand",
+
 "fastrand 2.1.0",
 "io-reactor",
 "lexopt",
 "libc",
@@ -2086,7 +3368,7 @@ dependencies = [
 "serde",
 "serde_json",
 "snapbox",
-
 "socket2",
+
 "socket2 0.5.7",
 "sqlite",
 "tempfile",
 "thiserror",
@@ -2186,13 +3468,36 @@ dependencies = [

[[package]]
name = "rand"
+
version = "0.7.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+
dependencies = [
+
 "getrandom 0.1.16",
+
 "libc",
+
 "rand_chacha 0.2.2",
+
 "rand_core 0.5.1",
+
 "rand_hc",
+
]
+

+
[[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",
+
 "rand_chacha 0.3.1",
+
 "rand_core 0.6.4",
+
]
+

+
[[package]]
+
name = "rand_chacha"
+
version = "0.2.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+
dependencies = [
+
 "ppv-lite86",
+
 "rand_core 0.5.1",
]

[[package]]
@@ -2202,7 +3507,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
dependencies = [
 "ppv-lite86",
-
 "rand_core",
+
 "rand_core 0.6.4",
+
]
+

+
[[package]]
+
name = "rand_core"
+
version = "0.5.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+
dependencies = [
+
 "getrandom 0.1.16",
]

[[package]]
@@ -2211,7 +3525,25 @@ version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
dependencies = [
-
 "getrandom",
+
 "getrandom 0.2.14",
+
]
+

+
[[package]]
+
name = "rand_hc"
+
version = "0.2.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+
dependencies = [
+
 "rand_core 0.5.1",
+
]
+

+
[[package]]
+
name = "redox_syscall"
+
version = "0.2.16"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+
dependencies = [
+
 "bitflags 1.3.2",
]

[[package]]
@@ -2259,37 +3591,130 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"

[[package]]
+
name = "reqwest"
+
version = "0.11.27"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62"
+
dependencies = [
+
 "base64 0.21.7",
+
 "bytes",
+
 "encoding_rs",
+
 "futures-core",
+
 "futures-util",
+
 "h2",
+
 "http",
+
 "http-body",
+
 "hyper",
+
 "hyper-tls",
+
 "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",
+
 "winreg",
+
]
+

+
[[package]]
name = "rfc6979"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
dependencies = [
-
 "hmac",
+
 "hmac 0.12.1",
 "subtle",
]

[[package]]
+
name = "rmp"
+
version = "0.8.14"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4"
+
dependencies = [
+
 "byteorder",
+
 "num-traits",
+
 "paste",
+
]
+

+
[[package]]
+
name = "rmp-serde"
+
version = "0.15.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "723ecff9ad04f4ad92fe1c8ca6c20d2196d9286e9c60727c4cb5511629260e9d"
+
dependencies = [
+
 "byteorder",
+
 "rmp",
+
 "serde",
+
]
+

+
[[package]]
+
name = "rmp-serde"
+
version = "1.3.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db"
+
dependencies = [
+
 "byteorder",
+
 "rmp",
+
 "serde",
+
]
+

+
[[package]]
name = "rsa"
version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc"
dependencies = [
-
 "const-oid",
-
 "digest",
+
 "const-oid 0.9.6",
+
 "digest 0.10.7",
 "num-bigint-dig",
 "num-integer",
 "num-traits",
 "pkcs1",
-
 "pkcs8",
-
 "rand_core",
-
 "sha2",
+
 "pkcs8 0.10.2",
+
 "rand_core 0.6.4",
+
 "sha2 0.10.8",
 "signature 2.2.0",
-
 "spki",
+
 "spki 0.7.3",
 "subtle",
 "zeroize",
]

[[package]]
+
name = "rustc-demangle"
+
version = "0.1.24"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
+

+
[[package]]
+
name = "rustix"
+
version = "0.37.27"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
+
dependencies = [
+
 "bitflags 1.3.2",
+
 "errno",
+
 "io-lifetimes",
+
 "libc",
+
 "linux-raw-sys 0.3.8",
+
 "windows-sys 0.48.0",
+
]
+

+
[[package]]
name = "rustix"
version = "0.38.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2298,17 +3723,66 @@ dependencies = [
 "bitflags 2.5.0",
 "errno",
 "libc",
-
 "linux-raw-sys",
+
 "linux-raw-sys 0.4.13",
 "windows-sys 0.52.0",
]

[[package]]
+
name = "rustls-pemfile"
+
version = "1.0.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+
dependencies = [
+
 "base64 0.21.7",
+
]
+

+
[[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.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"

[[package]]
+
name = "sad_macros"
+
version = "0.2.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "02d74f6f559db762afc219c839817ecccfc378d3e281050b13acec9563367a31"
+
dependencies = [
+
 "quote",
+
 "syn 2.0.60",
+
]
+

+
[[package]]
+
name = "said"
+
version = "0.4.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "10379812d1d27a4e2cf8857c73ca01178b14845a79a3e96070d87043c8f6e1a2"
+
dependencies = [
+
 "base64 0.13.1",
+
 "blake2",
+
 "blake3",
+
 "cesrox",
+
 "clap",
+
 "indexmap 2.5.0",
+
 "nom",
+
 "rmp-serde 0.15.5",
+
 "sad_macros",
+
 "serde",
+
 "serde_cbor",
+
 "serde_derive",
+
 "serde_json",
+
 "sha2 0.9.9",
+
 "sha3 0.9.1",
+
 "thiserror",
+
]
+

+
[[package]]
name = "salsa20"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2327,6 +3801,15 @@ dependencies = [
]

[[package]]
+
name = "schannel"
+
version = "0.1.23"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
+
dependencies = [
+
 "windows-sys 0.52.0",
+
]
+

+
[[package]]
name = "scopeguard"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2340,21 +3823,44 @@ checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f"
dependencies = [
 "pbkdf2",
 "salsa20",
-
 "sha2",
+
 "sha2 0.10.8",
+
]
+

+
[[package]]
+
name = "sec1"
+
version = "0.7.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
+
dependencies = [
+
 "base16ct",
+
 "der 0.7.9",
+
 "generic-array",
+
 "pkcs8 0.10.2",
+
 "subtle",
+
 "zeroize",
+
]
+

+
[[package]]
+
name = "security-framework"
+
version = "2.11.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0"
+
dependencies = [
+
 "bitflags 2.5.0",
+
 "core-foundation",
+
 "core-foundation-sys",
+
 "libc",
+
 "security-framework-sys",
]

[[package]]
-
name = "sec1"
-
version = "0.7.3"
+
name = "security-framework-sys"
+
version = "2.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
+
checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf"
dependencies = [
-
 "base16ct",
-
 "der",
-
 "generic-array",
-
 "pkcs8",
-
 "subtle",
-
 "zeroize",
+
 "core-foundation-sys",
+
 "libc",
]

[[package]]
@@ -2367,6 +3873,27 @@ dependencies = [
]

[[package]]
+
name = "serde-hex"
+
version = "0.1.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ca37e3e4d1b39afd7ff11ee4e947efae85adfddf4841787bfa47c470e96dc26d"
+
dependencies = [
+
 "array-init",
+
 "serde",
+
 "smallvec 0.6.14",
+
]
+

+
[[package]]
+
name = "serde_cbor"
+
version = "0.11.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5"
+
dependencies = [
+
 "half",
+
 "serde",
+
]
+

+
[[package]]
name = "serde_derive"
version = "1.0.198"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2383,7 +3910,19 @@ version = "1.0.116"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
dependencies = [
-
 "indexmap",
+
 "indexmap 2.5.0",
+
 "itoa",
+
 "ryu",
+
 "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",
@@ -2397,13 +3936,38 @@ checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"

[[package]]
name = "sha2"
+
version = "0.9.9"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800"
+
dependencies = [
+
 "block-buffer 0.9.0",
+
 "cfg-if",
+
 "cpufeatures",
+
 "digest 0.9.0",
+
 "opaque-debug",
+
]
+

+
[[package]]
+
name = "sha2"
version = "0.10.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
dependencies = [
 "cfg-if",
 "cpufeatures",
-
 "digest",
+
 "digest 0.10.7",
+
]
+

+
[[package]]
+
name = "sha3"
+
version = "0.9.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809"
+
dependencies = [
+
 "block-buffer 0.9.0",
+
 "digest 0.9.0",
+
 "keccak",
+
 "opaque-debug",
]

[[package]]
@@ -2412,7 +3976,7 @@ version = "0.10.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60"
dependencies = [
-
 "digest",
+
 "digest 0.10.7",
 "keccak",
]

@@ -2430,9 +3994,13 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"

[[package]]
name = "signature"
-
version = "1.6.4"
+
version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c"
+
checksum = "f2807892cfa58e081aa1f1111391c7a0649d4fa127a4ffbe34bcbfb35a1171a4"
+
dependencies = [
+
 "digest 0.9.0",
+
 "rand_core 0.6.4",
+
]

[[package]]
name = "signature"
@@ -2440,8 +4008,8 @@ version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
dependencies = [
-
 "digest",
-
 "rand_core",
+
 "digest 0.10.7",
+
 "rand_core 0.6.4",
]

[[package]]
@@ -2463,6 +4031,54 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d"

[[package]]
+
name = "slab"
+
version = "0.4.9"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+
dependencies = [
+
 "autocfg",
+
]
+

+
[[package]]
+
name = "sled"
+
version = "0.34.7"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "7f96b4737c2ce5987354855aed3797279def4ebf734436c6aa4552cf8e169935"
+
dependencies = [
+
 "crc32fast",
+
 "crossbeam-epoch",
+
 "crossbeam-utils",
+
 "fs2",
+
 "fxhash",
+
 "libc",
+
 "log",
+
 "parking_lot 0.11.2",
+
]
+

+
[[package]]
+
name = "sled-tables"
+
version = "0.2.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "1ac493c42604b612e0cdc721575b367ac27ea2a9db0a1169ebb775917d6e8206"
+
dependencies = [
+
 "arrayref",
+
 "serde",
+
 "serde_cbor",
+
 "serde_derive",
+
 "sled",
+
 "thiserror",
+
]
+

+
[[package]]
+
name = "smallvec"
+
version = "0.6.14"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0"
+
dependencies = [
+
 "maybe-uninit",
+
]
+

+
[[package]]
name = "smallvec"
version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2492,6 +4108,16 @@ dependencies = [

[[package]]
name = "socket2"
+
version = "0.4.10"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
+
dependencies = [
+
 "libc",
+
 "winapi",
+
]
+

+
[[package]]
+
name = "socket2"
version = "0.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
@@ -2518,12 +4144,21 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"

[[package]]
name = "spki"
+
version = "0.4.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5c01a0c15da1b0b0e1494112e7af814a678fec9bd157881b49beac661e9b6f32"
+
dependencies = [
+
 "der 0.4.5",
+
]
+

+
[[package]]
+
name = "spki"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
dependencies = [
 "base64ct",
-
 "der",
+
 "der 0.7.9",
]

[[package]]
@@ -2581,7 +4216,7 @@ checksum = "eb9242b9ef4108a78e8cd1a2c98e193ef372437f8c22be363075233321dd4a15"
dependencies = [
 "base64ct",
 "pem-rfc7468",
-
 "sha2",
+
 "sha2 0.10.8",
]

[[package]]
@@ -2594,10 +4229,10 @@ dependencies = [
 "p256",
 "p384",
 "p521",
-
 "rand_core",
+
 "rand_core 0.6.4",
 "rsa",
 "sec1",
-
 "sha2",
+
 "sha2 0.10.8",
 "signature 2.2.0",
 "ssh-cipher",
 "ssh-encoding",
@@ -2606,6 +4241,31 @@ dependencies = [
]

[[package]]
+
name = "strsim"
+
version = "0.10.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+

+
[[package]]
+
name = "strum"
+
version = "0.24.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
+

+
[[package]]
+
name = "strum_macros"
+
version = "0.24.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
+
dependencies = [
+
 "heck",
+
 "proc-macro2",
+
 "quote",
+
 "rustversion",
+
 "syn 1.0.109",
+
]
+

+
[[package]]
name = "subtle"
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2634,6 +4294,33 @@ dependencies = [
]

[[package]]
+
name = "sync_wrapper"
+
version = "0.1.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+

+
[[package]]
+
name = "system-configuration"
+
version = "0.5.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
+
dependencies = [
+
 "bitflags 1.3.2",
+
 "core-foundation",
+
 "system-configuration-sys",
+
]
+

+
[[package]]
+
name = "system-configuration-sys"
+
version = "0.5.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
+
dependencies = [
+
 "core-foundation-sys",
+
 "libc",
+
]
+

+
[[package]]
name = "tar"
version = "0.4.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2645,18 +4332,50 @@ dependencies = [
]

[[package]]
+
name = "teliox"
+
version = "0.12.7"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8eb2c2b4c90ae17b7a2ba9c759cfad402b285cb11ab975f44ca717cc8ca467b8"
+
dependencies = [
+
 "arrayref",
+
 "async-trait",
+
 "base64 0.13.1",
+
 "cesrox",
+
 "chrono",
+
 "keri-core",
+
 "reqwest",
+
 "said",
+
 "serde",
+
 "serde-hex",
+
 "serde_cbor",
+
 "serde_json",
+
 "sled",
+
 "sled-tables",
+
 "thiserror",
+
]
+

+
[[package]]
name = "tempfile"
version = "3.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
dependencies = [
 "cfg-if",
-
 "fastrand",
-
 "rustix",
+
 "fastrand 2.1.0",
+
 "rustix 0.38.34",
 "windows-sys 0.52.0",
]

[[package]]
+
name = "termcolor"
+
version = "1.4.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
+
dependencies = [
+
 "winapi-util",
+
]
+

+
[[package]]
name = "termion"
version = "2.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2681,6 +4400,12 @@ dependencies = [
]

[[package]]
+
name = "textwrap"
+
version = "0.16.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
+

+
[[package]]
name = "thiserror"
version = "1.0.59"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2755,6 +4480,69 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"

[[package]]
+
name = "tokio"
+
version = "1.40.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998"
+
dependencies = [
+
 "backtrace",
+
 "bytes",
+
 "libc",
+
 "mio",
+
 "pin-project-lite",
+
 "socket2 0.5.7",
+
 "windows-sys 0.52.0",
+
]
+

+
[[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-util"
+
version = "0.7.11"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
+
dependencies = [
+
 "bytes",
+
 "futures-core",
+
 "futures-sink",
+
 "pin-project-lite",
+
 "tokio",
+
]
+

+
[[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"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+
dependencies = [
+
 "pin-project-lite",
+
 "tracing-core",
+
]
+

+
[[package]]
+
name = "tracing-core"
+
version = "0.1.32"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+
dependencies = [
+
 "once_cell",
+
]
+

+
[[package]]
name = "tree-sitter"
version = "0.20.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2896,6 +4684,12 @@ dependencies = [
]

[[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"
@@ -2962,6 +4756,7 @@ dependencies = [
 "form_urlencoded",
 "idna",
 "percent-encoding",
+
 "serde",
]

[[package]]
@@ -2971,6 +4766,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"

[[package]]
+
name = "value-bag"
+
version = "1.9.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5a84c137d37ab0142f0f2ddfe332651fdbf252e7b7dbb4e67b6c1f1b2e925101"
+

+
[[package]]
name = "vcpkg"
version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2983,6 +4784,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"

[[package]]
+
name = "waker-fn"
+
version = "1.2.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7"
+

+
[[package]]
name = "walkdir"
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2993,6 +4800,21 @@ dependencies = [
]

[[package]]
+
name = "want"
+
version = "0.3.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
+
dependencies = [
+
 "try-lock",
+
]
+

+
[[package]]
+
name = "wasi"
+
version = "0.9.0+wasi-snapshot-preview1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+

+
[[package]]
name = "wasi"
version = "0.11.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3024,6 +4846,18 @@ dependencies = [
]

[[package]]
+
name = "wasm-bindgen-futures"
+
version = "0.4.42"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
+
dependencies = [
+
 "cfg-if",
+
 "js-sys",
+
 "wasm-bindgen",
+
 "web-sys",
+
]
+

+
[[package]]
name = "wasm-bindgen-macro"
version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3053,6 +4887,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"

[[package]]
+
name = "web-sys"
+
version = "0.3.69"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
+
dependencies = [
+
 "js-sys",
+
 "wasm-bindgen",
+
]
+

+
[[package]]
+
name = "winapi"
+
version = "0.3.9"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+
dependencies = [
+
 "winapi-i686-pc-windows-gnu",
+
 "winapi-x86_64-pc-windows-gnu",
+
]
+

+
[[package]]
+
name = "winapi-i686-pc-windows-gnu"
+
version = "0.4.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+

+
[[package]]
name = "winapi-util"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3062,6 +4922,12 @@ dependencies = [
]

[[package]]
+
name = "winapi-x86_64-pc-windows-gnu"
+
version = "0.4.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+

+
[[package]]
name = "windows-core"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3219,14 +5085,24 @@ dependencies = [
]

[[package]]
+
name = "winreg"
+
version = "0.50.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+
dependencies = [
+
 "cfg-if",
+
 "windows-sys 0.48.0",
+
]
+

+
[[package]]
name = "xattr"
version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
dependencies = [
 "libc",
-
 "linux-raw-sys",
-
 "rustix",
+
 "linux-raw-sys 0.4.13",
+
 "rustix 0.38.34",
]

[[package]]
@@ -3240,3 +5116,17 @@ name = "zeroize"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+
dependencies = [
+
 "zeroize_derive",
+
]
+

+
[[package]]
+
name = "zeroize_derive"
+
version = "1.4.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "syn 2.0.60",
+
]
modified Cargo.toml
@@ -9,6 +9,7 @@ members = [
  "radicle-crypto",
  "radicle-dag",
  "radicle-fetch",
+
  "radicle-keri",
  "radicle-node",
  "radicle-remote-helper",
  "radicle-ssh",
@@ -22,6 +23,7 @@ default-members = [
  "radicle-cob",
  "radicle-crdt",
  "radicle-crypto",
+
  "radicle-keri",
  "radicle-node",
  "radicle-ssh",
  "radicle-remote-helper",
modified flake.nix
@@ -234,6 +234,10 @@
          ripgrep
          rust-analyzer
          sqlite
+

+
          # For KERI.
+
          openssl
+
          pkg-config
        ];

        env.RUST_SRC_PATH = "${rustToolChain}/lib/rustlib/src/rust/library";
added radicle-keri/Cargo.toml
@@ -0,0 +1,14 @@
+
[package]
+
name = "radicle-keri"
+
homepage = "https://radicle.xyz"
+
repository = "https://app.radicle.xyz/seeds/seed.radicle.xyz/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5"
+
license = "MIT OR Apache-2.0"
+
edition = "2021"
+
version = "0.9.0"
+

+
[dependencies]
+
keri-controller = "0.12.7"
+
keri-core = "0.12.7"
+
tempfile = "*"
+
async-std = "*"
+
serde_json = "*"

\ No newline at end of file
added radicle-keri/src/lib.rs
@@ -0,0 +1,307 @@
+
use std::sync::Arc;
+

+
use keri_controller::{
+
    config::ControllerConfig, controller::Controller, error::ControllerError,
+
    identifier::query::QueryResponse, BasicPrefix, CryptoBox, EndRole, IdentifierPrefix,
+
    KeyManager, LocationScheme, Oobi, SelfSigningPrefix,
+
};
+
use keri_core::processor::validator::{MoreInfoError, VerificationError};
+
use tempfile::Builder;
+

+
#[async_std::test]
+
async fn indirect_mode_signing() -> Result<(), ControllerError> {
+
    let first_witness_id: BasicPrefix = "BDg3H7Sr-eES0XWXiO8nvMxW6mD_1LxLeE1nuiZxhGp4"
+
        .parse()
+
        .unwrap();
+
    // OOBI (Out-Of-Band Introduction) specifies the way how actors can be found.
+
    let first_witness_oobi: LocationScheme = serde_json::from_str(&format!(
+
        r#"{{"eid":{:?},"scheme":"http","url":"http://witness2.sandbox.argo.colossi.network/"}}"#,
+
        first_witness_id
+
    ))
+
    .unwrap();
+

+
    let second_witness_id: BasicPrefix = "BDg1zxxf8u4Hx5IPraZzmStfSCZFZbDzMHjqVcFW5OfP"
+
        .parse()
+
        .unwrap();
+
    let second_witness_oobi: LocationScheme = serde_json::from_str(&format!(
+
        r#"{{"eid":{:?},"scheme":"http","url":"http://witness3.sandbox.argo.colossi.network/"}}"#,
+
        second_witness_id
+
    ))
+
    .unwrap();
+

+
    // Setup database path and key manager.
+
    let database_path = Builder::new().prefix("test-db0").tempdir().unwrap();
+
    let mut key_manager = CryptoBox::new().unwrap();
+

+
    // The `Controller` structure aggregates all known KEL events (across all
+
    // identifiers) and offers functions for retrieving them, verifying the
+
    // integrity of new events, and conducting signature verification.
+
    let signer_controller = Arc::new(Controller::new(ControllerConfig {
+
        db_path: database_path.path().to_owned(),
+
        ..Default::default()
+
    })?);
+

+
    // Incept identifier.
+
    // The `Identifier` structure facilitates the management of the
+
    // Key Event Log specific to a particular identifier.
+
    let pk = BasicPrefix::Ed25519(key_manager.public_key());
+
    let npk = BasicPrefix::Ed25519(key_manager.next_public_key());
+

+
    // Create inception event, that needs one witness receipt to be accepted.
+
    let icp_event = signer_controller
+
        .incept(
+
            vec![pk],
+
            vec![npk],
+
            vec![first_witness_oobi.clone(), second_witness_oobi.clone()],
+
            1,
+
        )
+
        .await?;
+
    let signature =
+
        SelfSigningPrefix::Ed25519Sha512(key_manager.sign(icp_event.as_bytes()).unwrap());
+

+
    let mut signing_identifier =
+
        signer_controller.finalize_incept(icp_event.as_bytes(), &signature)?;
+

+
    println!("Signer: {}", &signing_identifier.id());
+

+
    // The Event Seal specifies the stage of KEL at the time of signature creation.
+
    // This enables us to retrieve the correct public keys from KEL during verification.
+
    // Trying to get current actor event seal.
+
    let inception_event_seal = signing_identifier.get_last_establishment_event_seal();
+

+
    // It fails because witness receipts are missing.
+
    assert!(matches!(
+
        inception_event_seal,
+
        Err(ControllerError::UnknownIdentifierError)
+
    ));
+

+
    // Publish event to actor's witnesses
+
    signing_identifier.notify_witnesses().await.unwrap();
+

+
    // Querying witness to get receipts
+
    for qry in signing_identifier
+
        .query_mailbox(signing_identifier.id(), &[first_witness_id.clone()])
+
        .unwrap()
+
    {
+
        let signature =
+
            SelfSigningPrefix::Ed25519Sha512(key_manager.sign(&qry.encode().unwrap()).unwrap());
+
        signing_identifier
+
            .finalize_query_mailbox(vec![(qry, signature)])
+
            .await
+
            .unwrap();
+
    }
+

+
    // Now KEL event should be accepted and event seal exists.
+
    let signing_event_seal = signing_identifier.get_last_establishment_event_seal();
+
    assert!(signing_event_seal.is_ok());
+
    let signing_event_seal = signing_event_seal.unwrap();
+

+
    // Sign message with established identifier
+
    let first_message = "Hi".as_bytes();
+
    let first_message_signature = vec![SelfSigningPrefix::Ed25519Sha512(
+
        key_manager.sign(first_message).unwrap(),
+
    )];
+

+
    let first_signature = signing_identifier.sign_data(first_message, &first_message_signature)?;
+

+
    // Establish verifying identifier
+
    // Setup database path and key manager.
+
    let verifier_database_path = Builder::new().prefix("test-db1").tempdir().unwrap();
+
    let verifier_key_manager = CryptoBox::new().unwrap();
+

+
    let verifying_controller = Arc::new(Controller::new(ControllerConfig {
+
        db_path: verifier_database_path.path().to_owned(),
+
        ..Default::default()
+
    })?);
+

+
    let pk = BasicPrefix::Ed25519(verifier_key_manager.public_key());
+
    let npk = BasicPrefix::Ed25519(verifier_key_manager.next_public_key());
+

+
    // Create inception event, that needs one witness receipt to be accepted.
+
    let icp_event = verifying_controller
+
        .incept(
+
            vec![pk],
+
            vec![npk],
+
            vec![first_witness_oobi.clone(), second_witness_oobi.clone()],
+
            1,
+
        )
+
        .await?;
+
    let signature =
+
        SelfSigningPrefix::Ed25519Sha512(verifier_key_manager.sign(icp_event.as_bytes()).unwrap());
+

+
    let mut verifying_identifier =
+
        verifying_controller.finalize_incept(icp_event.as_bytes(), &signature)?;
+

+
    println!("Verifier: {}", verifying_identifier.id());
+

+
    // Publish event to actor's witnesses
+
    verifying_identifier.notify_witnesses().await.unwrap();
+

+
    // Querying witness to get receipts
+
    for qry in verifying_identifier
+
        .query_mailbox(verifying_identifier.id(), &[first_witness_id.clone()])
+
        .unwrap()
+
    {
+
        let signature = SelfSigningPrefix::Ed25519Sha512(
+
            verifier_key_manager.sign(&qry.encode().unwrap()).unwrap(),
+
        );
+
        verifying_identifier
+
            .finalize_query_mailbox(vec![(qry, signature)])
+
            .await
+
            .unwrap();
+
    }
+

+
    // Check if verifying identifier was established successfully
+
    let inception_event_seal = verifying_identifier.get_last_establishment_event_seal();
+
    assert!(inception_event_seal.is_ok());
+

+
    // Now setup watcher, to be able to query of signing identifier KEL.
+
    let watcher_id: IdentifierPrefix = "BF2t2NPc1bwptY1hYV0YCib1JjQ11k9jtuaZemecPF5b"
+
        .parse()
+
        .unwrap();
+
    let watcher_oobi: Oobi = serde_json::from_str(&format!(
+
        r#"{{"eid":"{}","scheme":"http","url":"http://watcher.sandbox.argo.colossi.network/"}}"#,
+
        watcher_id
+
    ))
+
    .unwrap();
+

+
    // Resolve watcher oobi
+
    verifying_identifier.resolve_oobi(&watcher_oobi).await?;
+

+
    // Generate and sign event, that will be sent to watcher, so it knows to act
+
    // as verifier's watcher.
+
    let add_watcher = verifying_identifier.add_watcher(watcher_id)?;
+
    let signature = SelfSigningPrefix::Ed25519Sha512(
+
        verifier_key_manager.sign(add_watcher.as_bytes()).unwrap(),
+
    );
+

+
    verifying_identifier
+
        .finalize_add_watcher(add_watcher.as_bytes(), signature)
+
        .await?;
+

+
    // Now query about signer's kel.
+
    // To find `signing_identifier`s KEL, `verifying_identifier` needs to
+
    // provide to watcher its oobi and oobi of its witnesses.
+
    for wit_oobi in vec![first_witness_oobi, second_witness_oobi] {
+
        let oobi = Oobi::Location(wit_oobi);
+
        verifying_identifier.resolve_oobi(&oobi).await?;
+
        verifying_identifier
+
            .send_oobi_to_watcher(&verifying_identifier.id(), &oobi)
+
            .await?;
+
    }
+
    let signer_oobi = EndRole {
+
        cid: signing_identifier.id().clone(),
+
        role: keri_core::oobi::Role::Witness,
+
        eid: keri_controller::IdentifierPrefix::Basic(second_witness_id.clone()),
+
    };
+

+
    verifying_identifier
+
        .send_oobi_to_watcher(&verifying_identifier.id(), &Oobi::EndRole(signer_oobi))
+
        .await?;
+

+
    // Query kel of signing identifier
+
    let queries_and_signatures: Vec<_> = verifying_identifier
+
        .query_watchers(&signing_event_seal)?
+
        .into_iter()
+
        .map(|qry| {
+
            let signature = SelfSigningPrefix::Ed25519Sha512(
+
                verifier_key_manager.sign(&qry.encode().unwrap()).unwrap(),
+
            );
+
            (qry, signature)
+
        })
+
        .collect();
+

+
    let (mut response, _) = verifying_identifier
+
        .finalize_query(queries_and_signatures.clone())
+
        .await;
+
    // Watcher might need some time to find KEL. Ask about it until it's ready.
+
    while let QueryResponse::NoUpdates = response {
+
        (response, _) = verifying_identifier
+
            .finalize_query(queries_and_signatures.clone())
+
            .await;
+
    }
+

+
    // Verify signed message.
+
    assert!(verifying_controller
+
        .verify(first_message, &first_signature)
+
        .is_ok());
+

+
    // Rotate signer keys
+
    key_manager.rotate()?;
+
    let pk = BasicPrefix::Ed25519(key_manager.public_key());
+
    let npk = BasicPrefix::Ed25519(key_manager.next_public_key());
+

+
    // Rotation needs two witness receipts to be accepted
+
    let rotation_event = signing_identifier
+
        .rotate(vec![pk], vec![npk], 1, vec![], vec![], 2)
+
        .await?;
+

+
    let signature = SelfSigningPrefix::Ed25519Sha512(key_manager.sign(rotation_event.as_bytes())?);
+
    signing_identifier
+
        .finalize_rotate(rotation_event.as_bytes(), signature)
+
        .await?;
+

+
    // Publish event to actor's witnesses
+
    signing_identifier.notify_witnesses().await.unwrap();
+

+
    // Querying witnesses to get receipts
+
    for qry in signing_identifier
+
        .query_mailbox(
+
            signing_identifier.id(),
+
            &[first_witness_id.clone(), second_witness_id.clone()],
+
        )
+
        .unwrap()
+
    {
+
        let signature =
+
            SelfSigningPrefix::Ed25519Sha512(key_manager.sign(&qry.encode().unwrap()).unwrap());
+
        signing_identifier
+
            .finalize_query_mailbox(vec![(qry, signature)])
+
            .await
+
            .unwrap();
+
    }
+

+
    // Sign message with rotated keys.
+
    let second_message = "Hi".as_bytes();
+
    let second_message_signature = vec![SelfSigningPrefix::Ed25519Sha512(
+
        key_manager.sign(second_message).unwrap(),
+
    )];
+

+
    let current_event_seal = signing_identifier.get_last_establishment_event_seal()?;
+
    let second_signature =
+
        signing_identifier.sign_data(second_message, &second_message_signature)?;
+

+
    // Try to verify it, it should fail, because verifier doesn't know signer's rotation event.
+
    assert!(matches!(
+
        verifying_controller
+
            .verify(second_message, &second_signature)
+
            .unwrap_err(),
+
        VerificationError::MoreInfo(MoreInfoError::EventNotFound(_))
+
    ));
+

+
    // Query kel of signing identifier
+
    let queries_and_signatures: Vec<_> = verifying_identifier
+
        .query_watchers(&current_event_seal)?
+
        .into_iter()
+
        .map(|qry| {
+
            let signature = SelfSigningPrefix::Ed25519Sha512(
+
                verifier_key_manager.sign(&qry.encode().unwrap()).unwrap(),
+
            );
+
            (qry, signature)
+
        })
+
        .collect();
+

+
    let (mut response, _) = verifying_identifier
+
        .finalize_query(queries_and_signatures.clone())
+
        .await;
+
    // Watcher might need some time to find KEL. Ask about it until it's ready.
+
    while let QueryResponse::NoUpdates = response {
+
        (response, _) = verifying_identifier
+
            .finalize_query(queries_and_signatures.clone())
+
            .await;
+
    }
+

+
    let verification_result = verifying_controller.verify(second_message, &second_signature);
+
    assert!(verification_result.is_ok());
+

+
    Ok(())
+
}