Class: SecureFileStore
- Inherits:
-
Object
- Object
- SecureFileStore
- Defined in:
- lib/secure_file_store.rb
Instance Method Summary collapse
-
#initialize(key) ⇒ SecureFileStore
constructor
A new instance of SecureFileStore.
- #read_file(iv, file_path) ⇒ Object
- #read_settings(dir = ".gitolemy") ⇒ Object
- #write_file(data, file_path) ⇒ Object
- #write_settings(settings, dir = ".gitolemy") ⇒ Object
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 |