diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/leap/bitmask/gui/preferenceswindow.py | 35 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/wizard.py | 41 | ||||
| -rw-r--r-- | src/leap/bitmask/util/password.py | 58 | 
3 files changed, 65 insertions, 69 deletions
| diff --git a/src/leap/bitmask/gui/preferenceswindow.py b/src/leap/bitmask/gui/preferenceswindow.py index 67448768..a8220e86 100644 --- a/src/leap/bitmask/gui/preferenceswindow.py +++ b/src/leap/bitmask/gui/preferenceswindow.py @@ -26,6 +26,7 @@ from PySide import QtGui  from leap.bitmask.gui.ui_preferences import Ui_Preferences  from leap.soledad.client import NoStorageSecret  from leap.bitmask.crypto.srpauth import SRPAuthBadPassword +from leap.bitmask.util.password import basic_password_checks  logger = logging.getLogger(__name__) @@ -59,37 +60,6 @@ class PreferencesWindow(QtGui.QDialog):          # Connections          self.ui.pbChangePassword.clicked.connect(self._change_password) -    def _basic_password_checks(self, username, password, password2): -        """ -        Performs basic password checks to avoid really easy passwords. - -        :param username: username provided at the registrarion form -        :type username: str -        :param password: password from the registration form -        :type password: str -        :param password2: second password from the registration form -        :type password: str - -        :returns: True and empty message if all the checks pass, -                  False and an error message otherwise -        :rtype: tuple(bool, str) -        """ -        message = None - -        if message is None and password != password2: -            message = self.tr("Passwords don't match") - -        if message is None and len(password) < 6: -            message = self.tr("Password too short") - -        if message is None and password in self.WEAK_PASSWORDS: -            message = self.tr("Password too easy") - -        if message is None and username == password: -            message = self.tr("Password equal to username") - -        return message is None, message -      def _set_password_change_status(self, status, error=False, success=False):          """          Sets the status label for the password change. @@ -132,8 +102,7 @@ class PreferencesWindow(QtGui.QDialog):          new_password = self.ui.leNewPassword.text()          new_password2 = self.ui.leNewPassword2.text() -        ok, msg = self._basic_password_checks( -            username, new_password, new_password2) +        ok, msg = basic_password_checks(username, new_password, new_password2)          if not ok:              self._set_changing_password(False) diff --git a/src/leap/bitmask/gui/wizard.py b/src/leap/bitmask/gui/wizard.py index ed6c1da0..e3f0085b 100644 --- a/src/leap/bitmask/gui/wizard.py +++ b/src/leap/bitmask/gui/wizard.py @@ -32,6 +32,7 @@ from leap.bitmask.crypto.srpregister import SRPRegister  from leap.bitmask.util.privilege_policies import is_missing_policy_permissions  from leap.bitmask.util.request_helpers import get_content  from leap.bitmask.util.keyring_helpers import has_keyring +from leap.bitmask.util.password import basic_password_checks  from leap.bitmask.services.eip.providerbootstrapper import ProviderBootstrapper  from leap.bitmask.services import get_supported @@ -199,41 +200,6 @@ class Wizard(QtGui.QWizard):          """          self.ui.lblPassword2.setFocus() -    def _basic_password_checks(self, username, password, password2): -        """ -        Performs basic password checks to avoid really easy passwords. - -        :param username: username provided at the registrarion form -        :type username: str -        :param password: password from the registration form -        :type password: str -        :param password2: second password from the registration form -        :type password: str - -        :return: returns True if all the checks pass, False otherwise -        :rtype: bool -        """ -        message = None - -        if message is None and password != password2: -            message = self.tr("Passwords don't match") - -        if message is None and len(password) < 6: -            message = self.tr("Password too short") - -        if message is None and password in self.WEAK_PASSWORDS: -            message = self.tr("Password too easy") - -        if message is None and username == password: -            message = self.tr("Password equal to username") - -        if message is not None: -            self._set_register_status(message, error=True) -            self._focus_password() -            return False - -        return True -      def _register(self):          """          Performs the registration based on the values provided in the form @@ -244,7 +210,8 @@ class Wizard(QtGui.QWizard):          password = self.ui.lblPassword.text()          password2 = self.ui.lblPassword2.text() -        if self._basic_password_checks(username, password, password2): +        ok, msg = basic_password_checks(username, password, password2) +        if ok:              register = SRPRegister(provider_config=self._provider_config)              register.registration_finished.connect(                  self._registration_finished) @@ -258,6 +225,8 @@ class Wizard(QtGui.QWizard):              self._password = password              self._set_register_status(self.tr("Starting registration..."))          else: +            self._set_register_status(msg, error=True) +            self._focus_password()              self.ui.btnRegister.setEnabled(True)      def _set_registration_fields_visibility(self, visible): diff --git a/src/leap/bitmask/util/password.py b/src/leap/bitmask/util/password.py new file mode 100644 index 00000000..73659f0d --- /dev/null +++ b/src/leap/bitmask/util/password.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# password.py +# Copyright (C) 2013 LEAP +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program.  If not, see <http://www.gnu.org/licenses/>. + +""" +Password utilities +""" +from PySide import QtCore + +WEAK_PASSWORDS = ("123456", "qweasd", "qwerty", "password") + + +def basic_password_checks(username, password, password2): +    """ +    Performs basic password checks to avoid really easy passwords. + +    :param username: username provided at the registrarion form +    :type username: str +    :param password: password from the registration form +    :type password: str +    :param password2: second password from the registration form +    :type password: str + +    :returns: True and empty message if all the checks pass, +              False and an error message otherwise +    :rtype: tuple(bool, str) +    """ +    # translation helper +    _tr = QtCore.QObject().tr + +    message = None + +    if message is None and password != password2: +        message = _tr("Passwords don't match") + +    if message is None and len(password) < 6: +        message = _tr("Password too short") + +    if message is None and password in WEAK_PASSWORDS: +        message = _tr("Password too easy") + +    if message is None and username == password: +        message = _tr("Password equal to username") + +    return message is None, message | 
