Awesome
Torchat-Mac
TorChat for Mac is a macOS native and unofficial port of torchat.
Technics
TorChat for Mac is written in Objective-C with Cocoa framework. The current version needs macOS 10.13 (High Sierra) minimum to work.
Modes
TorChat for Mac offers two modes : bundled mode and custom mode.
Bundle mode
This mode try to handle things for you. TorChat for Mac launch a bundled tor
binary, configure it and configure a torchat address the first time. You have almost nothing to do to start to chat.
Benefits :
- Easy to use, you just have to launch the application, and that's all.
- More easily when you use TorChat in nomadic.
Drawback :
- Because
tor
have some bootstrapping process (connect to network, declare your address, etc.), you have to wait a moment each time you quit / launch the application before being able to chat (this can take up to about 5 minutes). - If your IP appear on the
tor
network and then your torchat identity appear online, this can help malicious person to break your anonymity by correlating the two events.
Custom mode
This mode just connect TorChat for Mac to an already existing configured tor
instance.
Benefits :
- If your
tor
instance is already running for a while, each time you quit / launch TorChat, you will appear online and see other contacts quicker. - If you use
tor
for anything other than just chatting, this will prevent to have multi instance ortor
running at the same time. - You will prevent to break your anonymity by events correlation (see basic mode drawbacks).
Drawback :
- You have to manually configure the hidden service, and configure TorChat to use it.
Files
Configuration file
All your settings are written on a file called torchat.conf
- some other settings can be put in ~/Library/Preferences/com.SourceMac.TorChat.plist
by macOS, but it's mainly settings related to interface (Windows positions, last preference panel selection, last directory selected, etc.). Nothing related to your buddies, chats, etc.
When you create a configuration file for the first time via the assistant, a configuration file is created accordingly to those specifications :
- If your
TorChat.app
is in/Applications/
, then your configuration file is created at this path :~/Library/Preferences/torchat.conf
- If your
TorChat.app
is anywhere else, then your configuration file is created at the same directory as yourTorChat.app
.
If you put TorChat in the Applications directory (first case), then it's supposed you want to respect standard macOS usage, and so we put stuff on the right places on your system. But if you put TorChat in another directory (second case), then we try to respond to those specific purposes :
- Don't scatter private data everywhere in the computer. So if the computer is not yours, you can quickly delete this file once you have finished your chat.
- Be able to create an "all-in-one" USB key / DMG. This way, you can just put TorChat.app, your configuration and your data files in a cyphered USB key / DMG, then plug-in it on any computer, chat, and eject when finished. No need to copy and expose your private data on the host computer.
When TorChat.app
is launched, it tries to find the configuration file in these places :
- The same directory as your TorChat application (see upper explanations).
~/torchat.conf
~/.torchat.conf
~/.config/torchat.conf
~/Library/Preferences/torchat.conf
Is none of this path can be opened, the assistant will either ask you to create a new configuration file, either ask you to select one manually.
Extra files
When you use TorChat in bundled mode, a tor
instance is configured and launched for you. This configuration needs two distinct directory :
- The
bin
directory used to storetor
binary itself + its signatures + dylib files. By default, this directory is either inTor
directory inside~/Library/Application Support/TorChat/
(TorChat in Application directory), either inside thetor
directory, itself at the same level as your configuration file (TorChat anywhere else). - The
data
directory used to store data used bytor
binary (mainly caches). By default, this directory is either inTorData
directory inside~/Library/Application Support/TorChat/
(TorChat in Application directory), either inside thetor
directory, itself at the same level as your configuration file. - The
Downloads
directory used to store files sent by your buddies. By default, this directory is either~/Downloads/
(TorChat in Applications directory), either at the same level as your configuration file.
You can change the place and the name of those directories by going to the Preferences -> Locations panel settings. The "referral" is where your configuration file is, the "standard" is where you expect your file to be on a standard macOS application (~/Library/...
), and "absolute" is absolute path.
Note: the tor
binary is not launched from inside the TorChat.app
bundle because it can be updated. And it's not recommended to modify the content of an application bundle.
Functionalities
File exchange
[Implemented but doc needs to be written]
Buddies
[Implemented but doc needs to be written]
Logs
[Implemented but doc needs to be written]
Tests
If you want to test new versions of TorChat, send me a simple e-mail to torchat [at] sourcemac [dot] com
.
I will send you betas or golden master versions some days before official releases, and if you have free time and motivation, you can peacefully test them and tell me if you saw problematic stuff. It's a best effort testing, so no pressure.