def mock_crypto_passthrough():
count = 0
def mocked_urandom(size):
nonlocal count
count += 1
if size > 16:
template = '<dummy-key-{:0>%s}>' % (size - 12)
else:
template = '{:0>%s}' % size
return template.format(count).encode()
with patch.object(RSAPublicKey, 'encrypt', new=lambda _, txt: txt), \
patch.object(RSAPublicKey, 'verify', new=lambda _, sign, txt: None), \
patch.object(RSAPrivateKey, 'decrypt', new=lambda _, txt: txt), \
patch.object(RSAPrivateKey, 'sign', new=lambda _, txt: '<mock-signature>'), \
patch.object(RSAPrivateKey, 'export',
new=lambda _, pwd: ('<mock-exported-key with password %s>' % pwd).encode()), \
patch.object(AESKey, 'encrypt', new=lambda _, txt: txt), \
patch.object(AESKey, 'decrypt', new=lambda _, txt: txt), \
patch('parsec.crypto.urandom', new=mocked_urandom), \
patch('parsec.crypto.encrypt_with_password', new=lambda p, s, t: t), \
patch('parsec.crypto.decrypt_with_password', new=lambda p, s, c: c):
yield
评论列表
文章目录