ENCRYPTO

Encrypto is a service encrypting files, without storing the encrypted files. Encrypto only stores the information required to decrypt a file.

Contact

Email: info@bonaroo.nl

How to use Encrypto

Encrypto encrypts your files while not storing them. Encrypto does store the secrets to decrypt the file. To encrypt a file, you should upload the file (plaintext) to encrypto using the API. The encrypted file (ciphertext) is returned as a response, which your application should save.

When you need to decrypt the file, upload the encrypted file (ciphertext) and the original file is returned (plaintext).

The uploads are limited to roughly 50MB in size. If you need to encrypt larger files, please let us know.

How does Encrypto protect my data

Encrypto does never log or save your files, only their secrets to decrypt the files. If your encrypted files are leaked, they're unreadable without the secrets to decrypt them. A potential attacker must either use encrypto to decrypt the files, or somehow also hack encrypto to get the secrets. This drastically increases the difficulty to steal your sensitive files.

API

For all API requests, you need to add Authorization: Bearer $TOKEN to your request.

GET /hello

Returns the current user.

{ "hello": "some-client-id" }

POST /keys

Create a new key that can be used to encrypt files.

{ "type": "cipher-aes-256-cbc" }
{ "id": "dd8e40c2-670a-4771-82f6-aaf6e51a6fcc",
  "secret": null,
  "type": "cipher-aes-256-cbc" }

POST /keys/:id/encrypt

Encrypt a string

request

Content-Type: application/octet-stream

(plaintext)

response

Content-Type: application/octet-stream

(ciphertext)

POST /keys/:id/decrypt

Decrypt a string

request

Content-Type: application/octet-stream

(ciphertext)

response

Content-Type: application/octet-stream

(plaintext)

EXAMPLE

TOKEN=""
PLAINTEXT="THIS IS A SAMPLE STRING"

CREATE_KEY_RESPONSE=$(curl --silent \
  --header "Authorization: Bearer $TOKEN" \
  --header "Content-Type: application/json" \
  --data '{"type":"cipher-aes-256-cbc"}' \
  https://encrypto.bonaroo.nl/keys)

ID=$(echo $CREATE_KEY_RESPONSE | node -p "($CREATE_KEY_RESPONSE).id")

curl --silent \
  --header "Authorization: Bearer $TOKEN" \
  --header "Content-Type: application/octet-stream" \
  --data "$PLAINTEXT" \
  https://encrypto.bonaroo.nl/keys/$ID/encrypt > ciphertext.enc

DECRYPTED=$(curl --silent \
  --header "Authorization: Bearer $TOKEN" \
  --header "Content-Type: application/octet-stream" \
  --data-binary "@ciphertext.enc" \
  https://encrypto.bonaroo.nl/keys/$ID/decrypt)

echo "RESULT:" $DECRYPTED
echo "See ciphertext.enc for the encrypted data."