Exemple #1
0
class PyPass:
    def __init__(self):
        self.__dbController = DBController('localhost', 27017)

    def set_username(self, username):
        hashedUsername = SecurityManager.get_hash(username)
        self.__username = hashedUsername
        self.__dbController.set_username(hashedUsername)

    def store_entry(self, id, ciphered_user, ciphered_pass):
        new_entry = Entry(id, ciphered_user, ciphered_pass)
        self.__dbController.storeEntry(new_entry)

    def get_entry(self, identifier):
        entry = self.__dbController.getEntry(SecurityManager.get_hash(identifier))
        username = self.__securityManager.decipher_field(entry.username)
        password = self.__securityManager.decipher_field(entry.password)

        return {'identifier': identifier, 'username': username, 'password': password}

    def create_entry(self, id, username, password):
        ciphered_user = self.__securityManager.cipher_field(username)
        ciphered_password = self.__securityManager.cipher_field(password)
        hashed_id = SecurityManager.get_hash(id)
        self.store_entry(hashed_id, ciphered_user, ciphered_password)

    def generate_new_entry(self, id, username):
        ciphered_user = self.__securityManager.cipher_field(username)
        ciphered_pass = self.__securityManager.generate_password()
        ciphered_id = self.__securityManager.cipher_field(id)
        self.store_entry(ciphered_id, ciphered_user, ciphered_pass)

    def create_account(self, username, masterPass):
        hashedUsername = SecurityManager.get_hash(username)
        hashedMasterPass = SecurityManager.get_hash(SecurityManager.get_hash(masterPass))
        return self.__dbController.createUser(hashedUsername, hashedMasterPass)

    def auth_user(self, username, masterPass):
        hashedUsername = SecurityManager.get_hash(username)
        hashedMasterPass = SecurityManager.get_hash(SecurityManager.get_hash(masterPass))
        if self.__dbController.authUser(hashedUsername, hashedMasterPass):
            self.__dbController.set_username(hashedUsername)
            self.__securityManager = SecurityManager(masterPass)
            return True
        else:
            return False