Source code for scrolls.security

import hashlib
import string
import random


[docs]class Security(object): def __init__(self, dependencies): self.config = dependencies.getConfiguration()
[docs] def hashPassword(self, password, secret=None): if secret is None: secret = self.config.password_secret secretpw = secret + password return hashlib.sha256(secretpw.encode('utf-8')).hexdigest()
[docs] def generateSecret(self): chars = string.ascii_lowercase + string.ascii_uppercase + string.digits charlist = [random.SystemRandom().choice(chars) for _ in range(24)] return ''.join(charlist)
[docs] def generateSecrets(self, password): secrets = {'ticket_secret': '', 'password_secret': '', 'hashed_password': ''} if not password == '': secrets['ticket_secret'] = self.generateSecret() pwSecret = self.generateSecret() secrets['password_secret'] = pwSecret secrets['hashed_password'] = self.hashPassword(password, pwSecret) return secrets
[docs] def generateShortUuid(self): chars = string.ascii_lowercase charlist = [random.SystemRandom().choice(chars) for _ in range(6)] return ''.join(charlist)