Use Duse to share secrets with coworkers or friends. Duse uses well established encryption algorithms combined to securely share your secrets. During the whole process the server is not able to decrypt the secret, only participants are able to do so.
The combination of the used algorithms, or the cryptographic protocol, is open and we are happy to discuss improvements with you. The cryptographic protocol is documented on GitHub. This is a preview, we incourage you to check it out and improve it with us!
We have developed a RESTful API to distribute your secrets securely. It can easily be setup on Heroku or using Docker.
Go ahead and setup your own instance on Heroku or manually setup one. We've prepared easy to follow setup guides for you.
or
A CLI and library written in ruby is the reference implementation, but we hope there will be plenty of other implementations in other languages.
Currently only the CLI is supported, and a currently highly experimental webinterface written in dart is in the pipeline.
# install the CLI
$ gem install duse
$ duse config
Uri to the duse instance you want to use: https://myduseinstance.com/
$ duse register
Username: flower-pot
Email: fbranczyk@gmail.com
Password: xxxxxxxx
Confirm password: xxxxxxxx
Which private ssh-key do you want to use?
1. /Users/fredericbranczyk/.ssh/id_rsa
2. Generate a new one
3. Let me choose it myself
Select by entering the number.
1
Successfully created your account! An email to confirm it has been sent. Once confirmed you can login with "duse login"
Then confirm the account with the instructions sent in the email.
$ duse account confirm <your-token>
$ duse login
Username: flower-pot
Password: xxxxxxxx
Successfully logged in!
Now that you are registered and logged in, the real fun can begin.
The CLI is self explanatory in what it can do.
$ duse
Usage: duse COMMAND ...
Available commands:
account Manage your account
config Configure the client
help Displays help messages, such as this one
login login to access and save secrets
register Register a new account
secret Save, retrieve and delete secrets
version print the client version
run `duse help COMMAND` for more infos
Let's take a look at what we can do with secrets.
$ duse help secret
Save, retrieve and delete secrets
Usage: duse secret COMMAND ...
Available commands:
add Interactively create a new secret, or set values via options
get Retrieve a secret
list List all secrets you have access to
remove Delete a secret
update Save a new secret
run `duse help secret COMMAND` for more infos
Add a new secret
$ duse secret add
What do you want to call this secret? MySecret
Secret to save: MySecretContent
Do you want to share this secret?[y/n] n
Secret successfully created!
And retrieve the secret interactively
$ duse secret get
1: MySecret
Select the id of the secret to retrieve: 1
Name: MySecret
Secret: MySecretContent
Access: flower-pot
Or directly if you already know the secrets id
$ duse secret get 1
Name: MySecret
Secret: MySecretContent
Access: flower-pot
We can also just print the secret plain
$ duse secret get 1 --plain
MySecretContent
This allows us to pipe the secret or use it in environment variables
$ duse secret get 1 --plain | xclip -sel c -i # linux copy to clipboard
$ duse secret get 1 --plain | pbcopy # osx copy to clipboard
$ ENV_VAR=$(duse secret get 1 --plain) # set environment variable
For further example