chef-encrypted-attributes 0.3.0 → 0.4.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 (46) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.yardopts +8 -0
  5. data/CHANGELOG.md +40 -4
  6. data/CONTRIBUTING.md +7 -6
  7. data/KNIFE.md +151 -0
  8. data/README.md +70 -192
  9. data/Rakefile +27 -14
  10. data/TESTING.md +18 -7
  11. data/TODO.md +2 -5
  12. data/lib/chef-encrypted-attributes.rb +7 -1
  13. data/lib/chef/encrypted_attribute.rb +282 -121
  14. data/lib/chef/encrypted_attribute/api.rb +521 -0
  15. data/lib/chef/encrypted_attribute/assertions.rb +16 -6
  16. data/lib/chef/encrypted_attribute/cache_lru.rb +54 -13
  17. data/lib/chef/encrypted_attribute/config.rb +198 -89
  18. data/lib/chef/encrypted_attribute/encrypted_mash.rb +127 -33
  19. data/lib/chef/encrypted_attribute/encrypted_mash/version0.rb +236 -48
  20. data/lib/chef/encrypted_attribute/encrypted_mash/version1.rb +249 -36
  21. data/lib/chef/encrypted_attribute/encrypted_mash/version2.rb +133 -19
  22. data/lib/chef/encrypted_attribute/exceptions.rb +19 -3
  23. data/lib/chef/encrypted_attribute/local_node.rb +15 -4
  24. data/lib/chef/encrypted_attribute/remote_clients.rb +33 -17
  25. data/lib/chef/encrypted_attribute/remote_node.rb +84 -29
  26. data/lib/chef/encrypted_attribute/remote_nodes.rb +62 -11
  27. data/lib/chef/encrypted_attribute/remote_users.rb +58 -19
  28. data/lib/chef/encrypted_attribute/search_helper.rb +214 -74
  29. data/lib/chef/encrypted_attribute/version.rb +3 -1
  30. data/lib/chef/encrypted_attributes.rb +20 -0
  31. data/lib/chef/knife/core/config.rb +4 -1
  32. data/lib/chef/knife/core/encrypted_attribute_base.rb +179 -0
  33. data/lib/chef/knife/core/encrypted_attribute_depends.rb +43 -0
  34. data/lib/chef/knife/core/encrypted_attribute_editor_options.rb +125 -61
  35. data/lib/chef/knife/encrypted_attribute_create.rb +51 -31
  36. data/lib/chef/knife/encrypted_attribute_delete.rb +32 -40
  37. data/lib/chef/knife/encrypted_attribute_edit.rb +51 -32
  38. data/lib/chef/knife/encrypted_attribute_show.rb +30 -55
  39. data/lib/chef/knife/encrypted_attribute_update.rb +43 -28
  40. data/spec/benchmark_helper.rb +2 -1
  41. data/spec/integration_helper.rb +1 -0
  42. data/spec/spec_helper.rb +21 -7
  43. metadata +75 -36
  44. metadata.gz.sig +1 -1
  45. data/API.md +0 -174
  46. data/INTERNAL.md +0 -166
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  #
2
3
  # Author:: Xabier de Zuazo (<xabier@onddo.com>)
3
4
  # Copyright:: Copyright (c) 2014 Onddo Labs, SL. (www.onddo.com)
@@ -16,53 +17,71 @@
16
17
  # limitations under the License.
17
18
  #
18
19
 
19
- require 'chef/knife/encrypted_attribute_show'
20
+ require 'chef/knife/core/encrypted_attribute_base'
21
+ require 'chef/knife/core/encrypted_attribute_depends'
20
22
  require 'chef/knife/core/encrypted_attribute_editor_options'
21
23
 
22
24
  class Chef
23
25
  class Knife
24
- class EncryptedAttributeEdit < EncryptedAttributeShow
25
-
26
+ # knife encrypted attribute edit command.
27
+ #
28
+ # ```
29
+ # $ knife encrypted attribute edit NODE ATTRIBUTE (options)
30
+ # ```
31
+ class EncryptedAttributeEdit < Core::EncryptedAttributeBase
32
+ include Knife::Core::EncryptedAttributeDepends
26
33
  include Knife::Core::EncryptedAttributeEditorOptions
27
34
 
28
35
  option :input_format,
29
- :short => '-i FORMAT',
30
- :long => '--input-format FORMAT',
31
- :description => 'Input (EDITOR) format, supported formats are "plain" (default) and "json"'
36
+ short: '-i FORMAT',
37
+ long: '--input-format FORMAT',
38
+ description:
39
+ 'Input (EDITOR) format, supported formats are "plain" '\
40
+ '(default) and "json"'
32
41
 
33
42
  banner 'knife encrypted attribute edit NODE ATTRIBUTE (options)'
34
43
 
35
- def run
36
- node_name = @name_args[0]
37
- attr_path = @name_args[1]
38
-
39
- if node_name.nil?
40
- show_usage
41
- ui.fatal('You must specify a node name')
42
- exit 1
43
- end
44
-
45
- if attr_path.nil?
46
- show_usage
47
- ui.fatal('You must specify an encrypted attribute name')
48
- exit 1
49
- end
50
-
51
- attr_ary = attribute_path_to_ary(attr_path)
44
+ # (see EncryptedAttributeBase#assert_valid_args)
45
+ # @raise [ArgumentError] if the attribute path format is wrong.
46
+ def assert_valid_args
47
+ assert_attribute_exists(@node_name, @attr_ary)
48
+ end
52
49
 
53
- # check if the encrypted attribute already exists
54
- unless Chef::EncryptedAttribute.exist_on_node?(node_name, attr_ary)
55
- ui.fatal('Encrypted attribute not found')
56
- exit 1
57
- end
50
+ # Runs knife command.
51
+ #
52
+ # @raise [RuntimeError] if the editing command fails.
53
+ # @return void
54
+ # @raise [ArgumentError] if the attribute path format or the user list is
55
+ # wrong.
56
+ # @raise [UnacceptableEncryptedAttributeFormat] if encrypted attribute
57
+ # format is wrong or does not exist.
58
+ # @raise [UnsupportedEncryptedAttributeFormat] if encrypted attribute
59
+ # format is not supported or unknown.
60
+ # @raise [EncryptionFailure] if there are encryption errors.
61
+ # @raise [MessageAuthenticationFailure] if HMAC calculation error.
62
+ # @raise [InvalidPublicKey] if it is not a valid RSA public key.
63
+ # @raise [InvalidKey] if the RSA key format is wrong.
64
+ # @raise [InsufficientPrivileges] if you lack enough privileges to read
65
+ # the keys from the Chef Server.
66
+ # @raise [ClientNotFound] if client does not exist.
67
+ # @raise [Net::HTTPServerException] for Chef Server HTTP errors.
68
+ # @raise [RequirementsFailure] if the specified encrypted attribute
69
+ # version cannot be used.
70
+ # @raise [SearchFailure] if there is a Chef search error.
71
+ # @raise [SearchFatalError] if the Chef search response is wrong.
72
+ # @raise [InvalidSearchKeys] if search keys structure is wrong.
73
+ def run
74
+ parse_args
58
75
 
59
76
  # edit encrypted attribute
60
- enc_attr = Chef::EncryptedAttribute.new(Chef::Config[:knife][:encrypted_attributes])
61
- input = enc_attr.load_from_node(node_name, attr_ary)
77
+ enc_attr =
78
+ Chef::EncryptedAttribute.new(
79
+ Chef::Config[:knife][:encrypted_attributes]
80
+ )
81
+ input = enc_attr.load_from_node(@node_name, @attr_ary)
62
82
  output = edit_data(input, config[:input_format])
63
- enc_attr.create_on_node(node_name, attr_ary, output)
83
+ enc_attr.create_on_node(@node_name, @attr_ary, output)
64
84
  end
65
-
66
85
  end
67
86
  end
68
87
  end
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  #
2
3
  # Author:: Xabier de Zuazo (<xabier@onddo.com>)
3
4
  # Copyright:: Copyright (c) 2014 Onddo Labs, SL. (www.onddo.com)
@@ -16,71 +17,45 @@
16
17
  # limitations under the License.
17
18
  #
18
19
 
19
- require 'chef/knife'
20
+ require 'chef/knife/core/encrypted_attribute_base'
21
+ require 'chef/knife/core/encrypted_attribute_depends'
20
22
 
21
23
  class Chef
22
24
  class Knife
23
- class EncryptedAttributeShow < Knife
24
-
25
- deps do
26
- require 'chef/encrypted_attribute'
27
- require 'chef/json_compat'
28
- end
25
+ # knife encrypted attribute show command.
26
+ #
27
+ # ```
28
+ # $ knife encrypted attribute show NODE ATTRIBUTE (options)
29
+ # ```
30
+ class EncryptedAttributeShow < Core::EncryptedAttributeBase
31
+ include Knife::Core::EncryptedAttributeDepends
29
32
 
30
33
  banner 'knife encrypted attribute show NODE ATTRIBUTE (options)'
31
34
 
32
- def run
33
- node_name = @name_args[0]
34
- attr_path = @name_args[1]
35
-
36
- if node_name.nil?
37
- show_usage
38
- ui.fatal('You must specify a node name')
39
- exit 1
40
- end
41
-
42
- if attr_path.nil?
43
- show_usage
44
- ui.fatal('You must specify an encrypted attribute name')
45
- exit 1
46
- end
47
-
48
- attr_ary = attribute_path_to_ary(attr_path)
35
+ # (see EncryptedAttributeBase#assert_valid_args)
36
+ # @raise [ArgumentError] if the attribute path format is wrong.
37
+ def assert_valid_args
38
+ assert_attribute_exists(@node_name, @attr_ary)
39
+ end
49
40
 
50
- unless Chef::EncryptedAttribute.exist_on_node?(node_name, attr_ary)
51
- ui.fatal('Encrypted attribute not found')
52
- exit 1
53
- end
41
+ # Runs knife command.
42
+ #
43
+ # @return void
44
+ # @raise [ArgumentError] if the attribute path format is wrong.
45
+ # @raise [UnacceptableEncryptedAttributeFormat] if encrypted attribute
46
+ # format is wrong.
47
+ # @raise [UnsupportedEncryptedAttributeFormat] if encrypted attribute
48
+ # format is not supported or unknown.
49
+ # @raise [SearchFailure] if there is a Chef search error.
50
+ # @raise [SearchFatalError] if the Chef search response is wrong.
51
+ # @raise [InvalidSearchKeys] if search keys structure is wrong.
52
+ def run
53
+ parse_args
54
54
 
55
- enc_attr = Chef::EncryptedAttribute.load_from_node(node_name, attr_ary)
55
+ enc_attr =
56
+ Chef::EncryptedAttribute.load_from_node(@node_name, @attr_ary)
56
57
  output(enc_attr)
57
58
  end
58
-
59
- def attribute_path_to_ary(str, delim='.', escape='\\')
60
- # return str.scan(/(?:[^.\\]|\\.)+/).map {|x| x.gsub('\\.', '.') } # cool, but doesn't work for some edge cases
61
- result = []
62
- current = ''
63
- i = 0
64
- while ! str[i].nil?
65
- if str[i] == escape
66
- if str[i+1] == delim
67
- current << str[i+1]
68
- else
69
- current << str[i]
70
- current << str[i+1] unless str[i+1].nil?
71
- end
72
- i += 1 # skip the next char
73
- elsif str[i] == delim
74
- result << current
75
- current = ''
76
- else
77
- current << str[i]
78
- end
79
- i += 1
80
- end
81
- result << current
82
- end
83
-
84
59
  end
85
60
  end
86
61
  end
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  #
2
3
  # Author:: Xabier de Zuazo (<xabier@onddo.com>)
3
4
  # Copyright:: Copyright (c) 2014 Onddo Labs, SL. (www.onddo.com)
@@ -16,50 +17,64 @@
16
17
  # limitations under the License.
17
18
  #
18
19
 
19
- require 'chef/knife/encrypted_attribute_show'
20
+ require 'chef/knife/core/encrypted_attribute_base'
21
+ require 'chef/knife/core/encrypted_attribute_depends'
20
22
  require 'chef/knife/core/encrypted_attribute_editor_options'
21
23
 
22
24
  class Chef
23
25
  class Knife
24
- class EncryptedAttributeUpdate < EncryptedAttributeShow
25
-
26
+ # knife encrypted attribute update command.
27
+ #
28
+ # ```
29
+ # $ knife encrypted attribute update NODE ATTRIBUTE (options)
30
+ # ```
31
+ class EncryptedAttributeUpdate < Core::EncryptedAttributeBase
32
+ include Knife::Core::EncryptedAttributeDepends
26
33
  include Knife::Core::EncryptedAttributeEditorOptions
27
34
 
28
35
  banner 'knife encrypted attribute update NODE ATTRIBUTE (options)'
29
36
 
30
- def run
31
- node_name = @name_args[0]
32
- attr_path = @name_args[1]
33
-
34
- if node_name.nil?
35
- show_usage
36
- ui.fatal('You must specify a node name')
37
- exit 1
38
- end
39
-
40
- if attr_path.nil?
41
- show_usage
42
- ui.fatal('You must specify an encrypted attribute name')
43
- exit 1
44
- end
45
-
46
- attr_ary = attribute_path_to_ary(attr_path)
37
+ # (see EncryptedAttributeBase#assert_valid_args)
38
+ # @raise [ArgumentError] if the attribute path format is wrong.
39
+ def assert_valid_args
40
+ assert_attribute_exists(@node_name, @attr_ary)
41
+ end
47
42
 
48
- # check if the encrypted attribute already exists
49
- unless Chef::EncryptedAttribute.exist_on_node?(node_name, attr_ary)
50
- ui.fatal('Encrypted attribute not found')
51
- exit 1
52
- end
43
+ # Runs knife command.
44
+ #
45
+ # @return void
46
+ # @raise [ArgumentError] if the attribute path format or the user list is
47
+ # wrong.
48
+ # @raise [UnacceptableEncryptedAttributeFormat] if encrypted attribute
49
+ # format is wrong or does not exist.
50
+ # @raise [UnsupportedEncryptedAttributeFormat] if encrypted attribute
51
+ # format is not supported or unknown.
52
+ # @raise [EncryptionFailure] if there are encryption errors.
53
+ # @raise [MessageAuthenticationFailure] if HMAC calculation error.
54
+ # @raise [InvalidPublicKey] if it is not a valid RSA public key.
55
+ # @raise [InvalidKey] if the RSA key format is wrong.
56
+ # @raise [InsufficientPrivileges] if you lack enough privileges to read
57
+ # the keys from the Chef Server.
58
+ # @raise [ClientNotFound] if client does not exist.
59
+ # @raise [Net::HTTPServerException] for Chef Server HTTP errors.
60
+ # @raise [RequirementsFailure] if the specified encrypted attribute
61
+ # version cannot be used.
62
+ # @raise [SearchFailure] if there is a Chef search error.
63
+ # @raise [SearchFatalError] if the Chef search response is wrong.
64
+ # @raise [InvalidSearchKeys] if search keys structure is wrong.
65
+ def run
66
+ parse_args
53
67
 
54
68
  # update encrypted attribute
55
- enc_attr = Chef::EncryptedAttribute.new(Chef::Config[:knife][:encrypted_attributes])
56
- if enc_attr.update_on_node(node_name, attr_ary)
69
+ enc_attr = Chef::EncryptedAttribute.new(
70
+ Chef::Config[:knife][:encrypted_attributes]
71
+ )
72
+ if enc_attr.update_on_node(@node_name, @attr_ary)
57
73
  ui.info('Encrypted attribute updated.')
58
74
  else
59
75
  ui.info('Encrypted attribute does not need updating.')
60
76
  end
61
77
  end
62
-
63
78
  end
64
79
  end
65
80
  end
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  #
2
3
  # Author:: Xabier de Zuazo (<xabier@onddo.com>)
3
4
  # Copyright:: Copyright (c) 2014 Onddo Labs, SL. (www.onddo.com)
@@ -18,7 +19,7 @@
18
19
 
19
20
  require 'rspec/autorun'
20
21
  require 'chef_zero/rspec'
21
- require 'chef-encrypted-attributes'
22
+ require 'chef/encrypted_attributes'
22
23
 
23
24
  require 'support/silent_formatter'
24
25
  RSpec.configure do |config|
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  #
2
3
  # Author:: Xabier de Zuazo (<xabier@onddo.com>)
3
4
  # Copyright:: Copyright (c) 2014 Onddo Labs, SL. (www.onddo.com)
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  #
2
3
  # Author:: Xabier de Zuazo (<xabier@onddo.com>)
3
4
  # Copyright:: Copyright (c) 2014 Onddo Labs, SL. (www.onddo.com)
@@ -17,7 +18,7 @@
17
18
  #
18
19
 
19
20
  require 'simplecov'
20
- if ENV['TRAVIS'] and RUBY_VERSION >= '2.0'
21
+ if ENV['TRAVIS'] && RUBY_VERSION >= '2.0'
21
22
  require 'coveralls'
22
23
  SimpleCov.formatter = Coveralls::SimpleCov::Formatter
23
24
  end
@@ -25,22 +26,35 @@ SimpleCov.start do
25
26
  add_filter '/spec/'
26
27
  end
27
28
 
28
- require 'chef-encrypted-attributes'
29
+ require 'chef/encrypted_attributes'
29
30
  require 'chef/exceptions'
30
31
 
31
32
  require 'rspec/autorun'
33
+ require 'should_not/rspec'
32
34
 
33
35
  require 'support/platform_helpers'
36
+ require 'support/chef_helpers'
37
+ require 'support/encrypted_attributes_helpers'
34
38
 
35
39
  RSpec.configure do |config|
40
+ # Prohibit using the should syntax
41
+ config.expect_with :rspec do |spec|
42
+ spec.syntax = :expect
43
+ end
44
+
36
45
  config.order = 'random'
37
46
 
38
47
  config.color = true
39
48
  config.tty = true
40
49
 
41
- config.filter_run_excluding :ruby_gte_19 => true unless ruby_gte_19?
42
- config.filter_run_excluding :ruby_gte_20 => true unless ruby_gte_20?
43
- config.filter_run_excluding :ruby_gte_20_and_openssl_gte_101 => true unless (ruby_gte_20? && openssl_gte_101?)
44
- config.filter_run_excluding :openssl_lt_101 => true unless openssl_lt_101?
45
- config.filter_run_excluding :ruby_lt_20 => true unless ruby_lt_20?
50
+ config.filter_run_excluding ruby_gte_19: true unless ruby_gte_19?
51
+ config.filter_run_excluding ruby_gte_20: true unless ruby_gte_20?
52
+ unless ruby_gte_20? && openssl_gte_101?
53
+ config.filter_run_excluding ruby_gte_20_and_openssl_gte_101: true
54
+ end
55
+ config.filter_run_excluding openssl_lt_101: true unless openssl_lt_101?
56
+ config.filter_run_excluding ruby_lt_20: true unless ruby_lt_20?
57
+
58
+ config.include ChefHelpers
59
+ config.include EncryptedAttributesHelpers
46
60
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef-encrypted-attributes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Onddo Labs, SL.
@@ -30,144 +30,178 @@ cert_chain:
30
30
  cYe8PqNEkky7ugvF4zU3sB6TW+96XasuwDv1uJmyr35LF15U6Cs83+osMbAKJTmG
31
31
  /vqKzw==
32
32
  -----END CERTIFICATE-----
33
- date: 2014-08-25 00:00:00.000000000 Z
33
+ date: 2014-12-10 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
- name: yajl-ruby
36
+ name: ffi-yajl
37
37
  requirement: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ~>
39
+ - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '1.1'
41
+ version: '1.0'
42
42
  type: :runtime
43
43
  prerelease: false
44
44
  version_requirements: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - ~>
46
+ - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '1.1'
48
+ version: '1.0'
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: chef
51
51
  requirement: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - ~>
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: '11.4'
56
+ - - "<"
57
+ - !ruby/object:Gem::Version
58
+ version: '13'
56
59
  type: :runtime
57
60
  prerelease: false
58
61
  version_requirements: !ruby/object:Gem::Requirement
59
62
  requirements:
60
- - - ~>
63
+ - - ">="
61
64
  - !ruby/object:Gem::Version
62
65
  version: '11.4'
66
+ - - "<"
67
+ - !ruby/object:Gem::Version
68
+ version: '13'
63
69
  - !ruby/object:Gem::Dependency
64
70
  name: rake
65
71
  requirement: !ruby/object:Gem::Requirement
66
72
  requirements:
67
- - - ~>
73
+ - - "~>"
68
74
  - !ruby/object:Gem::Version
69
75
  version: '10.0'
70
76
  type: :development
71
77
  prerelease: false
72
78
  version_requirements: !ruby/object:Gem::Requirement
73
79
  requirements:
74
- - - ~>
80
+ - - "~>"
75
81
  - !ruby/object:Gem::Version
76
82
  version: '10.0'
77
83
  - !ruby/object:Gem::Dependency
78
84
  name: chef-zero
79
85
  requirement: !ruby/object:Gem::Requirement
80
86
  requirements:
81
- - - ~>
87
+ - - "~>"
82
88
  - !ruby/object:Gem::Version
83
- version: '2.0'
89
+ version: '3.2'
84
90
  type: :development
85
91
  prerelease: false
86
92
  version_requirements: !ruby/object:Gem::Requirement
87
93
  requirements:
88
- - - ~>
94
+ - - "~>"
89
95
  - !ruby/object:Gem::Version
90
- version: '2.0'
96
+ version: '3.2'
91
97
  - !ruby/object:Gem::Dependency
92
98
  name: rspec-core
93
99
  requirement: !ruby/object:Gem::Requirement
94
100
  requirements:
95
- - - ~>
101
+ - - "~>"
96
102
  - !ruby/object:Gem::Version
97
- version: '2.14'
103
+ version: '3.1'
98
104
  type: :development
99
105
  prerelease: false
100
106
  version_requirements: !ruby/object:Gem::Requirement
101
107
  requirements:
102
- - - ~>
108
+ - - "~>"
103
109
  - !ruby/object:Gem::Version
104
- version: '2.14'
110
+ version: '3.1'
105
111
  - !ruby/object:Gem::Dependency
106
112
  name: rspec-expectations
107
113
  requirement: !ruby/object:Gem::Requirement
108
114
  requirements:
109
- - - ~>
115
+ - - "~>"
110
116
  - !ruby/object:Gem::Version
111
- version: '2.14'
117
+ version: '3.1'
112
118
  type: :development
113
119
  prerelease: false
114
120
  version_requirements: !ruby/object:Gem::Requirement
115
121
  requirements:
116
- - - ~>
122
+ - - "~>"
117
123
  - !ruby/object:Gem::Version
118
- version: '2.14'
124
+ version: '3.1'
119
125
  - !ruby/object:Gem::Dependency
120
126
  name: rspec-mocks
121
127
  requirement: !ruby/object:Gem::Requirement
122
128
  requirements:
123
- - - ~>
129
+ - - "~>"
124
130
  - !ruby/object:Gem::Version
125
- version: '2.14'
131
+ version: '3.1'
126
132
  type: :development
127
133
  prerelease: false
128
134
  version_requirements: !ruby/object:Gem::Requirement
129
135
  requirements:
130
- - - ~>
136
+ - - "~>"
131
137
  - !ruby/object:Gem::Version
132
- version: '2.14'
138
+ version: '3.1'
133
139
  - !ruby/object:Gem::Dependency
134
140
  name: coveralls
135
141
  requirement: !ruby/object:Gem::Requirement
136
142
  requirements:
137
- - - ~>
143
+ - - "~>"
138
144
  - !ruby/object:Gem::Version
139
145
  version: '0.7'
140
146
  type: :development
141
147
  prerelease: false
142
148
  version_requirements: !ruby/object:Gem::Requirement
143
149
  requirements:
144
- - - ~>
150
+ - - "~>"
145
151
  - !ruby/object:Gem::Version
146
152
  version: '0.7'
147
153
  - !ruby/object:Gem::Dependency
148
154
  name: simplecov
149
155
  requirement: !ruby/object:Gem::Requirement
150
156
  requirements:
151
- - - ~>
157
+ - - "~>"
152
158
  - !ruby/object:Gem::Version
153
159
  version: '0.9'
154
160
  type: :development
155
161
  prerelease: false
156
162
  version_requirements: !ruby/object:Gem::Requirement
157
163
  requirements:
158
- - - ~>
164
+ - - "~>"
159
165
  - !ruby/object:Gem::Version
160
166
  version: '0.9'
167
+ - !ruby/object:Gem::Dependency
168
+ name: should_not
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '1.1'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '1.1'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rubocop
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - '='
186
+ - !ruby/object:Gem::Version
187
+ version: 0.27.1
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - '='
193
+ - !ruby/object:Gem::Version
194
+ version: 0.27.1
161
195
  description: Chef plugin to add Node encrypted attributes support using client keys
162
196
  email: team@onddo.com
163
197
  executables: []
164
198
  extensions: []
165
199
  extra_rdoc_files: []
166
200
  files:
167
- - API.md
201
+ - ".yardopts"
168
202
  - CHANGELOG.md
169
203
  - CONTRIBUTING.md
170
- - INTERNAL.md
204
+ - KNIFE.md
171
205
  - LICENSE
172
206
  - README.md
173
207
  - Rakefile
@@ -175,6 +209,7 @@ files:
175
209
  - TODO.md
176
210
  - lib/chef-encrypted-attributes.rb
177
211
  - lib/chef/encrypted_attribute.rb
212
+ - lib/chef/encrypted_attribute/api.rb
178
213
  - lib/chef/encrypted_attribute/assertions.rb
179
214
  - lib/chef/encrypted_attribute/cache_lru.rb
180
215
  - lib/chef/encrypted_attribute/config.rb
@@ -190,7 +225,10 @@ files:
190
225
  - lib/chef/encrypted_attribute/remote_users.rb
191
226
  - lib/chef/encrypted_attribute/search_helper.rb
192
227
  - lib/chef/encrypted_attribute/version.rb
228
+ - lib/chef/encrypted_attributes.rb
193
229
  - lib/chef/knife/core/config.rb
230
+ - lib/chef/knife/core/encrypted_attribute_base.rb
231
+ - lib/chef/knife/core/encrypted_attribute_depends.rb
194
232
  - lib/chef/knife/core/encrypted_attribute_editor_options.rb
195
233
  - lib/chef/knife/encrypted_attribute_create.rb
196
234
  - lib/chef/knife/encrypted_attribute_delete.rb
@@ -210,12 +248,12 @@ require_paths:
210
248
  - lib
211
249
  required_ruby_version: !ruby/object:Gem::Requirement
212
250
  requirements:
213
- - - '>='
251
+ - - ">="
214
252
  - !ruby/object:Gem::Version
215
253
  version: 1.9.2
216
254
  required_rubygems_version: !ruby/object:Gem::Requirement
217
255
  requirements:
218
- - - '>='
256
+ - - ">="
219
257
  - !ruby/object:Gem::Version
220
258
  version: '0'
221
259
  requirements: []
@@ -225,6 +263,7 @@ signing_key:
225
263
  specification_version: 4
226
264
  summary: Chef Encrypted Attributes
227
265
  test_files:
266
+ - spec/spec_helper.rb
228
267
  - spec/integration_helper.rb
229
268
  - spec/benchmark_helper.rb
230
- - spec/spec_helper.rb
269
+ has_rdoc: