lib/keystorage/manager.rb in keystorage-0.1.0 vs lib/keystorage/manager.rb in keystorage-0.1.1
- old
+ new
@@ -1,63 +1,77 @@
require 'yaml'
require 'openssl'
-class Manager
+module Keystorage
+ def list(group=nil)
+ Manager.new.list(group)
+ end
- def initialize(file)
- @file = file
+ def set(group,key,value)
+ Manager.new.set(group,key,value)
end
- def list(group=null)
- data = Hash.new
- if File::exist?(@file)
- File.open(@file,'r') do |f|
- data = YAML.load(f)
- return data.keys unless group
- return data[group].keys
+ def get(group,name)
+ Manager.new.get(group,name)
+ end
+
+ class Manager
+
+ def initialize(file)
+ @file = file
+ end
+
+ def list(group=nil)
+ data = Hash.new
+ if File::exist?(@file)
+ File.open(@file,'r') do |f|
+ data = YAML.load(f)
+ return data.keys unless group
+ return data[group].keys
+ end
end
+ Hash.new
end
- Hash.new
- end
- def get(group,name)
- raise "missing group" unless group
- raise "missing name" unless name
+ def get(group,name)
+ raise "missing group" unless group
+ raise "missing name" unless name
- File.open(@file,'r') do |f|
- data=YAML.load(f)
- raise "missing key" unless data[group][name]
- return decode(data[group][name])
+ File.open(@file,'r') do |f|
+ data=YAML.load(f)
+ raise "missing key" unless data[group][name]
+ return decode(data[group][name])
+ end
+ false
end
- false
- end
- def all
- return YAML.load_file(@file) if File.exist?(@file)
- Hash.new
- end
+ def all
+ return YAML.load_file(@file) if File.exist?(@file)
+ Hash.new
+ end
- def set(group,key,value)
- data=all
- data = Hash.new unless data
- data[group] = Hash.new unless data.has_key?(group)
- data[group][key] = encode(value)
+ def set(group,key,value)
+ data=all
+ data = Hash.new unless data
+ data[group] = Hash.new unless data.has_key?(group)
+ data[group][key] = encode(value)
- File.open(@file,'w',0600) do |f|
- YAML.dump(data,f)
+ File.open(@file,'w',0600) do |f|
+ YAML.dump(data,f)
+ end
end
- end
- def encode(str,salt="3Qw9EtWE")
- enc = OpenSSL::Cipher::Cipher.new('aes256')
- enc.encrypt.pkcs5_keyivgen(salt)
- ((enc.update(str) + enc.final).unpack("H*")).to_s
- end
+ def encode(str,salt="3Qw9EtWE")
+ enc = OpenSSL::Cipher::Cipher.new('aes256')
+ enc.encrypt.pkcs5_keyivgen(salt)
+ ((enc.update(str) + enc.final).unpack("H*")).to_s
+ end
- def decode(str,salt="3Qw9EtWE")
- dec = OpenSSL::Cipher::Cipher.new('aes256')
- dec.decrypt.pkcs5_keyivgen(salt)
- (dec.update(Array.new([str]).pack("H*")) + dec.final)
+ def decode(str,salt="3Qw9EtWE")
+ dec = OpenSSL::Cipher::Cipher.new('aes256')
+ dec.decrypt.pkcs5_keyivgen(salt)
+ (dec.update(Array.new([str]).pack("H*")) + dec.final)
+ end
end
-end
+end