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)
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 )
# 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):