crypt_keeper 0.16.0.pre → 1.1.1

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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/.travis.yml +22 -13
  4. data/Appraisals +6 -16
  5. data/README.md +43 -21
  6. data/Rakefile +7 -3
  7. data/crypt_keeper.gemspec +9 -9
  8. data/gemfiles/activerecord_4_2.gemfile +8 -0
  9. data/gemfiles/activerecord_5_1.gemfile +8 -0
  10. data/lib/crypt_keeper/helper.rb +31 -21
  11. data/lib/crypt_keeper/log_subscriber/mysql_aes.rb +11 -11
  12. data/lib/crypt_keeper/log_subscriber/postgres_pgp.rb +29 -10
  13. data/lib/crypt_keeper/model.rb +64 -17
  14. data/lib/crypt_keeper/provider/aes_new.rb +1 -1
  15. data/lib/crypt_keeper/provider/base.rb +21 -0
  16. data/lib/crypt_keeper/provider/mysql_aes_new.rb +2 -2
  17. data/lib/crypt_keeper/provider/postgres_base.rb +28 -0
  18. data/lib/crypt_keeper/provider/postgres_pgp.rb +27 -8
  19. data/lib/crypt_keeper/provider/postgres_pgp_public_key.rb +4 -20
  20. data/lib/crypt_keeper/version.rb +1 -1
  21. data/lib/crypt_keeper.rb +11 -2
  22. data/spec/crypt_keeper/log_subscriber/mysql_aes_spec.rb +50 -0
  23. data/spec/crypt_keeper/log_subscriber/postgres_pgp_spec.rb +78 -0
  24. data/spec/crypt_keeper/model_spec.rb +178 -0
  25. data/spec/crypt_keeper/provider/aes_new_spec.rb +41 -0
  26. data/spec/crypt_keeper/provider/mysql_aes_new_spec.rb +50 -0
  27. data/spec/crypt_keeper/provider/postgres_pgp_public_key_spec.rb +67 -0
  28. data/spec/crypt_keeper/provider/postgres_pgp_spec.rb +87 -0
  29. data/spec/spec_helper.rb +0 -1
  30. data/spec/support/active_record.rb +36 -26
  31. data/spec/support/encryptors.rb +9 -3
  32. data/spec/support/logging.rb +89 -0
  33. metadata +84 -92
  34. data/bin/crypt_keeper +0 -99
  35. data/gemfiles/activerecord_3_1.gemfile +0 -8
  36. data/gemfiles/activerecord_3_1.gemfile.lock +0 -109
  37. data/gemfiles/activerecord_3_2.gemfile +0 -8
  38. data/gemfiles/activerecord_3_2.gemfile.lock +0 -109
  39. data/gemfiles/activerecord_4_0.gemfile +0 -8
  40. data/gemfiles/activerecord_4_0.gemfile.lock +0 -117
  41. data/gemfiles/activerecord_4_1.gemfile +0 -8
  42. data/gemfiles/activerecord_4_1.gemfile.lock +0 -117
  43. data/lib/crypt_keeper/provider/aes.rb +0 -66
  44. data/lib/crypt_keeper/provider/mysql_aes.rb +0 -47
  45. data/spec/log_subscriber/postgres_pgp_spec.rb +0 -98
  46. data/spec/model_spec.rb +0 -95
  47. data/spec/provider/aes_new_spec.rb +0 -45
  48. data/spec/provider/aes_spec.rb +0 -67
  49. data/spec/provider/mysql_aes_new_spec.rb +0 -52
  50. data/spec/provider/mysql_aes_spec.rb +0 -35
  51. data/spec/provider/postgres_pgp_public_key_spec.rb +0 -70
  52. data/spec/provider/postgres_pgp_spec.rb +0 -68
data/spec/spec_helper.rb CHANGED
@@ -11,7 +11,6 @@ ENCRYPTION_PASSWORD = "supermadsecretstring"
11
11
  Dir[SPEC_ROOT.join('support/*.rb')].each{|f| require f }
12
12
 
13
13
  RSpec.configure do |config|
14
- config.treat_symbols_as_metadata_keys_with_true_values = true
15
14
  config.run_all_when_everything_filtered = true
16
15
  config.filter_run :focus
17
16
 
@@ -5,20 +5,6 @@ require 'logger'
5
5
  ::ActiveRecord::Migration.verbose = false
6
6
 
7
7
  module CryptKeeper
8
- class SensitiveDataMysql < ActiveRecord::Base
9
- self.table_name = 'sensitive_data'
10
- crypt_keeper :storage, encryptor: :mysql_aes_new, key: ENCRYPTION_PASSWORD,
11
- salt: 'salt'
12
- end
13
-
14
- class SensitiveDataPg < ActiveRecord::Base
15
- self.table_name = 'sensitive_data'
16
- crypt_keeper :storage, key: 'tool', encryptor: :postgres_pgp
17
- end
18
-
19
- class SensitiveData < ActiveRecord::Base
20
- end
21
-
22
8
  module ConnectionHelpers
23
9
  class CreateConnection
24
10
  def initialize(driver)
@@ -61,27 +47,51 @@ module CryptKeeper
61
47
  end
62
48
  end
63
49
  end
64
- end
65
50
 
66
- module LoggedQueries
67
- # Logs the queries run inside the block, and return them.
68
- def logged_queries(&block)
69
- queries = []
51
+ module AnonymousModels
52
+ def mysql_model
53
+ create_encrypted_model :storage, encryptor: :mysql_aes_new, key: ENCRYPTION_PASSWORD, salt: 'salt'
54
+ end
55
+
56
+ def postgres_model
57
+ create_encrypted_model :storage, key: 'tool', encryptor: :postgres_pgp
58
+ end
59
+
60
+ def create_encrypted_model(*args)
61
+ create_model.tap { |m| m.crypt_keeper *args }
62
+ end
70
63
 
71
- subscriber = ActiveSupport::Notifications
72
- .subscribe('sql.active_record') do |name, started, finished, id, payload|
73
- queries << payload[:sql]
64
+ def create_model
65
+ Class.new(ActiveRecord::Base) do
66
+ def self.table_name
67
+ "sensitive_data"
68
+ end
69
+ end
74
70
  end
71
+ end
75
72
 
76
- block.call
73
+ module LoggedQueries
74
+ # Logs the queries run inside the block, and return them.
75
+ def logged_queries(&block)
76
+ queries = []
77
77
 
78
- queries
78
+ subscriber = ActiveSupport::Notifications
79
+ .subscribe('sql.active_record') do |name, started, finished, id, payload|
80
+ queries << payload[:sql]
81
+ end
82
+
83
+ block.call
84
+
85
+ queries
79
86
 
80
- ensure ActiveSupport::Notifications.unsubscribe(subscriber)
87
+ ensure ActiveSupport::Notifications.unsubscribe(subscriber)
88
+ end
81
89
  end
90
+
82
91
  end
83
92
 
84
93
  RSpec.configure do |config|
85
94
  config.extend CryptKeeper::ConnectionHelpers
86
- config.include LoggedQueries
95
+ config.include CryptKeeper::AnonymousModels
96
+ config.include CryptKeeper::LoggedQueries
87
97
  end
@@ -1,7 +1,13 @@
1
1
  module CryptKeeper
2
2
  module Provider
3
3
  # A fake class that does no encryption
4
- class FakeEncryptor
4
+ class InvalidEncryptor
5
+ def initialize(*args)
6
+ end
7
+ end
8
+
9
+ # A fake class that does no encryption
10
+ class FakeEncryptor < Base
5
11
  def initialize(*args)
6
12
  end
7
13
 
@@ -14,7 +20,7 @@ module CryptKeeper
14
20
  end
15
21
  end
16
22
 
17
- class SearchEncryptor
23
+ class SearchEncryptor < Base
18
24
  def initialize(*args)
19
25
  end
20
26
 
@@ -34,7 +40,7 @@ module CryptKeeper
34
40
 
35
41
  # This class embeds the passphrase in the beginning of the string
36
42
  # and then reverses the 'plaintext'
37
- class Encryptor
43
+ class Encryptor < Base
38
44
  def initialize(options = {})
39
45
  @passphrase = options[:passphrase]
40
46
  end
@@ -0,0 +1,89 @@
1
+ # This module is used to verify CryptKeeper log subscribers work as expected.
2
+ #
3
+ # Examples
4
+ #
5
+ # The following test will verify that the `input` query is scrubbed so it
6
+ # matches the `output` query.
7
+ #
8
+ # specify do
9
+ # should_log_scrubbed_query \
10
+ # input: "SELECT pgp_sym_encrypt('val', 'key')"
11
+ # output: "SELECT encrypt([FILTERED])"
12
+ # end
13
+ #
14
+ # The following test will verify that the `input` query was not logged at all
15
+ # (eg: CryptKeeper.silence_logs is enabled).
16
+ #
17
+ # specify do
18
+ # CryptKeeper.silence_logs = true
19
+ #
20
+ # should_not_log_query input: "SELECT pgp_sym_encrypt('val', 'key')"
21
+ # end
22
+ require "active_record/log_subscriber"
23
+
24
+ module CryptKeeper
25
+ module Testing
26
+ module Logging
27
+ class TestDebugLogSubscriber < ActiveRecord::LogSubscriber
28
+ attr_reader :debugs
29
+
30
+ def initialize
31
+ @debugs = []
32
+ super
33
+ end
34
+
35
+ def debug(message)
36
+ @debugs << message
37
+ end
38
+ end
39
+
40
+ # Public: Verifies that the given input query was scrubbed and the
41
+ # output query was logged.
42
+ #
43
+ # input - Input SQL query to be scrubbed
44
+ # output - Expected output SQL query after scrubbing
45
+ #
46
+ # Returns nothing.
47
+ def should_log_scrubbed_query(input:, output:)
48
+ queries = sql(input)
49
+
50
+ expect(queries.join("\n")).to_not include(input)
51
+ expect(queries.join("\n")).to include(output)
52
+ end
53
+
54
+ # Public: Verifies that the given input query was not logged.
55
+ #
56
+ # input - SQL query
57
+ #
58
+ # Returns nothing.
59
+ def should_not_log_query(input)
60
+ queries = sql(input)
61
+
62
+ expect(queries).to be_empty
63
+
64
+ valid_output = sql("SELECT 1").any? { |line| line.include? "SELECT 1" }
65
+
66
+ expect(valid_output).to eq(true)
67
+ end
68
+
69
+ private
70
+
71
+ # Private: Triggers ActiveRecord::LogSubscriber#sql for the given query.
72
+ #
73
+ # query - SQL query
74
+ #
75
+ # Returns an Array.
76
+ def sql(query)
77
+ event = ActiveSupport::Notifications::Event.new(:sql, 1, 1, 1, { sql: query })
78
+
79
+ subscriber = TestDebugLogSubscriber.new
80
+ subscriber.sql event
81
+ subscriber.debugs
82
+ end
83
+ end
84
+ end
85
+ end
86
+
87
+ RSpec.configure do |c|
88
+ c.include CryptKeeper::Testing::Logging
89
+ end
metadata CHANGED
@@ -1,276 +1,268 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crypt_keeper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0.pre
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Mazzi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-22 00:00:00.000000000 Z
11
+ date: 2017-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
18
- - !ruby/object:Gem::Version
19
- version: '3.1'
20
- - - <
17
+ - - ">="
21
18
  - !ruby/object:Gem::Version
22
19
  version: '4.2'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '5.2'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - '>='
28
- - !ruby/object:Gem::Version
29
- version: '3.1'
30
- - - <
27
+ - - ">="
31
28
  - !ruby/object:Gem::Version
32
29
  version: '4.2'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '5.2'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: activesupport
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - '>='
38
- - !ruby/object:Gem::Version
39
- version: '3.1'
40
- - - <
37
+ - - ">="
41
38
  - !ruby/object:Gem::Version
42
39
  version: '4.2'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '5.2'
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - '>='
48
- - !ruby/object:Gem::Version
49
- version: '3.1'
50
- - - <
47
+ - - ">="
51
48
  - !ruby/object:Gem::Version
52
49
  version: '4.2'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '5.2'
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: aes
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - ~>
57
+ - - "~>"
58
58
  - !ruby/object:Gem::Version
59
59
  version: 0.5.0
60
60
  type: :runtime
61
61
  prerelease: false
62
62
  version_requirements: !ruby/object:Gem::Requirement
63
63
  requirements:
64
- - - ~>
64
+ - - "~>"
65
65
  - !ruby/object:Gem::Version
66
66
  version: 0.5.0
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: armor
69
69
  requirement: !ruby/object:Gem::Requirement
70
70
  requirements:
71
- - - ~>
71
+ - - "~>"
72
72
  - !ruby/object:Gem::Version
73
73
  version: 0.0.2
74
74
  type: :runtime
75
75
  prerelease: false
76
76
  version_requirements: !ruby/object:Gem::Requirement
77
77
  requirements:
78
- - - ~>
78
+ - - "~>"
79
79
  - !ruby/object:Gem::Version
80
80
  version: 0.0.2
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: rspec
83
83
  requirement: !ruby/object:Gem::Requirement
84
84
  requirements:
85
- - - ~>
85
+ - - "~>"
86
86
  - !ruby/object:Gem::Version
87
- version: 2.13.0
87
+ version: 3.5.0
88
88
  type: :development
89
89
  prerelease: false
90
90
  version_requirements: !ruby/object:Gem::Requirement
91
91
  requirements:
92
- - - ~>
92
+ - - "~>"
93
93
  - !ruby/object:Gem::Version
94
- version: 2.13.0
94
+ version: 3.5.0
95
95
  - !ruby/object:Gem::Dependency
96
96
  name: guard
97
97
  requirement: !ruby/object:Gem::Requirement
98
98
  requirements:
99
- - - ~>
99
+ - - "~>"
100
100
  - !ruby/object:Gem::Version
101
- version: 1.8.0
101
+ version: 2.6.1
102
102
  type: :development
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  requirements:
106
- - - ~>
106
+ - - "~>"
107
107
  - !ruby/object:Gem::Version
108
- version: 1.8.0
108
+ version: 2.6.1
109
109
  - !ruby/object:Gem::Dependency
110
110
  name: guard-rspec
111
111
  requirement: !ruby/object:Gem::Requirement
112
112
  requirements:
113
- - - ~>
113
+ - - "~>"
114
114
  - !ruby/object:Gem::Version
115
- version: 2.5.4
115
+ version: 4.2.9
116
116
  type: :development
117
117
  prerelease: false
118
118
  version_requirements: !ruby/object:Gem::Requirement
119
119
  requirements:
120
- - - ~>
120
+ - - "~>"
121
121
  - !ruby/object:Gem::Version
122
- version: 2.5.4
122
+ version: 4.2.9
123
123
  - !ruby/object:Gem::Dependency
124
124
  name: rake
125
125
  requirement: !ruby/object:Gem::Requirement
126
126
  requirements:
127
- - - ~>
127
+ - - "~>"
128
128
  - !ruby/object:Gem::Version
129
- version: 10.0.3
129
+ version: 10.3.1
130
130
  type: :development
131
131
  prerelease: false
132
132
  version_requirements: !ruby/object:Gem::Requirement
133
133
  requirements:
134
- - - ~>
134
+ - - "~>"
135
135
  - !ruby/object:Gem::Version
136
- version: 10.0.3
136
+ version: 10.3.1
137
137
  - !ruby/object:Gem::Dependency
138
138
  name: rb-fsevent
139
139
  requirement: !ruby/object:Gem::Requirement
140
140
  requirements:
141
- - - ~>
141
+ - - "~>"
142
142
  - !ruby/object:Gem::Version
143
143
  version: 0.9.1
144
144
  type: :development
145
145
  prerelease: false
146
146
  version_requirements: !ruby/object:Gem::Requirement
147
147
  requirements:
148
- - - ~>
148
+ - - "~>"
149
149
  - !ruby/object:Gem::Version
150
150
  version: 0.9.1
151
151
  - !ruby/object:Gem::Dependency
152
152
  name: coveralls
153
153
  requirement: !ruby/object:Gem::Requirement
154
154
  requirements:
155
- - - '>='
155
+ - - ">="
156
156
  - !ruby/object:Gem::Version
157
157
  version: '0'
158
158
  type: :development
159
159
  prerelease: false
160
160
  version_requirements: !ruby/object:Gem::Requirement
161
161
  requirements:
162
- - - '>='
162
+ - - ">="
163
163
  - !ruby/object:Gem::Version
164
164
  version: '0'
165
165
  - !ruby/object:Gem::Dependency
166
166
  name: appraisal
167
167
  requirement: !ruby/object:Gem::Requirement
168
168
  requirements:
169
- - - ~>
169
+ - - "~>"
170
170
  - !ruby/object:Gem::Version
171
- version: 0.5.2
171
+ version: 2.1.0
172
172
  type: :development
173
173
  prerelease: false
174
174
  version_requirements: !ruby/object:Gem::Requirement
175
175
  requirements:
176
- - - ~>
176
+ - - "~>"
177
177
  - !ruby/object:Gem::Version
178
- version: 0.5.2
178
+ version: 2.1.0
179
179
  - !ruby/object:Gem::Dependency
180
180
  name: sqlite3
181
181
  requirement: !ruby/object:Gem::Requirement
182
182
  requirements:
183
- - - '>='
183
+ - - ">="
184
184
  - !ruby/object:Gem::Version
185
185
  version: '0'
186
186
  type: :development
187
187
  prerelease: false
188
188
  version_requirements: !ruby/object:Gem::Requirement
189
189
  requirements:
190
- - - '>='
190
+ - - ">="
191
191
  - !ruby/object:Gem::Version
192
192
  version: '0'
193
193
  - !ruby/object:Gem::Dependency
194
194
  name: pg
195
195
  requirement: !ruby/object:Gem::Requirement
196
196
  requirements:
197
- - - ~>
197
+ - - "~>"
198
198
  - !ruby/object:Gem::Version
199
- version: 0.15.1
199
+ version: 0.18.0
200
200
  type: :development
201
201
  prerelease: false
202
202
  version_requirements: !ruby/object:Gem::Requirement
203
203
  requirements:
204
- - - ~>
204
+ - - "~>"
205
205
  - !ruby/object:Gem::Version
206
- version: 0.15.1
206
+ version: 0.18.0
207
207
  - !ruby/object:Gem::Dependency
208
208
  name: mysql2
209
209
  requirement: !ruby/object:Gem::Requirement
210
210
  requirements:
211
- - - ~>
211
+ - - "~>"
212
212
  - !ruby/object:Gem::Version
213
213
  version: 0.3.11
214
214
  type: :development
215
215
  prerelease: false
216
216
  version_requirements: !ruby/object:Gem::Requirement
217
217
  requirements:
218
- - - ~>
218
+ - - "~>"
219
219
  - !ruby/object:Gem::Version
220
220
  version: 0.3.11
221
- description: Transparent encryption for ActiveRecord that isn't over-engineered
221
+ description: Transparent ActiveRecord encryption
222
222
  email:
223
223
  - jmazzi@gmail.com
224
- executables:
225
- - crypt_keeper
224
+ executables: []
226
225
  extensions: []
227
226
  extra_rdoc_files: []
228
227
  files:
229
- - .gitignore
230
- - .rspec
231
- - .travis.yml
228
+ - ".gitignore"
229
+ - ".rspec"
230
+ - ".travis.yml"
232
231
  - Appraisals
233
232
  - Gemfile
234
233
  - Guardfile
235
234
  - LICENSE
236
235
  - README.md
237
236
  - Rakefile
238
- - bin/crypt_keeper
239
237
  - crypt_keeper.gemspec
240
- - gemfiles/activerecord_3_1.gemfile
241
- - gemfiles/activerecord_3_1.gemfile.lock
242
- - gemfiles/activerecord_3_2.gemfile
243
- - gemfiles/activerecord_3_2.gemfile.lock
244
- - gemfiles/activerecord_4_0.gemfile
245
- - gemfiles/activerecord_4_0.gemfile.lock
246
- - gemfiles/activerecord_4_1.gemfile
247
- - gemfiles/activerecord_4_1.gemfile.lock
238
+ - gemfiles/activerecord_4_2.gemfile
239
+ - gemfiles/activerecord_5_1.gemfile
248
240
  - lib/crypt_keeper.rb
249
241
  - lib/crypt_keeper/helper.rb
250
242
  - lib/crypt_keeper/log_subscriber/mysql_aes.rb
251
243
  - lib/crypt_keeper/log_subscriber/postgres_pgp.rb
252
244
  - lib/crypt_keeper/model.rb
253
- - lib/crypt_keeper/provider/aes.rb
254
245
  - lib/crypt_keeper/provider/aes_new.rb
255
- - lib/crypt_keeper/provider/mysql_aes.rb
246
+ - lib/crypt_keeper/provider/base.rb
256
247
  - lib/crypt_keeper/provider/mysql_aes_new.rb
248
+ - lib/crypt_keeper/provider/postgres_base.rb
257
249
  - lib/crypt_keeper/provider/postgres_pgp.rb
258
250
  - lib/crypt_keeper/provider/postgres_pgp_public_key.rb
259
251
  - lib/crypt_keeper/version.rb
252
+ - spec/crypt_keeper/log_subscriber/mysql_aes_spec.rb
253
+ - spec/crypt_keeper/log_subscriber/postgres_pgp_spec.rb
254
+ - spec/crypt_keeper/model_spec.rb
255
+ - spec/crypt_keeper/provider/aes_new_spec.rb
256
+ - spec/crypt_keeper/provider/mysql_aes_new_spec.rb
257
+ - spec/crypt_keeper/provider/postgres_pgp_public_key_spec.rb
258
+ - spec/crypt_keeper/provider/postgres_pgp_spec.rb
260
259
  - spec/default.database.yml
261
260
  - spec/fixtures/private.asc
262
261
  - spec/fixtures/public.asc
263
- - spec/log_subscriber/postgres_pgp_spec.rb
264
- - spec/model_spec.rb
265
- - spec/provider/aes_new_spec.rb
266
- - spec/provider/aes_spec.rb
267
- - spec/provider/mysql_aes_new_spec.rb
268
- - spec/provider/mysql_aes_spec.rb
269
- - spec/provider/postgres_pgp_public_key_spec.rb
270
- - spec/provider/postgres_pgp_spec.rb
271
262
  - spec/spec_helper.rb
272
263
  - spec/support/active_record.rb
273
264
  - spec/support/encryptors.rb
265
+ - spec/support/logging.rb
274
266
  homepage: http://jmazzi.github.com/crypt_keeper/
275
267
  licenses:
276
268
  - MIT
@@ -281,32 +273,32 @@ require_paths:
281
273
  - lib
282
274
  required_ruby_version: !ruby/object:Gem::Requirement
283
275
  requirements:
284
- - - '>='
276
+ - - ">="
285
277
  - !ruby/object:Gem::Version
286
278
  version: '0'
287
279
  required_rubygems_version: !ruby/object:Gem::Requirement
288
280
  requirements:
289
- - - '>'
281
+ - - ">="
290
282
  - !ruby/object:Gem::Version
291
- version: 1.3.1
283
+ version: '0'
292
284
  requirements: []
293
285
  rubyforge_project:
294
- rubygems_version: 2.0.14
286
+ rubygems_version: 2.6.11
295
287
  signing_key:
296
288
  specification_version: 4
297
- summary: Transparent encryption for ActiveRecord that isn't over-engineered
289
+ summary: Transparent ActiveRecord encryption
298
290
  test_files:
291
+ - spec/crypt_keeper/log_subscriber/mysql_aes_spec.rb
292
+ - spec/crypt_keeper/log_subscriber/postgres_pgp_spec.rb
293
+ - spec/crypt_keeper/model_spec.rb
294
+ - spec/crypt_keeper/provider/aes_new_spec.rb
295
+ - spec/crypt_keeper/provider/mysql_aes_new_spec.rb
296
+ - spec/crypt_keeper/provider/postgres_pgp_public_key_spec.rb
297
+ - spec/crypt_keeper/provider/postgres_pgp_spec.rb
299
298
  - spec/default.database.yml
300
299
  - spec/fixtures/private.asc
301
300
  - spec/fixtures/public.asc
302
- - spec/log_subscriber/postgres_pgp_spec.rb
303
- - spec/model_spec.rb
304
- - spec/provider/aes_new_spec.rb
305
- - spec/provider/aes_spec.rb
306
- - spec/provider/mysql_aes_new_spec.rb
307
- - spec/provider/mysql_aes_spec.rb
308
- - spec/provider/postgres_pgp_public_key_spec.rb
309
- - spec/provider/postgres_pgp_spec.rb
310
301
  - spec/spec_helper.rb
311
302
  - spec/support/active_record.rb
312
303
  - spec/support/encryptors.rb
304
+ - spec/support/logging.rb