Re: [gentoo-portage-dev] [GLEP59v2 2/5] Manifest2 hash: Whirlpool

2011-10-02 Thread Zac Medico
On 10/01/2011 02:41 AM, Brian Harring wrote:
 On Sat, Oct 01, 2011 at 07:40:52AM +, Robin H. Johnson wrote:
 From: Robin H. Johnson robb...@gentoo.org

 Provide public-domain implementation of the Whirlpool hash algorithm to
 be used as new Manifest2 hash.

 Signed-off-by: Robin H. Johnson robb...@gentoo.org
 ---
  pym/portage/checksum.py |8 ++--
  1 files changed, 6 insertions(+), 2 deletions(-)

 diff --git a/pym/portage/checksum.py b/pym/portage/checksum.py
 index e5455fa..3593686 100644
 --- a/pym/portage/checksum.py
 +++ b/pym/portage/checksum.py
 @@ -71,6 +71,10 @@ except ImportError:
  
  sha1hash = _generate_hash_function(SHA1, _new_sha1, origin=internal)
  
 +# Bundled WHIRLPOOL implementation
 +from portage.util.whirlpool import new as _new_whirlpool
 +whirlpoolhash = _generate_hash_function(WHIRLPOOL, _new_whirlpool, 
 origin=bundled)
 +
 
 Likely should shift this to a trailing check if no whirlpool 
 implementation was found; via this, we can avoid the import unless 
 it's needed.
 ~brian

Thanks, that's done now:

http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=06ad8911b5790a2ed963fe1b981751ab0a2be8d5

-- 
Thanks,
Zac



[gentoo-portage-dev] [GLEP59v2 2/5] Manifest2 hash: Whirlpool

2011-10-01 Thread Robin H. Johnson
From: Robin H. Johnson robb...@gentoo.org

Provide public-domain implementation of the Whirlpool hash algorithm to
be used as new Manifest2 hash.

Signed-off-by: Robin H. Johnson robb...@gentoo.org
---
 pym/portage/checksum.py |8 ++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/pym/portage/checksum.py b/pym/portage/checksum.py
index e5455fa..3593686 100644
--- a/pym/portage/checksum.py
+++ b/pym/portage/checksum.py
@@ -71,6 +71,10 @@ except ImportError:
 
 sha1hash = _generate_hash_function(SHA1, _new_sha1, origin=internal)
 
+# Bundled WHIRLPOOL implementation
+from portage.util.whirlpool import new as _new_whirlpool
+whirlpoolhash = _generate_hash_function(WHIRLPOOL, _new_whirlpool, 
origin=bundled)
+
 # Use pycrypto when available, prefer it over the internal fallbacks
 try:
from Crypto.Hash import SHA256, RIPEMD
@@ -80,14 +84,14 @@ except ImportError as e:
pass
 
 # Use hashlib from python-2.5 if available and prefer it over pycrypto and 
internal fallbacks.
-# Need special handling for RMD160 as it may not always be provided by hashlib.
+# Need special handling for RMD160/WHIRLPOOL as they may not always be 
provided by hashlib.
 try:
import hashlib, functools

md5hash = _generate_hash_function(MD5, hashlib.md5, origin=hashlib)
sha1hash = _generate_hash_function(SHA1, hashlib.sha1, 
origin=hashlib)
sha256hash = _generate_hash_function(SHA256, hashlib.sha256, 
origin=hashlib)
-   for local_name, hash_name in ((rmd160, ripemd160), ):
+   for local_name, hash_name in ((rmd160, ripemd160), (whirlpool, 
whirlpool)):
try:
hashlib.new(hash_name)
except ValueError:
-- 
1.7.7




Re: [gentoo-portage-dev] [GLEP59v2 2/5] Manifest2 hash: Whirlpool

2011-10-01 Thread Brian Harring
On Sat, Oct 01, 2011 at 07:40:52AM +, Robin H. Johnson wrote:
 From: Robin H. Johnson robb...@gentoo.org
 
 Provide public-domain implementation of the Whirlpool hash algorithm to
 be used as new Manifest2 hash.
 
 Signed-off-by: Robin H. Johnson robb...@gentoo.org
 ---
  pym/portage/checksum.py |8 ++--
  1 files changed, 6 insertions(+), 2 deletions(-)
 
 diff --git a/pym/portage/checksum.py b/pym/portage/checksum.py
 index e5455fa..3593686 100644
 --- a/pym/portage/checksum.py
 +++ b/pym/portage/checksum.py
 @@ -71,6 +71,10 @@ except ImportError:
  
  sha1hash = _generate_hash_function(SHA1, _new_sha1, origin=internal)
  
 +# Bundled WHIRLPOOL implementation
 +from portage.util.whirlpool import new as _new_whirlpool
 +whirlpoolhash = _generate_hash_function(WHIRLPOOL, _new_whirlpool, 
 origin=bundled)
 +

Likely should shift this to a trailing check if no whirlpool 
implementation was found; via this, we can avoid the import unless 
it's needed.
~brian

  # Use pycrypto when available, prefer it over the internal fallbacks
  try:
   from Crypto.Hash import SHA256, RIPEMD
 @@ -80,14 +84,14 @@ except ImportError as e:
   pass
  
  # Use hashlib from python-2.5 if available and prefer it over pycrypto and 
 internal fallbacks.
 -# Need special handling for RMD160 as it may not always be provided by 
 hashlib.
 +# Need special handling for RMD160/WHIRLPOOL as they may not always be 
 provided by hashlib.
  try:
   import hashlib, functools
   
   md5hash = _generate_hash_function(MD5, hashlib.md5, origin=hashlib)
   sha1hash = _generate_hash_function(SHA1, hashlib.sha1, 
 origin=hashlib)
   sha256hash = _generate_hash_function(SHA256, hashlib.sha256, 
 origin=hashlib)
 - for local_name, hash_name in ((rmd160, ripemd160), ):
 + for local_name, hash_name in ((rmd160, ripemd160), (whirlpool, 
 whirlpool)):
   try:
   hashlib.new(hash_name)
   except ValueError:
 -- 
 1.7.7