コード例 #1
0
class HybridCryptoTestCase(unittest.TestCase):
    def setUp(self):
        self._fixtures_dir = pjoin(BASE_DIR, 'fixtures/')

        self._dir1 = pjoin(self._fixtures_dir, 'public/')
        self._dir2 = pjoin(self._fixtures_dir, 'private/')

        self._encrypter = HybridCryptoEncrypter(keys_path=self._dir1)
        self._decrypter = HybridCryptoDecrypter(keys_path=self._dir2)

    def test_aes_encrypt_and_decrypt_round_trip(self):
        test_data = [
            'foo',
            'foo bar ponies',
            'ponies bar foo ponies',
            'abcd12345'
            'test99',
            'a' * 500 + 'b' * 500 + 'c' * 1000
        ]

        key = RandBytes(n=(256/8))

        for plain_text in test_data:
            encrypted = self._encrypter._aes_encrypt(key=key, data=plain_text)
            self.assertNotEqual(encrypted, plain_text)

            decrypted = self._decrypter._aes_decrypt(key=key, data=encrypted)
            self.assertEqual(decrypted, plain_text)

    def test_encrypt_and_decrypt_round_trip(self):
        test_data = [
            # Short messages (only public-key cryptography is used)
            'foo',
            'foo bar ponies',
            'ponies bar foo ponies',
            'abcd12345'
            'test99',
            'a' * 214,  # 2048 / 8 - 41

            # Long messages (PKC + AES CBC is used)
            'a' * 500 + 'b' * 500 + 'c' * 500,
            'test' * 100
        ]

        for data in test_data:
            encrypted = self._encrypter.encrypt(data=data)
            self.assertNotEqual(encrypted, data)

            decrypted = self._decrypter.decrypt(data=encrypted)
            self.assertEqual(decrypted, data)
コード例 #2
0
class HybridCryptoTestCase(unittest.TestCase):
    def setUp(self):
        self._fixtures_dir = pjoin(BASE_DIR, 'fixtures/')

        self._dir1 = pjoin(self._fixtures_dir, 'public/')
        self._dir2 = pjoin(self._fixtures_dir, 'private/')

        self._encrypter = HybridCryptoEncrypter(keys_path=self._dir1)
        self._decrypter = HybridCryptoDecrypter(keys_path=self._dir2)

    def test_aes_encrypt_and_decrypt_round_trip(self):
        test_data = [
            'foo', 'foo bar ponies', 'ponies bar foo ponies', 'abcd12345'
            'test99', 'a' * 500 + 'b' * 500 + 'c' * 1000
        ]

        key = RandBytes(n=(256 / 8))

        for plain_text in test_data:
            encrypted = self._encrypter._aes_encrypt(key=key, data=plain_text)
            self.assertNotEqual(encrypted, plain_text)

            decrypted = self._decrypter._aes_decrypt(key=key, data=encrypted)
            self.assertEqual(decrypted, plain_text)

    def test_encrypt_and_decrypt_round_trip(self):
        test_data = [
            # Short messages (only public-key cryptography is used)
            'foo',
            'foo bar ponies',
            'ponies bar foo ponies',
            'abcd12345'
            'test99',
            'a' * 214,  # 2048 / 8 - 41

            # Long messages (PKC + AES CBC is used)
            'a' * 500 + 'b' * 500 + 'c' * 500,
            'test' * 100
        ]

        for data in test_data:
            encrypted = self._encrypter.encrypt(data=data)
            self.assertNotEqual(encrypted, data)

            decrypted = self._decrypter.decrypt(data=encrypted)
            self.assertEqual(decrypted, data)