If there is a use case that requires encrypting records while using this library, the current best way to do so is to use a single column and handle encryption and decryption manually. This can be prone to error.
New class called EncryptedModel
that automatically serializes and encrypts the specified columns of the model data on write, then decrypts and deserializes those columns on read. Encryption should use a symmetric cipher. An encryption key will need to be added to the context manager system. Querying encrypted data will not be possible, but it is a trade-off that is worthwhile for some applications.
Another new class, EncryptedHashedModel
, serializes and encrypts the specified columns of the model data before generating the sha256 record ID. This will require a salt seed that is used for encrypting all columns. Using salt = sha256(xor(salt_seed, column_index))
or something similar will make this an extension of the GCM concept.
Ignoring this use case.
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too