symmetric-encryption 3.9.1 → 4.0.0.beta3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +72 -0
  3. data/bin/symmetric-encryption +5 -0
  4. data/lib/symmetric_encryption/cipher.rb +162 -419
  5. data/lib/symmetric_encryption/cli.rb +343 -0
  6. data/lib/symmetric_encryption/coerce.rb +5 -20
  7. data/lib/symmetric_encryption/config.rb +128 -50
  8. data/lib/symmetric_encryption/extensions/mongo_mapper/plugins/encrypted_key.rb +2 -2
  9. data/lib/symmetric_encryption/generator.rb +3 -2
  10. data/lib/symmetric_encryption/header.rb +260 -0
  11. data/lib/symmetric_encryption/key.rb +106 -0
  12. data/lib/symmetric_encryption/keystore/environment.rb +90 -0
  13. data/lib/symmetric_encryption/keystore/file.rb +102 -0
  14. data/lib/symmetric_encryption/keystore/memory.rb +53 -0
  15. data/lib/symmetric_encryption/keystore.rb +124 -0
  16. data/lib/symmetric_encryption/railtie.rb +5 -7
  17. data/lib/symmetric_encryption/reader.rb +74 -55
  18. data/lib/symmetric_encryption/rsa_key.rb +24 -0
  19. data/lib/symmetric_encryption/symmetric_encryption.rb +64 -102
  20. data/lib/symmetric_encryption/utils/re_encrypt_files.rb +140 -0
  21. data/lib/symmetric_encryption/version.rb +1 -1
  22. data/lib/symmetric_encryption/writer.rb +104 -117
  23. data/lib/symmetric_encryption.rb +9 -4
  24. data/test/active_record_test.rb +61 -40
  25. data/test/cipher_test.rb +179 -236
  26. data/test/config/symmetric-encryption.yml +140 -82
  27. data/test/header_test.rb +218 -0
  28. data/test/key_test.rb +231 -0
  29. data/test/keystore/environment_test.rb +119 -0
  30. data/test/keystore/file_test.rb +125 -0
  31. data/test/keystore_test.rb +59 -0
  32. data/test/mongoid_test.rb +13 -13
  33. data/test/reader_test.rb +52 -53
  34. data/test/symmetric_encryption_test.rb +50 -135
  35. data/test/test_db.sqlite3 +0 -0
  36. data/test/writer_test.rb +52 -31
  37. metadata +26 -14
  38. data/examples/symmetric-encryption.yml +0 -108
  39. data/lib/rails/generators/symmetric_encryption/config/config_generator.rb +0 -22
  40. data/lib/rails/generators/symmetric_encryption/config/templates/symmetric-encryption.yml +0 -50
  41. data/lib/rails/generators/symmetric_encryption/heroku_config/heroku_config_generator.rb +0 -20
  42. data/lib/rails/generators/symmetric_encryption/heroku_config/templates/symmetric-encryption.yml +0 -78
  43. data/lib/rails/generators/symmetric_encryption/new_keys/new_keys_generator.rb +0 -14
  44. data/lib/symmetric_encryption/key_encryption_key.rb +0 -32
  45. data/lib/symmetric_encryption/railties/symmetric_encryption.rake +0 -84
  46. data/lib/symmetric_encryption/utils/re_encrypt_config_files.rb +0 -82
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4569a98f50aa6df040149ea4252b66b1717f1e5c
4
- data.tar.gz: afd1ca34b01b8deae7ac11658207b757873927e8
3
+ metadata.gz: bbba00171b0bbc9ced7ad733f3f26b58001d1d76
4
+ data.tar.gz: a1382fc5cac466532424653bf8b9780a90c577ca
5
5
  SHA512:
6
- metadata.gz: ab76aa43eeb67a5f58fd31b0e3dd715e0474b241c4e371a82cfe0bbb4ece9b65d253c3856df9054472432c75b552bd5609aec65c2262995c2d15c7c689dd40c9
7
- data.tar.gz: 583f8cbb6e7741e11a7354550968f8c109c541ddda4ce58a120b10071d276ea3f3fec488f140a1de6198b104a0b2e812aa8ac348a8950258b5f84d77f0c7c5c3
6
+ metadata.gz: ad6026a01681ec99c28c30b3e9cc0fc7b351ae10101e1f9a14605dff4952983b9b7490fdab82d051b705f2595f4bf08a544eb81923177b0ca9881b53bd80e6b2
7
+ data.tar.gz: 7dd9a71d0420eaab460217c1845233efa2f4eb35e8fed21986aae3f27188ee09ab1ab41b0da0f7d8f575b952f965539b0f980ec13f51d664bba6aa2ae317209b
data/README.md CHANGED
@@ -36,6 +36,78 @@ Symmetric Encryption works with the following Ruby VMs:
36
36
  - Ruby 2.1 and higher.
37
37
  - JRuby 9.1 and higher.
38
38
 
39
+ ## Upgrading to SymmetricEncryption V4
40
+
41
+ Version 4 of Symmetric Encryption has completely adopted the Ruby keyword arguments on most API's where
42
+ multiple arguments are being passed, or where a Hash was being used before.
43
+
44
+ The encrypt and decrypt API now require keyword arguments for any optional arguments.
45
+
46
+ The following does _not_ change:
47
+
48
+ ~~~ruby
49
+ encrypted = SymmetricEncryption.encrypt('Hello World')
50
+ SymmetricEncryption.decrypt(encrypted)
51
+ ~~~
52
+
53
+ The following is _not_ backward compatible:
54
+ ~~~ruby
55
+ SymmetricEncryption.encrypt('Hello World', false, false, :date)
56
+ ~~~
57
+
58
+ Needs to be changed to:
59
+ ~~~ruby
60
+ SymmetricEncryption.encrypt('Hello World', random_iv: false, compress: false, type: :date)
61
+ ~~~
62
+
63
+ Or, just to change the type:
64
+ ~~~ruby
65
+ SymmetricEncryption.encrypt('Hello World', type: :date)
66
+ ~~~
67
+
68
+ Similarly the `decrypt` api has also changed:
69
+ ~~~ruby
70
+ SymmetricEncryption.decrypt(encrypted, 2, :date)
71
+ ~~~
72
+
73
+ Needs to be changed to:
74
+ ~~~ruby
75
+ SymmetricEncryption.decrypt(encrypted, version: 2, type: :string)
76
+ ~~~
77
+
78
+ The Rake tasks have been replaced with a new command line interface for managing key configuration and generation.
79
+ For more info:
80
+ ~~~
81
+ symmetric-encryption --help
82
+ ~~~
83
+
84
+ #### Configuration changes
85
+
86
+ In Symmetric Encryption V4 the configuration file is now modified directly instead
87
+ of using templates. This change is necessary to allow the command line interface to
88
+ generate new keys and automatically update the configuration file.
89
+
90
+ Please backup your existing `symmetric-encryption.yml` prior to upgrading if it is not
91
+ already in a version control system. This is critical for configurations that have custom
92
+ code or for prior configurations targeting heroku.
93
+
94
+ In Symmetric Encryption V4 the defaults for `encoding` and `always_add_header` have changed.
95
+ If these values are not explicitly set in the `symmetric-encryption.yml` file, set them
96
+ prior to upgrading.
97
+
98
+ Prior defaults, set explicitly to these values if missing for all environments:
99
+ ~~~yaml
100
+ encoding: :base64
101
+ always_add_header: false
102
+ ~~~
103
+
104
+ New defaults are:
105
+ ~~~yaml
106
+ encoding: :base64strict
107
+ always_add_header: true
108
+ ~~~
109
+
110
+
39
111
  ## Upgrading to SymmetricEncryption V3
40
112
 
41
113
  In version 3 of SymmetricEncryption, the following changes have been made that
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'symmetric_encryption'
4
+
5
+ SymmetricEncryption::CLI.run!(ARGV)