[pycrypto] Need your input: Major modernization; dropping legacy Python support?

Lorenz Quack don at amberfisharts.com
Wed Oct 30 09:03:30 PDT 2013


Hi,

On 30/10/13 06:09, Dwayne Litzenberger wrote:
 > Hi folks,
 >
 > I'm thinking about making some fairly drastic changes to PyCrypto (compared to what's happened historically) and I'd
 > like to know how these would impact people:

I'm only a very, very casual user but for what it's worth here come my 2 cents:

 >
> 1. How many of you would really care if PyCrypto 2.6 was that last    version to support legacy versions of Python?  By
> "legacy", I mean    all versions of Python that are NOT one of these:
>
>      - Python 2.6.x
>      - Python 2.7.x
>      - Python 3.3 and above.
>
>     I'd continue to make bugfix releases of PyCrypto 2.6.x, but add no    more substantial new features.

+1

>
> 2. I'm thinking of pulling in additional dependencies (e.g. cffi),    requiring setuptools, and basically joining what
> the rest of the    Python community is doing in 2013.
>

I like to keep dependencies as low as possible. Obviously, you always have to weigh the pros and cons. So I guess what I 
am saying is that is depends and should be decided on a case by case basis.

> 3. What if src/*.c were removed, and any relevant C code moved into an    independent library, which could be loaded
> using cffi?  (This is    basically what we need to do to support PyPy properly.)
>

depends on what exactly you mean by "independent library". If you mean "maintained and shipped separately and added as a 
dependency" then I'm -1. There are enough crypto c-libs out there why add another one?
If you mean "have it in the pycrypto tree but compile it to a lib and use it via cffi just to make pypy happy" then I 
would like to see some performance analysis. The main reason to have stuff in C is performance if I am not mistaken. By 
hearsay I think that ctypes has quite a significant impact. what about cffi?

> 4. What if Crypto.* became a wrapper around some other crypto library?

I believe most crypto libs already have a python wrapper. How would pycrypto be differnet?

>
> 5. The Apache License 2.0.  What if PyCrypto were licensed under it, or    included dependencies that are licensed under
> it?
>

Why? What would that achieve/improve? What's wrong with the current state (more or less public domain)? Wouldn't you 
need to get the consent of every contributor?

> 6. What if src/*.c was mostly replaced with mostly just went away.
>

Wouldn't that totally kill performance? If the parts you want to kill are not security or performance sensitive: go for it!

That it.
Cheers and thanks for all your great work Dwayne!

//Lorenz


> Don't panic.  These aren't concrete plans yet, but I'd like to know how this might affect various downstream PyCrypto
> stakeholders, and problems I might expect to encounter if I went in any of these directions.
>
> Of particular concern is FOSS distributors packaging PyCrypto (e.g. Linux distros, *BSD ports trees, MacPorts/HomeBrew,
> etc.), and anything else that might impact a large number of downstream end-users.
>
> I've been maintaining backward compatibility in order to protect end-users from bugs introduced in downstream forks of
> PyCrypto, but that's made it hard to generate interest in working on PyCrypto.  From what I can tell, there are
> currently several Python crypto libraries, and none of them are particularly great (including PyCrypto).
>
> I'm beginning to wonder how the risk of downstream forks compares to the risks that users face when developers still
> don't have a highly-visible, easy-to-use Python crypto API.  It might be better to merge PyCrypto with one or more other
> Python crypto libraries...
>
> Anyway, I'd love to hear what people have to say on this topic.
>



More information about the pycrypto mailing list