encrypt_env 1.1.6 → 1.1.7

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/encrypt_env.rb +26 -28
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c832448cf2b0a36f7c9670495393c18b1fa3210bee11ff4218327bae0ff0caf6
4
- data.tar.gz: a692c2b86a27381592355ceb78521f46d2a3b73389b51ea4b3dc1b19dd8b5de8
3
+ metadata.gz: 2e450fae62c0ff654e9034c4b09d4f7775285c7f446bf6af24d8c99f124841e3
4
+ data.tar.gz: e83e7f84b9821f7a1790f4320ae12f3296312f3716daa57b90646f904afd787c
5
5
  SHA512:
6
- metadata.gz: 5a20fa7185459b94ce647ca1222da11d667b4ad8fdb8436c6c755d34c568fc3a52cff4b82a75770faf5d00e76ffbade05f6bfb061bd924d83c0a6c345c319458
7
- data.tar.gz: 52375f8d2461d89ded146e7b678e60d2dfc38389f6da2401a731e812290a784df2a2b1cf6163589d10eb50158f1a3b6e87974e81d2efb40b7e17cc0fb187c7c9
6
+ metadata.gz: 7fdbcb0834f9f34edcbbd547fa28cafe680a655e69d4320428c3bba80bf2187989cc9a0b2d58ecee61bcbee762828a27bb4754638066cc1eac174ec3fa4aea99
7
+ data.tar.gz: cca971c37af42ece717519c0b6d795c8f577ccc12e5dcff29a7bb21b1edecc3a3b7ffa95e4b15781dcf35cca67b85ba60c8db072e16c08dc82c4c9f439ec0b50
data/lib/encrypt_env.rb CHANGED
@@ -9,23 +9,35 @@ require 'json'
9
9
 
10
10
  # gem 'encrypt_env'
11
11
  class EncryptEnv
12
+ private_class_method def self.path_root
13
+ @path_root = (defined?(Rails) && Rails.root.to_s) || (defined?(Bundler) && Bundler.root.to_s) || Dir.pwd
14
+ end
15
+
12
16
  private_class_method def self.master_key
13
17
  if File.file?("#{@path_root}/config/master.key")
14
18
  key = File.read("#{@path_root}/config/master.key").strip
15
- @master_key = [key].pack('H*')
16
- puts 'Get master key success!'
17
- true
18
19
  elsif ENV.key?('MASTER_KEY')
19
- @master_key = [ENV['MASTER_KEY']].pack('H*')
20
- puts 'Get master key success!'
21
- true
20
+ key = ENV['MASTER_KEY']
22
21
  else
23
- puts 'Get master key fail!'
24
22
  false
25
23
  end
24
+ @master_key = [key].pack('H*')
25
+ true
26
+ end
27
+
28
+ private_class_method def self.master_key?
29
+ if @master_key.nil? && !master_key
30
+ puts "master key not found in 'config/master.key' file and 'MASTER_KEY' environment variable!"
31
+ @raw_decrypted = ''
32
+ return false
33
+ end
34
+ true
26
35
  end
27
36
 
28
- private_class_method def self.data_decrypt(raw_data)
37
+ private_class_method def self.data_to_decrypt
38
+ hex_string = File.read("#{@path_root}/config/secrets.yml.enc")
39
+ raw_data = [hex_string].pack('H*')
40
+
29
41
  encrypted = raw_data.slice(0, raw_data.length - 28)
30
42
  iv = raw_data.slice(raw_data.length - 28, 12)
31
43
  tag = raw_data.slice(raw_data.length - 16, 16)
@@ -47,15 +59,11 @@ class EncryptEnv
47
59
 
48
60
  private_class_method def self.decrypt
49
61
  path_root unless @path_root
50
- if @master_key.nil? && !master_key
51
- puts "master key not found in 'config/master.key' file and 'MASTER_KEY' environment variable!"
52
- @raw_decrypted = ''
53
- return false
54
- end
62
+ return unless master_key?
63
+
55
64
  decipher = OpenSSL::Cipher.new('aes-128-gcm')
56
65
  decipher.decrypt
57
- hex_string = File.read("#{@path_root}/config/secrets.yml.enc")
58
- data = data_decrypt([hex_string].pack('H*'))
66
+ data = data_to_decrypt
59
67
  encrypted = data[:encrypted]
60
68
  decipher.key = @master_key
61
69
  decipher.iv = data[:iv]
@@ -67,24 +75,14 @@ class EncryptEnv
67
75
  true
68
76
  end
69
77
 
70
- private_class_method def self.path_root
71
- @path_root = if defined?(Rails)
72
- Rails.root.to_s
73
- elsif defined?(Bundler)
74
- Bundler.root.to_s
75
- else
76
- Dir.pwd
77
- end
78
- end
79
-
80
78
  def self.setup
81
79
  path_root
82
- @secret_file = File.expand_path("#{@path_root}/config/secrets.yml")
80
+ secret_file = File.expand_path("#{@path_root}/config/secrets.yml")
83
81
  key = OpenSSL::Random.random_bytes(16)
84
82
  # save key in master.key file
85
83
  File.open("#{@path_root}/config/master.key", 'w') { |file| file.write(key.unpack('H*')[0]) }
86
- encrypt(File.read(@secret_file))
87
- File.rename(@secret_file, "#{@path_root}/config/secrets.yml.old")
84
+ encrypt(File.read(secret_file))
85
+ File.rename(secret_file, "#{@path_root}/config/secrets.yml.old")
88
86
  system("echo '/config/master.key' >> #{@path_root}/.gitignore")
89
87
  system("echo '/config/secrets.yml.old' >> #{@path_root}/.gitignore")
90
88
  system("echo 'Set up complete!'")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: encrypt_env
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.6
4
+ version: 1.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nhu Tan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-08 00:00:00.000000000 Z
11
+ date: 2022-08-09 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Encrypts and decrypts environment variables
14
14
  email: nhutan2001@gmail.com