8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-11-26 06:32:26 +00:00

Meilleure gestion du AESField

This commit is contained in:
Hugo LEVY-FALK 2018-01-27 00:07:28 +01:00 committed by root
parent a7a956b700
commit c7d5b7a39b
2 changed files with 17 additions and 5 deletions

View file

@ -27,6 +27,7 @@ def encrypt(key, s):
def decrypt(key, s): def decrypt(key, s):
obj = AES.new(key) obj = AES.new(key)
ss = obj.decrypt(s) ss = obj.decrypt(s)
print(ss)
return ss.split(bytes(EOD, 'utf-8'))[0] return ss.split(bytes(EOD, 'utf-8'))[0]
@ -35,10 +36,6 @@ class AESEncryptedField(models.CharField):
setattr(instance, self.name, setattr(instance, self.name,
binascii.b2a_base64(encrypt(settings.AES_KEY, data))) binascii.b2a_base64(encrypt(settings.AES_KEY, data)))
def value_from_object(self, obj):
return decrypt(settings.AES_KEY,
binascii.a2b_base64(getattr(obj, self.attname))).decode('utf-8')
def to_python(self, value): def to_python(self, value):
if value is None: if value is None:
return None return None
@ -46,8 +43,21 @@ class AESEncryptedField(models.CharField):
binascii.a2b_base64(value)).decode('utf-8') binascii.a2b_base64(value)).decode('utf-8')
def from_db_value(self, value, expression, connection, *args): def from_db_value(self, value, expression, connection, *args):
print('from db')
print(value)
if value is None: if value is None:
return value return value
return decrypt(settings.AES_KEY, return decrypt(settings.AES_KEY,
binascii.a2b_base64(value)).decode('utf-8') binascii.a2b_base64(value)).decode('utf-8')
def get_prep_value(self, value):
print('get prep value')
print(value)
print(binascii.b2a_base64(encrypt(
settings.AES_KEY,
value
)))
return binascii.b2a_base64(encrypt(
settings.AES_KEY,
value
))

View file

@ -21,7 +21,9 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
from django import template from django import template
from preferences.models import OptionalUser, GeneralOption from preferences.models import OptionalUser, GeneralOption
register = template.Library() register = template.Library()
@register.simple_tag @register.simple_tag
def self_adhesion(): def self_adhesion():
options, _created = OptionalUser.objects.get_or_create() options, _created = OptionalUser.objects.get_or_create()