How kausher76/nervesolutionassignement works
This is a small encrypted TCP request/response application. The user configures and enters requests in the client; it encrypts each request, connects to the server, and displays decrypted replies. The server loads a JSON collection, handles clients concurrently, looks up each Set/key pair, and returns either encrypted timestamps or EMPTY. Shared prompt and AES-GCM code support both applications. The main flows are shown; client/server transport is documented in the README, while the handler and storage behavior are visible in the server source.
Main entry points: TCPClient/Program.cs Client · TCPServer/Program.cs Listener · Crypto.cs AES-GCM crypto · data.json Set collection
Components 7
TCP client
- Client
TCPClient/Program.cs
TCP server
- Listener
TCPServer/Program.cs - Request handler
TCPServer/Program.cs - Set collection
TCPServer/data.json
Shared utilities
- Console prompts
Shared/Prompt.cs - AES-GCM crypto
Shared/Crypto.cs
Other components
- User
Connections 12
- User → Client: enters requests
README.md - Client → Console prompts: gets settings
TCPClient/Program.cs - Client → AES-GCM crypto: encrypts requests
TCPClient/Program.cs - Client → Listener: sends encrypted request
README.md - Listener → Request handler: dispatches clients
TCPServer/Program.cs - Listener → Console prompts: gets settings
TCPServer/Program.cs - Listener → AES-GCM crypto: derives key
TCPServer/Program.cs - Listener → Set collection: loads JSON
TCPServer/Program.cs - Request handler → AES-GCM crypto: decrypts and encrypts
TCPServer/Program.cs - Request handler → Set collection: looks up keys
TCPServer/Program.cs - Request handler → Client: returns encrypted replies
README.md - Client → User: displays replies
TCPClient/Program.cs