secret-keeper 0.0.4 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/secret-keeper.rb +13 -9
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb41f3ee6ff58c816d18e1f424cc5abd800df058
|
4
|
+
data.tar.gz: dcb36b9f0f983d79369d7d1a51b393486400b3cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2814775b46269013b94356ea9dd8982161aa657d5fec7da696820462712f12903cdbf6c6b55c5b56cf17fdfa9ecf1c02705d6af4ffa477787e76e50826e9873b
|
7
|
+
data.tar.gz: 4fbb767f3696a876f6d41e00eb345c287c87e822a4bb019ab3115027169850937b569b24834a7e82ab1bb2de88284aaaea4280938563b8fd422f342b6504620b
|
data/lib/secret-keeper.rb
CHANGED
@@ -2,41 +2,45 @@ require 'openssl'
|
|
2
2
|
require 'yaml'
|
3
3
|
|
4
4
|
class SecretKeeper
|
5
|
-
def self.hi
|
6
|
-
puts '...(said nothing)'
|
7
|
-
end
|
8
|
-
|
9
5
|
def self.encrypt_files
|
10
6
|
puts 'Encrypting...'
|
7
|
+
ok_queue = []
|
11
8
|
sk = SecretKeeper.new
|
12
9
|
sk.tasks.each do |task|
|
13
10
|
from = task['encrypt_from']
|
14
11
|
to = task['encrypt_to']
|
15
12
|
|
16
13
|
result = sk.encrypt_file(from, to)
|
14
|
+
ok_queue << result if result == :ok
|
17
15
|
puts " * #{from} --> #{to}, #{result}"
|
18
16
|
end
|
19
17
|
puts 'Done!'
|
18
|
+
ok_queue.count == sk.tasks.count
|
20
19
|
end
|
21
20
|
|
22
21
|
def self.decrypt_files
|
23
22
|
puts 'Decrypting...'
|
23
|
+
ok_queue = []
|
24
24
|
sk = SecretKeeper.new
|
25
25
|
sk.tasks.each do |task|
|
26
26
|
from = task['decrypt_from'] || task['encrypt_to']
|
27
27
|
to = task['decrypt_to'] || task['encrypt_from']
|
28
28
|
|
29
29
|
result = sk.decrypt_file(from, to)
|
30
|
+
ok_queue << result if result == :ok
|
30
31
|
puts " * #{from} --> #{to}, #{result}"
|
31
32
|
end
|
32
33
|
puts 'Done!'
|
34
|
+
ok_queue.count == sk.tasks.count
|
33
35
|
end
|
34
36
|
|
35
37
|
def initialize
|
38
|
+
fail 'environment variable OPENSSL_PASS not exist' if ENV['OPENSSL_PASS'].nil?
|
36
39
|
env = ENV['RAILS_ENV'] || 'development'
|
37
40
|
string = File.open('config/secret-keeper.yml', 'rb') { |f| f.read }
|
38
41
|
config = YAML.load(string)[env]
|
39
|
-
|
42
|
+
fail 'config/secret-keeper.yml incorrect or environment not exist' if config.nil?
|
43
|
+
|
40
44
|
@tasks = config['tasks']
|
41
45
|
@using_cipher = OpenSSL::Cipher.new(config['cipher'])
|
42
46
|
end
|
@@ -50,7 +54,7 @@ class SecretKeeper
|
|
50
54
|
File.open(to_file, 'w:ASCII-8BIT') { |f| f.write(encrypted) }
|
51
55
|
:ok
|
52
56
|
rescue => e
|
53
|
-
|
57
|
+
e
|
54
58
|
end
|
55
59
|
|
56
60
|
def decrypt_file(from_file, to_file)
|
@@ -58,20 +62,20 @@ class SecretKeeper
|
|
58
62
|
File.open(to_file, 'w') { |f| f.write(decrypted) }
|
59
63
|
:ok
|
60
64
|
rescue => e
|
61
|
-
|
65
|
+
e
|
62
66
|
end
|
63
67
|
|
64
68
|
private
|
65
69
|
|
66
70
|
def encrypt(data)
|
67
71
|
cipher = @using_cipher.encrypt
|
68
|
-
cipher.key = Digest::SHA1.hexdigest(
|
72
|
+
cipher.key = Digest::SHA1.hexdigest(ENV['OPENSSL_PASS'])
|
69
73
|
cipher.update(data) + cipher.final
|
70
74
|
end
|
71
75
|
|
72
76
|
def decrypt(data)
|
73
77
|
cipher = @using_cipher.decrypt
|
74
|
-
cipher.key = Digest::SHA1.hexdigest(
|
78
|
+
cipher.key = Digest::SHA1.hexdigest(ENV['OPENSSL_PASS'])
|
75
79
|
cipher.update(data) + cipher.final
|
76
80
|
end
|
77
81
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: secret-keeper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ray Lee
|
@@ -9,7 +9,21 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
date: 2017-12-28 00:00:00.000000000 Z
|
12
|
-
dependencies:
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rspec
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
description: A Secret keeper
|
14
28
|
email: ray-lee@kdanmobile.com
|
15
29
|
executables: []
|
@@ -17,7 +31,7 @@ extensions: []
|
|
17
31
|
extra_rdoc_files: []
|
18
32
|
files:
|
19
33
|
- lib/secret-keeper.rb
|
20
|
-
homepage:
|
34
|
+
homepage: https://github.com/redtear1115/secret-keeper
|
21
35
|
licenses:
|
22
36
|
- MIT
|
23
37
|
metadata: {}
|