pub struct HandshakeMessage {
pub version: ProtocolVersion,
pub sender_key: PublicKey,
pub ephemeral_key: PublicKey,
pub timestamp: u64,
pub encrypted_payload: EncryptedData,
pub signature: Signature,
}Expand description
Initial handshake message for group joining
Fields§
§version: ProtocolVersionProtocol version
sender_key: PublicKeySender’s public key
ephemeral_key: PublicKeyEphemeral key for this handshake
timestamp: u64Timestamp of the handshake
encrypted_payload: EncryptedDataEncrypted handshake payload
signature: SignatureSignature of the handshake
Implementations§
Source§impl HandshakeMessage
impl HandshakeMessage
Sourcepub fn new(
sender: &Identity,
group_id: [u8; 32],
capabilities: Vec<String>,
client_info: String,
) -> Result<Self>
pub fn new( sender: &Identity, group_id: [u8; 32], capabilities: Vec<String>, client_info: String, ) -> Result<Self>
Create a new handshake message
Sourcepub fn new_with_group_key(
sender: &mut Identity,
recipient_public_key: &PublicKey,
group_id: [u8; 32],
capabilities: Vec<String>,
client_info: String,
group_key: &SymmetricKey,
) -> Result<Self>
pub fn new_with_group_key( sender: &mut Identity, recipient_public_key: &PublicKey, group_id: [u8; 32], capabilities: Vec<String>, client_info: String, group_key: &SymmetricKey, ) -> Result<Self>
Create a handshake message with encrypted group key for secure key sharing
Sourcepub fn extract_group_key(
&self,
recipient: &mut Identity,
) -> Result<Option<SymmetricKey>>
pub fn extract_group_key( &self, recipient: &mut Identity, ) -> Result<Option<SymmetricKey>>
Extract group key from handshake message
Sourcepub fn verify_and_decrypt(&self) -> Result<HandshakePayload>
pub fn verify_and_decrypt(&self) -> Result<HandshakePayload>
Verify and decrypt a handshake message
Trait Implementations§
Source§impl Clone for HandshakeMessage
impl Clone for HandshakeMessage
Source§fn clone(&self) -> HandshakeMessage
fn clone(&self) -> HandshakeMessage
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 HandshakeMessage
impl Debug for HandshakeMessage
Source§impl<'de> Deserialize<'de> for HandshakeMessage
impl<'de> Deserialize<'de> for HandshakeMessage
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 HandshakeMessage
impl RefUnwindSafe for HandshakeMessage
impl Send for HandshakeMessage
impl Sync for HandshakeMessage
impl Unpin for HandshakeMessage
impl UnwindSafe for HandshakeMessage
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