pub struct GroupMessage {
pub version: u8,
pub sender: PublicKey,
pub message_type: MessageType,
pub sequence: u64,
pub timestamp: u64,
pub encrypted_content: EncryptedData,
pub signature: Signature,
pub message_id: [u8; 32],
}Expand description
Encrypted group message with full cryptographic protection
Fields§
§version: u8Message version for protocol evolution
sender: PublicKeySender’s public key
message_type: MessageTypeMessage type
sequence: u64Message sequence number
timestamp: u64Timestamp (Unix epoch seconds)
encrypted_content: EncryptedDataEncrypted message content
signature: SignatureDigital signature of the entire message
message_id: [u8; 32]Message ID (hash of content)
Implementations§
Source§impl GroupMessage
impl GroupMessage
Sourcepub fn new(
sender: &Identity,
message_type: MessageType,
content: &MessageContent,
sequence: u64,
group_key: &SymmetricKey,
) -> Result<Self>
pub fn new( sender: &Identity, message_type: MessageType, content: &MessageContent, sequence: u64, group_key: &SymmetricKey, ) -> Result<Self>
Create a new group message
Sourcepub fn decrypt(&self, group_key: &SymmetricKey) -> Result<MessageContent>
pub fn decrypt(&self, group_key: &SymmetricKey) -> Result<MessageContent>
Decrypt and verify a group message
Sourcepub fn verify_signature(&self) -> Result<()>
pub fn verify_signature(&self) -> Result<()>
Verify the message signature
Sourcepub fn is_from(&self, public_key: &PublicKey) -> bool
pub fn is_from(&self, public_key: &PublicKey) -> bool
Check if this message is from a specific sender
Sourcepub fn age_seconds(&self) -> u64
pub fn age_seconds(&self) -> u64
Get the age of this message in seconds
Trait Implementations§
Source§impl Clone for GroupMessage
impl Clone for GroupMessage
Source§fn clone(&self) -> GroupMessage
fn clone(&self) -> GroupMessage
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for GroupMessage
impl Debug for GroupMessage
Source§impl<'de> Deserialize<'de> for GroupMessage
impl<'de> Deserialize<'de> for GroupMessage
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 GroupMessage
impl RefUnwindSafe for GroupMessage
impl Send for GroupMessage
impl Sync for GroupMessage
impl Unpin for GroupMessage
impl UnwindSafe for GroupMessage
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