heroku_vault 0.1.1 → 0.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6da1bd0e961b29d71404d3bd4dfe90b2d7c82ff2d31fc04afe39319ad81f5806
4
- data.tar.gz: acf4abe8c794f0249035993884e618977111b97a73f4848c92ff164d6cb98b37
3
+ metadata.gz: 5a2d5d52c6423626ed86032a70946a82f363db1d7c96bfa33893636788b8fad1
4
+ data.tar.gz: c81703c1f78453c8a7e83e385d157b0c75ba08278fb2d386c111d8ebac90a3f4
5
5
  SHA512:
6
- metadata.gz: 7e2be878df478d9eb77badf7c8c480886d4c08181944bf9603a111d9a2930a34ff6566d101a3db7835953d3f000b000f0fddac87bcf7845d56b98bc95b3aa1bf
7
- data.tar.gz: 97f584b6db030d9110ff140130c54ccfeb7a437195fb17f2731a593dfb1c869334ac76c435bdd104ddd31487edf76c0d4cbab90aef6e6b3cb5b1b1406038bdaf
6
+ metadata.gz: 1bb48b815177da51cc85802d709abbca18d3fb5c4e7b908831fcf17c987a7e5c520d62025df930dce699d8ea4f29ee0b4012ba1c6b5b4be5cbc7b1ca54d34f38
7
+ data.tar.gz: 1cfb0d52b8a329b8d7979b4a0a2b5f6c33d199be8252cd7489b6bea1c167f3d4b7e82eae86b226be33acdfe36494ab0abc2a491aa3ee13acb17719523f88f1f7
@@ -5,9 +5,11 @@ module HerokuVault
5
5
  class Cli < Thor
6
6
  desc "encrypt config_file", "encrypt usage"
7
7
  method_option :output, aliases: :o, required: true
8
+ method_option :salt, aliases: :s
8
9
  def encrypt(file_name)
9
10
  password = enter_password
10
- encryptor = HerokuVault::EncrypterFactory.create(password)
11
+ salt = enter_salt
12
+ encryptor = HerokuVault::EncrypterFactory.create(password, salt)
11
13
 
12
14
  config_data = open(file_name) do |io|
13
15
  JSON.load(io)
@@ -27,7 +29,8 @@ module HerokuVault
27
29
  end
28
30
 
29
31
  password = enter_password
30
- encryptor = HerokuVault::EncrypterFactory.create(password)
32
+ salt = enter_salt
33
+ encryptor = HerokuVault::EncrypterFactory.create(password, salt)
31
34
 
32
35
  decrypted = config_data.map do |key, val|
33
36
  [key, encryptor.decrypt_and_verify(val)]
@@ -49,9 +52,10 @@ module HerokuVault
49
52
  method_option :output, aliases: :o, required: true
50
53
  def create_encrypted_config(app_name)
51
54
  password = enter_password
55
+ salt = enter_salt
52
56
  heroku = HerokuVault::HerokuCommander.new
53
57
  config_data = heroku.config_all(app_name)
54
- encryptor = HerokuVault::EncrypterFactory.create(password)
58
+ encryptor = HerokuVault::EncrypterFactory.create(password, salt)
55
59
 
56
60
  encrypted = JSON.parse(config_data).map do |key, val|
57
61
  [key, encryptor.encrypt_and_sign(val)]
@@ -65,7 +69,8 @@ module HerokuVault
65
69
  method_option :file, aliases: :f, required: true
66
70
  def apply(app_name)
67
71
  password = enter_password
68
- encryptor = HerokuVault::EncrypterFactory.create(password)
72
+ salt = enter_salt
73
+ encryptor = HerokuVault::EncrypterFactory.create(password, salt)
69
74
  heroku = HerokuVault::HerokuCommander.new
70
75
 
71
76
  File.open(options[:file]) do |file|
@@ -91,6 +96,13 @@ module HerokuVault
91
96
  return password
92
97
  end
93
98
 
99
+ def enter_salt
100
+ print 'enter salt: '
101
+ salt = STDIN.noecho(&:gets)
102
+ puts
103
+ salt
104
+ end
105
+
94
106
  def output_file(file_name, json_hash)
95
107
  File.open(file_name, 'w') do |file|
96
108
  JSON.pretty_generate(json_hash).each_line do |line|
@@ -2,8 +2,8 @@ require 'active_support'
2
2
 
3
3
  module HerokuVault
4
4
  module EncrypterFactory
5
- def self.create(password)
6
- key = ActiveSupport::KeyGenerator.new(password).generate_key('salt', 32)
5
+ def self.create(password, salt = 'salt')
6
+ key = ActiveSupport::KeyGenerator.new(password).generate_key(salt, 32)
7
7
  return ActiveSupport::MessageEncryptor.new(key, cipher: "aes-256-cbc")
8
8
  end
9
9
  end
@@ -1,3 +1,3 @@
1
1
  module HerokuVault
2
- VERSION = "0.1.1"
2
+ VERSION = '0.1.2'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heroku_vault
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - nasum