pub struct EncryptedMessage {
pub group_id: GroupId,
pub message_type: MlsMessageType,
pub epoch: u64,
pub ciphertext: Vec<u8>,
pub sender_id: String,
pub timestamp_ms: u64,
}Expand description
An encrypted MLS message ready for transport.
Fields§
§group_id: GroupIdThe group ID this message belongs to.
message_type: MlsMessageTypeType of MLS message.
epoch: u64Current epoch when the message was created.
ciphertext: Vec<u8>Serialized MLS message bytes.
sender_id: StringSender’s user ID.
timestamp_ms: u64Timestamp when the message was created.
Implementations§
Source§impl EncryptedMessage
impl EncryptedMessage
Sourcepub fn to_base64(&self) -> Result<String>
pub fn to_base64(&self) -> Result<String>
Encodes the encrypted message to base64 for transport.
Sourcepub fn from_base64(encoded: &str) -> Result<Self>
pub fn from_base64(encoded: &str) -> Result<Self>
Decodes an encrypted message from base64.
Sourcepub fn to_bytes(&self) -> Vec<u8> ⓘ
pub fn to_bytes(&self) -> Vec<u8> ⓘ
Serializes to a compact binary format, avoiding base64/JSON overhead.
JSON renders ciphertext as an integer array (~3.7x inflation), which
is unacceptable for large payloads such as encrypted file chunks.
Wire format (all multi-byte integers are little-endian):
[group_id_len:4][group_id][sender_len:4][sender_id]
[message_type:1][epoch:8][timestamp_ms:8]
[ciphertext_len:4][ciphertext]Sourcepub fn from_bytes(data: &[u8]) -> Result<Self>
pub fn from_bytes(data: &[u8]) -> Result<Self>
Deserializes from the compact binary format produced by to_bytes.
Trait Implementations§
Source§impl Clone for EncryptedMessage
impl Clone for EncryptedMessage
Source§impl Debug for EncryptedMessage
impl Debug for EncryptedMessage
Source§impl<'de> Deserialize<'de> for EncryptedMessage
impl<'de> Deserialize<'de> for EncryptedMessage
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for EncryptedMessage
impl RefUnwindSafe for EncryptedMessage
impl Send for EncryptedMessage
impl Sync for EncryptedMessage
impl Unpin for EncryptedMessage
impl UnsafeUnpin for EncryptedMessage
impl UnwindSafe for EncryptedMessage
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more