hiera-eyaml 2.0.3 → 2.0.4

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.
@@ -0,0 +1,16 @@
1
+ Change log for hiera-eyaml
2
+ ==========================
3
+
4
+ 2.04
5
+ ----
6
+
7
+ - Add change log
8
+ - #118 - Some initial support for spaces in filenames (primarily targeted at windows platforms) (@elyscape)
9
+ - #114 - Add new config file resolution so that a system wide /etc/eyaml/config.yaml is processed first (@gtmtech)
10
+ - #112 - Improve debugging options and colorise output (@gtmtech)
11
+ - #102 - Extension of temp files should be yaml to help editors provide syntax highlighting (@ColinHebert)
12
+ - #90, #121, #122 - Add preamble in edit mode to make it easier to remember how to edit (@sihil)
13
+ - #96, #111, #116 - Various updates to docs
14
+
15
+ 2.03
16
+ ----
data/README.md CHANGED
@@ -59,6 +59,10 @@ Setup
59
59
 
60
60
  $ gem install hiera-eyaml
61
61
 
62
+ ### Installing hiera-eyaml for the new [puppet-server](https://github.com/puppetlabs/puppet-server)
63
+
64
+ $ puppetserver gem install hiera-eyaml
65
+
62
66
  ### Generate keys
63
67
 
64
68
  The first step is to create a pair of keys:
@@ -234,7 +238,7 @@ Configuration file for eyaml
234
238
 
235
239
  Default parameters for the eyaml command line tool can be provided by creating a configuration YAML file.
236
240
 
237
- The location of the file defaults to `~/.eyaml/config.yaml` but can be overriden by setting `EYAML_CONFIG` environment variable.
241
+ Config files will be read first from `/etc/eyaml/config.yaml`, then from `~/.eyaml/config.yaml` and finally by anything referenced in the `EYAML_CONFIG` environment variable
238
242
 
239
243
  The file takes any long form argument that you can provide on the command line. For example, to override the pkcs7 keys:
240
244
  ```yaml
@@ -271,9 +275,12 @@ When editing eyaml files, you will see that the unencrypted plaintext is marked
271
275
  This is a list of available plugins:
272
276
 
273
277
  - [hiera-eyaml-gpg](https://github.com/sihil/hiera-eyaml-gpg) - Provide GPG encryption
274
- - [hiera-eyaml-plaintext](https://github.com/gtmtech/hiera-eyaml-plaintext) - This is a no-op encryption plugin that
278
+ - [hiera-eyaml-plaintext](https://github.com/gtmtechltd/hiera-eyaml-plaintext) - This is a no-op encryption plugin that
275
279
  simply base64 encodes the values. It exists as an example plugin to create your own and to do integration tests on
276
280
  hiera-eyaml. **THIS SHOULD NOT BE USED IN PRODUCTION**
281
+ - [hiera-eyaml-twofac](https://github.com/gtmtechltd/hiera-eyaml-twofac) - PKCS7 keypair + AES256 symmetric password for two-factor encryption
282
+ Note that this plugin mandates the user enter a password. It is useful for non-automated scenarios, and is not advised to be used
283
+ in conjunction with puppet, as it requires entry of a password over a terminal.
277
284
 
278
285
 
279
286
  Notes
@@ -322,6 +329,7 @@ You'll need to have a few requirements installed:
322
329
  * `aruba` (gem)
323
330
  * `cucumber` (gem)
324
331
  * `puppet` (gem)
332
+ * `hiera-eyaml-plaintext` (gem)
325
333
 
326
334
 
327
335
  Authors
data/bin/eyaml CHANGED
@@ -9,5 +9,18 @@ require 'hiera/backend/eyaml/encryptors/pkcs7'
9
9
  Hiera::Backend::Eyaml::Encryptors::Pkcs7.register
10
10
  Hiera::Backend::Eyaml::Plugins.find
11
11
 
12
- Hiera::Backend::Eyaml::CLI.parse
13
- Hiera::Backend::Eyaml::CLI.execute
12
+ begin
13
+ Hiera::Backend::Eyaml::CLI.parse
14
+ rescue StandardError => e
15
+ Hiera::Backend::Eyaml::Utils.warn e.message
16
+ Hiera::Backend::Eyaml::Utils.debug e.backtrace.join("\n")
17
+ exit 1
18
+ end
19
+
20
+ begin
21
+ Hiera::Backend::Eyaml::CLI.execute
22
+ rescue StandardError => e
23
+ Hiera::Backend::Eyaml::Utils.warn e.message
24
+ Hiera::Backend::Eyaml::Utils.debug e.backtrace.join("\n")
25
+ exit 1
26
+ end
@@ -2,7 +2,7 @@ class Hiera
2
2
  module Backend
3
3
  module Eyaml
4
4
 
5
- VERSION = "2.0.3"
5
+ VERSION = "2.0.4"
6
6
  DESCRIPTION = "Hiera-eyaml is a backend for Hiera which provides OpenSSL encryption/decryption for Hiera properties"
7
7
 
8
8
  class RecoverableError < StandardError
@@ -45,4 +45,3 @@ class Hiera
45
45
  end
46
46
  end
47
47
  end
48
-
@@ -34,7 +34,7 @@ class Hiera
34
34
 
35
35
  options = command_class.validate options
36
36
  Eyaml::Options.set options
37
- Eyaml::Options.debug
37
+ Eyaml::Options.trace
38
38
 
39
39
  end
40
40
 
@@ -46,7 +46,7 @@ class Hiera
46
46
  puts result unless result.nil?
47
47
  rescue Exception => e
48
48
  Utils.warn e.message
49
- Utils.info e.backtrace.inspect
49
+ Utils.debug e.backtrace.join("\n")
50
50
  end
51
51
 
52
52
  end
@@ -59,6 +59,10 @@ class Hiera
59
59
  "[eyaml_#{plugin_classname}]: #{msg}"
60
60
  end
61
61
 
62
+ def self.trace msg
63
+ Utils::trace :from => plugin_classname, :msg => msg
64
+ end
65
+
62
66
  def self.debug msg
63
67
  Utils::debug :from => plugin_classname, :msg => msg
64
68
  end
@@ -94,7 +94,7 @@ class Hiera
94
94
 
95
95
  Utils.ensure_key_dir_exists public_key
96
96
  Utils.write_important_file :filename => public_key, :content => cert.to_pem
97
- puts "Keys created OK"
97
+ Utils.info "Keys created OK"
98
98
 
99
99
  end
100
100
 
@@ -20,13 +20,17 @@ class Hiera
20
20
  end
21
21
  end
22
22
 
23
- def self.debug
24
- Utils::debug "Dump of eyaml tool options dict:"
25
- Utils::debug "--------------------------------"
23
+ def self.trace
24
+ Utils::trace "Dump of eyaml tool options dict:"
25
+ Utils::trace "--------------------------------"
26
26
  @@options.each do |k, v|
27
- Utils::debug sprintf "%18s %-18s = %18s %-18s", "(#{k.class.name})", k.to_s, "(#{v.class.name})", v.to_s
27
+ begin
28
+ Utils::trace sprintf "%18s %-18s = %18s %-18s", "(#{k.class.name})", k.to_s, "(#{v.class.name})", v.to_s
29
+ rescue
30
+ Utils::trace sprintf "%18s %-18s = %18s %-18s", "(#{k.class.name})", k.to_s, "(#{v.class.name})", "<unprintable>" # case where v is binary
31
+ end
28
32
  end
29
- Utils::debug "--------------------------------"
33
+ Utils::trace "--------------------------------"
30
34
  end
31
35
 
32
36
  end
@@ -22,6 +22,9 @@ class Hiera
22
22
  {:name => :verbose,
23
23
  :description => "Be more verbose",
24
24
  :short => 'v'},
25
+ {:name => :trace,
26
+ :description => "Enable trace debug",
27
+ :short => 't'},
25
28
  {:name => :quiet,
26
29
  :description => "Be less verbose",
27
30
  :short => 'q'},
@@ -31,21 +34,24 @@ class Hiera
31
34
  ]
32
35
 
33
36
  def self.load_config_file
34
- config_file=ENV['EYAML_CONFIG'] || "#{ENV['HOME']}/.eyaml/config.yaml"
35
- begin
36
- config = YAML.load_file(config_file)
37
- Utils::info "Loaded config from #{config_file}"
38
- config
39
- rescue Errno::ENOENT, IndexError
40
- {}
37
+ config = {}
38
+ [ "/etc/eyaml/config.yaml", "#{ENV['HOME']}/.eyaml/config.yaml", "#{ENV['EYAML_CONFIG']}" ].each do |config_file|
39
+ begin
40
+ yaml_contents = YAML.load_file(config_file)
41
+ Utils::info "Loaded config from #{config_file}"
42
+ config.merge! yaml_contents
43
+ rescue
44
+ raise StandardError, "Could not open config file \"#{config_file}\" for reading"
45
+ end if config_file and File.file? config_file
41
46
  end
47
+ config
42
48
  end
43
49
 
44
50
  def self.all_options
45
51
  options = @@global_options.dup
46
52
  options += self.options if self.options
47
53
  options += Plugins.options
48
- # merge in defaults from configuration file
54
+ # merge in defaults from configuration files
49
55
  config_file = self.load_config_file
50
56
  options.map!{ | opt|
51
57
  key_name = "#{opt[:name]}"
@@ -106,6 +112,10 @@ class Hiera
106
112
  Hiera::Backend::Eyaml.verbosity_level += 1
107
113
  end
108
114
 
115
+ if options[:trace]
116
+ Hiera::Backend::Eyaml.verbosity_level += 2
117
+ end
118
+
109
119
  if options[:quiet]
110
120
  Hiera::Backend::Eyaml.verbosity_level = 0
111
121
  end
@@ -12,7 +12,8 @@ class Hiera
12
12
  class Edit < Subcommand
13
13
 
14
14
  def self.options
15
- []
15
+ [{ :name => :no_preamble,
16
+ :description => "Don't prefix edit sessions with the informative preamble" }]
16
17
  end
17
18
 
18
19
  def self.description
@@ -23,11 +24,46 @@ class Hiera
23
24
  "Usage: eyaml edit [options] <some-eyaml-file>"
24
25
  end
25
26
 
27
+ def self.prefix
28
+ '#|'
29
+ end
30
+
31
+ def self.preamble
32
+ tags = (["pkcs7"] + Plugins.plugins.collect {|plugin|
33
+ plugin.name.split("hiera-eyaml-").last
34
+ }).collect{|name| Encryptor.find(name).tag}
35
+
36
+ preamble = <<-eos
37
+ This is eyaml edit mode. This text (lines starting with #{self.prefix} at the top of the
38
+ file) will be removed when you save and exit.
39
+ - To edit encrypted values, change the content of the DEC(<num>)::PKCS7[]!
40
+ block#{(tags.size>1) ? " (or #{tags.drop(1).collect {|tag| "DEC(<num>)::#{tag}[]!" }.join(' or ')})." : '.' }
41
+ WARNING: DO NOT change the number in the parentheses.
42
+ - To add a new encrypted value copy and paste a new block from the
43
+ appropriate example below. Note that:
44
+ * the text to encrypt goes in the square brackets
45
+ * ensure you include the exclamation mark when you copy and paste
46
+ * you must not include a number when adding a new block
47
+ e.g. #{tags.collect {|tag| "DEC::#{tag}[]!" }.join(' -or- ')}
48
+ eos
49
+
50
+ preamble.gsub(/^/, "#{self.prefix} ")
51
+ end
52
+
26
53
  def self.validate options
27
54
  Trollop::die "You must specify an eyaml file" if ARGV.empty?
28
55
  options[:source] = :eyaml
29
56
  options[:eyaml] = ARGV.shift
30
- options[:input_data] = File.read options[:eyaml]
57
+ if File.exists? options[:eyaml]
58
+ begin
59
+ options[:input_data] = File.read options[:eyaml]
60
+ rescue
61
+ raise StandardError, "Could not open file for reading: #{options[:eyaml]}"
62
+ end
63
+ else
64
+ Utils.info "#{options[:eyaml]} doesn't exist, editing new file"
65
+ options[:input_data] = "---"
66
+ end
31
67
  options
32
68
  end
33
69
 
@@ -35,16 +71,19 @@ class Hiera
35
71
  encrypted_parser = Parser::ParserFactory.encrypted_parser
36
72
  tokens = encrypted_parser.parse Eyaml::Options[:input_data]
37
73
  decrypted_input = tokens.each_with_index.to_a.map{|(t,index)| t.to_decrypted :index => index}.join
38
- decrypted_file = Utils.write_tempfile decrypted_input
74
+ decrypted_file_content = Eyaml::Options[:no_preamble] ? decrypted_input : (self.preamble + decrypted_input)
75
+ decrypted_file = Utils.write_tempfile decrypted_file_content
39
76
 
40
77
  editor = Utils.find_editor
41
78
 
42
79
  begin
43
- system "#{editor} #{decrypted_file}"
80
+ system "#{editor} \"#{decrypted_file}\""
44
81
  status = $?
45
82
 
46
83
  raise StandardError, "File was moved by editor" unless File.file? decrypted_file
47
- edited_file = File.read decrypted_file
84
+ raw_edited_file = File.read decrypted_file
85
+ # strip comments at start of file
86
+ edited_file = raw_edited_file.split($/,-1).drop_while {|line| line.start_with?(self.prefix)}.join($/)
48
87
 
49
88
  raise StandardError, "Editor #{editor} has not exited?" unless status.exited?
50
89
  raise StandardError, "Editor did not exit successfully (exit code #{status.exitstatus}), aborting" unless status.exitstatus == 0
@@ -19,11 +19,7 @@ class Hiera
19
19
  def self.execute
20
20
  plugin_versions = {}
21
21
 
22
- puts <<-EOS
23
- Version info
24
-
25
- hiera-eyaml (core): #{Eyaml::VERSION}
26
- EOS
22
+ Eyaml::Utils.info "hiera-eyaml (core): #{Eyaml::VERSION}"
27
23
 
28
24
  Plugins.plugins.each do |plugin|
29
25
  plugin_shortname = plugin.name.split("hiera-eyaml-").last
@@ -32,7 +28,7 @@ EOS
32
28
  rescue
33
29
  "unknown (is plugin compatible with eyaml 2.0+ ?)"
34
30
  end
35
- puts " hiera-eyaml-#{plugin_shortname} (gem): #{plugin_version}"
31
+ Eyaml::Utils.info "hiera-eyaml-#{plugin_shortname} (gem): #{plugin_version}"
36
32
  end
37
33
 
38
34
  nil
@@ -44,4 +40,4 @@ EOS
44
40
  end
45
41
  end
46
42
  end
47
- end
43
+ end
@@ -34,6 +34,20 @@ class Hiera
34
34
  editor = ENV['EDITOR']
35
35
  editor ||= %w{ /usr/bin/sensible-editor /usr/bin/editor /usr/bin/vim /usr/bin/vi }.collect {|e| e if FileTest.executable? e}.compact.first
36
36
  raise StandardError, "Editor not found. Please set your EDITOR env variable" if editor.nil?
37
+ if editor.index(' ')
38
+ editor = editor.dup if editor.frozen? # values from ENV are frozen
39
+ editor.gsub!(/([^\\]|^)~/, '\1' + ENV['HOME']) # replace ~ with home unless escaped
40
+ editor.gsub!(/(^|[^\\])"/, '\1') # remove unescaped quotes during processing
41
+ editor.gsub!(/\\ /, ' ') # unescape spaces since we quote paths
42
+ pieces = editor.split(' ')
43
+ paths = pieces.each_with_index.map {|_,x| pieces[0..x].join(' ')}.reverse # get possible paths, starting with longest
44
+ extensions = (ENV['PATHEXT'] || '').split(';') # handle Windows executables
45
+ editorfile = paths.select { |path|
46
+ FileTest.file?(path) || ! extensions.select {|ext| FileTest.file?(path + ext) }.empty?
47
+ }.first
48
+ raise StandardError, "Editor not found. Please set your EDITOR env variable" if editorfile.nil?
49
+ editor = "\"#{editorfile}\"#{editor[editorfile.size()..-1]}"
50
+ end
37
51
  editor
38
52
  end
39
53
 
@@ -45,11 +59,12 @@ class Hiera
45
59
  num_bytes.times { file.print(byte.chr) }
46
60
  file.fsync
47
61
  end
62
+ file.close
48
63
  File.delete args[:file]
49
64
  end
50
65
 
51
66
  def self.write_tempfile data_to_write
52
- file = Tempfile.open('eyaml_edit')
67
+ file = Tempfile.open(['eyaml_edit', '.yaml'])
53
68
  path = file.path
54
69
  file.close!
55
70
 
@@ -107,7 +122,7 @@ class Hiera
107
122
  root_folder = File.dirname(__FILE__) + "/" + Array.new(num_class_hierarchy_levels).fill("..").join("/")
108
123
  class_folder = root_folder + "/" + classdir
109
124
  Dir[File.expand_path("#{class_folder}/*.rb")].uniq.each do |file|
110
- # puts "Requiring file: #{file}"
125
+ self.trace "Requiring file: #{file}"
111
126
  require file
112
127
  end
113
128
  end
@@ -134,36 +149,60 @@ class Hiera
134
149
  else
135
150
  message.merge!({:msg => messageinfo.to_s})
136
151
  end
152
+ message[:prefix] = "[#{message[:from]}]"
153
+ message[:spacer] = " #{' ' * message[:from].length} "
154
+ formatted_output = message[:msg].split("\n").each_with_index.map do |line, index|
155
+ if index == 0
156
+ "#{message[:prefix]} #{line}"
157
+ else
158
+ "#{message[:spacer]} #{line}"
159
+ end
160
+ end
161
+ formatted_output.join "\n"
137
162
  end
138
163
 
139
164
  def self.warn messageinfo
140
- message = self.structure_message messageinfo
141
- message = "[#{message[:from]}] !!! #{message[:msg]}"
142
- if self.hiera?
143
- Hiera.warn message
144
- else
145
- STDERR.puts message
146
- end
165
+ self.print_message({ :message => self.structure_message( messageinfo ), :hiera_loglevel => :warn, :cli_color => :red })
147
166
  end
148
167
 
149
168
  def self.info messageinfo
150
- message = self.structure_message messageinfo
151
- message = "[#{message[:from]}] #{message[:msg]}"
152
- if self.hiera?
153
- Hiera.debug message if Eyaml.verbosity_level > 0
154
- else
155
- STDERR.puts message if Eyaml.verbosity_level > 0
156
- end
169
+ self.print_message({ :message => self.structure_message( messageinfo ), :hiera_loglevel => :debug, :cli_color => :white, :threshold => 0 })
157
170
  end
158
171
 
159
172
  def self.debug messageinfo
160
- message = self.structure_message messageinfo
161
- message = "[#{message[:from]}] #{message[:msg]}"
173
+ self.print_message({ :message => self.structure_message( messageinfo ), :hiera_loglevel => :debug, :cli_color => :green, :threshold => 1 })
174
+ end
175
+
176
+ def self.trace messageinfo
177
+ self.print_message({ :message => self.structure_message( messageinfo ), :hiera_loglevel => :debug, :cli_color => :blue, :threshold => 2 })
178
+ end
179
+
180
+ def self.print_message( args )
181
+ message = args[:message] ||= ""
182
+ hiera_loglevel = args[:hiera_loglevel] ||= :debug
183
+ cli_color = args[:cli_color] ||= :blue
184
+ threshold = args[:threshold]
185
+
162
186
  if self.hiera?
163
- Hiera.debug message if Eyaml.verbosity_level > 1
187
+ Hiera.send(hiera_loglevel, message) if threshold.nil? or Eyaml.verbosity_level > threshold
164
188
  else
165
- STDERR.puts message if Eyaml.verbosity_level > 1
189
+ STDERR.puts self.colorize( message, cli_color ) if threshold.nil? or Eyaml.verbosity_level > threshold
190
+ end
191
+ end
192
+
193
+ def self.colorize message, color
194
+ suffix = "\e[0m"
195
+ prefix = case color
196
+ when :red
197
+ "\e[31m"
198
+ when :green
199
+ "\e[32m"
200
+ when :blue
201
+ "\e[34m"
202
+ else #:white
203
+ "\e[0m"
166
204
  end
205
+ "#{prefix}#{message}#{suffix}"
167
206
  end
168
207
 
169
208
  end
@@ -6,4 +6,4 @@ echo ${RAKE_OUT}
6
6
  VERSION=`echo ${RAKE_OUT} | awk '{print $2}'`
7
7
  echo Installing version: ${VERSION} ...
8
8
  gem install pkg/hiera-eyaml-${VERSION}.gem
9
- eyaml -v
9
+ eyaml version
metadata CHANGED
@@ -1,47 +1,58 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: hiera-eyaml
3
- version: !ruby/object:Gem::Version
4
- version: 2.0.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.4
5
+ prerelease:
5
6
  platform: ruby
6
- authors:
7
+ authors:
7
8
  - Tom Poulton
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
-
12
- date: 2014-07-23 00:00:00 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
12
+ date: 2014-11-24 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
15
  name: trollop
16
- prerelease: false
17
- requirement: &id001 !ruby/object:Gem::Requirement
18
- requirements:
19
- - - ">="
20
- - !ruby/object:Gem::Version
21
- version: "2.0"
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '2.0'
22
22
  type: :runtime
23
- version_requirements: *id001
24
- - !ruby/object:Gem::Dependency
25
- name: highline
26
23
  prerelease: false
27
- requirement: &id002 !ruby/object:Gem::Requirement
28
- requirements:
29
- - - ">="
30
- - !ruby/object:Gem::Version
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '2.0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: highline
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
31
37
  version: 1.6.19
32
38
  type: :runtime
33
- version_requirements: *id002
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 1.6.19
34
46
  description: Hiera backend for decrypting encrypted yaml properties
35
47
  email:
36
- executables:
48
+ executables:
37
49
  - eyaml
38
50
  extensions: []
39
-
40
51
  extra_rdoc_files: []
41
-
42
- files:
52
+ files:
43
53
  - .gitignore
44
54
  - .travis.yml
55
+ - CHANGES.md
45
56
  - Gemfile
46
57
  - Gemfile.lock
47
58
  - LICENSE.txt
@@ -76,30 +87,28 @@ files:
76
87
  - sublime_text/eyaml.syntax_definition.json
77
88
  - tools/regem.sh
78
89
  homepage: http://github.com/TomPoulton/hiera-eyaml
79
- licenses:
90
+ licenses:
80
91
  - MIT
81
- metadata: {}
82
-
83
92
  post_install_message:
84
93
  rdoc_options: []
85
-
86
- require_paths:
94
+ require_paths:
87
95
  - lib
88
- required_ruby_version: !ruby/object:Gem::Requirement
89
- requirements:
90
- - &id003
91
- - ">="
92
- - !ruby/object:Gem::Version
93
- version: "0"
94
- required_rubygems_version: !ruby/object:Gem::Requirement
95
- requirements:
96
- - *id003
96
+ required_ruby_version: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ required_rubygems_version: !ruby/object:Gem::Requirement
103
+ none: false
104
+ requirements:
105
+ - - ! '>='
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
97
108
  requirements: []
98
-
99
109
  rubyforge_project:
100
- rubygems_version: 2.0.14
110
+ rubygems_version: 1.8.23.2
101
111
  signing_key:
102
- specification_version: 4
112
+ specification_version: 3
103
113
  summary: OpenSSL Encryption backend for Hiera
104
114
  test_files: []
105
-
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 3912bf9a2405844f834908a20b1366efda3dd75d
4
- data.tar.gz: 5cec508a47fab8d5a4f4ec19808c436dd61d8d6a
5
- SHA512:
6
- metadata.gz: dc1f52d302216134c15e7880f77c5f3c8aa639f4ac1be73b30fca4ae9e0c76a30a7bf95999cb94313fe7c9c4632853cbafdf08559658d83c94c81a9e6ec72097
7
- data.tar.gz: 861f3b3ca88829e533f65ac4a36afc5e674b2217d84855005c913c3577e94f490eeefb70c027daa89d77f8b650f9e9c926b55e4217a87945a0e7bcb4cb71d116