Class: SecureFileStore

Inherits:
Object
  • Object
show all
Defined in:
lib/secure_file_store.rb

Instance Method Summary collapse

Constructor Details

#initialize(key) ⇒ SecureFileStore

Returns a new instance of SecureFileStore.



6
7
8
# File 'lib/secure_file_store.rb', line 6

def initialize(key)
  @key = unhex(key)
end

Instance Method Details

#read_file(iv, file_path) ⇒ Object



15
16
17
18
# File 'lib/secure_file_store.rb', line 15

def read_file(iv, file_path)
  data = File.read(file_path)
  decrypt(@key, unhex(iv), data)
end

#read_settings(dir = ".gitolemy") ⇒ Object



26
27
28
29
30
# File 'lib/secure_file_store.rb', line 26

def read_settings(dir=".gitolemy")
  file_path = Dir[File.join(dir, "config-*")].first
  iv = File.basename(file_path).gsub(/^config-/, "")
  JSON.parse(read_file(iv, file_path))
end

#write_file(data, file_path) ⇒ Object



10
11
12
13
# File 'lib/secure_file_store.rb', line 10

def write_file(data, file_path)
  iv, data = encrypt(@key, data)
  File.open(file_path, "wb") { |file| file.write(data) }
end

#write_settings(settings, dir = ".gitolemy") ⇒ Object



20
21
22
23
24
# File 'lib/secure_file_store.rb', line 20

def write_settings(settings, dir=".gitolemy")
  iv, data = encrypt(@key, settings.to_json())
  file_path = File.join(dir, "config-#{hex(iv)}")
  File.open(file_path, "wb") { |file| file.write(data) }
end