TypeError at /pin/verify

Unicode-objects must be encoded before hashing
Request Method: POST
Request URL: https://bank.test.taler.net/pin/verify
Django Version: 1.9.2
Exception Type: TypeError
Exception Value:
Unicode-objects must be encoded before hashing
Exception Location: ./bank_app/captcha.py in pin_tan_verify_attempt, line 111
Python Executable: /home/test/bank-venv/bin/uwsgi
Python Version: 3.4.4
Python Path:
['.',
 '',
 '/home/test/bank-venv/lib/python3.4',
 '/home/test/bank-venv/lib/python3.4/plat-x86_64-linux-gnu',
 '/home/test/bank-venv/lib/python3.4/lib-dynload',
 '/usr/lib/python3.4',
 '/usr/lib/python3.4/plat-x86_64-linux-gnu',
 '/home/test/bank-venv/lib/python3.4/site-packages']
Server time: Sat, 19 Mar 2016 11:52:25 +0000

Traceback Switch to copy-and-paste view

Request information

GET

No GET data

POST

Variable Value
pin_0
'80'
pin_1
'4a395bfe6fd829436a75ae2d7ec6c0962933841d'
csrfmiddlewaretoken
'hKj8qq3kZhEDrEg9onPiAj230KinSjBw'

FILES

No FILES data

Variable Value
sessionid
'btk5dbp4g0qcj309msdhlkdommkkw0fe'
csrftoken
'hKj8qq3kZhEDrEg9onPiAj230KinSjBw'

META

Variable Value
wsgi.input
<uwsgi._Input object at 0x7f461ba9e558>
wsgi.version
(1, 0)
HTTP_CACHE_CONTROL
'max-age=0'
HTTP_ACCEPT_LANGUAGE
'en-US,en;q=0.8'
wsgi.multithread
False
HTTPS
'on'
REQUEST_SCHEME
'https'
SCRIPT_NAME
''
HTTP_CONTENT_TYPE
'application/x-www-form-urlencoded'
CONTENT_LENGTH
'108'
wsgi.errors
<_io.TextIOWrapper name=2 mode='w' encoding='UTF-8'>
wsgi.multiprocess
False
HTTP_REFERER
'https://bank.test.taler.net/auth/pin/question?exchange=https%3A%2F%2Fexchange.test.taler.net%2F&reserve_pub=S6H0A3J88R3BCYM7DR8YX28G91FBCT7ZD17WMFMJADC1AY9GJ3B0&amount_value=1&amount_fraction=0&amount_currency=PUDOS'
HTTP_CONNECTION
'keep-alive'
HTTP_HOST
'bank.test.taler.net'
SERVER_PROTOCOL
'HTTP/1.1'
wsgi.file_wrapper
''
PATH_INFO
'/pin/verify'
REMOTE_ADDR
'86.253.40.254'
HTTP_USER_AGENT
('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) '
 'Chrome/48.0.2564.116 Safari/537.36')
QUERY_STRING
''
CSRF_COOKIE
'hKj8qq3kZhEDrEg9onPiAj230KinSjBw'
SERVER_NAME
'bank.test.taler.net'
uwsgi.node
b'tripwire'
DOCUMENT_ROOT
'/usr/share/nginx/html'
SERVER_PORT
'443'
HTTP_CONTENT_LENGTH
'108'
wsgi.url_scheme
'https'
CONTENT_TYPE
'application/x-www-form-urlencoded'
HTTP_UPGRADE_INSECURE_REQUESTS
'1'
REQUEST_URI
'/pin/verify'
uwsgi.version
b'2.0.12'
HTTP_ACCEPT_ENCODING
'gzip, deflate'
HTTP_COOKIE
('sessionid=btk5dbp4g0qcj309msdhlkdommkkw0fe; '
 'csrftoken=hKj8qq3kZhEDrEg9onPiAj230KinSjBw')
REQUEST_METHOD
'POST'
wsgi.run_once
False
HTTP_ORIGIN
'https://bank.test.taler.net'
HTTP_ACCEPT
'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
REMOTE_PORT
'44930'

Settings

Using settings module bank_project.settings

Setting Value
ADMINS
[]
SESSION_SAVE_EVERY_REQUEST
False
AUTH_PASSWORD_VALIDATORS
'********************'
SESSION_FILE_PATH
None
MESSAGE_STORAGE
'django.contrib.messages.storage.fallback.FallbackStorage'
X_FRAME_OPTIONS
'SAMEORIGIN'
CSRF_COOKIE_NAME
'csrftoken'
DATABASE_ROUTERS
[]
DEFAULT_INDEX_TABLESPACE
''
SESSION_COOKIE_DOMAIN
None
LANGUAGE_COOKIE_DOMAIN
None
TEMPLATE_CONTEXT_PROCESSORS
['django.contrib.auth.context_processors.auth',
 'django.template.context_processors.debug',
 'django.template.context_processors.i18n',
 'django.template.context_processors.media',
 'django.template.context_processors.static',
 'django.template.context_processors.tz',
 'django.contrib.messages.context_processors.messages']
CSRF_COOKIE_PATH
'/'
EMAIL_USE_SSL
False
WSGI_APPLICATION
'bank_project.wsgi.application'
MEDIA_ROOT
''
MIDDLEWARE_CLASSES
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']
DATE_FORMAT
'N j, Y'
CSRF_COOKIE_AGE
31449600
EMAIL_HOST
'localhost'
YEAR_MONTH_FORMAT
'F Y'
TEST_NON_SERIALIZED_APPS
[]
FILE_UPLOAD_MAX_MEMORY_SIZE
2621440
DEFAULT_CONTENT_TYPE
'text/html'
SHORT_DATE_FORMAT
'm/d/Y'
CSRF_COOKIE_SECURE
False
STATIC_URL
'/static/'
CSRF_COOKIE_HTTPONLY
False
FIXTURE_DIRS
[]
MIGRATION_MODULES
{}
TEMPLATES
[{'APP_DIRS': True,
  'BACKEND': 'django.template.backends.django.DjangoTemplates',
  'DIRS': [],
  'OPTIONS': {'context_processors': ['django.template.context_processors.debug',
                                     'django.template.context_processors.request',
                                     'django.contrib.auth.context_processors.auth',
                                     'django.contrib.messages.context_processors.messages']}}]
SECURE_BROWSER_XSS_FILTER
False
STATIC_ROOT
'static/'
LOGIN_REDIRECT_URL
'/accounts/profile/'
FORMAT_MODULE_PATH
None
ROOT_URLCONF
'bank_project.urls'
INSTALLED_APPS
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'bank_app']
FIRST_DAY_OF_WEEK
0
LOGIN_URL
'/accounts/login/'
TEMPLATE_DIRS
[]
SESSION_EXPIRE_AT_BROWSER_CLOSE
False
SECURE_PROXY_SSL_HEADER
None
SESSION_COOKIE_SECURE
False
SETTINGS_MODULE
'bank_project.settings'
USE_X_FORWARDED_PORT
False
USE_THOUSAND_SEPARATOR
False
SECRET_KEY
'********************'
PREPEND_WWW
False
IGNORABLE_404_URLS
[]
DEFAULT_TABLESPACE
''
DATABASES
{'default': {'ATOMIC_REQUESTS': False,
             'AUTOCOMMIT': True,
             'CONN_MAX_AGE': 0,
             'ENGINE': 'django.db.backends.postgresql_psycopg2',
             'HOST': '',
             'NAME': 'talertest',
             'OPTIONS': {},
             'PASSWORD': '********************',
             'PORT': '',
             'TEST': {'CHARSET': None,
                      'COLLATION': None,
                      'MIRROR': None,
                      'NAME': None},
             'TIME_ZONE': None,
             'USER': ''}}
USE_L10N
True
CACHE_MIDDLEWARE_KEY_PREFIX
'********************'
DATE_INPUT_FORMATS
['%Y-%m-%d',
 '%m/%d/%Y',
 '%m/%d/%y',
 '%b %d %Y',
 '%b %d, %Y',
 '%d %b %Y',
 '%d %b, %Y',
 '%B %d %Y',
 '%B %d, %Y',
 '%d %B %Y',
 '%d %B, %Y']
FILE_UPLOAD_HANDLERS
['django.core.files.uploadhandler.MemoryFileUploadHandler',
 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
LANGUAGE_CODE
'en-us'
TEMPLATE_LOADERS
['django.template.loaders.filesystem.Loader',
 'django.template.loaders.app_directories.Loader']
SECURE_SSL_REDIRECT
False
SECURE_SSL_HOST
None
TEMPLATE_DEBUG
False
SESSION_COOKIE_HTTPONLY
True
DEBUG_PROPAGATE_EXCEPTIONS
False
TIME_INPUT_FORMATS
['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
CACHE_MIDDLEWARE_ALIAS
'default'
DATETIME_FORMAT
'N j, Y, P'
TEST_RUNNER
'django.test.runner.DiscoverRunner'
TEMPLATE_STRING_IF_INVALID
''
DATETIME_INPUT_FORMATS
['%Y-%m-%d %H:%M:%S',
 '%Y-%m-%d %H:%M:%S.%f',
 '%Y-%m-%d %H:%M',
 '%Y-%m-%d',
 '%m/%d/%Y %H:%M:%S',
 '%m/%d/%Y %H:%M:%S.%f',
 '%m/%d/%Y %H:%M',
 '%m/%d/%Y',
 '%m/%d/%y %H:%M:%S',
 '%m/%d/%y %H:%M:%S.%f',
 '%m/%d/%y %H:%M',
 '%m/%d/%y']
ALLOWED_INCLUDE_ROOTS
[]
NUMBER_GROUPING
0
LANGUAGE_COOKIE_PATH
'/'
SESSION_SERIALIZER
'django.contrib.sessions.serializers.JSONSerializer'
DEFAULT_FILE_STORAGE
'django.core.files.storage.FileSystemStorage'
STATICFILES_STORAGE
'django.contrib.staticfiles.storage.StaticFilesStorage'
SILENCED_SYSTEM_CHECKS
[]
SECURE_REDIRECT_EXEMPT
[]
STATICFILES_FINDERS
['django.contrib.staticfiles.finders.FileSystemFinder',
 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
LOGOUT_URL
'/accounts/logout/'
SIGNING_BACKEND
'django.core.signing.TimestampSigner'
EMAIL_TIMEOUT
None
TIME_ZONE
'UTC'
AUTH_USER_MODEL
'auth.User'
DEBUG
True
SHORT_DATETIME_FORMAT
'm/d/Y P'
TIME_FORMAT
'P'
EMAIL_HOST_PASSWORD
'********************'
SESSION_COOKIE_NAME
'sessionid'
MANAGERS
[]
EMAIL_BACKEND
'django.core.mail.backends.smtp.EmailBackend'
LOGGING
{}
INTERNAL_IPS
[]
LANGUAGE_COOKIE_NAME
'django_language'
DEFAULT_FROM_EMAIL
'webmaster@localhost'
FILE_UPLOAD_PERMISSIONS
None
USE_TZ
True
USE_I18N
True
DEFAULT_EXCEPTION_REPORTER_FILTER
'django.views.debug.SafeExceptionReporterFilter'
EMAIL_HOST_USER
''
FILE_CHARSET
'utf-8'
DEFAULT_CHARSET
'utf-8'
USE_X_FORWARDED_HOST
False
SECURE_CONTENT_TYPE_NOSNIFF
False
CSRF_TRUSTED_ORIGINS
[]
LANGUAGES_BIDI
['he', 'ar', 'fa', 'ur']
SESSION_COOKIE_AGE
1209600
CSRF_COOKIE_DOMAIN
None
SESSION_ENGINE
'django.contrib.sessions.backends.db'
ALLOWED_HOSTS
[]
PASSWORD_RESET_TIMEOUT_DAYS
'********************'
SECURE_HSTS_INCLUDE_SUBDOMAINS
False
MONTH_DAY_FORMAT
'F j'
THOUSAND_SEPARATOR
','
FILE_UPLOAD_DIRECTORY_PERMISSIONS
None
LANGUAGE_COOKIE_AGE
None
CSRF_FAILURE_VIEW
'django.views.csrf.csrf_failure'
FORCE_SCRIPT_NAME
None
SERVER_EMAIL
'root@localhost'
STATICFILES_DIRS
['/home/test/bank/django/bank_app/my-static']
EMAIL_SUBJECT_PREFIX
'[Django] '
SECURE_HSTS_SECONDS
0
APPEND_SLASH
True
EMAIL_SSL_CERTFILE
None
DISALLOWED_USER_AGENTS
[]
EMAIL_SSL_KEYFILE
'********************'
EMAIL_USE_TLS
False
CSRF_HEADER_NAME
'HTTP_X_CSRFTOKEN'
EMAIL_PORT
25
ABSOLUTE_URL_OVERRIDES
{}
LOGGING_CONFIG
'logging.config.dictConfig'
AUTHENTICATION_BACKENDS
['django.contrib.auth.backends.ModelBackend']
CACHES
{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
LOCALE_PATHS
[]
FILE_UPLOAD_TEMP_DIR
None
DECIMAL_SEPARATOR
'.'
PASSWORD_HASHERS
'********************'
SESSION_COOKIE_PATH
'/'
MEDIA_URL
''
USE_ETAGS
False
BASE_DIR
'/home/test/bank/django'
CACHE_MIDDLEWARE_SECONDS
600
LANGUAGES
[('af', 'Afrikaans'),
 ('ar', 'Arabic'),
 ('ast', 'Asturian'),
 ('az', 'Azerbaijani'),
 ('bg', 'Bulgarian'),
 ('be', 'Belarusian'),
 ('bn', 'Bengali'),
 ('br', 'Breton'),
 ('bs', 'Bosnian'),
 ('ca', 'Catalan'),
 ('cs', 'Czech'),
 ('cy', 'Welsh'),
 ('da', 'Danish'),
 ('de', 'German'),
 ('el', 'Greek'),
 ('en', 'English'),
 ('en-au', 'Australian English'),
 ('en-gb', 'British English'),
 ('eo', 'Esperanto'),
 ('es', 'Spanish'),
 ('es-ar', 'Argentinian Spanish'),
 ('es-co', 'Colombian Spanish'),
 ('es-mx', 'Mexican Spanish'),
 ('es-ni', 'Nicaraguan Spanish'),
 ('es-ve', 'Venezuelan Spanish'),
 ('et', 'Estonian'),
 ('eu', 'Basque'),
 ('fa', 'Persian'),
 ('fi', 'Finnish'),
 ('fr', 'French'),
 ('fy', 'Frisian'),
 ('ga', 'Irish'),
 ('gd', 'Scottish Gaelic'),
 ('gl', 'Galician'),
 ('he', 'Hebrew'),
 ('hi', 'Hindi'),
 ('hr', 'Croatian'),
 ('hu', 'Hungarian'),
 ('ia', 'Interlingua'),
 ('id', 'Indonesian'),
 ('io', 'Ido'),
 ('is', 'Icelandic'),
 ('it', 'Italian'),
 ('ja', 'Japanese'),
 ('ka', 'Georgian'),
 ('kk', 'Kazakh'),
 ('km', 'Khmer'),
 ('kn', 'Kannada'),
 ('ko', 'Korean'),
 ('lb', 'Luxembourgish'),
 ('lt', 'Lithuanian'),
 ('lv', 'Latvian'),
 ('mk', 'Macedonian'),
 ('ml', 'Malayalam'),
 ('mn', 'Mongolian'),
 ('mr', 'Marathi'),
 ('my', 'Burmese'),
 ('nb', 'Norwegian Bokmal'),
 ('ne', 'Nepali'),
 ('nl', 'Dutch'),
 ('nn', 'Norwegian Nynorsk'),
 ('os', 'Ossetic'),
 ('pa', 'Punjabi'),
 ('pl', 'Polish'),
 ('pt', 'Portuguese'),
 ('pt-br', 'Brazilian Portuguese'),
 ('ro', 'Romanian'),
 ('ru', 'Russian'),
 ('sk', 'Slovak'),
 ('sl', 'Slovenian'),
 ('sq', 'Albanian'),
 ('sr', 'Serbian'),
 ('sr-latn', 'Serbian Latin'),
 ('sv', 'Swedish'),
 ('sw', 'Swahili'),
 ('ta', 'Tamil'),
 ('te', 'Telugu'),
 ('th', 'Thai'),
 ('tr', 'Turkish'),
 ('tt', 'Tatar'),
 ('udm', 'Udmurt'),
 ('uk', 'Ukrainian'),
 ('ur', 'Urdu'),
 ('vi', 'Vietnamese'),
 ('zh-hans', 'Simplified Chinese'),
 ('zh-hant', 'Traditional Chinese')]
SESSION_CACHE_ALIAS
'default'

You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code.