Ejemplo n.º 1
0
    def test_ascii(self):
        salt_hash = make_salt_hash(self.ascii_string)
        self.assertEqual(len(salt_hash), SALT_HASH_LEN)

        check_salt_hash(self.ascii_string, salt_hash)

        self.assertRaises(SaltHashError, check_salt_hash, "wrong!", salt_hash)
Ejemplo n.º 2
0
    def test_modified(self):
        """
        Test a changed salt hash checksum
        """
        salt_hash = make_salt_hash(self.ascii_string)
        for i in xrange(len(self.ascii_string)):
            if self.ascii_string[i] == "_":
                wrong_char = " "
            else:
                wrong_char = "_"

            invalid_checksum = "".join([
                self.ascii_string[:i], wrong_char, self.ascii_string[i+1:]
            ])
            self.assertRaises(
                SaltHashError, check_salt_hash, invalid_checksum, salt_hash
            )
Ejemplo n.º 3
0
            # A form was submit
            form = InstallPassForm(self.request.POST)
            if form.is_valid():
                # The submited form is ok
                form_data = form.cleaned_data
                password_hash = form_data["hash"]
                try:
                    check_password_hash(password_hash)
                except WrongPassword, msg:
                    # Display the form again
                    self.request.page_msg.write(msg)
                else:
                    # Password is ok. -> process the normal _instal view()
                    response = self.view(*args)
                    # insert a cookie with the hashed password in the response
                    salt_hash = crypt.make_salt_hash(str(password_hash))
                    response.set_cookie(
                        settings.INSTALL_COOKIE_NAME, value=salt_hash, max_age=None
                    )
                    return response

        data = crypt.salt_hash_to_dict(settings.INSTALL_PASSWORD_HASH)
        self.context["salt"] = data["salt"]

        self.context["no_menu_link"] = True # no "back to menu" link
#        self.request.page_msg.write(_("Please input the password"))
        return render_to_response("install_login.html", self.context)

   #___________________________________________________________________________

    def _redirect_execute(self, method, *args, **kwargs):