secret-keeper 0.0.4 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: {}