Extracted serialiser for encryption into a flask module

- allows mocking easier
- shared across methods
- not built everytime
This commit is contained in:
Martyn Inglis
2016-02-16 15:28:30 +00:00
parent e42da7dd54
commit 18d63e241b
7 changed files with 46 additions and 16 deletions

View File

@@ -1,5 +1,20 @@
from flask.ext.bcrypt import generate_password_hash, check_password_hash
from itsdangerous import URLSafeSerializer
class Encryption:
def init_app(self, app):
self.serializer = URLSafeSerializer(app.config.get('SECRET_KEY'))
self.salt = app.config.get('DANGEROUS_SALT')
def encrypt(self, thing_to_encrypt):
return self.serializer.dumps(thing_to_encrypt, self.salt)
def decrypt(self, thing_to_decrypt):
return self.serializer.loads(thing_to_decrypt, salt=self.salt)
def hashpw(password):
return generate_password_hash(password.encode('UTF-8'), 10)