<div dir="ltr"><div><div><div>I'm all for nudging people in the direction of xcrypt. I assume we can't just switch the C-level crypt with xcrypt and leave the Python API unchanged?<br><br></div>However until a usable solution exist (either in the stdlib or as 3rd party) I don't think we should deprecate anything (deprecating things before the replacement is ready is stressful for everyone involved).<br><br></div>I'm also not sure I agree with removing support for old hashes. By all means put in the docs that they are unsafe. But if someone has a database full of old hashes it would be nice to be able to at least read/verify it, right?<br><br></div>Was a release already made with blowfish, extended DES and NT-Hash? (And what's so bad with blowfish? It's mentioned in the heading of the xcrypt project too.)<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Feb 2, 2018 at 7:23 AM, Christian Heimes <span dir="ltr"><<a href="mailto:christian@python.org" target="_blank">christian@python.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
in PR 3854 [1] Serhiy added blowfish, extended DES and NT-Hash to<br>
Python's crypt mdodule. I vetoed against addition of the APIs because<br>
all these hashing algorithms are not state of the art. Their quality<br>
ranges from old to horribly, horriblye broken beyond any repair.<br>
<br>
Shortly after the PR has landed, I was made aware that glibc has<br>
deprecated crypt(3) API [2] and favor of an external library called<br>
libxcrypt [3] from OpenWall Linux. I have patched Python 3.7 [4] to<br>
support libxcrypt.<br>
<br>
In light of deprecation of crypt(3) glibc function and bad quality of<br>
hashing algorithms, I'd like to raise the motion to revert 3854 and<br>
deprecate the crypt module. The whole module should be rather moved into<br>
3rd party library that wraps xcrypt.<br>
<br>
Regards,<br>
Christian<br>
<br>
[1] <a href="https://github.com/python/cpython/pull/3854" rel="noreferrer" target="_blank">https://github.com/python/<wbr>cpython/pull/3854</a><br>
[2]<br>
<a href="https://www.phoronix.com/scan.php?page=news_item&px=Fedora-28-libxcrypt-Plans" rel="noreferrer" target="_blank">https://www.phoronix.com/scan.<wbr>php?page=news_item&px=Fedora-<wbr>28-libxcrypt-Plans</a><br>
[3] <a href="https://github.com/besser82/libxcrypt" rel="noreferrer" target="_blank">https://github.com/besser82/<wbr>libxcrypt</a><br>
[4] <a href="https://bugs.python.org/issue32635" rel="noreferrer" target="_blank">https://bugs.python.org/<wbr>issue32635</a><br>
______________________________<wbr>_________________<br>
Python-Dev mailing list<br>
<a href="mailto:Python-Dev@python.org">Python-Dev@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-dev" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/listinfo/python-dev</a><br>
Unsubscribe: <a href="https://mail.python.org/mailman/options/python-dev/guido%40python.org" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/options/python-dev/<wbr>guido%40python.org</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">--Guido van Rossum (<a href="http://python.org/~guido" target="_blank">python.org/~guido</a>)</div>
</div>