How sashabilenko9-glitch/encryptedmessenger works
EncryptedMessenger is a Windows LAN peer-to-peer messenger: users add or discover contacts, establish encrypted peer sessions, exchange messages and receipts, and retain local contacts and history. The WPF app talks to the shared MessengerService through a named pipe, or starts that service in-process when no Windows Service is available. The service coordinates peer networking, discovery, storage and UI notifications. The graph follows documented capabilities where implementation excerpts are incomplete; some internal event wiring and UI command details were not sampled.
Main entry points: MessengerService.cs Messenger orchestrator · MessengerClient.cs TCP peer client · CryptoManager.cs Crypto manager · ContactRepository.cs Contact and message repositories
Components 22
Desktop interface
- WPF app
EncryptedMessenger.WPF/App.xaml.cs - Chat and settings UI
EncryptedMessenger.WPF/Views - UI view models
EncryptedMessenger.WPF/ViewModels - Pipe client
EncryptedMessenger.Core/IPC/PipeClient.cs
Service runtime
- Service worker
EncryptedMessenger.WindowsService/MessengerWorker.cs - Messenger orchestrator
EncryptedMessenger.Core/Services/MessengerService.cs - Pipe server
EncryptedMessenger.Core/IPC/PipeServer.cs - App settings
EncryptedMessenger.Core/Models/AppSettings.cs
Peer communication
- Peer discovery
EncryptedMessenger.Core/Network/PeerDiscovery.cs - TCP listener
EncryptedMessenger.Core/Network/MessengerServer.cs - TCP peer client
EncryptedMessenger.Core/Network/MessengerClient.cs - Packet framing
EncryptedMessenger.Core/Network/PacketHelper.cs
Encryption
- Crypto manager
EncryptedMessenger.Core/Encryption/CryptoManager.cs - RSA key exchange
EncryptedMessenger.Core/Encryption/RsaCryptoService.cs - AES content crypto
EncryptedMessenger.Core/Encryption/AesCryptoService.cs
Local persistence
- Contact and message repositories
EncryptedMessenger.Core/Database/ContactRepository.cs - Message repository
EncryptedMessenger.Core/Database/MessageRepository.cs - SQLite database
EncryptedMessenger.Core/Database/AppDbContext.cs - Contact records
EncryptedMessenger.Core/Models/Contact.cs - Message records
EncryptedMessenger.Core/Models/Message.cs
Other components
- Messenger user
- LAN peers
Connections 28
- Messenger user → Chat and settings UI: uses
- Chat and settings UI → UI view models: invokes
- WPF app → UI view models: creates
- UI view models → Pipe client: sends requests
- Pipe client → Pipe server: exchanges JSON
- WPF app → Messenger orchestrator: starts standalone
- Service worker → Messenger orchestrator: starts
- Messenger orchestrator → App settings: loads
- Messenger orchestrator → Pipe server: starts
- Messenger orchestrator → Peer discovery: starts optionally
- Messenger orchestrator → TCP listener: starts
- Messenger orchestrator → Contact and message repositories: reads and updates contacts
- Messenger orchestrator → Message repository: saves and queries history
- Messenger orchestrator → TCP peer client: connects and sends
- Messenger orchestrator → Pipe server: broadcasts updates
- Peer discovery → LAN peers: UDP broadcast
- LAN peers → Peer discovery: peer announcements
- LAN peers → TCP listener: TCP messages
- TCP peer client → LAN peers: TCP messages
- TCP peer client → Packet framing: frames packets
- TCP listener → Packet framing: frames packets
- TCP peer client → Crypto manager: encrypts and decrypts
- Crypto manager → RSA key exchange: exchanges session keys
- Crypto manager → AES content crypto: encrypts content
- Contact and message repositories → SQLite database: reads and writes
- Message repository → SQLite database: reads and writes
- Contact and message repositories → Contact records: stores
- Message repository → Message records: stores