# Encrypted Inter-Process Communication Library
Communication is established over a Unix socket. Both client and server create private and public `X25519` keys, exchange them and perform a Diffie-Hellman key agreement between own and contrary public keys to produce a shared secret. A temporary `AES` key is derived from the shared secret using `HKDF` function with `SHA-256` hasher. Both parties generate their own `AES` keys independently and exchange them encrypted using the temporary key. The server obtains the `PID` value for each process connected and stores it paired with an appropriate `AES` key to a hash map. Messages from both sides are encrypted using each others `AES` keys when using `send_message` or `send_event` methods.