Phase 2: E2EE for DM + Slint migration + dead code cleanup

- E2EE crypto (src/e2ee.rs) with X25519 key derivation from Ed25519,
  HKDF shared secret, ChaCha20-Poly1305 encrypt/decrypt
- E2EE net layer: PID 0x0071-0x0074, JSON payloads, dispatch, session handlers
- E2EE UI: lock icons in DM header and sidebar
- Slint migration: all .slint files, bridge.rs, update.rs, main.rs
- Removed egui UI (~50 files), cleaned all dead code
- Clean cargo clippy -- -D warnings
This commit is contained in:
loki5512344 2026-07-14 13:25:15 +02:00
parent f361b037cb
commit 03d94e0465
Signed by: boba
GPG key ID: 253067914055423B
83 changed files with 5055 additions and 9202 deletions

View file

@ -1,5 +1,34 @@
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
pub struct E2eeDmKeyExchangePayload {
pub dm_id: String,
pub e2ee_public_key: Vec<u8>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct E2eeDmKeyExchangeAckPayload {
pub dm_id: String,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct E2eeDmMessagePayload {
pub dm_id: String,
pub sender_id: String,
#[serde(with = "serde_bytes")]
pub ciphertext: Vec<u8>,
pub timestamp: i64,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct E2eeDmHistoryPayload {
pub dm_id: String,
#[serde(default)]
pub messages: Vec<E2eeDmMessagePayload>,
#[serde(default)]
pub limit: Option<i64>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct DmStartPayload {
pub target_user_id: String,