test_crypto.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:parsec-cloud 作者: Scille 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号