コード例 #1
0
    def test_cbc_on_file(self):
        data_size = 16

        key = helper.generate_random_key(data_size)
        key_schedule = aes.gen_key_schedule(key)

        iv = helper.initialization_vector(data_size)
        iv = helper.convert_to_state_matrix(iv)

        aes_io.encrypt_file(key_schedule,
                            self.test_file_path,
                            self.test_encrypt_path,
                            chunk_size=data_size,
                            mode=aes.Mode.cbc,
                            iv=iv)
        self.assertFalse(
            filecmp.cmp(self.test_file_path, self.test_encrypt_path))

        aes_io.decrypt_file(key_schedule,
                            self.test_encrypt_path,
                            self.test_decrypt_path,
                            chunk_size=data_size,
                            mode=aes.Mode.cbc,
                            iv=iv)
        self.assertTrue(
            filecmp.cmp(self.test_file_path, self.test_decrypt_path))
コード例 #2
0
def main():

    # Testing has been moved to aes_test.py

    key = helper.generate_random_key(16)
    key_schedule, _ = aes.gen_key_schedule(key)

    encrypt_file(key_schedule, test_file_path, test_encrypt_path)
    print(filecmp.cmp(test_file_path, test_encrypt_path))

    decrypt_file(key_schedule, test_encrypt_path, test_decrypt_path)
    # Testing to see if decrypted file is same as original
    print(filecmp.cmp(test_file_path, test_decrypt_path))
コード例 #3
0
    def test_ecb_on_string(self):
        data = helper.get_byte_list_from(
            "This is a secret message. Such secret. Much crypto. Wow aes. xD.")

        key = helper.generate_random_key(16)
        key_schedule = aes.gen_key_schedule(key)

        encrypt = aes.ecb_encryption(key_schedule)
        encrypted_data = encrypt(data)

        decrypt = aes.ecb_decryption(key_schedule)
        decrypted_data = decrypt(encrypted_data)

        self.assertTrue(data == decrypted_data)
        self.assertTrue(not data is decrypted_data)
コード例 #4
0
    def test_ecb_on_file(self):
        key = helper.generate_random_key(16)
        key_schedule = aes.gen_key_schedule(key)

        aes_io.encrypt_file(key_schedule,
                            self.test_file_path,
                            self.test_encrypt_path,
                            mode=aes.Mode.ecb)
        self.assertFalse(
            filecmp.cmp(self.test_file_path, self.test_encrypt_path))

        aes_io.decrypt_file(key_schedule,
                            self.test_encrypt_path,
                            self.test_decrypt_path,
                            mode=aes.Mode.ecb)
        self.assertTrue(
            filecmp.cmp(self.test_file_path, self.test_decrypt_path))
コード例 #5
0
    def test_cbc_on_string(self):
        data = helper.get_byte_list_from("1234567891234567")

        data_size = len(data) * 4

        key = helper.generate_random_key(data_size)
        key_schedule = aes.gen_key_schedule(key)

        iv = helper.initialization_vector(data_size)
        iv = helper.convert_to_state_matrix(iv)

        encrypt = aes.cbc_encryption(key_schedule, iv)
        encrypted_data = encrypt(data)

        decrypt = aes.cbc_decryption(key_schedule, iv)
        decrypted_data = decrypt(encrypted_data)

        self.assertTrue(data == decrypted_data)
        self.assertTrue(not data is decrypted_data)
コード例 #6
0
ファイル: aes_gui.py プロジェクト: user404d/CS6001-AES
def get_key_schedule(key_as_str):
    key = helper.convert_hex_to_bytes(key_as_str)
    return aes.gen_key_schedule(key)