mirror of
https://github.com/number571/hes.git
synced 2026-09-14 11:05:43 +05:00
| userside | ||
| .gitignore | ||
| database.go | ||
| gclient.go | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
| server.go | ||
HES
Hidden email service. Version 1.1.0s.
Characteristics:
- End to end encryption;
- Supported tor connections;
- Symmetric algorithm: AES-CBC;
- Asymmetric algorithm: RSA-OAEP, RSA-PSS;
- Hash function: SHA256;
Home page:
Install:
$ make install
> go get github.com/number571/gopeer
> go get github.com/mattn/go-sqlite3
> go get golang.org/x/net/proxy
Create email page:
Compile and run:
$ make
> go build gclient.go
> go build server.go database.go
$ ./server -open="localhost:8080" &
$ ./gclient -open="localhost:7545"
List of emails page:
SQL Tables (database.db):
Database files are creates when the application starts.
Server side
/* recv = hash(public_key) */
/* hash = hash(data) */
/* data = encrypt(email) */
CREATE TABLE IF NOT EXISTS emails (
id INTEGER,
recv VARCHAR(255),
hash VARCHAR(255) UNIQUE,
data TEXT,
PRIMARY KEY(id)
);
Client side
/* !key_pasw = hash(password, salt)^20 */
/* pasw = hash(!key_pasw) */
/* priv = encrypt[!key_pasw](private_key) */
CREATE TABLE IF NOT EXISTS users (
id INTEGER,
name NVARCHAR(255) UNIQUE,
pasw VARCHAR(255),
salt VARCHAR(255),
priv TEXT,
PRIMARY KEY(id)
);
/* hash = hash(host, !key_pasw, salt) */
/* host = encrypt[!key_pasw](host) */
CREATE TABLE IF NOT EXISTS connects (
id INTEGER,
id_user INTEGER,
hash VARCHAR(255) UNIQUE,
host VARCHAR(255),
PRIMARY KEY(id),
FOREIGN KEY(id_user) REFERENCES users(id) ON DELETE CASCADE
);
/* hash = hash(pack_hash, !key_pasw, salt) */
/* spubl = encrypt[!key_pasw](public_key) */
/* sname = encrypt[!key_pasw](nickname) */
/* head = encrypt[!key_pasw](title) */
/* body = encrypt[!key_pasw](message) */
CREATE TABLE IF NOT EXISTS emails (
id INTEGER,
id_user INTEGER,
hash VARCHAR(255) UNIQUE,
spubl TEXT,
sname VARCHAR(255),
head VARCHAR(255),
body TEXT,
PRIMARY KEY(id),
FOREIGN KEY(id_user) REFERENCES users(id) ON DELETE CASCADE
);
Email page: