|
|
@ -72,9 +72,10 @@ class AESEncryptedFormField(forms.CharField): |
|
|
class AESEncryptedField(models.CharField): |
|
|
class AESEncryptedField(models.CharField): |
|
|
""" A Field that can be used in forms for adding the support |
|
|
""" A Field that can be used in forms for adding the support |
|
|
of AES ecnrypted fields """ |
|
|
of AES ecnrypted fields """ |
|
|
|
|
|
|
|
|
def save_form_data(self, instance, data): |
|
|
def save_form_data(self, instance, data): |
|
|
setattr(instance, self.name, |
|
|
setattr(instance, self.name, binascii.b2a_base64( |
|
|
binascii.b2a_base64(encrypt(settings.AES_KEY, data))) |
|
|
encrypt(settings.AES_KEY, data)).decode('utf-8')) |
|
|
|
|
|
|
|
|
def to_python(self, value): |
|
|
def to_python(self, value): |
|
|
if value is None: |
|
|
if value is None: |
|
|
@ -83,18 +84,16 @@ class AESEncryptedField(models.CharField): |
|
|
return decrypt(settings.AES_KEY, |
|
|
return decrypt(settings.AES_KEY, |
|
|
binascii.a2b_base64(value)).decode('utf-8') |
|
|
binascii.a2b_base64(value)).decode('utf-8') |
|
|
except Exception as e: |
|
|
except Exception as e: |
|
|
v = decrypt(settings.AES_KEY, binascii.a2b_base64(value)) |
|
|
raise ValueError(value) |
|
|
raise ValueError(v) |
|
|
|
|
|
|
|
|
|
|
|
def from_db_value(self, value, *args, **kwargs): |
|
|
def from_db_value(self, value, *args, **kwargs): |
|
|
if value is None: |
|
|
if value is None: |
|
|
return value |
|
|
return value |
|
|
try: |
|
|
try: |
|
|
return decrypt(settings.AES_KEY, |
|
|
return decrypt(settings.AES_KEY, |
|
|
binascii.a2b_base64(value)).decode('utf-8') |
|
|
binascii.a2b_base64(value)).decode('utf-8') |
|
|
except Exception as e: |
|
|
except Exception as e: |
|
|
v = decrypt(settings.AES_KEY, binascii.a2b_base64(value)) |
|
|
raise ValueError(value) |
|
|
raise ValueError(v) |
|
|
|
|
|
|
|
|
|
|
|
def get_prep_value(self, value): |
|
|
def get_prep_value(self, value): |
|
|
if value is None: |
|
|
if value is None: |
|
|
@ -102,7 +101,7 @@ class AESEncryptedField(models.CharField): |
|
|
return binascii.b2a_base64(encrypt( |
|
|
return binascii.b2a_base64(encrypt( |
|
|
settings.AES_KEY, |
|
|
settings.AES_KEY, |
|
|
value |
|
|
value |
|
|
)) |
|
|
)).decode('utf-8') |
|
|
|
|
|
|
|
|
def formfield(self, **kwargs): |
|
|
def formfield(self, **kwargs): |
|
|
defaults = {'form_class': AESEncryptedFormField} |
|
|
defaults = {'form_class': AESEncryptedFormField} |
|
|
|