We chose to use AES-256-GCM
for encryption and signing, and argon2
for key derivation. We are lazy so everything upladed to the server is stored in RAM.
Commands
upload <file> <password>
retreive <id> <password> [out]
(optionalout
parameter to specify output file)
Endpoints
POST /file
- Uploads a file (aEncFile
struct serialized as JSON with serde), returns aUploadResponse
struct serialized as JSON with serdeGET /file/<id>
- Retrieves a file, returns aRetrieveResponse
struct serialized as JSON with serde