Author christian.heimes
Recipients Zooko.Wilcox-O'Hearn, alex, christian.heimes, dstufft, gregory.p.smith
Date 2016-04-18.19:26:55
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1461007615.32.0.57627331289.issue26798@psf.upfronthosting.co.za>
In-reply-to
Content
I have SHA-3, SHAKE and BLAKE2s / BLAKE2b on my radar.

PEP 247 and the current API definition of the hashlib module is too limited for the new hashing algorithms. It lacks variable output for SHAKE as well as salt and personalization for BLAKE. I started to work on PEP 452 while I was working on SHA-3 support for Python 3. The PEP is still work-in-progress. I can address the needs of BLAKE and submit the PEP to a formal review.

I'm already working on OpenSSL 1.1.0 support for Python. blake will be automatically supported with OpenSSL builds. See for yourself:

$ ./python 
Python 3.6.0a0 (default, Apr 18 2016, 21:16:54) 
[GCC 5.3.1 20160406 (Red Hat 5.3.1-6)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import hashlib
>>> import ssl
>>> ssl.OPENSSL_VERSION
'OpenSSL 1.1.0-pre5-dev  xx XXX xxxx'
>>> hashlib.new('BLAKE2s256').hexdigest()
'69217a3079908094e11121d042354a7c1f55b6482ca1a51e1b250dfd1ed0eef9'


Donald:
I love to add SHA-3 support to Python. After all I had a working patch for SHA-3 before NIST changed the padding. Now my old patch is worthless. The new reference implementations are either too complicated (spread across like twenty files for various optimizations) or are one-shot implementations. I'm still looking for a good implementation that supports incremental updates, copy and SHAKE at the same time.
History
Date User Action Args
2016-04-18 19:26:55christian.heimessetrecipients: + christian.heimes, gregory.p.smith, alex, dstufft, Zooko.Wilcox-O'Hearn
2016-04-18 19:26:55christian.heimessetmessageid: <1461007615.32.0.57627331289.issue26798@psf.upfronthosting.co.za>
2016-04-18 19:26:55christian.heimeslinkissue26798 messages
2016-04-18 19:26:55christian.heimescreate