Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
tree: ab15b5db6a
Fetching contributors…

Cannot retrieve contributors at this time

80 lines (59 sloc) 2.333 kB
Lockbox
=======
Lockbox is a simple rails plugin that let's you use public key crypto
to encrypt and decrypt strings.
This is just a quick hack, I decided not to go for anything more
elaborate because it met the minimum requirements of what I'm building
and nothing more.
You can always get the latest version of this plugin from Github:
- http://github.com/jamesotron/Lockbox [web url]
- git://github.com/jamesotron/Lockbox.git [clone url]
If you're using Lockbox in production please email me and give me your
feedback to james@mashd.cc. Feel free to fork Lockbox on github and
or send me patches, I'm always interested in use cases.
Lockbox is released under the Mozilla MPL 1.1, all code is copyright
2009 James Harton.
Example
=======
Use openssl to generate the keys:
# openssl genrsa -des3 -out private.pem 2048
Generating RSA private key, 2048 bit long modulus
..................................................................................................................+++
..........+++
e is 65537 (0x10001)
Enter pass phrase for private.pem:
Verifying - Enter pass phrase for private.pem:
# openssl rsa -in private.pem -out public.pem -outform PEM -pubout
Enter pass phrase for private.pem:
writing RSA key
Next, move the private and public key files into $RAILS_ROOT/config/ and
configure Lockbox:
mv public.pem private.pem config/
cat <<EOF > config/lockbox.yml
development:
public_key_path: config/public.pem
private_key_path: config/private.pem
testing:
public_key_path: vendor/plugins/lockbox/test/public.pem
private_key_path: vendor/plugins/lockbox/test/private.pem
pass_phrase: test
production:
public_key_path: config/public.pem
private_key_path: config/private.pem
EOF
You might wish to stop your Rails application from running, and display
a passphrase entry dialogue if the Lockbox hasn't been unlocked:
class ApplicationController < ActionController::Base
before_filter :unlock_box
def unlock_box
if Lockbox.locked?
redirect_to :controller => 'unlock', :action => 'prompt'
end
end
end
You can use lockbox in your model by using the acts_as_lockbox class
method:
class User < ActiveRecord::Base
acts_as_lockbox :for => [ :password, :credit_card_number ]
end
Copyright (c) 2009 James Harton, released under the Mozilla Public License version 1.1
Jump to Line
Something went wrong with that request. Please try again.