| Documentation | Building | Running
Password exchange was built because there was no known way to securely share passwords. No need to have someone pick up the phone or set up "complicated" gpg. While password exchange was originally created for passwords it can be used for any text.
BE sure to visit our wiki for detailed information
You fill out the form with the neccessary information including both of your names and emails (optional). We use email to send the link to the content, but there is an option to disable emails. For your name(s), this is used to personalize and let the recipient know who sent them the link. There is no verification on names so you can use whatever to remain anonymous.
NOTE: All messages expire after 7 days. This means you won't be able to view your message after 7 days and will have to resend it.
To install our slackbot go to (https://api.password.exchange/slack/install). If you have setup your own version of this app, you can go to https://yoursite.com/slack/install.
Once installed to your organization, you can use the /encrypt
command which will send the text to the bot and the bot will send a link to access the unencrypted text.
NOTE: Slackbot relies on the database and encryption services and deployments. You can remove the website deployment/service from the yaml if you only intend to deploy the slackbot.
The current tools are avialble
- Slack Bot
- Password-Store Extension - https://github.com/Anthony-Bible/password-store-extension
If you have a tool or extension that interacts with password exchange please make a PR and we'll add it
-
[planned] Send message to both users.
-
[planned] Remind users after a day of not opening
-
[planned] Get notifications of the following
- email opened, page visited
-
Expire after 7 days
- [planned] 1 hour after viewing
- [planned] In the future this will be configurable
TODO:
- Allow user to generate password
- Is Client Side encryption feasable?
- yes
- We can use this as inspiration
- Basically we send the data already encrypted to the server to store
- This prohibits Slack and bot integrations from using Client side encryption
Future (hopeful) Intergrations:
- Bitwarden
- Google drive (files)
- Salesforce
- Lastpass
- Email (pgp)
- User can send pgp encrypted email, we retrieve, decrypt and then send like the regular process
NOTE: The build isn't completley hermetic yet, While I'm working on making it hermetic these packages need to be installed on the host, or you can use VsCode's devcontainer that is included: zstd libssl-dev build-essential curl wget gcc mariadb-client libmariadb-dev clang
- Run
bazel build //...
- If you want to just generate the yaml, run:
bazel run //k8s:deployment-and-services
- To deploy kubernetes manifests
bazel run //k8s:deployments-services.create
- To Reapply a kubernetes manifest (after a code change)
bazel run //k8s:deployments-and-services.apply
Currently we only support kubernetes. If you don't have a kubernetes cluster, you have two options. If you use docker-desktop you can enable a local kubernetes, otherwise look into setting up minikube which allows you to set up kubernetes on your local machine.
-
Download the Mysql file from the root of the project A. Update passsword in create user statements B. Import the mysgql schema
mysql -u user -p < passwordexchange.sql
-
edit
kubernetes/secrets.yaml
with your information -
Download the latest manifest in releases
-
Do a
kubectl apply -f password-exchange.yaml
- You can find this in the latest release.