enigma-protocol 0.1.0

High-level orchestrator that composes the Enigma crates into a production-ready messaging protocol
Documentation
pub use enigma_packet::AttachmentKind;
use enigma_packet::Message;
use uuid::Uuid;

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum InitiatorOrResponder {
    Initiator,
    Responder,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum SessionBootstrap {
    PreSharedSecret {
        secret32: [u8; 32],
        role: InitiatorOrResponder,
        remote_dh_pub: Option<[u8; 32]>,
    },
}

#[derive(Debug, Clone)]
pub enum ClientEvent {
    MessageReceived {
        from: String,
        message: Message,
    },
    AttachmentProgress {
        from: String,
        attachment_id: Uuid,
        received_chunks: u32,
        total_chunks: u32,
    },
    AttachmentCompleted {
        from: String,
        attachment_id: Uuid,
        total_size: u64,
    },
}