Secure file sharing service.
Process:
- upload a file (+settings: required password + TTL + number of sharing)
- the file content and name are encrypted using AES-256 with a key based on user's password, metadata is stored in local SQLite database
- get unique link
- share the link (recipient should know used password)
Dependencies:
github.com/mattn/go-sqlite3
golang.org/x/crypto/pbkdf2
golang.org/x/crypto/sha3
Check and build
make install
Prepare empty database db.sqlite
:
cat schema.sql | sqlite3 db.sqlite
For docker container z0rr0/unigma
make docker
make start
make restart
make stop
Tests use temporary directory /tmp/
and checked on Linux hosts.
make test
This source code is governed by a MIT license that can be found in the LICENSE file.