Sha256: 7ae30341634b3d5d4a492b83e8affe66602e55afcb1a8871e6b82d7ae46ee38e
Contents?: true
Size: 1.08 KB
Versions: 4
Compression:
Stored size: 1.08 KB
Contents
require "openssl" include OpenSSL module SdbDal class Crypto include OpenSSL::Cipher def initialize(options={}) key_dir=options[:key_dir] if options.has_key?(:key_dir) key_dir ||="/tmp" @cipher = Cipher.new("AES-256-CBC") if File.exists?(key_dir+'/.cipher_key') @key=File.open(key_dir+'/.cipher_key').read else @key = @cipher.random_key() File.open(key_dir+"/.cipher_key",'w').write(@key) end if File.exists?(key_dir+'/.cipher_iv') @iv=File.open(key_dir+'/.cipher_iv').read else @iv = @cipher.random_iv() File.open(key_dir+"/.cipher_iv",'w').write(@iv) end end def encrypt(text) @cipher.encrypt(@key,@iv) @cipher.key=@key @cipher.iv = @iv e = @cipher.update(text) e << @cipher.final() Base64.encode64(e)#.chomp end def decrypt(text) x=Base64.decode64(text) @cipher.decrypt(@key,@iv) @cipher.key = @key @cipher.iv = @iv d = @cipher.update(x) d << @cipher.final() return d end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
sdb_dal-0.0.8 | ./lib/sdb_dal/crypto.rb |
sdb_dal-0.0.7 | ./lib/sdb_dal/crypto.rb |
sdb_dal-0.0.6 | ./lib/sdb_dal/crypto.rb |
sdb_dal-0.0.9 | ./lib/sdb_dal/crypto.rb |