chore: prep Phase 3 tasks and workspace for alknet-secret development

- Add irpc (0.16) and irpc-derive (0.16) as workspace dependencies
- Add irpc, irpc-derive, and secp256k1 (optional) to alknet-secret Cargo.toml
- Clarify encryption-salt-kdf task: Option B (document salt as reserved) is the
  chosen path per spec update, removing Option A acceptance criteria
- Update irpc-secret-protocol-integration task with concrete irpc crate details:
  real crate on crates.io v0.16, #[rpc_requests] macro, workspace config,
  AuthProtocol pattern reference, DerivedKey serialization considerations
- Fix secp256k1-ethereum-derivation task: correct crate name is secp256k1
  (not libsecp256k1), add version pin 0.29
This commit is contained in:
2026-06-10 05:57:27 +00:00
parent 9ec7627d80
commit 83ea66b5d1
6 changed files with 378 additions and 113 deletions

259
Cargo.lock generated
View File

@@ -136,7 +136,10 @@ dependencies = [
"ed25519-bip32",
"hex",
"hmac",
"irpc",
"irpc-derive",
"rand 0.8.6",
"secp256k1",
"serde",
"serde_json",
"sha2",
@@ -793,6 +796,15 @@ version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
[[package]]
name = "convert_case"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9"
dependencies = [
"unicode-segmentation",
]
[[package]]
name = "convert_case"
version = "0.11.0"
@@ -1102,7 +1114,16 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05"
dependencies = [
"derive_more-impl",
"derive_more-impl 1.0.0",
]
[[package]]
name = "derive_more"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134"
dependencies = [
"derive_more-impl 2.1.1",
]
[[package]]
@@ -1117,6 +1138,20 @@ dependencies = [
"unicode-xid",
]
[[package]]
name = "derive_more-impl"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb"
dependencies = [
"convert_case 0.10.0",
"proc-macro2",
"quote",
"rustc_version",
"syn",
"unicode-xid",
]
[[package]]
name = "des"
version = "0.8.1"
@@ -1281,6 +1316,17 @@ dependencies = [
"syn",
]
[[package]]
name = "enum-assoc"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ed8956bd5c1f0415200516e78ff07ec9e16415ade83c056c230d7b7ea0d55b7"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "enumflags2"
version = "0.7.12"
@@ -1621,11 +1667,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555"
dependencies = [
"cfg-if",
"js-sys",
"libc",
"r-efi 6.0.0",
"rand_core 0.10.1",
"wasip2",
"wasip3",
"wasm-bindgen",
]
[[package]]
@@ -2078,6 +2126,12 @@ version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954"
[[package]]
name = "identity-hash"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dfdd7caa900436d8f13b2346fe10257e0c05c1f1f9e351f4f5d57c03bd5f45da"
[[package]]
name = "idna"
version = "1.1.0"
@@ -2195,7 +2249,7 @@ dependencies = [
"crypto_box",
"data-encoding",
"der",
"derive_more",
"derive_more 1.0.0",
"ed25519-dalek",
"futures-util",
"hickory-resolver",
@@ -2208,7 +2262,7 @@ dependencies = [
"iroh-quinn-proto",
"iroh-quinn-udp",
"iroh-relay",
"n0-future",
"n0-future 0.1.3",
"netdev",
"netwatch",
"pin-project",
@@ -2246,7 +2300,7 @@ checksum = "3cd952d9e25e521d6aeb5b79f2fe32a0245da36aae3569e50f6010b38a5f0923"
dependencies = [
"curve25519-dalek",
"data-encoding",
"derive_more",
"derive_more 1.0.0",
"ed25519-dalek",
"rand_core 0.6.4",
"serde",
@@ -2332,7 +2386,7 @@ dependencies = [
"bytes",
"cfg_aliases",
"data-encoding",
"derive_more",
"derive_more 1.0.0",
"hickory-resolver",
"http 1.4.1",
"http-body-util",
@@ -2343,7 +2397,7 @@ dependencies = [
"iroh-quinn",
"iroh-quinn-proto",
"lru",
"n0-future",
"n0-future 0.1.3",
"num_enum",
"pin-project",
"pkarr",
@@ -2366,6 +2420,39 @@ dependencies = [
"z32",
]
[[package]]
name = "irpc"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a05799eb70acd04843c327ef939233ccf80f607d30e9ca94857ac7f3d8f18b46"
dependencies = [
"futures-buffered",
"futures-util",
"irpc-derive",
"n0-error",
"n0-future 0.3.2",
"noq",
"postcard",
"rcgen 0.14.8",
"rustls",
"serde",
"smallvec",
"tokio",
"tokio-util",
"tracing",
]
[[package]]
name = "irpc-derive"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "445d81dbc1eed4dab6379bf7f97d12ac28ce8e6f3f7d6660c9f333b7b5d8d03b"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "is_terminal_polyfill"
version = "1.70.2"
@@ -2575,6 +2662,27 @@ dependencies = [
"uuid",
]
[[package]]
name = "n0-error"
version = "1.0.0-rc.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "223e946a84aa91644507a6b7865cfebbb9a231ace499041c747ab0fd30408212"
dependencies = [
"n0-error-macros",
"spez",
]
[[package]]
name = "n0-error-macros"
version = "1.0.0-rc.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "565305a21e6b3bf26640ad98f05a0fda12d3ab4315394566b52a7bddb8b34828"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "n0-future"
version = "0.1.3"
@@ -2582,7 +2690,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bb0e5d99e681ab3c938842b96fcb41bf8a7bb4bfdb11ccbd653a7e83e06c794"
dependencies = [
"cfg_aliases",
"derive_more",
"derive_more 1.0.0",
"futures-buffered",
"futures-lite",
"futures-util",
"js-sys",
"pin-project",
"send_wrapper",
"tokio",
"tokio-util",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-time",
]
[[package]]
name = "n0-future"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2ab99dfb861450e68853d34ae665243a88b8c493d01ba957321a1e9b2312bbe"
dependencies = [
"cfg_aliases",
"derive_more 2.1.1",
"futures-buffered",
"futures-lite",
"futures-util",
@@ -2634,7 +2763,7 @@ version = "3.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89b3f766e04667e6da0e181e2da4f85475d5a6513b7cf6a80bea184e224a5b42"
dependencies = [
"convert_case",
"convert_case 0.11.0",
"ctor",
"napi-derive-backend",
"proc-macro2",
@@ -2648,7 +2777,7 @@ version = "5.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0d5af30503edf933ce7377cf6d4c877a62b0f1107ea05585f1b5e430e88d5baf"
dependencies = [
"convert_case",
"convert_case 0.11.0",
"proc-macro2",
"quote",
"semver",
@@ -2768,11 +2897,11 @@ dependencies = [
"atomic-waker",
"bytes",
"cfg_aliases",
"derive_more",
"derive_more 1.0.0",
"iroh-quinn-udp",
"js-sys",
"libc",
"n0-future",
"n0-future 0.1.3",
"netdev",
"netlink-packet-core",
"netlink-packet-route 0.19.0",
@@ -2836,6 +2965,68 @@ dependencies = [
"minimal-lexical",
]
[[package]]
name = "noq"
version = "1.0.0-rc.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "198b99fc085a5db1f7d259edb5ede8311e59f28cdd2687920b4313613d21a73f"
dependencies = [
"bytes",
"cfg_aliases",
"derive_more 2.1.1",
"noq-proto",
"noq-udp",
"pin-project-lite",
"rustc-hash",
"rustls",
"socket2 0.6.4",
"thiserror 2.0.18",
"tokio",
"tokio-stream",
"tracing",
"web-time",
]
[[package]]
name = "noq-proto"
version = "1.0.0-rc.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ab0ac774795ce1e42a7e61266e71f3be8110210630441169ac8dda403dd23f1"
dependencies = [
"aes-gcm",
"bytes",
"derive_more 2.1.1",
"enum-assoc",
"getrandom 0.4.2",
"identity-hash",
"lru-slab",
"rand 0.10.1",
"rand_pcg",
"ring",
"rustc-hash",
"rustls",
"rustls-pki-types",
"slab",
"sorted-index-buffer",
"thiserror 2.0.18",
"tinyvec",
"tracing",
"web-time",
]
[[package]]
name = "noq-udp"
version = "1.0.0-rc.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b3c1520eacd33fd6b009e2e70116b05508ade51db5e0d315ff8bf6b702148c2b"
dependencies = [
"cfg_aliases",
"libc",
"socket2 0.6.4",
"tracing",
"windows-sys 0.61.2",
]
[[package]]
name = "nu-ansi-term"
version = "0.50.3"
@@ -3328,7 +3519,7 @@ checksum = "247dcb75747c53cc433d6d8963a064187eec4a676ba13ea33143f1c9100e754f"
dependencies = [
"base64",
"bytes",
"derive_more",
"derive_more 1.0.0",
"futures-lite",
"futures-util",
"igd-next",
@@ -3652,6 +3843,15 @@ version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69"
[[package]]
name = "rand_pcg"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a"
dependencies = [
"rand_core 0.10.1",
]
[[package]]
name = "rcgen"
version = "0.13.2"
@@ -4179,6 +4379,24 @@ dependencies = [
"zeroize",
]
[[package]]
name = "secp256k1"
version = "0.29.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113"
dependencies = [
"secp256k1-sys",
]
[[package]]
name = "secp256k1-sys"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9"
dependencies = [
"cc",
]
[[package]]
name = "self_cell"
version = "1.2.2"
@@ -4387,6 +4605,23 @@ dependencies = [
"windows-sys 0.61.2",
]
[[package]]
name = "sorted-index-buffer"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea06cc588e43c632923a55450401b8f25e628131571d4e1baea1bdfdb2b5ed06"
[[package]]
name = "spez"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c87e960f4dca2788eeb86bbdde8dd246be8948790b7618d656e68f9b720a86e8"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "spin"
version = "0.9.8"