Ejemplo n.º 1
0
    def ok(self):

        # Data validation
        #
        # Check old password:
        if self.oldPassphraseLE.isEnabled():
            if not self.settings.unlockMasterKey(self.oldPassphraseLE.text()):
                self.validationWarning('The old passphrase is not correct.')
                return
        # Match between old and new
        if self.newPassphraseLE.text() != self.repeatPassphraseLE.text():
            self.validationWarning('The new passphrases do not match.')
            return

        # Password complexity
        new_password = self.newPassphraseLE.text()
        if new_password == '' or password_strength.PasswordStats(
                new_password).strength() < constants.PassphraseMinStrength:
            self.validationWarning('Passphrase is not complex enough.')
            return
        elif len(new_password) > constants.PassphraseMaxLen:
            self.validationWarning(
                'Passphrase should contain at most %d characters.' %
                constants.PassphraseMaxLen)
            return

        super().ok()
Ejemplo n.º 2
0
def good_password(password=None):
    """Check the strength of the encryption password."""

    if password is None or password == "":
        logger.error("Password empty or None.")
        return False

    policy = password_strength.PasswordPolicy.from_names(strength=0.66)
    check = policy.test(password)

    if check:
        strength = password_strength.PasswordStats(password).strength()
        logger.error("Password strength does not meet policy.\n"
                     f" Strength: {strength}\n"
                     f" Policy:   {check[0].strength}\n"
                     f" Details:  https://pypi.org/project/password-strength/")
        return False

    return True
Ejemplo n.º 3
0
 def clean(self, value):
     return pwd.PasswordStats(value).letters_uppercase
Ejemplo n.º 4
0
 def clean(self, value):
     return pwd.PasswordStats(value).special_characters
Ejemplo n.º 5
0
 def clean(self, value):
     return pwd.PasswordStats(value).length
Ejemplo n.º 6
0
 def clean(self, value):
     return pwd.PasswordStats(value).numbers