Commit 17da4a52 authored by Hugo LEVY-FALK's avatar Hugo LEVY-FALK

Support de postgreSQL pour AESENCryptedField

parent c05f8f82
...@@ -72,9 +72,10 @@ class AESEncryptedFormField(forms.CharField): ...@@ -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): ...@@ -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): ...@@ -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}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment