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 was an experiment in building a group-optimized password management app. It is unmaintained and is likely insecure.
- 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.
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?