From bc43afa076f4d7aa5cfc2d941dada3c879c4a8de Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Tue, 28 May 2019 12:05:00 +0200 Subject: [PATCH] PEP-594: add legacycrypt (#1091) --- pep-0594.rst | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pep-0594.rst b/pep-0594.rst index 03e4d29f2..f29498f6a 100644 --- a/pep-0594.rst +++ b/pep-0594.rst @@ -175,7 +175,7 @@ audio processing. cgi,3.8 (2.0\*\*),3.10,1995,no,\- cgitb,3.8 (2.0\*\*),3.10,1995,no,\- chunk,3.8,3.10,1999,no,\- - crypt,3.8,3.10,1994,**yes (inactive)**,"bcrypt, argon2cffi, hashlib, passlib" + crypt,3.8,3.10,1994,**yes (inactive)**,"legacycrypt, bcrypt, argon2cffi, hashlib, passlib" email.message.Message,3.3,3.10,2001,yes,email.message.EmailMessage email.mime,3.3,3.10,2001,yes,email.contentmanager email.policy.Compat32,3.3,3.10,2011,yes,email.policy.EmailPolicy @@ -663,6 +663,7 @@ To be removed in Has a designated expert yes, but expert is currently inactive. Substitute + `legacycrypt `_ (ctypes wrapper), `bcrypt `_, `passlib `_, `argon2cffi `_, @@ -1030,8 +1031,10 @@ Most of the modules are in pure Python and can be easily packaged. Some depend on a simple C module, e.g. `audioop`_ and `crypt`_. Since `audioop`_ does not depend on any external libraries, it can be shipped in as binary wheels with some effort. Other C modules can be replaced with ctypes or cffi. -For example I created `legacycrypt `_ -with ``_crypt`` extension reimplemented with a few lines of ctypes code. +For example I created `legacycrypt`_, which provides a full implementation of +``crypt``. It is implemented on top of a ctypes wrapper around ``libxcrypt`` +and ``libcrypt`` instead of a C extension like the original ``_crypt`` +module. Discussions