Пример #1
0
class CryptoHelperTestCase(TestCase):
    def setUp(self):
        self.crypto_helper = CryptoHelper('---dummy--key---')

    def test_encrypt_and_decrypt(self):
        plain_text = 'Hello, World'
        encrypted_text = self.crypto_helper.encrypt(plain_text)
        decrypted_text = self.crypto_helper.decrypt(encrypted_text)

        self.assertEqual(plain_text, decrypted_text)
Пример #2
0
class EncryptedFieldMixin:
    def __init__(self, *args, **kwargs):
        self.key = kwargs.pop('key', None)
        self.crypto = CryptoHelper(self.key)

        super().__init__()

    def from_db_value(self, value, expression, connection, context):
        if value is None or len(value) <= 1:
            return value

        try:
            return self.crypto.decrypt(value)
        except ValueError:
            return value

    def get_prep_value(self, value):
        if value is None or value == '':
            return value

        return self.crypto.encrypt(value)