hiera-eyaml 1.1.4 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. data/.gitignore +2 -0
  2. data/Gemfile +7 -0
  3. data/Gemfile.lock +28 -0
  4. data/PLUGINS.md +4 -0
  5. data/README.md +51 -41
  6. data/bin/eyaml +9 -357
  7. data/features/decrypts.feature +44 -0
  8. data/features/edit.feature +54 -0
  9. data/features/encrypts.feature +26 -0
  10. data/features/keys.feature +13 -0
  11. data/features/outputs.feature +30 -0
  12. data/features/plugin.feature +35 -0
  13. data/features/plugin_api.feature +16 -0
  14. data/features/puppet.feature +15 -0
  15. data/features/sandbox/convert_decrypted_values_to_uppercase.sh +2 -0
  16. data/features/sandbox/keys/private_key.pkcs7.pem +27 -0
  17. data/features/sandbox/keys/public_key.pkcs7.pem +18 -0
  18. data/features/sandbox/pipe_string.sh +5 -0
  19. data/features/sandbox/puppet/environments/local/test.eyaml +3 -0
  20. data/features/sandbox/puppet/hiera.yaml +17 -0
  21. data/features/sandbox/puppet/manifests/init.pp +3 -0
  22. data/features/sandbox/puppet/modules/test/manifests/init.pp +18 -0
  23. data/features/sandbox/puppet/puppet.conf +6 -0
  24. data/features/sandbox/supply_password.sh +7 -0
  25. data/features/sandbox/test_input.bin +0 -0
  26. data/features/sandbox/test_input.encrypted.txt +1 -0
  27. data/features/sandbox/test_input.txt +3 -0
  28. data/features/sandbox/test_input.yaml +114 -0
  29. data/features/step_definitions/environment_overrides.rb +3 -0
  30. data/features/support/env.rb +26 -0
  31. data/features/support/setup_sandbox.rb +21 -0
  32. data/features/valid_encryption.feature +12 -0
  33. data/hiera-eyaml.gemspec +1 -1
  34. data/lib/hiera/backend/eyaml.rb +19 -0
  35. data/lib/hiera/backend/eyaml/CLI.rb +110 -0
  36. data/lib/hiera/backend/eyaml/actions/createkeys_action.rb +24 -0
  37. data/lib/hiera/backend/eyaml/actions/decrypt_action.rb +67 -0
  38. data/lib/hiera/backend/eyaml/actions/edit_action.rb +47 -0
  39. data/lib/hiera/backend/eyaml/actions/encrypt_action.rb +80 -0
  40. data/lib/hiera/backend/eyaml/encryptor.rb +71 -0
  41. data/lib/hiera/backend/eyaml/encryptors/pkcs7.rb +99 -0
  42. data/lib/hiera/backend/eyaml/options.rb +32 -0
  43. data/lib/hiera/backend/eyaml/plugins.rb +65 -0
  44. data/lib/hiera/backend/eyaml/utils.rb +83 -0
  45. data/lib/hiera/backend/eyaml_backend.rb +108 -113
  46. data/sublime_text/README.md +16 -0
  47. data/sublime_text/eyaml.sublime-package +0 -0
  48. data/sublime_text/eyaml.syntax_definition.json +288 -0
  49. data/{bin → tools}/regem.sh +1 -1
  50. metadata +71 -7
  51. data/keys/.keepme +0 -0
  52. data/lib/hiera/backend/version.rb +0 -7
@@ -0,0 +1,44 @@
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
+
@@ -0,0 +1,54 @@
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\]\!/
@@ -0,0 +1,26 @@
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
+
@@ -0,0 +1,13 @@
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/
@@ -0,0 +1,30 @@
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
+
@@ -0,0 +1,35 @@
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
+
@@ -0,0 +1,16 @@
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
+
@@ -0,0 +1,15 @@
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/
@@ -0,0 +1,2 @@
1
+ #!/bin/bash
2
+ perl -pi -e 's/(DEC::[A-Z0-9]+\[.*?\]\!)/uc($1)/ge' $1
@@ -0,0 +1,27 @@
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-----
@@ -0,0 +1,18 @@
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-----
@@ -0,0 +1,5 @@
1
+ #!/bin/bash
2
+
3
+ STRING=$1
4
+ shift
5
+ echo "$STRING" | $*
@@ -0,0 +1,3 @@
1
+ plaintext_string: good night
2
+ encrypted_string: ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEAQoDt5EgMoJUpsqgcH7OdGJ3d9LzSpaAsgnPuyDHRaHRFHpOmeUk4J4qwHqlNDqD+AMkydaGlNswA/bLdoBwofZGZAUoly/Vkt3ciB4sw0pWlezEUx0dUfWGB95qOJwTqyXhQ4b4fcgCMUbwwCCombN5/LVwjxKHmC9knLNCDkUU5VNDy5Lanh3y8S2XwCJpjArhEcJNfwrf4yz3luQcKD3x91FR3NUYPjJOiTHl9lzxEJm4Mod7ioSj62FcP79qgULWqTKpxMpG4LPwCo/J84jhTkl+fhL/Bs/tmujgpLqBO000kdg4ZmrYrwYqpK6vgcFzVtZJEB3Tq8nXD9hSuAzA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBFKh+qgHj0ajgtgpsFq5NEgBB/nP/DgjeKtd+D2MX6sOTv]
3
+
@@ -0,0 +1,17 @@
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
@@ -0,0 +1,3 @@
1
+ node "localhost" {
2
+ include test::run
3
+ }
@@ -0,0 +1,18 @@
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
+ }
@@ -0,0 +1,6 @@
1
+ [main]
2
+ vardir=puppet
3
+ ssldir=$vardir/ssl
4
+ logdir=$vardir/logs
5
+ pidfile=$vardir/puppet.pid
6
+ environment=local
@@ -0,0 +1,7 @@
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
@@ -0,0 +1 @@
1
+ ENC[PKCS7,MIIBiQYJKoZIhvcNAQcDoIIBejCCAXYCAQAxggEhMIIBHQIBADAFMAACAQAwDQYJKoZIhvcNAQEBBQAEggEAgO8TSTj+8D1EyN7T1p2a7YqlXLQdNkr7xfV8DU3foG5x1wXOCVNvANrMNzyCoc8zAeHywhzvG60DaDKMcd/1TIiySpt912rYCWJDcGV0YlfsBDpJTvQlU7ygWoHgDzvtX0Eo1ChCh4TZUmllU96da+6e2c/3/45OyDBiHWy/OZzYzNcA8fx2bqdq+Ucy/WAfvSK8aAVHJu1B2AnXECyopyMgly14j6rAW4dDzsnh9oge+iMsC9uLhqykTMR8q9wo+W092g+rzms8V5CprTGFVLl2Kq/V3o7ItnOqiPURXPxwykCrW8NHr591sWxlXtY1gf1f6u++Fa4UJbEMt7iZkTBMBgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBb5+JHGoxKxM3KQ09F8pyTgCBzK1YAZ5ceYNwW2ybSGqt9x8jfWHbM/jzbCnNOLnAU2Q==]
@@ -0,0 +1,3 @@
1
+ The quick brown
2
+ fox jumped over
3
+ the lazy dog
@@ -0,0 +1,114 @@
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
+