All, 

I have submitted a ticket where i propose the use of the 
"usedforsecurity=False" flag. Please take a look and comment if you have 
any thoughts. 

https://code.djangoproject.com/ticket/28401


On Sunday, July 16, 2017 at 11:22:45 AM UTC-4, Andrew DiPrinzio wrote:
>
> I am having the same problem. Anyone have a solution other than patch 
> hashlib?
>
> On Wednesday, May 31, 2017 at 9:36:20 AM UTC-4, Tim Graham wrote:
>>
>> django-developers discussion: 
>> https://groups.google.com/d/msg/django-developers/dlUIPzQgnpM/Mtl7CQbPAQAJ
>>
>> On Tuesday, May 30, 2017 at 5:06:23 PM UTC-4, Tim Graham wrote:
>>>
>>> This usage generates a short, unique identifier for a database index 
>>> name. The usage of md5 here isn't security sensitive. Changing it to some 
>>> other hash could be backwards incompatible because Django would no longer 
>>> know the names of indexes in existing projects. There are other usages of 
>>> md5 in Django where a short, fast hash is needed. I'm not sure if 
>>> prohibiting the usage of md5 in Django or adding a setting to allow 
>>> selecting some other hash in all those places is worth the additional 
>>> complexity but you could write to django-developers to get other opinions.
>>>
>>> On Tuesday, May 30, 2017 at 4:21:24 PM UTC-4, Brandon Williams wrote:
>>>>
>>>> I'm running into issues when trying to migrate my models in an 
>>>> environment that is running FIPS restrictions regarding MD5.  Here is the 
>>>> stack trace:
>>>>
>>>> Operations to perform:
>>>>>   Apply all migrations: admin, auth, contenttypes, dashboard, 
>>>>> kombu_transport_django, sessions
>>>>> Running migrations:
>>>>>   Applying contenttypes.0001_initial...Traceback (most recent call 
>>>>> last):
>>>>>   File "manage.py", line 10, in <module>
>>>>>     execute_from_command_line(sys.argv)
>>>>>   File 
>>>>> "/usr/lib64/python2.7/site-packages/django/core/management/__init__.py", 
>>>>> line 367, in execute_from_command_line
>>>>>     utility.execute()
>>>>>   File 
>>>>> "/usr/lib64/python2.7/site-packages/django/core/management/__init__.py", 
>>>>> line 359, in execute
>>>>>     self.fetch_command(subcommand).run_from_argv(self.argv)
>>>>>   File 
>>>>> "/usr/lib64/python2.7/site-packages/django/core/management/base.py", line 
>>>>> 294, in run_from_argv
>>>>>     self.execute(*args, **cmd_options)
>>>>>   File 
>>>>> "/usr/lib64/python2.7/site-packages/django/core/management/base.py", line 
>>>>> 345, in execute
>>>>>     output = self.handle(*args, **options)
>>>>>   File 
>>>>> "/usr/lib64/python2.7/site-packages/django/core/management/commands/migrate.py",
>>>>>  
>>>>> line 204, in handle
>>>>>     fake_initial=fake_initial,
>>>>>   File 
>>>>> "/usr/lib64/python2.7/site-packages/django/db/migrations/executor.py", 
>>>>> line 
>>>>> 115, in migrate
>>>>>     state = self._migrate_all_forwards(state, plan, full_plan, 
>>>>> fake=fake, fake_initial=fake_initial)
>>>>>   File 
>>>>> "/usr/lib64/python2.7/site-packages/django/db/migrations/executor.py", 
>>>>> line 
>>>>> 145, in _migrate_all_forwards
>>>>>     state = self.apply_migration(state, migration, fake=fake, 
>>>>> fake_initial=fake_initial)
>>>>>   File 
>>>>> "/usr/lib64/python2.7/site-packages/django/db/migrations/executor.py", 
>>>>> line 
>>>>> 244, in apply_migration
>>>>>     state = migration.apply(state, schema_editor)
>>>>>   File 
>>>>> "/usr/lib64/python2.7/site-packages/django/db/migrations/migration.py", 
>>>>> line 129, in apply
>>>>>     operation.database_forwards(self.app_label, schema_editor, 
>>>>> old_state, project_state)
>>>>>   File 
>>>>> "/usr/lib64/python2.7/site-packages/django/db/migrations/operations/models.py",
>>>>>  
>>>>> line 532, in database_forwards
>>>>>     getattr(new_model._meta, self.option_name, set()),
>>>>>   File 
>>>>> "/usr/lib64/python2.7/site-packages/django/db/backends/base/schema.py", 
>>>>> line 333, in alter_unique_together
>>>>>     self.execute(self._create_unique_sql(model, columns))
>>>>>   File 
>>>>> "/usr/lib64/python2.7/site-packages/django/db/backends/base/schema.py", 
>>>>> line 913, in _create_unique_sql
>>>>>     "name": self.quote_name(self._create_index_name(model, columns, 
>>>>> suffix="_uniq")),
>>>>>   File 
>>>>> "/usr/lib64/python2.7/site-packages/django/db/backends/base/schema.py", 
>>>>> line 819, in _create_index_name
>>>>>     index_unique_name = '_%s' % self._digest(table_name, *column_names)
>>>>>   File 
>>>>> "/usr/lib64/python2.7/site-packages/django/db/backends/base/schema.py", 
>>>>> line 123, in _digest
>>>>>     h = hashlib.md5()
>>>>> ValueError: error:060800A3:digital envelope 
>>>>> routines:EVP_DigestInit_ex:disabled for fips
>>>>
>>>>
>>>>
>>>>  Is there a particular reason why MD5 is used here? Is there any harm 
>>>> in changing it to sh512 or something similar?
>>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/ba91b2b0-1d3f-4c0f-a79e-4ca869b1845e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to