diff --git a/Cargo.lock b/Cargo.lock index f9bddad..9826cbb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1614,9 +1614,9 @@ dependencies = [ [[package]] name = "hybrid-array" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a79f2aff40c18ab8615ddc5caa9eb5b96314aef18fe5823090f204ad988e813" +checksum = "3944cf8cf766b40e2a1a333ee5e9b563f854d5fa49d6a8ca2764e97c6eddb214" dependencies = [ "subtle", "typenum", @@ -1816,9 +1816,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.93" +version = "0.3.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "797146bb2677299a1eb6b7b50a890f4c361b29ef967addf5b2fa45dae1bb6d7d" +checksum = "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9" dependencies = [ "cfg-if", "futures-util", @@ -1878,9 +1878,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.183" +version = "0.2.184" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" +checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" [[package]] name = "libm" @@ -2444,7 +2444,7 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit 0.25.8+spec-1.1.0", + "toml_edit 0.25.10+spec-1.1.0", ] [[package]] @@ -2693,9 +2693,9 @@ dependencies = [ [[package]] name = "rustcrypto-ff" -version = "0.14.0-rc.0" +version = "0.14.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5db129183b2c139d7d87d08be57cba626c715789db17aec65c8866bfd767d1f" +checksum = "fd2a8adb347447693cd2ba0d218c4b66c62da9b0a5672b17b981e4291ec65ff6" dependencies = [ "rand_core 0.10.0", "subtle", @@ -2703,9 +2703,9 @@ dependencies = [ [[package]] name = "rustcrypto-group" -version = "0.14.0-rc.0" +version = "0.14.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c4b1463f274a3ff6fb2f44da43e576cb9424367bd96f185ead87b52fe00523" +checksum = "369f9b61aa45933c062c9f6b5c3c50ab710687eca83dd3802653b140b43f85ed" dependencies = [ "rand_core 0.10.0", "rustcrypto-ff", @@ -2740,17 +2740,17 @@ checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" [[package]] name = "sachy-config" version = "0.1.0" -source = "git+https://tangled.org/sachy.dev/sachy-embed-core#2485a1626c11ec976be8ec402b26a8812f72d3e4" +source = "git+https://tangled.org/sachy.dev/sachy-embed-core#7e8218e9f40024412b7d813bf5052ed83036e3f3" dependencies = [ "base64ct", "miette", - "toml_edit 0.25.8+spec-1.1.0", + "toml_edit 0.25.10+spec-1.1.0", ] [[package]] name = "sachy-crypto" version = "0.1.0" -source = "git+https://tangled.org/sachy.dev/sachy-embed-core#2485a1626c11ec976be8ec402b26a8812f72d3e4" +source = "git+https://tangled.org/sachy.dev/sachy-embed-core#7e8218e9f40024412b7d813bf5052ed83036e3f3" dependencies = [ "chacha20poly1305", "dhkem", @@ -2762,12 +2762,12 @@ dependencies = [ [[package]] name = "sachy-fmt" version = "0.1.0" -source = "git+https://tangled.org/sachy.dev/sachy-embed-core#2485a1626c11ec976be8ec402b26a8812f72d3e4" +source = "git+https://tangled.org/sachy.dev/sachy-embed-core#7e8218e9f40024412b7d813bf5052ed83036e3f3" [[package]] name = "sachy-mdns" version = "0.1.0" -source = "git+https://tangled.org/sachy.dev/sachy-embed-core#2485a1626c11ec976be8ec402b26a8812f72d3e4" +source = "git+https://tangled.org/sachy.dev/sachy-embed-core#7e8218e9f40024412b7d813bf5052ed83036e3f3" dependencies = [ "sachy-fmt", "winnow 0.7.15", @@ -2790,9 +2790,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sec1" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46b9a5ab87780a3189a1d704766579517a04ad59de653b7aad7d38e8a15f7dc" +checksum = "d56d437c2f19203ce5f7122e507831de96f3d2d4d3be5af44a0b0a09d8a80e4d" dependencies = [ "base16ct", "ctutils", @@ -3040,6 +3040,7 @@ dependencies = [ name = "striker-proto" version = "0.1.0" dependencies = [ + "aead", "dhkem", "postcard", "sachy-crypto", @@ -3286,9 +3287,9 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "1.1.0+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" dependencies = [ "serde_core", ] @@ -3307,12 +3308,12 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.25.8+spec-1.1.0" +version = "0.25.10+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16bff38f1d86c47f9ff0647e6838d7bb362522bdf44006c7068c2b1e606f1f3c" +checksum = "a82418ca169e235e6c399a84e395ab6debeb3bc90edc959bf0f48647c6a32d1b" dependencies = [ "indexmap", - "toml_datetime 1.1.0+spec-1.1.0", + "toml_datetime 1.1.1+spec-1.1.0", "toml_parser", "toml_writer", "winnow 1.0.1", @@ -3320,18 +3321,18 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.1.0+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ "winnow 1.0.1", ] [[package]] name = "toml_writer" -version = "1.1.0+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d282ade6016312faf3e41e57ebbba0c073e4056dab1232ab1cb624199648f8ed" +checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" [[package]] name = "tracing" @@ -3589,9 +3590,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.116" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dc0882f7b5bb01ae8c5215a1230832694481c1a4be062fd410e12ea3da5b631" +checksum = "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0" dependencies = [ "cfg-if", "once_cell", @@ -3602,9 +3603,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.66" +version = "0.4.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19280959e2844181895ef62f065c63e0ca07ece4771b53d89bfdb967d97cbf05" +checksum = "03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e" dependencies = [ "js-sys", "wasm-bindgen", @@ -3612,9 +3613,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.116" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75973d3066e01d035dbedaad2864c398df42f8dd7b1ea057c35b8407c015b537" +checksum = "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3622,9 +3623,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.116" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91af5e4be765819e0bcfee7322c14374dc821e35e72fa663a830bbc7dc199eac" +checksum = "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2" dependencies = [ "bumpalo", "proc-macro2", @@ -3635,9 +3636,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.116" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9bf0406a78f02f336bf1e451799cca198e8acde4ffa278f0fb20487b150a633" +checksum = "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b" dependencies = [ "unicode-ident", ] @@ -3678,9 +3679,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.93" +version = "0.3.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "749466a37ee189057f54748b200186b59a03417a117267baf3fd89cecc9fb837" +checksum = "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/striker-proto/Cargo.toml b/striker-proto/Cargo.toml index b165615..78c105c 100644 --- a/striker-proto/Cargo.toml +++ b/striker-proto/Cargo.toml @@ -9,5 +9,6 @@ license.workspace = true [dependencies] serde = { workspace = true, features = ["alloc"] } postcard = { workspace = true, features = ["alloc"] } -sachy-crypto = { git = "https://tangled.org/sachy.dev/sachy-embed-core" } +sachy-crypto = { git = "https://tangled.org/sachy.dev/sachy-embed-core", features = ["alloc"] } +aead = "=0.6.0-rc.10" dhkem = { version = "0.1.0-rc.0", features = ["ecdh", "k256"] } diff --git a/striker-proto/src/lib.rs b/striker-proto/src/lib.rs index 531f15b..051c644 100644 --- a/striker-proto/src/lib.rs +++ b/striker-proto/src/lib.rs @@ -1,5 +1,6 @@ #![no_std] +use aead::Buffer; use alloc::{string::String, vec::Vec}; use dhkem::{Secp256k1Kem, kem::Ciphertext}; use sachy_crypto::{ @@ -107,9 +108,9 @@ impl ClientSender<'_> { pub fn encode_request( &mut self, request: StrikerRequest, - msg: &mut alloc::vec::Vec, + msg: &mut dyn Buffer, ) -> Result<(), ProtoError> { - let written = postcard::to_slice(&request, msg.as_mut_slice()) + let written = postcard::to_slice(&request, msg.as_mut()) .map_err(|_| ProtoError)? .len(); @@ -124,11 +125,11 @@ pub struct ClientReceiver<'a>(ReceivingState<'a>); impl ClientReceiver<'_> { pub fn decode_response( &mut self, - msg: &mut alloc::vec::Vec, + msg: &mut dyn Buffer, ) -> Result { self.0.decrypt(msg, PROTO_ASSOCIATED_DATA)?; - postcard::from_bytes(msg).map_err(|_| ProtoError) + postcard::from_bytes(msg.as_mut()).map_err(|_| ProtoError) } } @@ -148,9 +149,9 @@ impl ServerSender<'_> { pub fn encode_response( &mut self, response: StrikerResponse, - msg: &mut alloc::vec::Vec, + msg: &mut dyn Buffer, ) -> Result<(), ProtoError> { - let written = postcard::to_slice(&response, msg.as_mut_slice()) + let written = postcard::to_slice(&response, msg.as_mut()) .map_err(|_| ProtoError)? .len(); @@ -165,10 +166,10 @@ pub struct ServerReceiver<'a>(ReceivingState<'a>); impl ServerReceiver<'_> { pub fn decode_request( &mut self, - msg: &mut alloc::vec::Vec, + msg: &mut dyn Buffer, ) -> Result { self.0.decrypt(msg, PROTO_ASSOCIATED_DATA)?; - postcard::from_bytes(msg).map_err(|_| ProtoError) + postcard::from_bytes(msg.as_mut()).map_err(|_| ProtoError) } }