symmetric-encryption 3.9.1 → 4.0.0.beta3

Sign up to get free protection for your applications and to get access to all the features.
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)