From d05e3b01af441ccf975152995701e9e29606bd11 Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 22 Oct 2026 20:37:34 +0200 Subject: introduce pre-shared swarm key --- src/transport/mycelium.rs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/transport/mycelium.rs') diff --git a/src/transport/mycelium.rs b/src/transport/mycelium.rs index a5a9458..5df6139 100644 --- a/src/transport/mycelium.rs +++ b/src/transport/mycelium.rs @@ -796,6 +796,8 @@ fn bytes_to_keepalive(bytes: &[u8]) -> Result { pub struct HelloRequestShadow { #[serde(default)] epoch: EpochShadow, + #[serde(default)] + auth: ByteBuf, } #[derive(Serialize, Deserialize)] @@ -806,6 +808,8 @@ pub struct HelloReplyShadow<'a> { pub peers: Vec, #[serde(default)] epoch: EpochShadow, + #[serde(default)] + auth: ByteBuf, } #[derive(Serialize, Deserialize)] @@ -850,12 +854,14 @@ mod automerge_msg_codec { pub fn hello_request_to_bytes(msg: &HelloRequest) -> Result, rmp_serde::encode::Error> { rmp_serde::to_vec(&HelloRequestShadow { epoch: epoch_to_shadow(&msg.epoch), + auth: ByteBuf::from(msg.auth.clone()), }) } pub fn bytes_to_hello_request(bytes: &[u8]) -> Result { let shadow: HelloRequestShadow = rmp_serde::from_slice(bytes)?; Ok(HelloRequest { epoch: epoch_from_shadow(shadow.epoch)?, + auth: shadow.auth.into_vec(), }) } @@ -865,6 +871,7 @@ pub fn hello_reply_to_bytes(msg: &HelloReply) -> Result, rmp_serde::enco swarm_id: Cow::Borrowed(&msg.swarm_id), peers: msg.peers.clone(), // Vec must be cloned for serialization wrapper matching epoch: epoch_to_shadow(&msg.epoch), + auth: ByteBuf::from(msg.auth.clone()), }; rmp_serde::to_vec(&shadow) } @@ -874,6 +881,7 @@ pub fn bytes_to_hello_reply(bytes: &[u8]) -> Result swarm_id: shadow.swarm_id.into_owned(), peers: shadow.peers, epoch: epoch_from_shadow(shadow.epoch)?, + auth: shadow.auth.into_vec(), }) } -- cgit v1.3.1