# Noctalk Source Code

This archive contains the Noctalk client and server source code for review and compilation.

The installer source is intentionally not included. The purpose of this archive is to make it easy to inspect the client/server privacy model, encryption flow, Tor/onion communication, and server relay behavior.

## Requirements

- Windows
- Visual Studio with the .NET desktop development workload
- .NET 10 SDK

## Open In Visual Studio

Open:

```text
Noctalk.slnx
```

The solution includes:

- Noctalk_client
- Noctalk_server

All project references use relative paths, so this folder can be unzipped anywhere.

## Build

Build the solution from Visual Studio, or run:

```powershell
dotnet build Noctalk.slnx
```

## Publish

If you want published standalone executables, publish the server first:

```powershell
dotnet publish "Noctalk_server\Noctalk_server.csproj" -c Release -o "Noctalk_server\bin"
```

Then publish the client:

```powershell
dotnet publish "Noctalk_client\Noctalk_client.csproj" -c Release -o "Noctalk_client\bin"
```

The client publish step copies the published server executable into the client output as `Data\Server.data`, so the server must be published first.

## What To Review

Important areas:

- Client encryption: `Noctalk_client\Client\Chat\Local_message_crypto.cs`
- Client Tor configuration: `Noctalk_client\Client\Networking\Tor\Torrc_generator.cs`
- Client Tor service: `Noctalk_client\Client\Networking\Tor\Tor_client_service.cs`
- Client polling/sending: `Noctalk_client\Client\Networking\Chat\Chat_poll_client.cs`
- Server local relay: `Noctalk_server\Server\Networking\Local_relay_listener.cs`
- Server Tor onion service: `Noctalk_server\Server\Tor\Torrc_generator.cs`
- Server Tor service: `Noctalk_server\Server\Tor\Tor_service.cs`
- Server conversation storage: `Noctalk_server\Server\Conversations\Conversation_store.cs`

## Notes

The server relays encrypted transport data. Message contents are encrypted on the client before being sent.

Pending server messages are kept in memory. Retrieved messages, or messages held only in memory before a server restart, are gone after delivery or process exit.

Noctalk is designed for private onion-routed chat, but endpoint security still matters. A compromised Windows installation, malware, spyware, remote access tools, screen capture, keylogging, or unsafe operational behavior can still compromise privacy.
