Diff below update py-crypto to the lastest version, all tests pass on amd64.
Comments? Ok? Martin Index: Makefile =================================================================== RCS file: /cvs/ports/security/py-crypto/Makefile,v retrieving revision 1.19 diff -u -p -r1.19 Makefile --- Makefile 16 Sep 2011 11:41:39 -0000 1.19 +++ Makefile 30 Sep 2011 10:35:12 -0000 @@ -4,13 +4,12 @@ SHARED_ONLY = Yes COMMENT = cryptographic tools for Python -MODPY_EGG_VERSION = 2.0.1 +MODPY_EGG_VERSION = 2.3 DISTNAME = pycrypto-${MODPY_EGG_VERSION} PKGNAME = py-crypto-${MODPY_EGG_VERSION} -REVISION= 9 CATEGORIES = security devel -HOMEPAGE = http://www.amk.ca/python/code/crypto.html +HOMEPAGE = https://www.dlitz.net/software/pycrypto/ MAINTAINER = Will Maier <wcma...@openbsd.org> @@ -20,7 +19,7 @@ PERMIT_PACKAGE_FTP = Yes PERMIT_DISTFILES_CDROM = Yes PERMIT_DISTFILES_FTP = Yes -MASTER_SITES = http://www.amk.ca/files/python/crypto/ +MASTER_SITES = http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/ MODULES = lang/python LIB_DEPENDS = devel/gmp @@ -37,6 +36,6 @@ post-install: do-regress: fake cd ${WRKSRC} && ${MAKE_ENV} \ - PYTHONPATH=${WRKINST}${MODPY_SITEPKG} ${MODPY_BIN} test.py + PYTHONPATH=${WRKINST}${MODPY_SITEPKG} ${MODPY_BIN} setup.py test .include <bsd.port.mk> Index: distinfo =================================================================== RCS file: /cvs/ports/security/py-crypto/distinfo,v retrieving revision 1.5 diff -u -p -r1.5 distinfo --- distinfo 5 Apr 2007 17:26:09 -0000 1.5 +++ distinfo 30 Sep 2011 10:01:01 -0000 @@ -1,5 +1,5 @@ -MD5 (pycrypto-2.0.1.tar.gz) = TVZ084mKVzaR/7M16NdJzQ== -RMD160 (pycrypto-2.0.1.tar.gz) = XOk4ok939BTkJoDBfvm23I3pSi4= -SHA1 (pycrypto-2.0.1.tar.gz) = x3ze/fsG5HSWkAE6mp4WAKsU4m8= -SHA256 (pycrypto-2.0.1.tar.gz) = sI1O1UyUA8d3eKOAPlOk8z81m0LZT28+FKuxv0lB5uo= -SIZE (pycrypto-2.0.1.tar.gz) = 154292 +MD5 (pycrypto-2.3.tar.gz) = K4Ec+/w0LYPuYUCX7/uBAQ== +RMD160 (pycrypto-2.3.tar.gz) = W3sVqrP14zETuhl6Lt1inHJZU3Q= +SHA1 (pycrypto-2.3.tar.gz) = lrM7d+cpiTvQg3oJpqp6ErUHADc= +SHA256 (pycrypto-2.3.tar.gz) = TxHoX7zxOWA3NlD8La6PCI+bAB8H+20++y/LUzSYcYI= +SIZE (pycrypto-2.3.tar.gz) = 331476 Index: patches/patch-Cipher___init___py =================================================================== RCS file: patches/patch-Cipher___init___py diff -N patches/patch-Cipher___init___py --- patches/patch-Cipher___init___py 11 Jun 2008 02:59:32 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,26 +0,0 @@ -$OpenBSD: patch-Cipher___init___py,v 1.2 2008/06/11 02:59:32 wcmaier Exp $ ---- Cipher/__init__.py.orig Fri Feb 28 09:28:35 2003 -+++ Cipher/__init__.py Wed May 28 20:55:20 2008 -@@ -11,7 +11,6 @@ If you don't know which algorithm to choose, use AES b - standard and has undergone a fair bit of examination. - - Crypto.Cipher.AES Advanced Encryption Standard --Crypto.Cipher.ARC2 Alleged RC2 - Crypto.Cipher.ARC4 Alleged RC4 - Crypto.Cipher.Blowfish - Crypto.Cipher.CAST -@@ -19,12 +18,11 @@ Crypto.Cipher.DES The Data Encryption Standard - in the past, but today its 56-bit keys are too small. - Crypto.Cipher.DES3 Triple DES. - Crypto.Cipher.IDEA --Crypto.Cipher.RC5 - Crypto.Cipher.XOR The simple XOR cipher. - """ - --__all__ = ['AES', 'ARC2', 'ARC4', -- 'Blowfish', 'CAST', 'DES', 'DES3', 'IDEA', 'RC5', -+__all__ = ['AES', 'ARC4', -+ 'Blowfish', 'CAST', 'DES', 'DES3', - 'XOR' - ] - Index: patches/patch-Hash_MD5_py =================================================================== RCS file: patches/patch-Hash_MD5_py diff -N patches/patch-Hash_MD5_py --- patches/patch-Hash_MD5_py 29 Aug 2009 15:17:48 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,29 +0,0 @@ -$OpenBSD: patch-Hash_MD5_py,v 1.1 2009/08/29 15:17:48 fgsch Exp $ ---- Hash/MD5.py.orig Sat Aug 29 14:48:13 2009 -+++ Hash/MD5.py Sat Aug 29 14:48:34 2009 -@@ -3,11 +3,19 @@ - - __revision__ = "$Id: patch-Hash_MD5_py,v 1.1 2009/08/29 15:17:48 fgsch Exp $" - --from md5 import * -+try: -+ # The md5 module is deprecated in Python 2.6, so use hashlib when possible. -+ import hashlib -+ def new(data=""): -+ return hashlib.md5(data) -+ digest_size = new().digest_size - --import md5 --if hasattr(md5, 'digestsize'): -- digest_size = digestsize -- del digestsize --del md5 -+except ImportError: -+ from md5 import * -+ -+ import md5 -+ if hasattr(md5, 'digestsize'): -+ digest_size = digestsize -+ del digestsize -+ del md5 - Index: patches/patch-Hash_SHA_py =================================================================== RCS file: patches/patch-Hash_SHA_py diff -N patches/patch-Hash_SHA_py --- patches/patch-Hash_SHA_py 29 Aug 2009 15:17:48 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,29 +0,0 @@ -$OpenBSD: patch-Hash_SHA_py,v 1.1 2009/08/29 15:17:48 fgsch Exp $ ---- Hash/SHA.py.orig Sat Aug 29 14:49:24 2009 -+++ Hash/SHA.py Sat Aug 29 14:50:25 2009 -@@ -3,9 +3,19 @@ - - __revision__ = "$Id: patch-Hash_SHA_py,v 1.1 2009/08/29 15:17:48 fgsch Exp $" - --from sha import * --import sha --if hasattr(sha, 'digestsize'): -- digest_size = digestsize -- del digestsize --del sha -+try: -+ # The sha module is deprecated in Python 2.6, so use hashlib when possible. -+ import hashlib -+ def new(data=""): -+ return hashlib.sha1(data) -+ digest_size = new().digest_size -+ -+except ImportError: -+ from sha import * -+ -+ import sha -+ if hasattr(sha, 'digestsize'): -+ digest_size = digestsize -+ del digestsize -+ del sha -+ Index: patches/patch-Hash___init___py =================================================================== RCS file: patches/patch-Hash___init___py diff -N patches/patch-Hash___init___py --- patches/patch-Hash___init___py 11 Jun 2008 02:59:32 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,18 +0,0 @@ -$OpenBSD: patch-Hash___init___py,v 1.2 2008/06/11 02:59:32 wcmaier Exp $ ---- Hash/__init__.py.orig Fri Dec 19 08:24:25 2003 -+++ Hash/__init__.py Wed May 28 20:55:20 2008 -@@ -12,13 +12,12 @@ The hashing modules here all support the interface des - - Submodules: - Crypto.Hash.HMAC RFC 2104: Keyed-Hashing for Message Authentication --Crypto.Hash.MD2 - Crypto.Hash.MD4 - Crypto.Hash.MD5 - Crypto.Hash.RIPEMD - Crypto.Hash.SHA - """ - --__all__ = ['HMAC', 'MD2', 'MD4', 'MD5', 'RIPEMD', 'SHA', 'SHA256'] -+__all__ = ['HMAC', 'MD4', 'MD5', 'RIPEMD', 'SHA', 'SHA256'] - __revision__ = "$Id: patch-Hash___init___py,v 1.2 2008/06/11 02:59:32 wcmaier Exp $" - Index: patches/patch-Util_test_py =================================================================== RCS file: patches/patch-Util_test_py diff -N patches/patch-Util_test_py --- patches/patch-Util_test_py 11 Jun 2008 02:59:32 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,79 +0,0 @@ -$OpenBSD: patch-Util_test_py,v 1.2 2008/06/11 02:59:32 wcmaier Exp $ ---- Util/test.py.orig Fri Aug 13 17:24:18 2004 -+++ Util/test.py Wed May 28 20:55:21 2008 -@@ -223,8 +223,7 @@ def TestStreamModules(args=['arc4', 'XOR'], verbose=1) - die('XOR failed on entry '+`entry`) - - --def TestBlockModules(args=['aes', 'arc2', 'des', 'blowfish', 'cast', 'des3', -- 'idea', 'rc5'], -+def TestBlockModules(args=['aes', 'des', 'blowfish', 'cast', 'des3'], - verbose=1): - import string - args=map(string.lower, args) -@@ -267,23 +266,6 @@ def TestBlockModules(args=['aes', 'arc2', 'des', 'blow - if verbose: print - - -- if 'arc2' in args: -- ciph=exerciseBlockCipher('ARC2', verbose) # Alleged RC2 -- if (ciph!=None): -- if verbose: print ' Verifying against test suite...' -- for entry in testdata.arc2: -- key,plain,cipher=entry -- key=binascii.a2b_hex(key) -- plain=binascii.a2b_hex(plain) -- cipher=binascii.a2b_hex(cipher) -- obj=ciph.new(key, ciph.MODE_ECB) -- ciphertext=obj.encrypt(plain) -- if (ciphertext!=cipher): -- die('ARC2 failed on entry '+`entry`) -- for i in ciphertext: -- if verbose: print hex(ord(i)), -- print -- - if 'blowfish' in args: - ciph=exerciseBlockCipher('Blowfish',verbose)# Bruce Schneier's Blowfish cipher - if (ciph!=None): -@@ -413,41 +395,5 @@ def TestBlockModules(args=['aes', 'arc2', 'des', 'blow - ciphertext=obj1.encrypt(plain) - if (ciphertext!=cipher): - die('DES3 CBC mode failed on entry '+`entry`) -- -- if 'idea' in args: -- ciph=exerciseBlockCipher('IDEA', verbose) # IDEA block cipher -- if (ciph!=None): -- if verbose: print ' Verifying against test suite...' -- for entry in testdata.idea: -- key,plain,cipher=entry -- key=binascii.a2b_hex(key) -- plain=binascii.a2b_hex(plain) -- cipher=binascii.a2b_hex(cipher) -- obj=ciph.new(key, ciph.MODE_ECB) -- ciphertext=obj.encrypt(plain) -- if (ciphertext!=cipher): -- die('IDEA failed on entry '+`entry`) -- -- if 'rc5' in args: -- # Ronald Rivest's RC5 algorithm -- ciph=exerciseBlockCipher('RC5', verbose) -- if (ciph!=None): -- if verbose: print ' Verifying against test suite...' -- for entry in testdata.rc5: -- key,plain,cipher=entry -- key=binascii.a2b_hex(key) -- plain=binascii.a2b_hex(plain) -- cipher=binascii.a2b_hex(cipher) -- obj=ciph.new(key[4:], ciph.MODE_ECB, -- version =ord(key[0]), -- word_size=ord(key[1]), -- rounds =ord(key[2]) ) -- ciphertext=obj.encrypt(plain) -- if (ciphertext!=cipher): -- die('RC5 failed on entry '+`entry`) -- for i in ciphertext: -- if verbose: print hex(ord(i)), -- if verbose: print -- - - Index: patches/patch-lib_Crypto_Cypher___init___py =================================================================== RCS file: patches/patch-lib_Crypto_Cypher___init___py diff -N patches/patch-lib_Crypto_Cypher___init___py --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-lib_Crypto_Cypher___init___py 30 Sep 2011 10:08:12 -0000 @@ -0,0 +1,19 @@ +--- lib/Crypto/Cipher/__init__.py.orig Fri Sep 30 12:06:01 2011 ++++ lib/Crypto/Cipher/__init__.py Fri Sep 30 12:06:27 2011 +@@ -31,7 +31,6 @@ + standard and has undergone a fair bit of examination. + + Crypto.Cipher.AES Advanced Encryption Standard +-Crypto.Cipher.ARC2 Alleged RC2 + Crypto.Cipher.ARC4 Alleged RC4 + Crypto.Cipher.Blowfish + Crypto.Cipher.CAST +@@ -41,7 +40,7 @@ + Crypto.Cipher.XOR The simple XOR cipher. + """ + +-__all__ = ['AES', 'ARC2', 'ARC4', ++__all__ = ['AES', 'ARC4', + 'Blowfish', 'CAST', 'DES', 'DES3', + 'XOR' + ] Index: patches/patch-lib_Crypto_Hash___init___py =================================================================== RCS file: patches/patch-lib_Crypto_Hash___init___py diff -N patches/patch-lib_Crypto_Hash___init___py --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-lib_Crypto_Hash___init___py 30 Sep 2011 10:14:16 -0000 @@ -0,0 +1,17 @@ +--- lib/Crypto/Hash/__init__.py.orig Fri Sep 30 12:13:19 2011 ++++ lib/Crypto/Hash/__init__.py Fri Sep 30 12:13:38 2011 +@@ -32,13 +32,12 @@ + + Submodules: + Crypto.Hash.HMAC RFC 2104: Keyed-Hashing for Message Authentication +-Crypto.Hash.MD2 + Crypto.Hash.MD4 + Crypto.Hash.MD5 + Crypto.Hash.RIPEMD160 + Crypto.Hash.SHA + """ + +-__all__ = ['HMAC', 'MD2', 'MD4', 'MD5', 'RIPEMD', 'RIPEMD160', 'SHA', 'SHA256'] ++__all__ = ['HMAC', 'MD4', 'MD5', 'RIPEMD', 'RIPEMD160', 'SHA', 'SHA256'] + __revision__ = "$Id$" + Index: patches/patch-lib_Crypto_SelfTest_Cipher___init___py =================================================================== RCS file: patches/patch-lib_Crypto_SelfTest_Cipher___init___py diff -N patches/patch-lib_Crypto_SelfTest_Cipher___init___py --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-lib_Crypto_SelfTest_Cipher___init___py 30 Sep 2011 10:31:19 -0000 @@ -0,0 +1,10 @@ +--- lib/Crypto/SelfTest/Cipher/__init__.py.orig Fri Sep 30 12:30:31 2011 ++++ lib/Crypto/SelfTest/Cipher/__init__.py Fri Sep 30 12:30:43 2011 +@@ -29,7 +29,6 @@ + def get_tests(config={}): + tests = [] + import test_AES; tests += test_AES.get_tests(config=config) +- import test_ARC2; tests += test_ARC2.get_tests(config=config) + import test_ARC4; tests += test_ARC4.get_tests(config=config) + import test_Blowfish; tests += test_Blowfish.get_tests(config=config) + import test_CAST; tests += test_CAST.get_tests(config=config) Index: patches/patch-lib_Crypto_SelfTest_Cipher_test_ARC2_py =================================================================== RCS file: patches/patch-lib_Crypto_SelfTest_Cipher_test_ARC2_py diff -N patches/patch-lib_Crypto_SelfTest_Cipher_test_ARC2_py --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-lib_Crypto_SelfTest_Cipher_test_ARC2_py 30 Sep 2011 10:37:49 -0000 @@ -0,0 +1,122 @@ +--- lib/Crypto/SelfTest/Cipher/test_ARC2.py Fri Aug 27 06:41:55 2010 ++++ /dev/null Fri Sep 30 12:37:49 2011 +@@ -1,119 +0,0 @@ +-# -*- coding: utf-8 -*- +-# +-# SelfTest/Cipher/ARC2.py: Self-test for the Alleged-RC2 cipher +-# +-# Written in 2008 by Dwayne C. Litzenberger <dl...@dlitz.net> +-# +-# =================================================================== +-# The contents of this file are dedicated to the public domain. To +-# the extent that dedication to the public domain is not available, +-# everyone is granted a worldwide, perpetual, royalty-free, +-# non-exclusive license to exercise all rights associated with the +-# contents of this file for any purpose whatsoever. +-# No rights are reserved. +-# +-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +-# SOFTWARE. +-# =================================================================== +- +-"""Self-test suite for Crypto.Cipher.ARC2""" +- +-__revision__ = "$Id$" +- +-from common import dict # For compatibility with Python 2.1 and 2.2 +- +-import unittest +- +-# This is a list of (plaintext, ciphertext, key[, description[, extra_params]]) tuples. +-test_data = [ +- # Test vectors from RFC 2268 +- +- # 63-bit effective key length +- ('0000000000000000', 'ebb773f993278eff', '0000000000000000', +- 'RFC2268-1', dict(effective_keylen=63)), +- +- # 64-bit effective key length +- ('ffffffffffffffff', '278b27e42e2f0d49', 'ffffffffffffffff', +- 'RFC2268-2', dict(effective_keylen=64)), +- ('1000000000000001', '30649edf9be7d2c2', '3000000000000000', +- 'RFC2268-3', dict(effective_keylen=64)), +- ('0000000000000000', '61a8a244adacccf0', '88', +- 'RFC2268-4', dict(effective_keylen=64)), +- ('0000000000000000', '6ccf4308974c267f', '88bca90e90875a', +- 'RFC2268-5', dict(effective_keylen=64)), +- ('0000000000000000', '1a807d272bbe5db1', '88bca90e90875a7f0f79c384627bafb2', +- 'RFC2268-6', dict(effective_keylen=64)), +- +- # 128-bit effective key length +- ('0000000000000000', '2269552ab0f85ca6', '88bca90e90875a7f0f79c384627bafb2', +- "RFC2268-7", dict(effective_keylen=128)), +- ('0000000000000000', '5b78d3a43dfff1f1', +- '88bca90e90875a7f0f79c384627bafb216f80a6f85920584c42fceb0be255daf1e', +- "RFC2268-8", dict(effective_keylen=129)), +- +- # Test vectors from PyCrypto 2.0.1's testdata.py +- # 1024-bit effective key length +- ('0000000000000000', '624fb3e887419e48', '5068696c6970476c617373', +- 'PCTv201-0'), +- ('ffffffffffffffff', '79cadef44c4a5a85', '5068696c6970476c617373', +- 'PCTv201-1'), +- ('0001020304050607', '90411525b34e4c2c', '5068696c6970476c617373', +- 'PCTv201-2'), +- ('0011223344556677', '078656aaba61cbfb', '5068696c6970476c617373', +- 'PCTv201-3'), +- ('0000000000000000', 'd7bcc5dbb4d6e56a', 'ffffffffffffffff', 'PCTv201-4'), +- ('ffffffffffffffff', '7259018ec557b357', 'ffffffffffffffff', 'PCTv201-5'), +- ('0001020304050607', '93d20a497f2ccb62', 'ffffffffffffffff', 'PCTv201-6'), +- ('0011223344556677', 'cb15a7f819c0014d', 'ffffffffffffffff', 'PCTv201-7'), +- ('0000000000000000', '63ac98cdf3843a7a', +- 'ffffffffffffffff5065746572477265656e6177617953e5ffe553', +- 'PCTv201-8'), +- ('ffffffffffffffff', '3fb49e2fa12371dd', +- 'ffffffffffffffff5065746572477265656e6177617953e5ffe553', +- 'PCTv201-9'), +- ('0001020304050607', '46414781ab387d5f', +- 'ffffffffffffffff5065746572477265656e6177617953e5ffe553', +- 'PCTv201-10'), +- ('0011223344556677', 'be09dc81feaca271', +- 'ffffffffffffffff5065746572477265656e6177617953e5ffe553', +- 'PCTv201-11'), +- ('0000000000000000', 'e64221e608be30ab', '53e5ffe553', 'PCTv201-12'), +- ('ffffffffffffffff', '862bc60fdcd4d9a9', '53e5ffe553', 'PCTv201-13'), +- ('0001020304050607', '6a34da50fa5e47de', '53e5ffe553', 'PCTv201-14'), +- ('0011223344556677', '584644c34503122c', '53e5ffe553', 'PCTv201-15'), +-] +- +-class BufferOverflowTest(unittest.TestCase): +- # Test a buffer overflow found in older versions of PyCrypto +- +- def setUp(self): +- global ARC2 +- from Crypto.Cipher import ARC2 +- +- def runTest(self): +- """ARC2 with keylength > 128""" +- key = "x" * 16384 +- mode = ARC2.MODE_ECB +- self.assertRaises(ValueError, ARC2.new, key, mode) +- +-def get_tests(config={}): +- from Crypto.Cipher import ARC2 +- from common import make_block_tests +- +- tests = make_block_tests(ARC2, "ARC2", test_data) +- tests.append(BufferOverflowTest()) +- +- return tests +- +-if __name__ == '__main__': +- import unittest +- suite = lambda: unittest.TestSuite(get_tests()) +- unittest.main(defaultTest='suite') +- +-# vim:set ts=4 sw=4 sts=4 expandtab: Index: patches/patch-lib_Crypto_SelfTest_Hash___init__py =================================================================== RCS file: patches/patch-lib_Crypto_SelfTest_Hash___init__py diff -N patches/patch-lib_Crypto_SelfTest_Hash___init__py --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-lib_Crypto_SelfTest_Hash___init__py 30 Sep 2011 10:17:12 -0000 @@ -0,0 +1,10 @@ +--- lib/Crypto/SelfTest/Hash/__init__.py.orig Fri Sep 30 12:15:52 2011 ++++ lib/Crypto/SelfTest/Hash/__init__.py Fri Sep 30 12:16:36 2011 +@@ -29,7 +29,6 @@ + def get_tests(config={}): + tests = [] + import test_HMAC; tests += test_HMAC.get_tests(config=config) +- import test_MD2; tests += test_MD2.get_tests(config=config) + import test_MD4; tests += test_MD4.get_tests(config=config) + import test_MD5; tests += test_MD5.get_tests(config=config) + import test_RIPEMD; tests += test_RIPEMD.get_tests(config=config) Index: patches/patch-lib_Crypto_SelfTest_Hash_test_MD2_py =================================================================== RCS file: patches/patch-lib_Crypto_SelfTest_Hash_test_MD2_py diff -N patches/patch-lib_Crypto_SelfTest_Hash_test_MD2_py --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-lib_Crypto_SelfTest_Hash_test_MD2_py 30 Sep 2011 10:38:26 -0000 @@ -0,0 +1,63 @@ +--- lib/Crypto/SelfTest/Hash/test_MD2.py Fri Aug 27 06:41:55 2010 ++++ /dev/null Fri Sep 30 12:38:26 2011 +@@ -1,60 +0,0 @@ +-# -*- coding: utf-8 -*- +-# +-# SelfTest/Hash/MD2.py: Self-test for the MD2 hash function +-# +-# Written in 2008 by Dwayne C. Litzenberger <dl...@dlitz.net> +-# +-# =================================================================== +-# The contents of this file are dedicated to the public domain. To +-# the extent that dedication to the public domain is not available, +-# everyone is granted a worldwide, perpetual, royalty-free, +-# non-exclusive license to exercise all rights associated with the +-# contents of this file for any purpose whatsoever. +-# No rights are reserved. +-# +-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +-# SOFTWARE. +-# =================================================================== +- +-"""Self-test suite for Crypto.Hash.MD2""" +- +-__revision__ = "$Id$" +- +-# This is a list of (expected_result, input[, description]) tuples. +-test_data = [ +- # Test vectors from RFC 1319 +- ('8350e5a3e24c153df2275c9f80692773', '', "'' (empty string)"), +- ('32ec01ec4a6dac72c0ab96fb34c0b5d1', 'a'), +- ('da853b0d3f88d99b30283a69e6ded6bb', 'abc'), +- ('ab4f496bfb2a530b219ff33031fe06b0', 'message digest'), +- +- ('4e8ddff3650292ab5a4108c3aa47940b', 'abcdefghijklmnopqrstuvwxyz', +- 'a-z'), +- +- ('da33def2a42df13975352846c30338cd', +- 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', +- 'A-Z, a-z, 0-9'), +- +- ('d5976f79d83d3a0dc9806c3c66f3efd8', +- '1234567890123456789012345678901234567890123456' +- + '7890123456789012345678901234567890', +- "'1234567890' * 8"), +-] +- +-def get_tests(config={}): +- from Crypto.Hash import MD2 +- from common import make_hash_tests +- return make_hash_tests(MD2, "MD2", test_data) +- +-if __name__ == '__main__': +- import unittest +- suite = lambda: unittest.TestSuite(get_tests()) +- unittest.main(defaultTest='suite') +- +-# vim:set ts=4 sw=4 sts=4 expandtab: Index: patches/patch-setup_py =================================================================== RCS file: /cvs/ports/security/py-crypto/patches/patch-setup_py,v retrieving revision 1.3 diff -u -p -r1.3 patch-setup_py --- patches/patch-setup_py 11 Jun 2008 02:59:32 -0000 1.3 +++ patches/patch-setup_py 30 Sep 2011 10:41:38 -0000 @@ -1,21 +1,16 @@ -$OpenBSD: patch-setup_py,v 1.3 2008/06/11 02:59:32 wcmaier Exp $ ---- setup.py.orig Mon Jun 13 20:20:22 2005 -+++ setup.py Wed May 28 20:56:03 2008 -@@ -64,9 +64,10 @@ class PCTBuildExt (build_ext): - def build_extensions(self): - self.extensions += [ +--- setup.py.orig Fri Aug 27 06:41:55 2010 ++++ setup.py Fri Sep 30 12:26:29 2011 +@@ -267,9 +267,6 @@ + sources=["src/_fastmath.c"]), + # Hash functions -- Extension("Crypto.Hash.MD4", +- Extension("Crypto.Hash.MD2", - include_dirs=['src/'], -- sources=["src/MD4.c"]), -+# Added below -+# Extension("Crypto.Hash.MD4", -+# include_dirs=['src/'], -+# sources=["src/MD4.c"]), - Extension("Crypto.Hash.RIPEMD", +- sources=["src/MD2.c"]), + Extension("Crypto.Hash.MD4", include_dirs=['src/'], - sources=["src/RIPEMD.c"], -@@ -79,9 +80,10 @@ class PCTBuildExt (build_ext): + sources=["src/MD4.c"]), +@@ -285,9 +282,10 @@ Extension("Crypto.Cipher.AES", include_dirs=['src/'], sources=["src/AES.c"]), @@ -29,57 +24,3 @@ $OpenBSD: patch-setup_py,v 1.3 2008/06/1 Extension("Crypto.Cipher.Blowfish", include_dirs=['src/'], sources=["src/Blowfish.c"]), -@@ -94,13 +96,14 @@ class PCTBuildExt (build_ext): - Extension("Crypto.Cipher.DES3", - include_dirs=['src/'], - sources=["src/DES3.c"]), -- Extension("Crypto.Cipher.IDEA", -- include_dirs=['src/'], -- sources=["src/IDEA.c"], -- libraries=HTONS_LIBS), -- Extension("Crypto.Cipher.RC5", -- include_dirs=['src/'], -- sources=["src/RC5.c"]), -+# Patented -+# Extension("Crypto.Cipher.IDEA", -+# include_dirs=['src/'], -+# sources=["src/IDEA.c"], -+# libraries=HTONS_LIBS), -+# Extension("Crypto.Cipher.RC5", -+# include_dirs=['src/'], -+# sources=["src/RC5.c"]), - - # Stream ciphers - Extension("Crypto.Cipher.ARC4", -@@ -116,14 +119,12 @@ class PCTBuildExt (build_ext): - build_ext.build_extensions(self) - - def detect_modules (self): -- lib_dirs = self.compiler.library_dirs + ['/lib', '/usr/lib'] -- inc_dirs = self.compiler.include_dirs + ['/usr/include'] - exts = [] -- if (self.compiler.find_library_file(lib_dirs, 'gmp')): -- exts.append(Extension("Crypto.PublicKey._fastmath", -- include_dirs=['src/'], -- libraries=['gmp'], -- sources=["src/_fastmath.c"])) -+ exts.append(Extension("Crypto.PublicKey._fastmath", -+ include_dirs=['src/', '${LOCALBASE}/include'], -+ library_dirs=['${LOCALBASE}/lib'], -+ libraries=['gmp'], -+ sources=["src/_fastmath.c"])) - self.extensions += exts - - kw = {'name':"pycrypto", -@@ -139,9 +140,9 @@ kw = {'name':"pycrypto", - 'package_dir' : { "Crypto":"." }, - # One module is defined here, because build_ext won't be - # called unless there's at least one extension module defined. -- 'ext_modules':[Extension("Crypto.Hash.MD2", -+ 'ext_modules':[Extension("Crypto.Hash.MD4", - include_dirs=['src/'], -- sources=["src/MD2.c"])], -+ sources=["src/MD4.c"])], - } - - # If we're running Python 2.3, add extra information Index: patches/patch-test_test_hashes_py =================================================================== RCS file: patches/patch-test_test_hashes_py diff -N patches/patch-test_test_hashes_py --- patches/patch-test_test_hashes_py 11 Jun 2008 02:59:32 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,24 +0,0 @@ -$OpenBSD: patch-test_test_hashes_py,v 1.2 2008/06/11 02:59:32 wcmaier Exp $ ---- test/test_hashes.py.orig Fri Aug 13 17:23:12 2004 -+++ test/test_hashes.py Wed May 28 20:55:21 2008 -@@ -10,7 +10,7 @@ from sancho.unittest import TestScenario, parse_args, - from Crypto.Hash import * - import testdata - --tested_modules = [ "Crypto.Hash.MD2", "Crypto.Hash.MD4", "Crypto.Hash.MD5", -+tested_modules = [ "Crypto.Hash.MD4", "Crypto.Hash.MD5", - "Crypto.Hash.RIPEMD", "Crypto.Hash.SHA", "Crypto.Hash.SHA256"] - - class HashTest (TestScenario): -@@ -55,11 +55,6 @@ class HashTest (TestScenario): - print 'Unable to measure time -- elapsed time too small' - else: - print '%.2f K/sec' % (128/(end-start)) -- -- def check_md2 (self): -- "MD2 module" -- self.run_test_suite(MD2, testdata.md2) -- self.benchmark(MD2) - - def check_md4 (self): - "MD4 module" Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/security/py-crypto/pkg/PLIST,v retrieving revision 1.6 diff -u -p -r1.6 PLIST --- pkg/PLIST 11 Jun 2008 02:59:32 -0000 1.6 +++ pkg/PLIST 30 Sep 2011 10:38:53 -0000 @@ -16,7 +16,9 @@ lib/python${MODPY_VERSION}/site-packages lib/python${MODPY_VERSION}/site-packages/Crypto/Hash/MD4.so lib/python${MODPY_VERSION}/site-packages/Crypto/Hash/MD5.py lib/python${MODPY_VERSION}/site-packages/Crypto/Hash/MD5.pyc -lib/python${MODPY_VERSION}/site-packages/Crypto/Hash/RIPEMD.so +lib/python${MODPY_VERSION}/site-packages/Crypto/Hash/RIPEMD.py +lib/python${MODPY_VERSION}/site-packages/Crypto/Hash/RIPEMD.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/Hash/RIPEMD160.so lib/python${MODPY_VERSION}/site-packages/Crypto/Hash/SHA.py lib/python${MODPY_VERSION}/site-packages/Crypto/Hash/SHA.pyc lib/python${MODPY_VERSION}/site-packages/Crypto/Hash/SHA256.so @@ -36,28 +38,167 @@ lib/python${MODPY_VERSION}/site-packages lib/python${MODPY_VERSION}/site-packages/Crypto/PublicKey/ElGamal.pyc lib/python${MODPY_VERSION}/site-packages/Crypto/PublicKey/RSA.py lib/python${MODPY_VERSION}/site-packages/Crypto/PublicKey/RSA.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/PublicKey/_DSA.py +lib/python${MODPY_VERSION}/site-packages/Crypto/PublicKey/_DSA.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/PublicKey/_RSA.py +lib/python${MODPY_VERSION}/site-packages/Crypto/PublicKey/_RSA.pyc lib/python${MODPY_VERSION}/site-packages/Crypto/PublicKey/__init__.py lib/python${MODPY_VERSION}/site-packages/Crypto/PublicKey/__init__.pyc -lib/python${MODPY_VERSION}/site-packages/Crypto/PublicKey/_fastmath.so +lib/python${MODPY_VERSION}/site-packages/Crypto/PublicKey/_slowmath.py +lib/python${MODPY_VERSION}/site-packages/Crypto/PublicKey/_slowmath.pyc lib/python${MODPY_VERSION}/site-packages/Crypto/PublicKey/pubkey.py lib/python${MODPY_VERSION}/site-packages/Crypto/PublicKey/pubkey.pyc lib/python${MODPY_VERSION}/site-packages/Crypto/PublicKey/qNEW.py lib/python${MODPY_VERSION}/site-packages/Crypto/PublicKey/qNEW.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/ +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/Fortuna/ +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/Fortuna/FortunaAccumulator.py +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/Fortuna/FortunaAccumulator.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/Fortuna/FortunaGenerator.py +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/Fortuna/FortunaGenerator.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/Fortuna/SHAd256.py +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/Fortuna/SHAd256.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/Fortuna/__init__.py +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/Fortuna/__init__.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/OSRNG/ +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/OSRNG/__init__.py +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/OSRNG/__init__.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/OSRNG/fallback.py +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/OSRNG/fallback.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/OSRNG/nt.py +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/OSRNG/nt.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/OSRNG/posix.py +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/OSRNG/posix.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/OSRNG/rng_base.py +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/OSRNG/rng_base.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/_UserFriendlyRNG.py +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/_UserFriendlyRNG.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/__init__.py +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/__init__.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/random.py +lib/python${MODPY_VERSION}/site-packages/Crypto/Random/random.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/ +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/ +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/__init__.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/__init__.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/common.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/common.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/test_AES.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/test_AES.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/test_ARC4.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/test_ARC4.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/test_Blowfish.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/test_Blowfish.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/test_CAST.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/test_CAST.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/test_DES.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/test_DES.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/test_DES3.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/test_DES3.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/test_XOR.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Cipher/test_XOR.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Hash/ +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Hash/__init__.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Hash/__init__.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Hash/common.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Hash/common.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Hash/test_HMAC.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Hash/test_HMAC.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Hash/test_MD4.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Hash/test_MD4.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Hash/test_MD5.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Hash/test_MD5.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Hash/test_RIPEMD.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Hash/test_RIPEMD.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Hash/test_SHA.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Hash/test_SHA.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Hash/test_SHA256.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Hash/test_SHA256.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Protocol/ +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Protocol/__init__.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Protocol/__init__.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Protocol/test_chaffing.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Protocol/test_chaffing.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Protocol/test_rfc1751.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Protocol/test_rfc1751.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/PublicKey/ +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/PublicKey/__init__.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/PublicKey/__init__.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/PublicKey/test_DSA.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/PublicKey/test_DSA.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/PublicKey/test_RSA.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/PublicKey/test_RSA.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/PublicKey/test_importKey.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/PublicKey/test_importKey.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/ +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/Fortuna/ +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/Fortuna/__init__.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/Fortuna/__init__.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/Fortuna/test_FortunaAccumulator.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/Fortuna/test_FortunaAccumulator.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/Fortuna/test_FortunaGenerator.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/Fortuna/test_FortunaGenerator.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/Fortuna/test_SHAd256.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/Fortuna/test_SHAd256.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/OSRNG/ +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/OSRNG/__init__.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/OSRNG/__init__.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/OSRNG/test_fallback.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/OSRNG/test_fallback.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/OSRNG/test_generic.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/OSRNG/test_generic.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/OSRNG/test_nt.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/OSRNG/test_nt.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/OSRNG/test_posix.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/OSRNG/test_posix.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/OSRNG/test_winrandom.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/OSRNG/test_winrandom.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/__init__.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/__init__.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/test_random.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/test_random.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/test_rpoolcompat.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Random/test_rpoolcompat.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Util/ +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Util/__init__.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Util/__init__.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Util/test_Counter.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Util/test_Counter.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Util/test_asn1.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Util/test_asn1.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Util/test_number.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Util/test_number.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Util/test_winrandom.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/Util/test_winrandom.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/__init__.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/__init__.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/st_common.py +lib/python${MODPY_VERSION}/site-packages/Crypto/SelfTest/st_common.pyc lib/python${MODPY_VERSION}/site-packages/Crypto/Util/ +lib/python${MODPY_VERSION}/site-packages/Crypto/Util/Counter.py +lib/python${MODPY_VERSION}/site-packages/Crypto/Util/Counter.pyc lib/python${MODPY_VERSION}/site-packages/Crypto/Util/RFC1751.py lib/python${MODPY_VERSION}/site-packages/Crypto/Util/RFC1751.pyc lib/python${MODPY_VERSION}/site-packages/Crypto/Util/__init__.py lib/python${MODPY_VERSION}/site-packages/Crypto/Util/__init__.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/Util/_counter.so +lib/python${MODPY_VERSION}/site-packages/Crypto/Util/_number_new.py +lib/python${MODPY_VERSION}/site-packages/Crypto/Util/_number_new.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/Util/asn1.py +lib/python${MODPY_VERSION}/site-packages/Crypto/Util/asn1.pyc lib/python${MODPY_VERSION}/site-packages/Crypto/Util/number.py lib/python${MODPY_VERSION}/site-packages/Crypto/Util/number.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/Util/python_compat.py +lib/python${MODPY_VERSION}/site-packages/Crypto/Util/python_compat.pyc lib/python${MODPY_VERSION}/site-packages/Crypto/Util/randpool.py lib/python${MODPY_VERSION}/site-packages/Crypto/Util/randpool.pyc -lib/python${MODPY_VERSION}/site-packages/Crypto/Util/test.py -lib/python${MODPY_VERSION}/site-packages/Crypto/Util/test.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/Util/strxor.so +lib/python${MODPY_VERSION}/site-packages/Crypto/Util/winrandom.py +lib/python${MODPY_VERSION}/site-packages/Crypto/Util/winrandom.pyc lib/python${MODPY_VERSION}/site-packages/Crypto/__init__.py lib/python${MODPY_VERSION}/site-packages/Crypto/__init__.pyc -lib/python${MODPY_VERSION}/site-packages/Crypto/test.py -lib/python${MODPY_VERSION}/site-packages/Crypto/test.pyc +lib/python${MODPY_VERSION}/site-packages/Crypto/pct_warnings.py +lib/python${MODPY_VERSION}/site-packages/Crypto/pct_warnings.pyc lib/python${MODPY_VERSION}/site-packages/pycrypto-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info share/doc/py-crypto/ share/doc/py-crypto/README