Esempio n. 1
0
 def test_get_provider_xor(self):
     kf = KeyFile('asdf.txt')
     kf._KeyFile__key = b'x' * 32
     provider, method = kf._get_provider('xor')
     assert isinstance(provider, XorProvider)
     assert provider._XorProvider__key == b'x' * 32
     assert method == 'xor'
Esempio n. 2
0
 def test_get_provider_aes(self):
     kf = KeyFile('asdf.txt')
     kf._KeyFile__key = b'x' * 32
     provider, method = kf._get_provider('aes')
     assert isinstance(provider, AesProvider)
     assert provider._AesProvider__key == b'x' * 32
     assert method == 'aes'
Esempio n. 3
0
    def test_decrypt(self):
        provider = StubProvider()
        kf = KeyFile('asdf.txt')
        kf._KeyFile__key = b'x' * 32
        kf._get_provider = MagicMock(return_value=provider)

        text = kf.decrypt(SecureValue('test', b'hello'))
        provider.decrypt.assert_called_once_with(b'hello')
        kf._get_provider.assert_called_once_with('test')
        assert text == b'plaintext'
Esempio n. 4
0
    def test_encrypt(self):
        provider = StubProvider()
        kf = KeyFile('asdf.txt')
        kf._KeyFile__key = b'x' * 32
        kf._get_provider = MagicMock(return_value=provider)

        secret = kf.encrypt('hello', 'test')
        provider.encrypt.assert_called_once_with(b'hello')
        kf._get_provider.assert_called_once_with('test')
        assert secret == SecureValue('test', b'ciphertext')
Esempio n. 5
0
    def test_with(self, load_key):
        kf = KeyFile('asdf.txt')
        with kf as kf2:
            kf._KeyFile__key = 'asdf'
            assert kf is kf2
            assert kf._KeyFile__refcount == 1
            load_key.assert_called_once_with()

            with kf as kf3:
                assert kf._KeyFile__refcount == 2
                assert kf3 is kf
                assert kf._KeyFile__key == 'asdf'

            assert kf._KeyFile__refcount == 1
            assert kf._KeyFile__key == 'asdf'

        assert kf._KeyFile__refcount == 0
        assert kf._KeyFile__key is None
Esempio n. 6
0
 def test_get_provider_unknown(self):
     kf = KeyFile('asdf.txt')
     kf._KeyFile__key = b'x' * 32
     with pytest.raises(TypeError):
         kf._get_provider('balh')
Esempio n. 7
0
 def test_get_provider_xor(self):
     kf = KeyFile('asdf.txt')
     kf._KeyFile__key = b'x' * 32
     p = kf._get_provider('xor')
     assert isinstance(p, XorProvider)
     assert p._XorProvider__key == b'x' * 32
Esempio n. 8
0
 def test_get_provider_aes(self):
     kf = KeyFile('asdf.txt')
     kf._KeyFile__key = b'x' * 32
     p = kf._get_provider('aes')
     assert isinstance(p, AesProvider)
     assert p._AesProvider__key == b'x' * 32
Esempio n. 9
0
 def test_validate_success(self):
     kf = KeyFile('asdf')
     kf._KeyFile__key = b'x' * 32
     kf._validate_key()
Esempio n. 10
0
 def test_validate_short(self):
     kf = KeyFile('asdf')
     kf._KeyFile__key = b'x' * 31
     with pytest.raises(EncryptionError):
         kf._validate_key()
Esempio n. 11
0
 def test_encrypt_best_xor(self):
     kf = KeyFile('asdf.txt')
     kf._KeyFile__key = b'x' * 32
     assert isinstance(kf._get_provider(method='best'), XorProvider)
Esempio n. 12
0
 def test_encrypt_best_aes(self):
     kf = KeyFile('asdf.txt')
     kf._KeyFile__key = b'x' * 32
     provider, method = kf._get_provider(method='best')
     assert isinstance(provider, AesProvider)
     assert method == 'aes'