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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/secret-keeper.rb +13 -9
  3. metadata +17 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dc5383502f63aed8ab7bdf8f82dd145b07850511
4
- data.tar.gz: a1be94c83ef92b0a858c8abbb849db032c1f3de4
3
+ metadata.gz: cb41f3ee6ff58c816d18e1f424cc5abd800df058
4
+ data.tar.gz: dcb36b9f0f983d79369d7d1a51b393486400b3cb
5
5
  SHA512:
6
- metadata.gz: c82d208c39dbb2d0208598cbac91c570b9129289c2316bafac0498de94e2cc434c3de96fca9f91f9f17d89e4314d8bbfab5703cf1092cd6df330a6f2c82be743
7
- data.tar.gz: e8960a0060f1783f7502a537a3c8dd92e5efac9059b288f6d3050490b8fccbc71f6fbf1b770b4ab47f2607315bb12fc17ba926765fc7eed64c4a8afb92511ae9
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
- @password = ENV['OPENSSL_PASS'] || 'DEFAULT-PASSWORD'
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
- "fail: #{e}"
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
- "fail: #{e}"
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(@password)
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(@password)
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
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: http://rubygems.org/gems/hola
34
+ homepage: https://github.com/redtear1115/secret-keeper
21
35
  licenses:
22
36
  - MIT
23
37
  metadata: {}