Class: Pione::Relay::RelayClientDB
- Inherits:
-
Object
- Object
- Pione::Relay::RelayClientDB
- Defined in:
- lib/pione/relay/relay-client-db.rb
Instance Method Summary collapse
- #add(name, password) ⇒ Object
- #auth(uuid, name, response) ⇒ Object
- #delete(name) ⇒ Object
-
#initialize(path) ⇒ RelayClientDB
constructor
A new instance of RelayClientDB.
- #names ⇒ Object
- #save ⇒ Object
Constructor Details
#initialize(path) ⇒ RelayClientDB
Returns a new instance of RelayClientDB.
4 5 6 7 8 |
# File 'lib/pione/relay/relay-client-db.rb', line 4 def initialize(path) raise TypeError.new(path) unless path.kind_of?(Pathname) @path = path @table = read_database end |
Instance Method Details
#add(name, password) ⇒ Object
14 15 16 17 18 19 |
# File 'lib/pione/relay/relay-client-db.rb', line 14 def add(name, password) # stretching x 1000 @table[name] = (1..1000).inject("") {|hash, _| Digest::SHA512.hexdigest("%s:%s:%s" % [hash, name, password]) } end |
#auth(uuid, name, response) ⇒ Object
10 11 12 |
# File 'lib/pione/relay/relay-client-db.rb', line 10 def auth(uuid, name, response) Digest::SHA512.hexdigest("%s:%s" % [uuid, @table[name]]) == response end |
#delete(name) ⇒ Object
21 22 23 24 |
# File 'lib/pione/relay/relay-client-db.rb', line 21 def delete(name) @table.delete(name) save end |
#names ⇒ Object
26 27 28 |
# File 'lib/pione/relay/relay-client-db.rb', line 26 def names @table.keys end |
#save ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/pione/relay/relay-client-db.rb', line 30 def save @path.open("w+", 0600) do |f| @table.each do |name, digest| f.puts "%s:%s" % [name, digest] if name and digest end end end |