;
ED.
E#Wi
E###G.
E#fD#W; GEEEEEEEL
E#t t##L ,;;L#K;;.
E#t .E#K, t#E
E#t j##f t#E
E#t :E#K: t#E
E#t t##L t#E
E#t .D#W; t#E
E#tiW#G. t#E
E#K##i t#E
E##D. fE
E#t :
L:
Each time a different onion service is created, that being the case, if trying to connect right after the creation, a minute or two may be needed given the fact the onion service may still be having a proper integration to the tor network
Secure one-to-one communication, opsec focused
- Development environment
- Building
- Installation
- Usage
- Protocol Specification
- Customization
- Motivation, philosophy and goals
compile_flags.txt is for usage with clangd
The c standard being used is a dialect from c17, that being gnu17
- gcc
- libcrypto3 (From openssl3) header files
- make (Or run the build command from the Makefile directly)
sudo dnf install openssl-devel openssl-libs
sudo apt-get update
sudo apt-get install libssl-dev libssl3
To build:
$ make
The result will be at ./buid/donttrust
Download and install the package of choice at the releases page
- Press "ESC" to change between "EDIT" and "VIEW" modes
- Press "j" to go down and "k" to go up
- Press "ENTER" to send the message
Dear tor users, "PGP keys" can be used as long the key is RSA, which is the default algorithm for key generation in software like GnuPG and many others
$ donttrust --pKey "./client_private_key_path.txt" --pubKey "./peer_public_key_path.pem"
The file type does not matter but the keys must be PEM encoded
The possible sizes are those supported by libcrypto3 from openssl3
$ donttrust -t 192.168.0.1
$ donttrust -o vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd.onion
$ donttrust ...
Before that, do this first time setup:
1 - Generate a hashed password for control port access, <your_password> length must not be bigger than 1000:
$ tor --hash-password <your_password>
2 - On your "torrc" file, add the following:
ControlPort 9051
HashedControlPassword <The result from the above command>
3 - Reload the configs if tor is running:
$ sudo kill -s SIGHUP <tor process id>
Just provide your password
$ donttrust --torControlPassword <your_password>
Runs on top of tcp, there are 2 commands available:
After which should be on the following order:
- An unsigned 32 bit number in network byte order, that's the message code
- An unsigned 32 bit number in network byte order containing the cipher text size in bytes
- The initialization vector used to decrypt the cipher text, a sequence of 16 bytes
- The private key encrypted session key (AES in this case) used to decrypt the ciphertext, a sequence of 256 bytes
- The cipher text, up to a maximum of 65552 bytes length
After which should be on the following order:
- An unsigned 32 bit number in network byte order, that's the number of confirmations codes
- n unsigned 32 bit numbers in network byte order, each being a message code from a particular message (Only your own messages have their code saved in the application, that's implementation dependent)
There are 2, "VIEW" and "EDIT", the default button for changing is the 0x1B ASCII code (ESC button)
Update "STATUS_CHANGE_BUTTON" at "src/common/common.h" to a desired ASCII code
If the program is on "VIEW" mode, bytes coming from stdin are used to go up or down
Update "UP_BUTTON" or "DOWN_BUTTON" at "src/common/common.h" to a desired ASCII code, the defaults are 'k' for "UP_BUTTON" and 'j' for "DOWN_BUTTON"
For the following color reletad changes, refer to some terminal 256 color ids table
Update "TERMINAL_BACKGROUND_COLOR_ID" from "src/common/common.h" to a desired terminal color id
Update "STATUS_LINE_TERMINAL_COLOR_CODE" from "src/common/common.h" to a desired terminal color id
The default is "27" (Some blue tone)
Update the value of "PEER_NOT_RECEIVED_TERMINAL_BACKGROUND_COLOR_ID" from "src/common/common.h"
The default is "196" (Some red tone)
Update the value of "PEER_RECEIVED_TERMINAL_BACKGROUND_COLOR_ID" from "src/common/common.h"
The default is "41" (Some green tone)
Update the value of "RECEIVED_TERMINAL_BACKGROUND_COLOR_ID" from "src/common/common.h"
The default is "232" (Black)
- The need for information confidentiality
- Guarantee that the software does only what is intended
- No time to manually check the code of big open source projects
- No need for large communication protocols
- Very organized codebase files, easy to understand and hack
- Secure by default
- Minimal dependencies