コード例 #1
0
ファイル: des3_decrypter.py プロジェクト: ryanmjones/dfvfs
    def testDecrypt(self):
        """Tests the Decrypt method."""
        decrypter = des3_decrypter.DES3Decrypter(
            cipher_mode=definitions.ENCRYPTION_MODE_CBC,
            initialization_vector=self._DES3_INITIALIZATION_VECTOR,
            key=self._DES3_KEY)

        # Test full decryption.
        decrypted_data, _ = decrypter.Decrypt(
            b'e\x86k\t\x01W\xd7d\xe4\xa4\xb3~\x80\xd3\xc3\x7fq{E}:L\n '
            b'.2\xd1\xcf\x8a\xf1\xa0!')
        expected_decrypted_data = b'This is secret encrypted text!!!'
        self.assertEqual(expected_decrypted_data, decrypted_data)

        # Reset decrypter.
        decrypter = des3_decrypter.DES3Decrypter(
            cipher_mode=definitions.ENCRYPTION_MODE_CBC,
            initialization_vector=self._DES3_INITIALIZATION_VECTOR,
            key=self._DES3_KEY)

        # Test partial decryption.
        decrypted_data, encrypted_data = decrypter.Decrypt(
            b'e\x86k\t\x01W\xd7d\xe4\xa4\xb3~\x80')
        expected_decrypted_data = b'This is '
        expected_encrypted_data = b'\xe4\xa4\xb3~\x80'
        self.assertEqual(expected_decrypted_data, decrypted_data)
        self.assertEqual(expected_encrypted_data, encrypted_data)

        decrypted_data, encrypted_data = decrypter.Decrypt(
            b'\xe4\xa4\xb3~\x80\xd3\xc3\x7fq{E}:L\n '
            b'.2\xd1\xcf\x8a\xf1\xa0!')
        expected_decrypted_data = b'secret encrypted text!!!'
        expected_encrypted_data = b''
        self.assertEqual(expected_decrypted_data, decrypted_data)
        self.assertEqual(expected_encrypted_data, encrypted_data)
コード例 #2
0
ファイル: des3_decrypter.py プロジェクト: ryanmjones/dfvfs
    def testInitialization(self):
        """Tests the initialization method."""
        # Test missing arguments.
        with self.assertRaises(ValueError):
            des3_decrypter.DES3Decrypter()

        # Test unsupport block cipher mode.
        with self.assertRaises(ValueError):
            des3_decrypter.DES3Decrypter(cipher_mode='bogus',
                                         key=self._DES3_KEY)

        # Test missing initialization vector.
        with self.assertRaises(ValueError):
            des3_decrypter.DES3Decrypter(
                cipher_mode=definitions.ENCRYPTION_MODE_CBC,
                key=self._DES3_KEY)

        # Test missing initialization vector with valid block cipher mode.
        des3_decrypter.DES3Decrypter(
            cipher_mode=definitions.ENCRYPTION_MODE_ECB, key=self._DES3_KEY)

        # Test incorrect key size.
        with self.assertRaises(ValueError):
            des3_decrypter.DES3Decrypter(
                cipher_mode=definitions.ENCRYPTION_MODE_ECB,
                key='Wrong key size')

        # Test incorrect initialization vector size.
        with self.assertRaises(ValueError):
            des3_decrypter.DES3Decrypter(
                cipher_mode=definitions.ENCRYPTION_MODE_CBC,
                initialization_vector='Wrong IV size',
                key=self._DES3_KEY)