diff options
author | Micah Anderson <micah@riseup.net> | 2013-08-22 16:39:52 -0400 |
---|---|---|
committer | Micah Anderson <micah@riseup.net> | 2013-08-22 16:57:38 -0400 |
commit | 6d35b188b668c5007409e63a15e8340ed34dcfb8 (patch) | |
tree | c9dd25f3675b3b6f9b29b0786057f8a4d377bc2b /src/pycryptopp/test/test_from_Nikratio.py | |
parent | 86a1089dc6694f58d0f3356bdf9c8fe4061421f5 (diff) | |
parent | 5e60e0e3af85f22aa0afe8bf0ecf85619afacfeb (diff) |
Merge tag 'upstream/0.6.0.12'
Upstream version 0.6.0.12
Diffstat (limited to 'src/pycryptopp/test/test_from_Nikratio.py')
-rw-r--r-- | src/pycryptopp/test/test_from_Nikratio.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/pycryptopp/test/test_from_Nikratio.py b/src/pycryptopp/test/test_from_Nikratio.py new file mode 100644 index 0000000..a991415 --- /dev/null +++ b/src/pycryptopp/test/test_from_Nikratio.py @@ -0,0 +1,32 @@ +import unittest + +# This was reported as triggering a "Use of uninitialised value of +# size 4" under valgrind by Nikratio in pycryptopp-0.5.17 and Crypto++ +# 5.6.0. See http://tahoe-lafs.org/trac/pycryptopp/ticket/67 + +class T(unittest.TestCase): + def test_t(self): + import hmac + import pycryptopp + try: + import hashlib + except ImportError: + # Oh nevermind. + return + import struct + + def encrypt(buf, passphrase, nonce): + + key = hashlib.sha256(passphrase + nonce).digest() + cipher = pycryptopp.cipher.aes.AES(key) + hmac_ = hmac.new(key, digestmod=hashlib.sha256) + + hmac_.update(buf) + buf = cipher.process(buf) + hash_ = cipher.process(hmac_.digest()) + + return ''.join( + (struct.pack('<B', len(nonce)), + nonce, hash_, buf)) + + encrypt('foobar', 'passphrase', 'nonce') |