hiera-eyaml 1.3.1 → 1.3.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.
Files changed (34) hide show
  1. data/hiera-eyaml.gemspec +1 -1
  2. data/lib/hiera/backend/eyaml.rb +1 -1
  3. data/lib/hiera/backend/eyaml/CLI.rb +1 -0
  4. data/lib/hiera/backend/eyaml/actions/encrypt_action.rb +18 -8
  5. data/lib/hiera/backend/eyaml/encryptors/pkcs7.rb +3 -1
  6. data/lib/hiera/backend/eyaml/utils.rb +5 -2
  7. data/lib/hiera/backend/eyaml_backend.rb +2 -2
  8. metadata +3 -55
  9. data/features/decrypts.feature +0 -44
  10. data/features/edit.feature +0 -54
  11. data/features/encrypts.feature +0 -26
  12. data/features/keys.feature +0 -13
  13. data/features/outputs.feature +0 -30
  14. data/features/plugin.feature +0 -35
  15. data/features/plugin_api.feature +0 -16
  16. data/features/puppet.feature +0 -15
  17. data/features/sandbox/convert_decrypted_values_to_uppercase.sh +0 -2
  18. data/features/sandbox/keys/private_key.pkcs7.pem +0 -27
  19. data/features/sandbox/keys/public_key.pkcs7.pem +0 -18
  20. data/features/sandbox/pipe_string.sh +0 -5
  21. data/features/sandbox/puppet/environments/local/test.eyaml +0 -3
  22. data/features/sandbox/puppet/hiera.yaml +0 -17
  23. data/features/sandbox/puppet/manifests/init.pp +0 -3
  24. data/features/sandbox/puppet/modules/test/manifests/init.pp +0 -18
  25. data/features/sandbox/puppet/puppet.conf +0 -6
  26. data/features/sandbox/supply_password.sh +0 -7
  27. data/features/sandbox/test_input.bin +0 -0
  28. data/features/sandbox/test_input.encrypted.txt +0 -1
  29. data/features/sandbox/test_input.txt +0 -3
  30. data/features/sandbox/test_input.yaml +0 -114
  31. data/features/step_definitions/environment_overrides.rb +0 -3
  32. data/features/support/env.rb +0 -26
  33. data/features/support/setup_sandbox.rb +0 -21
  34. data/features/valid_encryption.feature +0 -12
data/hiera-eyaml.gemspec CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |gem|
12
12
  gem.license = "MIT"
13
13
 
14
14
  gem.homepage = "http://github.com/TomPoulton/hiera-eyaml"
15
- gem.files = `git ls-files`.split($/)
15
+ gem.files = `git ls-files`.split($/).reject { |file| file =~ /^features.*$/ }
16
16
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ["lib"]
@@ -2,7 +2,7 @@ class Hiera
2
2
  module Backend
3
3
  module Eyaml
4
4
 
5
- VERSION = "1.3.1"
5
+ VERSION = "1.3.2"
6
6
 
7
7
  def self.default_encryption_scheme= new_encryption
8
8
  @@default_encryption_scheme = new_encryption
@@ -43,6 +43,7 @@ Options:
43
43
  opt :stdin, "Source input it taken from stdin", :short => 'z'
44
44
  opt :encrypt_method, "Override default encryption and decryption method (default is PKCS7)", :short => 'n', :default => "pkcs7"
45
45
  opt :output, "Output format of final result (examples, block, string)", :type => :string, :default => "examples"
46
+ opt :label, "Apply a label to the encrypted result", :short => 'l', :type => :string
46
47
 
47
48
  Hiera::Backend::Eyaml::Plugins.options.each do |name, option|
48
49
  opt name, option[:desc], :type => option[:type], :short => option[:short], :default => option[:default]
@@ -39,7 +39,7 @@ class Hiera
39
39
  "ENC[#{encryptor.tag},#{ciphertext}]"
40
40
  end
41
41
 
42
- self.format :data => output_data, :structure => Eyaml::Options[:output]
42
+ self.format :data => output_data, :structure => Eyaml::Options[:output], :label => Eyaml::Options[:label]
43
43
 
44
44
  end
45
45
 
@@ -50,22 +50,32 @@ class Hiera
50
50
  regex_result.split("::").last
51
51
  end
52
52
 
53
+ def self.format_string data, label
54
+ data_as_string = data.split("\n").join("")
55
+ prefix = label ? "#{label}: " : ''
56
+ prefix + data_as_string
57
+ end
58
+
59
+ def self.format_block data, label
60
+ data_as_block = data.split("\n").join("\n ")
61
+ prefix = label ? "#{label}: >\n" : ''
62
+ prefix + " #{data_as_block}"
63
+ end
64
+
53
65
  def self.format args
54
66
  data = args[:data]
55
- data_as_block = data.split("\n").join("\n ")
56
- data_as_string = data.split("\n").join("")
57
67
  structure = args[:structure]
68
+ label = args[:label]
58
69
 
59
70
  case structure
60
71
  when "examples"
61
- "string: #{data_as_string}\n\n" +
72
+ self.format_string(data, label || 'string') + "\n\n" +
62
73
  "OR\n\n" +
63
- "block: >\n" +
64
- " #{data_as_block}"
74
+ self.format_block(data, label || 'block')
65
75
  when "block"
66
- " #{data_as_block}"
76
+ self.format_block data, label
67
77
  when "string"
68
- "#{data_as_string}"
78
+ self.format_string data, label
69
79
  else
70
80
  data.to_s
71
81
  end
@@ -61,7 +61,8 @@ class Hiera
61
61
  private_key = self.option :private_key
62
62
 
63
63
  key = OpenSSL::PKey::RSA.new(2048)
64
- Utils.write_important_file :filename => private_key, :content => key.to_pem
64
+ Utils.ensure_key_dir_exists private_key
65
+ Utils.write_important_file :filename => private_key, :content => key.to_pem, :mode => 0600
65
66
 
66
67
  name = OpenSSL::X509::Name.parse("/")
67
68
  cert = OpenSSL::X509::Certificate.new()
@@ -83,6 +84,7 @@ class Hiera
83
84
 
84
85
  cert.sign key, OpenSSL::Digest::SHA1.new
85
86
 
87
+ Utils.ensure_key_dir_exists public_key
86
88
  Utils.write_important_file :filename => public_key, :content => cert.to_pem
87
89
  puts "Keys created OK"
88
90
 
@@ -1,5 +1,6 @@
1
1
  require 'highline/import'
2
2
  require 'tempfile'
3
+ require 'fileutils'
3
4
 
4
5
  class Hiera
5
6
  module Backend
@@ -39,7 +40,7 @@ class Hiera
39
40
  num_bytes.times { file.print(byte.chr) }
40
41
  file.fsync
41
42
  end
42
- File.delete file
43
+ File.delete args[:file]
43
44
  end
44
45
 
45
46
  def self.write_tempfile data_to_write
@@ -55,12 +56,14 @@ class Hiera
55
56
  def self.write_important_file args
56
57
  filename = args[ :filename ]
57
58
  content = args[ :content ]
59
+ mode = args[ :mode ]
58
60
  if File.file? "#{filename}"
59
61
  raise StandardError, "User aborted" unless Utils::confirm? "Are you sure you want to overwrite \"#{filename}\"?"
60
62
  end
61
63
  open( "#{filename}", "w" ) do |io|
62
64
  io.write(content)
63
65
  end
66
+ File.chmod( mode, filename ) unless mode.nil?
64
67
  end
65
68
 
66
69
  def self.ensure_key_dir_exists key_file
@@ -68,7 +71,7 @@ class Hiera
68
71
 
69
72
  unless File.directory? key_dir
70
73
  begin
71
- Dir.mkdir key_dir
74
+ FileUtils.mkdir_p key_dir
72
75
  puts "Created key directory: #{key_dir}"
73
76
  rescue
74
77
  raise StandardError, "Cannot create key directory: #{key_dir}"
@@ -65,13 +65,13 @@ class Hiera
65
65
  elsif data.is_a?(Hash)
66
66
  answer = {}
67
67
  data.each_pair do |key, val|
68
- answer[key] = parse_answer(val, scope, extra_data)
68
+ answer[key] = parse_answer(key, val, scope, extra_data)
69
69
  end
70
70
  answer
71
71
  elsif data.is_a?(Array)
72
72
  answer = []
73
73
  data.each do |item|
74
- answer << parse_answer(item, scope, extra_data)
74
+ answer << parse_answer(key, item, scope, extra_data)
75
75
  end
76
76
  answer
77
77
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hiera-eyaml
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.3.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-14 00:00:00.000000000 Z
12
+ date: 2013-08-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: trollop
@@ -58,32 +58,6 @@ files:
58
58
  - README.md
59
59
  - Rakefile
60
60
  - bin/eyaml
61
- - features/decrypts.feature
62
- - features/edit.feature
63
- - features/encrypts.feature
64
- - features/keys.feature
65
- - features/outputs.feature
66
- - features/plugin.feature
67
- - features/plugin_api.feature
68
- - features/puppet.feature
69
- - features/sandbox/convert_decrypted_values_to_uppercase.sh
70
- - features/sandbox/keys/private_key.pkcs7.pem
71
- - features/sandbox/keys/public_key.pkcs7.pem
72
- - features/sandbox/pipe_string.sh
73
- - features/sandbox/puppet/environments/local/test.eyaml
74
- - features/sandbox/puppet/hiera.yaml
75
- - features/sandbox/puppet/manifests/init.pp
76
- - features/sandbox/puppet/modules/test/manifests/init.pp
77
- - features/sandbox/puppet/puppet.conf
78
- - features/sandbox/supply_password.sh
79
- - features/sandbox/test_input.bin
80
- - features/sandbox/test_input.encrypted.txt
81
- - features/sandbox/test_input.txt
82
- - features/sandbox/test_input.yaml
83
- - features/step_definitions/environment_overrides.rb
84
- - features/support/env.rb
85
- - features/support/setup_sandbox.rb
86
- - features/valid_encryption.feature
87
61
  - hiera-eyaml.gemspec
88
62
  - lib/hiera/backend/eyaml.rb
89
63
  - lib/hiera/backend/eyaml/CLI.rb
@@ -126,30 +100,4 @@ rubygems_version: 1.8.25
126
100
  signing_key:
127
101
  specification_version: 3
128
102
  summary: OpenSSL Encryption backend for Hiera
129
- test_files:
130
- - features/decrypts.feature
131
- - features/edit.feature
132
- - features/encrypts.feature
133
- - features/keys.feature
134
- - features/outputs.feature
135
- - features/plugin.feature
136
- - features/plugin_api.feature
137
- - features/puppet.feature
138
- - features/sandbox/convert_decrypted_values_to_uppercase.sh
139
- - features/sandbox/keys/private_key.pkcs7.pem
140
- - features/sandbox/keys/public_key.pkcs7.pem
141
- - features/sandbox/pipe_string.sh
142
- - features/sandbox/puppet/environments/local/test.eyaml
143
- - features/sandbox/puppet/hiera.yaml
144
- - features/sandbox/puppet/manifests/init.pp
145
- - features/sandbox/puppet/modules/test/manifests/init.pp
146
- - features/sandbox/puppet/puppet.conf
147
- - features/sandbox/supply_password.sh
148
- - features/sandbox/test_input.bin
149
- - features/sandbox/test_input.encrypted.txt
150
- - features/sandbox/test_input.txt
151
- - features/sandbox/test_input.yaml
152
- - features/step_definitions/environment_overrides.rb
153
- - features/support/env.rb
154
- - features/support/setup_sandbox.rb
155
- - features/valid_encryption.feature
103
+ test_files: []
@@ -1,44 +0,0 @@
1
- Feature: eyaml decrypting
2
-
3
- In order to decrypt data
4
- As a developer using hiera-eyaml
5
- I want to use the eyaml tool to decrypt data in various ways
6
-
7
- Scenario: decrypt a simple string
8
- When I run `eyaml -d -s 'ENC[PKCS7,MIIBiQYJKoZIhvcNAQcDoIIBejCCAXYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEAJsIbL+DE4b5mbT4ozzsGximhweXkJakBXRNqi/TOBV5RnMjlAhik2NQGyZdrg4fmQynyQvI7lKPos5bmqT6Ltk0XxfL0l1x8MIdVLDu7JG72a+5bbU7EK/PlhwaeJ0QpnA0M34koNykSmcvdVUoIDag71lqw4Hmk8JQuXmo95gP0sXHvlahgxR522Z8MTEitfimtZPnHJVMjQEnBHIwXLkEfqUHH3RciED3AkeU+En63Ou7Nq1SqoC4ln0oL1L2gRqsyEKWF/cigcZfAggh9rva6wlthh+Fj7yJy7ALVG/AXwrF1sJfTR31+RMbzPbgOHXES8P4yQvQnx6LNUSKAgDBMBgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBCSuNScp5k8F0RKt63fkoPrgCBYbnl44Wdv5mtaJmJcc0WIUcLTpixl1IY2uQ7IiI358w==]'`
9
- Then the output should match /^one flew over the cuckoos nest$/
10
-
11
- Scenario: decrypt a default encryption string
12
- When I run `eyaml -d -s 'ENC[MIIBiQYJKoZIhvcNAQcDoIIBejCCAXYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEAJsIbL+DE4b5mbT4ozzsGximhweXkJakBXRNqi/TOBV5RnMjlAhik2NQGyZdrg4fmQynyQvI7lKPos5bmqT6Ltk0XxfL0l1x8MIdVLDu7JG72a+5bbU7EK/PlhwaeJ0QpnA0M34koNykSmcvdVUoIDag71lqw4Hmk8JQuXmo95gP0sXHvlahgxR522Z8MTEitfimtZPnHJVMjQEnBHIwXLkEfqUHH3RciED3AkeU+En63Ou7Nq1SqoC4ln0oL1L2gRqsyEKWF/cigcZfAggh9rva6wlthh+Fj7yJy7ALVG/AXwrF1sJfTR31+RMbzPbgOHXES8P4yQvQnx6LNUSKAgDBMBgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBCSuNScp5k8F0RKt63fkoPrgCBYbnl44Wdv5mtaJmJcc0WIUcLTpixl1IY2uQ7IiI358w==]'`
13
- Then the output should match /^one flew over the cuckoos nest$/
14
-
15
- Scenario: decrypt an encrypted file
16
- When I run `eyaml -d -f test_input.encrypted.txt`
17
- Then the output should match /^danger will robinson$/
18
-
19
- Scenario: decrypt an eyaml file
20
- When I run `eyaml -d -y test_input.yaml`
21
- Then the output should match /encrypted_string: DEC::PKCS7\[planet of the apes\]\!/
22
- And the output should match /encrypted_block: >\n\s+DEC::PKCS7\[gangs of new york\]\!/
23
- And the output should match /\- DEC::PKCS7\[apocalypse now\]\!/
24
- And the output should match /\- DEC::PKCS7\[the count of monte cristo\]\!/
25
- And the output should match /\- array4/
26
- And the output should match /\- DEC::PKCS7\[dr strangelove\]\!/
27
- And the output should match /\- array5/
28
- And the output should match /\- >\n\s+DEC::PKCS7\[kramer vs kramer\]\!/
29
- And the output should match /\- >\n\s+DEC::PKCS7\[the manchurian candidate\]\!/
30
- And the output should match /\- >\n\s+tomorrow and tomorrow and\s*\n\s+tomorrow creeps/
31
- And the output should match /\- >\n\s+DEC::PKCS7\[much ado about nothing\]\!/
32
- And the output should match /\- >\n\s+when shall we three meet again\n\s+in thunder/
33
- And the output should match /\- DEC::PKCS7\[the english patient\]\!/
34
- And the output should match /\- >\n\s+DEC::PKCS7\[the pink panther\]\!/
35
- And the output should match /\- >\n\s+i wondered lonely\s*\n\s+as a cloud/
36
- And the output should match /\s+key5: DEC::PKCS7\[value5\]\!/
37
- And the output should match /\s+key6: DEC::PKCS7\[value6\]\!/
38
-
39
- Scenario: decrypt using STDIN
40
- When I run `./pipe_string.sh ENC[MIIBiQYJKoZIhvcNAQcDoIIBejCCAXYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEAJsIbL+DE4b5mbT4ozzsGximhweXkJakBXRNqi/TOBV5RnMjlAhik2NQGyZdrg4fmQynyQvI7lKPos5bmqT6Ltk0XxfL0l1x8MIdVLDu7JG72a+5bbU7EK/PlhwaeJ0QpnA0M34koNykSmcvdVUoIDag71lqw4Hmk8JQuXmo95gP0sXHvlahgxR522Z8MTEitfimtZPnHJVMjQEnBHIwXLkEfqUHH3RciED3AkeU+En63Ou7Nq1SqoC4ln0oL1L2gRqsyEKWF/cigcZfAggh9rva6wlthh+Fj7yJy7ALVG/AXwrF1sJfTR31+RMbzPbgOHXES8P4yQvQnx6LNUSKAgDBMBgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBCSuNScp5k8F0RKt63fkoPrgCBYbnl44Wdv5mtaJmJcc0WIUcLTpixl1IY2uQ7IiI358w==] eyaml -d --stdin`
41
- Then the output should match /^one flew over the cuckoos nest$/
42
-
43
-
44
-
@@ -1,54 +0,0 @@
1
- Feature: eyaml editing
2
-
3
- In order to edit encrypted data
4
- As a developer using hiera-eyaml
5
- I want to use the eyaml tool to edit data in various ways
6
-
7
- Scenario: decrypt an eyaml file
8
- Given my EDITOR is set to "/bin/cat"
9
- When I run `bash -c 'cp test_input.yaml test_input.eyaml'`
10
- When I run `eyaml -i test_input.eyaml`
11
- Then the output should match /encrypted_string: DEC::PKCS7\[planet of the apes\]\!/
12
- And the output should match /encrypted_default_encryption_string: DEC::PKCS7\[planet of the apes\]\!/
13
- And the output should match /encrypted_block: >\n\s+DEC::PKCS7\[gangs of new york\]\!/
14
- And the output should match /encrypted_default_encryption_block: >\n\s+DEC::PKCS7\[gangs of new york\]\!/
15
- And the output should match /\- DEC::PKCS7\[apocalypse now\]\!/
16
- And the output should match /\- DEC::PKCS7\[the count of monte cristo\]\!/
17
- And the output should match /\- array4/
18
- And the output should match /\- DEC::PKCS7\[dr strangelove\]\!/
19
- And the output should match /\- array5/
20
- And the output should match /\- >\n\s+DEC::PKCS7\[kramer vs kramer\]\!/
21
- And the output should match /\- >\n\s+DEC::PKCS7\[the manchurian candidate\]\!/
22
- And the output should match /\- >\n\s+tomorrow and tomorrow and\s*\n\s+tomorrow creeps/
23
- And the output should match /\- >\n\s+DEC::PKCS7\[much ado about nothing\]\!/
24
- And the output should match /\- >\n\s+when shall we three meet again\n\s+in thunder/
25
- And the output should match /\- DEC::PKCS7\[the english patient\]\!/
26
- And the output should match /\- >\n\s+DEC::PKCS7\[the pink panther\]\!/
27
- And the output should match /\- >\n\s+i wondered lonely\s*\n\s+as a cloud/
28
- And the output should match /\s+key5: DEC::PKCS7\[value5\]\!/
29
- And the output should match /\s+key6: DEC::PKCS7\[value6\]\!/
30
- And the output should match /multi_encryption: DEC::PLAINTEXT\[jammy\]\! DEC::PKCS7\[dodger\]!/
31
-
32
- Scenario: decrypt and reencrypt an eyaml file
33
- Given my EDITOR is set to "./convert_decrypted_values_to_uppercase.sh"
34
- When I run `bash -c 'cp test_input.yaml test_input.eyaml'`
35
- When I run `eyaml -i test_input.eyaml`
36
- When I run `eyaml -d -y test_input.eyaml`
37
- Then the output should match /encrypted_string: DEC::PKCS7\[PLANET OF THE APES\]\!/
38
- And the output should match /encrypted_block: >\n\s+DEC::PKCS7\[GANGS OF NEW YORK\]\!/
39
- And the output should match /\- DEC::PKCS7\[APOCALYPSE NOW\]\!/
40
- And the output should match /\- DEC::PKCS7\[THE COUNT OF MONTE CRISTO\]\!/
41
- And the output should match /\- array4/
42
- And the output should match /\- DEC::PKCS7\[DR STRANGELOVE\]\!/
43
- And the output should match /\- array5/
44
- And the output should match /\- >\n\s+DEC::PKCS7\[KRAMER VS KRAMER\]\!/
45
- And the output should match /\- >\n\s+DEC::PKCS7\[THE MANCHURIAN CANDIDATE\]\!/
46
- And the output should match /\- >\n\s+tomorrow and tomorrow and\s*\n\s+tomorrow creeps/
47
- And the output should match /\- >\n\s+DEC::PKCS7\[MUCH ADO ABOUT NOTHING\]\!/
48
- And the output should match /\- >\n\s+when shall we three meet again\n\s+in thunder/
49
- And the output should match /\- DEC::PKCS7\[THE ENGLISH PATIENT\]\!/
50
- And the output should match /\- >\n\s+DEC::PKCS7\[THE PINK PANTHER\]\!/
51
- And the output should match /\- >\n\s+i wondered lonely\s*\n\s+as a cloud/
52
- And the output should match /\s+key5: DEC::PKCS7\[VALUE5\]\!/
53
- And the output should match /\s+key6: DEC::PKCS7\[VALUE6\]\!/
54
- And the output should match /multi_encryption: DEC::PLAINTEXT\[JAMMY\]\! DEC::PKCS7\[DODGER\]\!/
@@ -1,26 +0,0 @@
1
- Feature: eyaml encrypting
2
-
3
- In order to encrypt data
4
- As a developer using hiera-eyaml
5
- I want to use the eyaml tool to encrypt data in various ways
6
-
7
- Scenario: encrypt a simple string
8
- When I run `eyaml -e -o string -s some_string`
9
- Then the output should match /ENC\[PKCS7,(.*?)\]$/
10
-
11
- Scenario: encrypt a simple file
12
- When I run `eyaml -e -o string -f test_input.txt`
13
- Then the output should match /ENC\[PKCS7,(.*?)\]$/
14
-
15
- Scenario: encrypt a binary file
16
- When I run `eyaml -e -o string -f test_input.bin`
17
- Then the output should match /ENC\[PKCS7,(.*?)\]$/
18
-
19
- Scenario: encrypt a password
20
- When I run `./supply_password.sh eyaml -e -o string -p`
21
- Then the file "password.output" should match /ENC\[PKCS7,(.*?)\]/
22
-
23
- Scenario: encrypt using STDIN
24
- When I run `./pipe_string.sh encrypt_me eyaml -e -o string --stdin`
25
- Then the output should match /ENC\[PKCS7,(.*?)\]$/
26
-
@@ -1,13 +0,0 @@
1
- Feature: eyaml key generation
2
-
3
- In order to encrypt data with various encryption methods
4
- As a developer using hiera-eyaml
5
- I want to use the eyaml tool to generate keys and certs
6
-
7
- Scenario: create some pkcs7 keys
8
- When I run `eyaml -c --pkcs7-public-key keys/new_public_key.pem --pkcs7-private-key keys/new_private_key.pem`
9
- Then the output should match /Keys created OK/
10
-
11
- Scenario: create some plaintext keys
12
- When I run `eyaml -n plaintext -c`
13
- Then the output should match /success/
@@ -1,30 +0,0 @@
1
- Feature: eyaml outputs
2
-
3
- In order to better understand the link between eyaml and yaml files
4
- As a developer using hiera-eyaml
5
- I want to use the eyaml tool to output encrypted data in various yaml formats
6
-
7
-
8
- Scenario: encrypt a simple string with default output
9
- When I run `eyaml -e -s some_string`
10
- Then the output should match /string: ENC\[PKCS7,(.*?)\]/
11
- And the output should match /block: >\s*\n\s*ENC\[PKCS7,(.*?)\]/
12
-
13
- Scenario: encrypt a simple string with examples output
14
- When I run `eyaml -e -o examples -s some_string`
15
- Then the output should match /string: ENC\[PKCS7,(.*?)\]/
16
- And the output should match /block: >\s*\n\s*ENC\[PKCS7,(.*?)\]/
17
-
18
- Scenario: encrypt a simple string with string output
19
- When I run `eyaml -e -o string -s some_string`
20
- Then the output should match /^ENC\[PKCS7,(.*?)\]$/
21
-
22
- Scenario: encrypt a simple string with raw output
23
- When I run `eyaml -e -o raw -s some_string`
24
- Then the output should match /^ENC\[PKCS7,(.*?)\]$/
25
- And the output should contain "\n"
26
-
27
- Scenario: encrypt a simple string with block output
28
- When I run `eyaml -e -o block -s some_string`
29
- Then the output should match /^\s+ENC\[PKCS7,(.*?)\]$/
30
-
@@ -1,35 +0,0 @@
1
- Feature: eyaml plugins
2
-
3
- In order to encrypt data with various encryption methods
4
- As a developer using hiera-eyaml
5
- I want to use the eyaml tool to encrypt data in various ways
6
-
7
- Scenario: encrypt using plaintext plugin
8
- When I run `eyaml -e -n plaintext -o string -s hello`
9
- Then the output should match /ENC\[PLAINTEXT,(.*?)\]$/
10
-
11
- Scenario: decrypt using plaintext plugin
12
- When I run `eyaml -d -n plaintext -s 'ENC[PLAINTEXT,aGVsbG8=]'`
13
- Then the output should match /^hello$/
14
-
15
- Scenario: decrypt using inferred plugin
16
- When I run `eyaml -d -s 'ENC[PLAINTEXT,aGVsbG8=]'`
17
- Then the output should match /^hello$/
18
-
19
- Scenario: decrypt using forced plaintext plugin
20
- When I run `eyaml -d -n plaintext -s 'ENC[aGVsbG8=]'`
21
- Then the output should match /^hello$/
22
-
23
- Scenario: decrypt using two plugins
24
- When I run `eyaml -d -s 'ENC[PLAINTEXT,cmVkIGxvcnJ5IA==]ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEAaezXCbx6WspcsKsCkgr9thLEckRppDvQyFloAHqswDNXllHxTSJDYlyoi96YvO96wazffdWO05TMs7HmkqJHkRzoTLGTdXSMz2Mu14QkUDe0zZyB0hl8qTbTcHzrw3ybUEJZEZ45Eenmr5VKuoBina7XJdIAXW8Ps4L/Dj7zsXlUxuyjDWu2WUd2X4gxO3W1SGfntk4OQ41NKXYKPIZLAXWMjC4VFh20tKXFwYhCpAanTBRNWgLBX3Dwg+c/l35EW8OQLfdaOQ30R/DgcoSsAZJveH3xqBv7UOes7vONLSYXTek6yFJBll7EuGbA/Mdw4gxd1qtCBdf48IiPPR0peTA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBCNWcGBqa8joAd0RMRzvx9VgBAf6PsvDZEa5cWdBaoTM/lP]'`
25
- Then the output should match /^red lorry blue lorry/
26
-
27
- Scenario: decrypt using two plugins with default plaintext
28
- When I run `eyaml -d -n plaintext -s 'ENC[cmVkIGxvcnJ5IA==]ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEAaezXCbx6WspcsKsCkgr9thLEckRppDvQyFloAHqswDNXllHxTSJDYlyoi96YvO96wazffdWO05TMs7HmkqJHkRzoTLGTdXSMz2Mu14QkUDe0zZyB0hl8qTbTcHzrw3ybUEJZEZ45Eenmr5VKuoBina7XJdIAXW8Ps4L/Dj7zsXlUxuyjDWu2WUd2X4gxO3W1SGfntk4OQ41NKXYKPIZLAXWMjC4VFh20tKXFwYhCpAanTBRNWgLBX3Dwg+c/l35EW8OQLfdaOQ30R/DgcoSsAZJveH3xqBv7UOes7vONLSYXTek6yFJBll7EuGbA/Mdw4gxd1qtCBdf48IiPPR0peTA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBCNWcGBqa8joAd0RMRzvx9VgBAf6PsvDZEa5cWdBaoTM/lP]'`
29
- Then the output should match /^red lorry blue lorry/
30
-
31
- Scenario: decrypt using two plugins with default pkcs7
32
- When I run `eyaml -d -n pkcs7 -s 'ENC[PLAINTEXT,cmVkIGxvcnJ5IA==]ENC[MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEAaezXCbx6WspcsKsCkgr9thLEckRppDvQyFloAHqswDNXllHxTSJDYlyoi96YvO96wazffdWO05TMs7HmkqJHkRzoTLGTdXSMz2Mu14QkUDe0zZyB0hl8qTbTcHzrw3ybUEJZEZ45Eenmr5VKuoBina7XJdIAXW8Ps4L/Dj7zsXlUxuyjDWu2WUd2X4gxO3W1SGfntk4OQ41NKXYKPIZLAXWMjC4VFh20tKXFwYhCpAanTBRNWgLBX3Dwg+c/l35EW8OQLfdaOQ30R/DgcoSsAZJveH3xqBv7UOes7vONLSYXTek6yFJBll7EuGbA/Mdw4gxd1qtCBdf48IiPPR0peTA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBCNWcGBqa8joAd0RMRzvx9VgBAf6PsvDZEa5cWdBaoTM/lP]'`
33
- Then the output should match /^red lorry blue lorry/
34
-
35
-
@@ -1,16 +0,0 @@
1
- Feature: eyaml plugin api
2
-
3
- In order to develop new encryption plugins for eyaml
4
- As a developer using hiera-eyaml
5
- I want to use the eyaml tool to exercise the encryption plugins in various ways
6
-
7
- Scenario: verify plugin options are available in eyaml
8
- When I run `eyaml --help`
9
- Then the output should match /plaintext-diagnostic-message/
10
- And the output should match /pkcs7-private-key/
11
- And the output should match /pkcs7-public-key/
12
-
13
- Scenario: exercise plugin options for a plugin
14
- When I run `eyaml -n plaintext -c --plaintext-diagnostic-message marker12345`
15
- Then the output should match /Create_keys: marker12345/
16
-
@@ -1,15 +0,0 @@
1
- Feature: eyaml hiera integration
2
-
3
- In order to use eyaml as a hiera plugin
4
- As a developer using hiera-eyaml
5
- I want to verify that hiera-eyaml works within puppet and hiera
6
-
7
- Scenario: verify puppet3 with hiera can use hiera-eyaml to decrypt data
8
- When I run `rm -f /tmp/eyaml_puppettest.1 /tmp/eyaml_puppettest.2 /tmpeyaml_puppettest.3 2>/dev/null`
9
- When I run `puppet apply --confdir ./puppet --node_name_value localhost puppet/manifests/init.pp`
10
- When I run `cat /tmp/eyaml_puppettest.1`
11
- Then the output should match /good night/
12
- When I run `cat /tmp/eyaml_puppettest.2`
13
- Then the output should match /and good luck/
14
- When I run `cat /tmp/eyaml_puppettest.3`
15
- Then the output should match /and good luck/
@@ -1,2 +0,0 @@
1
- #!/bin/bash
2
- perl -pi -e 's/(DEC::[A-Z0-9]+\[.*?\]\!)/uc($1)/ge' $1
@@ -1,27 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- MIIEowIBAAKCAQEA0kX0qkf4FOHXuFqlVmbgo+UDrJdneH8XnmWM+stAs0XpzEQq
3
- ErelZUhEi2x5z16RAsEw3cjd2BG78WHz1lcu3NP25BM990YQDl6e9pvmeMNA+wCK
4
- 1bwD7fCWXrAKb7xIXPJVd0ivP82ZPe71CmkFtiFr14mqNWrEpP/d2eQ4PAaCimAE
5
- bBKyRRHHJzU6X+hOnq8GRZBwKh6Ljl31JYE2DG3KQ+ydM+r411jY2sjSykOovbeR
6
- b7FCyOPaLRgyNjiDIJSTRlWLVJbYj6KDSoUD2+R95Owb5Z1OUL9Yn/BRIv5RyDvf
7
- Br42sp0KR7t3pWGiHEuRYZkGDU5jKB/8bK7DRwIDAQABAoIBAERJKZp/AsatTSP2
8
- dAkqIbu37MiI5rZP97id2/m6NgnCI5oNbOhlMVZB8NiiYrCAUnFlkdwEll7L65AJ
9
- MmmiKHrYby5EPXRnEWHJQrBtkpwXNKwO0gd1JoWIAx0+6DS/HXTp0e2J8jezKhfd
10
- 2UAHOS6bje0SLO9p+/Blk4NmRQjgsYk5nunl463+IkRGU8cna7GIOnvExrT6H3FD
11
- UsL9hL1J/+f4cSmsJoNHtQfKV0OkmQhENpFFwVMunMJPDjGEbaliKqqX05ZnJ1Tu
12
- kDKG+QL1wJbehDNNpiwTGo+Ei8EbP8LYsSkKtMl0zVED636AiuQ259oNDGXo2f+t
13
- FG/1WOECgYEA8OTaHbWgUvtatGBsZ5PIw1VIRG7LZESF0HvlnkZOsCFg2NWrQ99U
14
- sL2gLC0DVi80Yijjk0Kvrp5zU010uU4CuJHzT9ZN/nlPlwTteL6kr8XIh2sTpuE6
15
- nfx4E309d366Hh5xy82AQ+jIeQZTAaPHlFmINrncS48WTfP6lxn5f3ECgYEA33WK
16
- OtImhr4RYRmzcsfybW7PgxxpMSnrex/omZPWEHB14Fa2J6ny3KI9qBP1x6/h6Jfe
17
- SonD4MZ48opiNljfWmgkJMSkqalpa3jDGc8vX1uWhn8NdAuFKAn5zLZC8mZ27VUI
18
- LXLcChjyKPKVTwRnaNe0+rq7MgsqJJ4jo2atgjcCgYEAxPr9+IlKXlC3LQQj4NaR
19
- tliITZ0jqAv4ODD35GKteYzxup2N/GQkxplo3na4YcMb3KB+5y4CppFe0GFn7xcB
20
- VpfSFBizkkD0ehNHdBLAbBMZFNLUMQO/gOyv64/fsVTpMDPI7dRO7DjvpTcsrQyV
21
- 6JMFtWpp30dT/85fvSs6P6ECgYB2Sp2rN7ZHW/SNR3K0T15pSeC2EmMpMHzEyAZ0
22
- zkrilvX/lUeGRbQX0hb7k91nIRdg7owxPy6fHdHG6zTEelV6YWjIwgQ9AD6bMult
23
- Dz2PqEdN2ZJAnRyXLni7Qry73zwTtRDIJmaPPddrj8c0ditb19ypYhJYkopzqfdJ
24
- t8AgDwKBgCyJLYU7pjhfJwOOVJjACa8ndtg0vIr+MGoe99/2hWm7QdX5PrOjDLOr
25
- PeopgafeF1G6chhs4Qqh4LCmDA2NeX+zWcHkjLrKUIXMwb2YPuna7WToyCCeAm8+
26
- K5Lnssm0P/UJI3CAef/4GXb30ZJYOhsU15/XwY5c8+f6IxRIpPEN
27
- -----END RSA PRIVATE KEY-----
@@ -1,18 +0,0 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIIC2TCCAcGgAwIBAgIBADANBgkqhkiG9w0BAQUFADAAMCAXDTEzMDgwMTE3MzU0
3
- NVoYDzIwNjMwNzIwMTczNTQ1WjAAMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
4
- CgKCAQEA0kX0qkf4FOHXuFqlVmbgo+UDrJdneH8XnmWM+stAs0XpzEQqErelZUhE
5
- i2x5z16RAsEw3cjd2BG78WHz1lcu3NP25BM990YQDl6e9pvmeMNA+wCK1bwD7fCW
6
- XrAKb7xIXPJVd0ivP82ZPe71CmkFtiFr14mqNWrEpP/d2eQ4PAaCimAEbBKyRRHH
7
- JzU6X+hOnq8GRZBwKh6Ljl31JYE2DG3KQ+ydM+r411jY2sjSykOovbeRb7FCyOPa
8
- LRgyNjiDIJSTRlWLVJbYj6KDSoUD2+R95Owb5Z1OUL9Yn/BRIv5RyDvfBr42sp0K
9
- R7t3pWGiHEuRYZkGDU5jKB/8bK7DRwIDAQABo1wwWjAPBgNVHRMBAf8EBTADAQH/
10
- MB0GA1UdDgQWBBR7PyZZ/WlaSjAf6GO2GLWXO5aINDAoBgNVHSMEITAfgBR7PyZZ
11
- /WlaSjAf6GO2GLWXO5aINKEEpAIwAIIBADANBgkqhkiG9w0BAQUFAAOCAQEAspcX
12
- VNb156OZqPxteosI2ijeewDH0sc3ogRDZnxbXqG6Pa44QzJNTUULaX3iEfmFw4TL
13
- MW90NU4w4rzSIBGDGHTBOKZZBa2iTVRsYHuQ7Sd1A1MKc1dDFs9+Uj/6/vQ8Fkdx
14
- v+iei5N/XFccgto4HiohXvEZhT4NjONIFR9UL+lWChp8OVb+ifOWCKF69iUUbMPC
15
- uD7+UkrCYoVeVXkG1Rvw4E6BAbi75P6inX0lUnzNs4B0rvFynnV1Nsdb89cxI3pL
16
- Q0yVE8/aIP9donqjXTu0h/GmOtVQH654NCQSs1dLD+K4+8mn591Nv4uLrCiNJzTM
17
- zGRUV6zOPlUa3ye6Dg==
18
- -----END CERTIFICATE-----
@@ -1,5 +0,0 @@
1
- #!/bin/bash
2
-
3
- STRING=$1
4
- shift
5
- echo "$STRING" | $*
@@ -1,3 +0,0 @@
1
- plaintext_string: good night
2
- encrypted_string: ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEAQoDt5EgMoJUpsqgcH7OdGJ3d9LzSpaAsgnPuyDHRaHRFHpOmeUk4J4qwHqlNDqD+AMkydaGlNswA/bLdoBwofZGZAUoly/Vkt3ciB4sw0pWlezEUx0dUfWGB95qOJwTqyXhQ4b4fcgCMUbwwCCombN5/LVwjxKHmC9knLNCDkUU5VNDy5Lanh3y8S2XwCJpjArhEcJNfwrf4yz3luQcKD3x91FR3NUYPjJOiTHl9lzxEJm4Mod7ioSj62FcP79qgULWqTKpxMpG4LPwCo/J84jhTkl+fhL/Bs/tmujgpLqBO000kdg4ZmrYrwYqpK6vgcFzVtZJEB3Tq8nXD9hSuAzA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBFKh+qgHj0ajgtgpsFq5NEgBB/nP/DgjeKtd+D2MX6sOTv]
3
-
@@ -1,17 +0,0 @@
1
- ---
2
- :backends:
3
- - yaml
4
- - eyaml
5
-
6
- :hierarchy:
7
- - environments/%{environment}/%{module_name}
8
-
9
- :yaml:
10
- :datadir: ./puppet
11
-
12
- :logger: console
13
-
14
- :eyaml:
15
- :datadir: ./puppet
16
- :pkcs7_private_key: ./keys/private_key.pkcs7.pem
17
- :pkcs7_public_key: ./keys/public_key.pkcs7.pem
@@ -1,3 +0,0 @@
1
- node "localhost" {
2
- include test::run
3
- }
@@ -1,18 +0,0 @@
1
- class test::run {
2
-
3
- file { "/tmp/eyaml_puppettest.1":
4
- ensure => present,
5
- content => hiera("plaintext_string"),
6
- }
7
-
8
- file { "/tmp/eyaml_puppettest.2":
9
- ensure => present,
10
- content => hiera("encrypted_string"),
11
- }
12
-
13
- file { "/tmp/eyaml_puppettest.3":
14
- ensure => present,
15
- content => inline_template("<%= scope.function_hiera(['encrypted_string']) %>"),
16
- }
17
-
18
- }
@@ -1,6 +0,0 @@
1
- [main]
2
- vardir=puppet
3
- ssldir=$vardir/ssl
4
- logdir=$vardir/logs
5
- pidfile=$vardir/puppet.pid
6
- environment=local
@@ -1,7 +0,0 @@
1
- #!/usr/bin/expect -f
2
- log_file password.output
3
-
4
- spawn bash -c "[lindex $argv]"
5
- expect "Enter password"
6
- send "secretme\n"
7
- expect eof
Binary file
@@ -1 +0,0 @@
1
- ENC[PKCS7,MIIBiQYJKoZIhvcNAQcDoIIBejCCAXYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEAgO8TSTj+8D1EyN7T1p2a7YqlXLQdNkr7xfV8DU3foG5x1wXOCVNvANrMNzyCoc8zAeHywhzvG60DaDKMcd/1TIiySpt912rYCWJDcGV0YlfsBDpJTvQlU7ygWoHgDzvtX0Eo1ChCh4TZUmllU96da+6e2c/3/45OyDBiHWy/OZzYzNcA8fx2bqdq+Ucy/WAfvSK8aAVHJu1B2AnXECyopyMgly14j6rAW4dDzsnh9oge+iMsC9uLhqykTMR8q9wo+W092g+rzms8V5CprTGFVLl2Kq/V3o7ItnOqiPURXPxwykCrW8NHr591sWxlXtY1gf1f6u++Fa4UJbEMt7iZkTBMBgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBb5+JHGoxKxM3KQ09F8pyTgCBzK1YAZ5ceYNwW2ybSGqt9x8jfWHbM/jzbCnNOLnAU2Q==]
@@ -1,3 +0,0 @@
1
- The quick brown
2
- fox jumped over
3
- the lazy dog
@@ -1,114 +0,0 @@
1
- simple_string: how do you do
2
- encrypted_string: ENC[PKCS7,MIIBiQYJKoZIhvcNAQcDoIIBejCCAXYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEAgld+rftjW8WmMwTJLX/3Kk9hQv9ZUufsieijxhnCo3gtR/6xaKdMC4wpYM9Eck7FFdmjz2XnJK9o5rlvjW5ZBH3u2A3tphs6cgy7HzsfrsJvw1Mc+CLSNL35MVi/YvNCxezn+rXn28NW8NntByoLTzZnd6iGxSBk4S7Z7XwvdQWuUjXy0muEeAUYtS/eppNZYdyeMpzE9oHmfMM+zwdOYzc/nfwvnoLHGP+sv6KmnzCyNtqyrdvCIn+m+ljPWpGvj410Q52Xili1Scgi+ALJf4xiEnD5c5YjEkYY8uUe4etCDYZ/aXp9RGvZiHD8Le6jz34fcWbLZlQacCfgcyY8AzBMBgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBD4CRz8QLvbtgRx/NTxEnpfgCBLQD1ei8KAcd0LTT7sezZPt6LQnLxPuwx5StflI5xOgA==]
3
- encrypted_default_encryption_string: ENC[MIIBiQYJKoZIhvcNAQcDoIIBejCCAXYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEAgld+rftjW8WmMwTJLX/3Kk9hQv9ZUufsieijxhnCo3gtR/6xaKdMC4wpYM9Eck7FFdmjz2XnJK9o5rlvjW5ZBH3u2A3tphs6cgy7HzsfrsJvw1Mc+CLSNL35MVi/YvNCxezn+rXn28NW8NntByoLTzZnd6iGxSBk4S7Z7XwvdQWuUjXy0muEeAUYtS/eppNZYdyeMpzE9oHmfMM+zwdOYzc/nfwvnoLHGP+sv6KmnzCyNtqyrdvCIn+m+ljPWpGvj410Q52Xili1Scgi+ALJf4xiEnD5c5YjEkYY8uUe4etCDYZ/aXp9RGvZiHD8Le6jz34fcWbLZlQacCfgcyY8AzBMBgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBD4CRz8QLvbtgRx/NTxEnpfgCBLQD1ei8KAcd0LTT7sezZPt6LQnLxPuwx5StflI5xOgA==]
4
-
5
- simple_block: >
6
- once upon a time
7
- in a galaxy far far
8
- away
9
-
10
- encrypted_block: >
11
- ENC[PKCS7,MIIBiQYJKoZIhvcNAQcDoIIBejCCAXYCAQAxggEhMIIBHQIBADAFMAACAQAw
12
- DQYJKoZIhvcNAQEBBQAEggEAYzeWn3MBLhOs4hokxMCWcDd9VuwCylQRUQ0w
13
- KwCObeORw8PJkCDvi5ZIA2YkrvYTT6u3/7KfAiHd0Rg1WLb9et0Mg/Fd3DFF
14
- 7qhqOGHoQt3+4eKzlcikeR0/Lqrq2vTpqZ2Sw1CZ7Dn+Z4ll95p7lp97rb2J
15
- kYTVroLYGWEcsS3JZLL4/l3z0bJbXNKKqJ1aHCAFq+wmWXeb6cDvvyHFg2N/
16
- vGPFEQjP7AbWhxHxXDbYIGcU073u5NtE40JXL8SH82iHxqRF8s9g6Dh5cmjg
17
- AY2pkBD9e6N78NNx+PAJswsFAV4DOCbXdf2BisyYbM3na35MVfyb6ggDegrE
18
- ebOxxDBMBgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBCWeGlYS5cQoX78L6LK
19
- /mczgCD/pI7usp1XPebnN8CngxHXuUjj5S+6IUpOW6l2JgUeWw==]
20
-
21
- encrypted_default_encryption_block: >
22
- ENC[MIIBiQYJKoZIhvcNAQcDoIIBejCCAXYCAQAxggEhMIIBHQIBADAFMAACAQAw
23
- DQYJKoZIhvcNAQEBBQAEggEAYzeWn3MBLhOs4hokxMCWcDd9VuwCylQRUQ0w
24
- KwCObeORw8PJkCDvi5ZIA2YkrvYTT6u3/7KfAiHd0Rg1WLb9et0Mg/Fd3DFF
25
- 7qhqOGHoQt3+4eKzlcikeR0/Lqrq2vTpqZ2Sw1CZ7Dn+Z4ll95p7lp97rb2J
26
- kYTVroLYGWEcsS3JZLL4/l3z0bJbXNKKqJ1aHCAFq+wmWXeb6cDvvyHFg2N/
27
- vGPFEQjP7AbWhxHxXDbYIGcU073u5NtE40JXL8SH82iHxqRF8s9g6Dh5cmjg
28
- AY2pkBD9e6N78NNx+PAJswsFAV4DOCbXdf2BisyYbM3na35MVfyb6ggDegrE
29
- ebOxxDBMBgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBCWeGlYS5cQoX78L6LK
30
- /mczgCD/pI7usp1XPebnN8CngxHXuUjj5S+6IUpOW6l2JgUeWw==]
31
-
32
- simple_array:
33
- - array1
34
- - array2
35
- - array3
36
-
37
- encrypted_array_with_strings:
38
- - ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEAPBII8uG/2up91TFBV4Ro5h7qkSlREXyiABQtIjfmR+hwE5v12rxSjFrNRqLJFDzTp9kOHZRpbrN7oGwj2L+qQx26PBF5sTcSN+iXr4DIhmOcSnwK+FDUi1l13zVESobUtk++tp44NR5R/ssy7Da476aBCzK1IW3DjZN8dLGLZRvF9I6e3Sg1r0SB/x+1dKpOsqHXcA6rXT75ww1OOh8+/TPMnRIXBbdd+6TLUuom065JTkfgRmzEXfJFZOMu4H2g0eUjNUJBHhEE7cMyWVOap0vUmMrjc2oLIuJSxwZ15JFH4bGOc9U6fbm5t7VOMtPtH1aVvA54hCqIbf7c9cbPwDA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBExu0Pqe4YHDVeMYKOpYcNgBBplVycTULp98dIuHc04iGM]
39
- - ENC[PKCS7,MIIBiQYJKoZIhvcNAQcDoIIBejCCAXYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEAoEOorG1Vd8gSQVmzKaUyH1xuxA8VtFsOfrN9lzba1DxrySAH4e28N3fUwcwGR37XIlmxU9tDXDuvGom5dV+ajSBgmaVoUS3PerPUOxjC3lQ7Q2J9+Af51hfFlGovNZz8p/eelQoClZk93p9+Tn4VM84sGPXZiOMi1hDQjU5kOtFnfendNQmEL/8T0/nns5MtCvleuYkPEfw5COnsBmjkRBC2ancBd88leG1DCsj32XNWFBG2jZoJbIsczIBNOduP1ajLMXrq7EVUOk5DCZQB1Ku1dWGPN55GzWe1GxxVIpFUzTsKAExafM+FYcamKFACeL9yFtei00mm6kyc1+GRuzBMBgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBCWbEJkf7PwSwCpbMUm68mZgCCMMj4zrPZVmzj5PEx3ElW0TAdAxNHmN7DPpbBkSLcKcQ==]
40
-
41
- mixed_array_with_strings:
42
- - array4
43
- - ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEAeHR6sUJ/dBEo3ua7GEulLaxVwg029zo68XjsZQiTxg2I3UzH/nE+XJYGx9jRYUO7dehvMjam+LQ3ILFnaX/oIExreb1dXv7xpEyYqQAldpZdflyzAANmSxuzmxjyXQPWezyNTWta/Fn2BTf4pv++CU+Vps9g4idZ7/a3619Vp6lEZGycmSIirkE74PFcrVWlWQXqDW4VMkBQ1jEyu0mUnt+D0cZypNPwNTXnxzcAYYKbvfv2piE+dk4HCYt3txcdCc59Gyc035JsVv6fH7ksotM43+mgK4zOzaOpYg6RZIvSCt1vXNSwsVUIOEjdqe9VqNzt4W3jrXF1Ot16slorszA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBAabuHst7lWfK4lClC74O2PgBAgOeDR0fJBpE63mqXFyYLk]
44
- - array5
45
-
46
- encrypted_array_with_blocks:
47
- - >
48
- ENC[PKCS7,MIIBiQYJKoZIhvcNAQcDoIIBejCCAXYCAQAxggEhMIIBHQIBADAFMAACAQAw
49
- DQYJKoZIhvcNAQEBBQAEggEAQjttHzRiVQWu2Vy7zgWQidZwBaMcXozdrZ+m
50
- ICa7B+v9dOawM/K0+nUY7/BpC8EyxnRBd4RC5tUTDOtMjDMUuHuYk5XuT8lg
51
- c8GjuTkwqwem/DqjO7SlfI54fDInrxhnB3OBEnszrpg9opcU/7GiLtc3OZWP
52
- 9Asjc1NFXU1c+epppC23Mnhj20IWwtWjL2eiJ//awTIYAiZuLAz67DGHtXXg
53
- 9AyLmam1zu3wSQ5oBaIlsCD6uURAvQpPbFLpighDoNpmrPEHxx2ic3CRZa1z
54
- T6aFt73F2zvfHqAW5DgWw/iOw7O9pQB/XVx5PllayL3o0Qvm0zg0eXwEaUwq
55
- aV5tSzBMBgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBAK6XVBBwkRexVRrPN7
56
- 1AbggCDFkRxpgVv6m24BcGZip0Fl7pYI6aP6LQrPU20ZmGApzw==]
57
- - >
58
- ENC[PKCS7,MIIBiQYJKoZIhvcNAQcDoIIBejCCAXYCAQAxggEhMIIBHQIBADAFMAACAQAw
59
- DQYJKoZIhvcNAQEBBQAEggEALr1EHJG+jshOtmsxWVdnu/rtJuWiz3f6sO0F
60
- x4or64faJpt6IvOMrY1VLMl72QNVGW5EZueh0uM9vgfhOXCMV42LGO6O0qXM
61
- AmYyVL/07SomaXDuOTFuufdyScOYIj4xUxXPSIQPNZ3bef92K9UPh8HADXY9
62
- 2kxWVF2KQAkyzHpz0c0cuQjButz77oAYbyzN4l/l/o0X5teTrU5Ghly4i1c/
63
- 6KMn0eFZKY/midRePg8xXkkVCzlyS83dfmJOHboe7cw8t21q40od0+1H6AwF
64
- WqhGAYW4qlQmj/x9ymXv9dxj8kYOmtL4x9eefZppCfwMmk6gSKnURTBe/Do2
65
- QLWU3jBMBgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBUFtWWAaIlqDWgOofQ
66
- /jpLgCDXTSezJvwONiokkl3MHryu/xsAlMGLyd4fDUC1XPQsRA==]
67
-
68
- mixed_array_with_blocks:
69
- - >
70
- tomorrow and tomorrow and
71
- tomorrow creeps in this petty
72
- pace
73
- - >
74
- ENC[PKCS7,MIIBiQYJKoZIhvcNAQcDoIIBejCCAXYCAQAxggEhMIIBHQIBADAFMAACAQAw
75
- DQYJKoZIhvcNAQEBBQAEggEAj9R0rZ98jseASAthfPUflx1oj2bNmOoCkfv9
76
- H9PpsQnr4NzqrTpYLAX72sewLD2GZYAA61ukb8Z6KRjNg6iSTZjYuRA7jhRc
77
- QV6NJ3KgYI7w4RJs4lUvYOIgZe6MwXjPDeoEaSTDDaee5pld5AT//MNXtPgp
78
- Ez2ms9Ude+PvGbf7y38HKhkguSbDs34aacuz4X7IGEZCZMrbfxUo1M+HzPlY
79
- RvlmjDHwWJmG9Aj1G439AKUwr7KJgTvPzzZLcXz/lENdjk92HLSEaRFMMnTJ
80
- XkJLIXcBdzdd6gw+3WqEljQUYAmOv36avTZt7IA1AeCycTa+xDCKZ4gZE/O7
81
- zasLkTBMBgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBAI+wtFyu4rvbeY5Zwg
82
- VR0ggCDK2aXbmJOBwtj6GyRBYokOEk8EcLuUTDh+GOvYaErUdQ==]
83
- - >
84
- when shall we three meet again
85
- in thunder lightning or
86
- in rain
87
-
88
- mixed_array_with_random:
89
- - ENC[PKCS7,MIIBiQYJKoZIhvcNAQcDoIIBejCCAXYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEApxf3lqPCoidIFp5qvB21dUhlmCHx6JLm7rtt9m6rXwc35VrJVukSCIrjvAz1b/osEU+RdSEQh9WL2E65QHB9aHklWdu4SgR3QvC/TU4uVWQCvfy3g/bpX3D/j13BkSpe99nH0Va0kZpCnaorHEwiv9fvs5VneGIwSKiBIy/5lYdcmmHWPSlE+4G285XwznMKUqh+P/prUTn664oDA8LeRGitENfndmFGLPaoEbgfJLAQQlVPzt/DhR/YiYoG5qHh9445NAVo/MVq13SVzbxCwyg7WVrNTI3KK4Z2/hDiizRHpE/L7ceWfJiXCUQ4ouy2QvWNcNjmGTM0bRZDgep8XDBMBgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBWzWT0Fn9sVdKPp0BoGWIcgCC0ga55Q3kw9i+D6acq4TOlI1rcdIyS/lwBSe7gixWQdg==]
90
- - >
91
- ENC[PKCS7,MIIBiQYJKoZIhvcNAQcDoIIBejCCAXYCAQAxggEhMIIBHQIBADAFMAACAQAw
92
- DQYJKoZIhvcNAQEBBQAEggEAZIrpP5Gtt54I4S68hrZj3pjaqO9IcEnX0J66
93
- I7Zc8+r9VUsahJWSGlDutvmz5b8vo94ZqWy9vKaJFKBc762ih8YDhMKjDTKL
94
- 2Pbdshv/cbWF09oF2HoNqU+qC8OK+Uku+lf7F8UOmkzTsB2QS6LzQKXoZtff
95
- WWum8ZNfShgCHsb6qy+1C/pNPNMSvO+JnFhTp7e7MS62wIAY6denn2ODCj4c
96
- MJhU8siBOWcyIBOHDdlHr658qXfpixN3vmN4qpXoqD5A4r2rv5Jh0uqYNYdo
97
- peROsTg5yYz46NovQF/iM4ZOed+jcHjANFW1+tLsT8MgesvN19pTpLyVeCdq
98
- lwed8jBMBgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBDs+GHGdE7N5Livn7K+
99
- Dfs1gCBnNYMzne3ae3pyxKTf2FUaJyZWOgmCPMoWAwgr20Gkvw==]
100
- - >
101
- i wondered lonely
102
- as a cloud
103
- - the grand old duke of york
104
-
105
- simple_hash:
106
- key1: value1
107
- key2: value2
108
-
109
- encrypted_hash_value:
110
- key5: ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEAfXcVAj7iddi1siO4eT3ZbJF6C3z+5iHOd8RXf/AFRV6ocQP3G70ABUcWpjp289Rc968/T1vHgsXjaUcyOl43XcjOdtizyYrNUkFGG02VPjeAa7rqSIAy9Ot58PGEFC+/gfyvFXCr7mQoP6QUE0qQbxsRt0icUhg0HXXFFtYlddJDEovdWy3KVjx7Dl0AxYp8zbEnXgTmUdfezl3P89fWce9wEq9AFNsFzbQKA25XTTt77xyGJvtZSOJSy4mB65e5VX0rb09kL93ofpgmra/0D3x13Afi5YJHtOSzWkHNoBwcvAXsigRrQcvFrgVDQhOK8J6wTdlQr/XhwDVolq5/zjA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBAvmHWbpyACAaHkpsP1tHvpgBCFqQ4ZpLC5gagc8i9Eia74]
111
- key6: ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEAYXaRRYmZJUtU5zo/yVVVknavcsEouVPbs8gXwRXbVK+anEOyWNaFalbA2n16dIhD9kIVbfJ3MiBnUu3m/CbvyTrt4lVpw5r8TRuxjXh8F8C39k9bZbKOgj+zj8OCMfZYgRR3BTXN5fym6BLFQ1oWIaW9GxMc3671OyymudJE230eT1dk8ivx95giFAHQRasAyBVsf0YRuRmH5GVnOiD9zmTNb0eKTcxdGXdVTgc2rGbOlFhQLOS9CHcEryulAtbKH22foUTnYWugFk8SrRpdyS3HViimnSDOfx1ulRPa9TktXaQwR3YED/z4gbQ0x5Gx30tm0lmTYFCSt2FDFd54eTA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBDy/ITSXoe+hXa6ewQlAAefgBCd16Ly4Z9nsitcdMS2fVvz]
112
-
113
- multi_encryption: ENC[PLAINTEXT,amFtbXk=] ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEAKjKPUtDSN+X/n91bpIjhZHW3eLG9efNNWz7unq8ToxQOIMLrQcr3mj+83E1UNhmRu4TSymSz0kFkkPtjWd2TAkAG3PZvUj6ldFeUhbPMAvTOH/Q23hEZfQdI0GmZHTe6YsYBjJwAxEegXfdg1HKzCY3SBZoMTCEu9yFIJKd3slPxw8zPI6GERTg2ZBRWIckv9W9t7EN7nu9liWR0csRPEYwXUiAZlrgdX2r2Fhx/ZzWZ0tWJ55BiYYzE9U9bvSGZOjZJpWU9wUaOhpAhAx9xaIg48CO5THXMvV+8ss/zEMhYHGfhN56Cr69oQRDXGunYKnWT9tgoDCrxMGIrurtBnDA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBntvZSBPjinBRMofJhVxEtgBAd3fhzETLtxJm58bnlM3ci]
114
-
@@ -1,3 +0,0 @@
1
- Given /^my EDITOR is set to \"(.*?)\"$/ do |editor_command|
2
- ENV['EDITOR'] = editor_command
3
- end
@@ -1,26 +0,0 @@
1
- ENV['RUBYLIB'] = File.dirname(__FILE__) + '/../../lib'
2
- require 'rubygems'
3
- require 'aruba/config'
4
- require 'aruba/cucumber'
5
- require 'fileutils'
6
- require 'rspec/expectations'
7
-
8
- test_files = {}
9
- Dir["features/sandbox/**/*"].each do |file_name|
10
- next unless File.file? file_name
11
- read_mode = "r"
12
- read_mode = "rb" if file_name =~ /\.bin$/
13
- file = File.open(file_name, "r")
14
- file_contents = file.read
15
- file.close
16
- file_name = file_name.slice(17, file_name.length)
17
- test_files[file_name] = file_contents
18
- end
19
-
20
- # ENV['EDITOR']="/bin/cat"
21
-
22
- Aruba.configure do |config|
23
- config.before_cmd do |cmd|
24
- SetupSandbox.create_files test_files
25
- end
26
- end
@@ -1,21 +0,0 @@
1
- require 'fileutils'
2
-
3
- class SetupSandbox
4
-
5
- def self.create_files test_files
6
-
7
- test_files.each do |test_file, contents|
8
- extension = test_file.split('.').last
9
- target_dir = File.dirname(test_file)
10
- FileUtils.mkdir_p( target_dir ) unless Dir.exists?( target_dir )
11
- write_mode = "w"
12
- write_mode = "wb" if extension == "bin"
13
- File.open(test_file, write_mode) {|input_file|
14
- input_file.puts contents
15
- } unless File.exists?( test_file )
16
- File.chmod(0755, test_file) if extension == "sh"
17
- end
18
-
19
- end
20
-
21
- end
@@ -1,12 +0,0 @@
1
- Feature: eyaml encrypting is valid
2
-
3
- Scenario: encrypt and decrypt a binary file
4
- When I run `bash -c "eyaml -e -o string -f test_input.bin > test_output.txt"`
5
- When I run `bash -c "eyaml -d -f test_output.txt > test_output.bin"`
6
- When I run `file test_output.bin`
7
- Then the output should match /PNG image data/
8
-
9
- Scenario: encrypt and decrypt a simple file
10
- When I run `bash -c "eyaml -e -o string -f test_input.txt > test_output.txt"`
11
- When I run `eyaml -d -f test_output.txt`
12
- Then the output should match /fox jumped over/