[digital envelope routines: EVP_MD_CTX_copy_ex] input not initialized

20 views
Skip to first unread message

ma...@manet.cz

unread,
Feb 28, 2018, 7:40:00 AM2/28/18
to Django users
I have proble with login to Django web admin. It produces bellow exception:

Internal Server Error: /adminlogin/
 Traceback (most recent call last):
   File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
     response = get_response(request)
   File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 187, in _get_response
     response = self.process_exception_by_middleware(e, request)
   File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
   File "/usr/local/lib/python3.6/site-packages/django/views/decorators/cache.py", line 57, in _wrapped_view_func
     response = view_func(request, *args, **kwargs)
   File "/usr/local/lib/python3.6/site-packages/django/contrib/admin/sites.py", line 393, in login
   File "/usr/local/lib/python3.6/site-packages/django/views/generic/base.py", line 68, in view
     return self.dispatch(request, *args, **kwargs)
   File "/usr/local/lib/python3.6/site-packages/django/utils/decorators.py", line 67, in _wrapper
     return bound_func(*args, **kwargs)
   File "/usr/local/lib/python3.6/site-packages/django/views/decorators/debug.py", line 76, in sensitive_post_parameters_wrapper
     return view(request, *args, **kwargs)
   File "/usr/local/lib/python3.6/site-packages/django/utils/decorators.py", line 63, in bound_func
     return func.__get__(self, type(self))(*args2, **kwargs2)
   File "/usr/local/lib/python3.6/site-packages/django/utils/decorators.py", line 67, in _wrapper
     return bound_func(*args, **kwargs)
   File "/usr/local/lib/python3.6/site-packages/django/utils/decorators.py", line 149, in _wrapped_view
    response = view_func(request, *args, **kwargs)
   File "/usr/local/lib/python3.6/site-packages/django/utils/decorators.py", line 63, in bound_func
     return func.__get__(self, type(self))(*args2, **kwargs2)
   File "/usr/local/lib/python3.6/site-packages/django/utils/decorators.py", line 67, in _wrapper
     return bound_func(*args, **kwargs)
   File "/usr/local/lib/python3.6/site-packages/django/views/decorators/cache.py", line 57, in _wrapped_view_func
     response = view_func(request, *args, **kwargs)
   File "/usr/local/lib/python3.6/site-packages/django/utils/decorators.py", line 63, in bound_func
     return func.__get__(self, type(self))(*args2, **kwargs2)
   File "/usr/local/lib/python3.6/site-packages/django/contrib/auth/views.py", line 90, in dispatch
     return super(LoginView, self).dispatch(request, *args, **kwargs)
   File "/usr/local/lib/python3.6/site-packages/django/views/generic/base.py", line 88, in dispatch
     return handler(request, *args, **kwargs)
   File "/usr/local/lib/python3.6/site-packages/django/views/generic/edit.py", line 182, in post
     if form.is_valid():
   File "/usr/local/lib/python3.6/site-packages/django/forms/forms.py", line 183, in is_valid
     return self.is_bound and not self.errors
   File "/usr/local/lib/python3.6/site-packages/django/forms/forms.py", line 175, in errors
     self.full_clean()
   File "/usr/local/lib/python3.6/site-packages/django/forms/forms.py", line 385, in full_clean
     self._clean_form()
   File "/usr/local/lib/python3.6/site-packages/django/forms/forms.py", line 412, in _clean_form
     cleaned_data = self.clean()
   File "/usr/local/lib/python3.6/site-packages/django/contrib/auth/forms.py", line 187, in clean
     self.user_cache = authenticate(self.request, username=username, password=password)
   File "/usr/local/lib/python3.6/site-packages/django/contrib/auth/__init__.py", line 70, in authenticate
     user = _authenticate_with_backend(backend, backend_path, request, credentials)
   File "/usr/local/lib/python3.6/site-packages/django/contrib/auth/__init__.py", line 116, in _authenticate_with_backend
     return backend.authenticate(*args, **credentials)
   File "/usr/local/lib/python3.6/site-packages/django/contrib/auth/backends.py", line 24, in authenticate
     if user.check_password(password) and self.user_can_authenticate(user):
   File "/usr/local/lib/python3.6/site-packages/django/contrib/auth/base_user.py", line 118, in check_password
     return check_password(raw_password, self.password, setter)
   File "/usr/local/lib/python3.6/site-packages/django/contrib/auth/hashers.py", line 52, in check_password
     is_correct = hasher.verify(password, encoded)
   File "/usr/local/lib/python3.6/site-packages/django/contrib/auth/hashers.py", line 265, in verify
     encoded_2 = self.encode(password, salt, int(iterations))
   File "/usr/local/lib/python3.6/site-packages/django/contrib/auth/hashers.py", line 258, in encode
     hash = pbkdf2(password, salt, iterations, digest=self.digest)
   File "/usr/local/lib/python3.6/site-packages/django/utils/crypto.py", line 140, in pbkdf2
     digest().name, password, salt, iterations, dklen)
ValueError: [digital envelope routines: EVP_MD_CTX_copy_ex] input not initialized

The critical place is
  hashlib.pbkdf2_hmac(digest().name, password, salt, iterations, dklen)
in crypto.py

I tried the same function manually in a Python terminal with the identical arguments:
  hashlib.pbkdf2_hmac('sha256', 'XXXXX', 'XXXXX', 36000, None)
It works OK. But if I call it in the same fashion anywhere in Django project it causes the exception.

Uses versions:
  FreeBSD 10.3
  Apache 2.2.23
  WSGI 4.5.24
  Python 3.6.4
  Django 1.11.10
Reply all
Reply to author
Forward
0 new messages