Well, let's try again. I know Ed25519 is not on anyone's list, but I
would like to show at minimum that it is interesting.

%timeit wheel.tool.unpack('lxml-3.0.1-cp27-none-linux_x86_64.whl')
10 loops, best of 3: 123 ms per loop

.unpack() verifies the signature and extracts the file. Installation
is not much more costly than unpack. Removing the C extension to use
the Python Ed25519 instead,

%timeit wheel.tool.unpack('lxml-3.0.1-cp27-none-linux_x86_64.whl')
1 loops, best of 3: 153 ms per loop

With python-ecdsa, verifying a single signature,

import ecdsa
sk = ecdsa.SigningKey.generate(ecdsa.NIST256p)
sig = sk.sign("message")
vk = sk.get_verifying_key()
%timeit vk.verify(sig, "message")
1 loops, best of 3: 144 ms per loop

takes about as long as the whole unpack() including verification.

You will notice the difference when you are rebuilding a virtualenv
with 30+ dependencies every time you commit, keeping the old
virtualenv around in case something broke. It wouldn't matter if we
were building from source because we would avoid creating new
virtualenvs just to save time.

Also python-ecdsa does not work on Python 3.

ECDSA's verifying (public) keys at the same security level are 64
bytes instead of the 32-byte Ed25519 keys, which would make the
proposed "inline public keys" syntax half as convenient.

package[ed25519=ouBJlTJJ4SJXoy8Bi1KRlewWLU6JW7HUXTgvU1YRuiA]

I hope that the speed of wheel, and the properties of its signature
scheme, will inspire people to invent new applications that require
those features.

If necessary we could also just remove algorithms from the spec and
make the signing implementation pluggable. For key management reasons,
the signing interface used by the build tool is already "run the wheel
command line tool in a subprocess" which is also what you would do if
you needed to take advantage of the allowed S/MIME RECORD.p7s.
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to