blob: a991415c8d264443b0c95c72b2fc0caba7626f9f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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')
|