Sha256: 05246e8b02e4a615760c22e3f661b468a34053c06e30d37e848a254d3fc68dee
Contents?: true
Size: 971 Bytes
Versions: 1
Compression:
Stored size: 971 Bytes
Contents
module Keyrack class Database def initialize(key, iv, store) @key = key @iv = iv @store = store @data = decrypt @dirty = false end def add(site, username, password) @data[site] = { :username => username, :password => password } @dirty = true end def get(site) @data[site] end def sites @data.keys end def dirty? @dirty end def save cipher = OpenSSL::Cipher::Cipher.new("AES-128-CBC") cipher.encrypt; cipher.key = @key; cipher.iv = @iv @store.write(cipher.update(Marshal.dump(@data)) + cipher.final) @dirty = false end private def decrypt data = @store.read if data cipher = OpenSSL::Cipher::Cipher.new("AES-128-CBC") cipher.decrypt; cipher.key = @key; cipher.iv = @iv Marshal.load(cipher.update(data) + cipher.final) else {} end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
keyrack-0.2.0 | lib/keyrack/database.rb |