1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/activerecord/test/cases/encryption
Jorge Manrubia f78a480818 Encourage deterministic encryption to remain unchanged
This implements several changes to encourage deterministic encryption to
remain unchanged. The main motivation is letting you define unique
indexes on deterministically-encrypted columns:

- By default, deterministic encryption will always use the oldest
encryption scheme to encrypt new data, when there are many.
- You can skip this default behavior and make it always use the current
encryption scheme with:

```ruby
deterministic: { fixed: false } # using this should be a rare need
```

- Deterministic encryption still supports previous encryption schemes
normally. So they will be used to add additional values to queries, for
example.
- You can't rotate deterministic encryption keys anymore. We can add
support for that in the future.

This makes for reasonable defaults:

- People using "deterministic: true" will get unique indexes working out
of the box.
- The system will encourage keeping deterministic encryption stable:
  - By always using oldest encryption schemes
  - By forbidding configuring multiple keys

But you can still opt-out of the default if you need to.
2021-04-01 15:02:15 +02:00
..
cipher Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
performance Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
cipher_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
concurrency_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
configurable_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
contexts_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
derived_secret_key_provider_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
deterministic_key_provider_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
encryptable_record_api_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
encryptable_record_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
encrypted_fixtures_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
encrypting_only_encryptor_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
encryption_schemes_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
encryptor_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
envelope_encryption_key_provider_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
extended_deterministic_queries_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
helper.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
key_generator_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
key_provider_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
key_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
message_serializer_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
message_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
null_encryptor_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
properties_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
read_only_null_encryptor_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
scheme_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00
unencrypted_attributes_test.rb Encourage deterministic encryption to remain unchanged 2021-04-01 15:02:15 +02:00