NOTE: This repository is no longer supported or updated by GitHub. If you wish to continue to develop this code yourself, we recommend you fork it.
Swordfish
Swordfish was an experiment in building a group-optimized password management app. It is unmaintained and is likely insecure.
Recommended Reading
- Why passwords have never been weaker—and crackers have never been stronger - A great article about password cracking techniques and the implications for choosing strong passwords.
- JavaScript Cryptography Considered Harmful - A thoughtful critique of JavaScript encryption, discussed in #28.
- A JavaScript Implementation of TLS - The background of Forge, the encryption library used by Swordfish.
- Web Cryptography API - A draft W3C proposal for a JavaScript cryptography API. If all goes well, this will eventually replace Forge for all of the cryptography in Swordfish.
- Megabad: A quick look at the state of Mega’s encryption - Mega essentially uses the same approach as Swordfish: RSA keys for each user, coupled with a randomly generated key for AES encryption of each item.
Working on Swordfish
Use the bootstrap
script to get the environment set up.
script/bootstrap
Now you will need to run the database migrations before you run the server.
bundle exec rake db:create db:migrate
Finally you can start the application.
script/rails s
Running the tests requires PhantomJS. If you're on Mac OS X you can use homebrew to install this for you.
brew install phantomjs
If you hack on Swordfish and end up adding or editing features you will want to run the tests.
bundle exec rake
Want to join the core team?