56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
"""Test Crypto"""
|
|
|
|
import sys
|
|
import unittest
|
|
|
|
from utils.crypto import AesBase64
|
|
|
|
sys.path.append("..") # Adds higher directory to python modules path.
|
|
|
|
|
|
class TestAesBase64(unittest.TestCase):
|
|
def test_aes_base64_encryption(self):
|
|
key = "This is a key123"
|
|
iv = "This is an iv456"
|
|
aes = AesBase64(key, iv)
|
|
content = "Some text for encryption."
|
|
encrypted_content = aes.encrypt(content)
|
|
decrypted_content = aes.decrypt(encrypted_content)
|
|
self.assertEqual(content, decrypted_content)
|
|
|
|
def test_aes_base64_encryption_with_special_characters(self):
|
|
key = "Special!@#$%^&*("
|
|
iv = "Characters123456"
|
|
aes = AesBase64(key, iv)
|
|
content = "Text with special characters!@#$%^&*()_+-=[]{}|;"
|
|
encrypted_content = aes.encrypt(content)
|
|
decrypted_content = aes.decrypt(encrypted_content)
|
|
self.assertEqual(content, decrypted_content)
|
|
|
|
def test_aes_base64_encryption_with_empty_string(self):
|
|
key = "Empty string tes"
|
|
iv = "1234567890123456"
|
|
aes = AesBase64(key, iv)
|
|
content = ""
|
|
encrypted_content = aes.encrypt(content)
|
|
decrypted_content = aes.decrypt(encrypted_content)
|
|
self.assertEqual(content, decrypted_content)
|
|
|
|
def test_aes_base64_pkcs7padding(self):
|
|
key = "Test padding key"
|
|
iv = "1234567890123456"
|
|
aes = AesBase64(key, iv)
|
|
content = "Test padding."
|
|
padded_content = aes.pkcs7padding(content)
|
|
self.assertEqual(len(padded_content) % 16, 0)
|
|
self.assertEqual(padded_content[-1], chr(16 - len(content) % 16))
|
|
|
|
def test_aes_base64_pkcs7unpadding(self):
|
|
key = "Test unpadding key"
|
|
iv = "1234567890123456"
|
|
aes = AesBase64(key, iv)
|
|
content = "Test unpadding."
|
|
padded_content = aes.pkcs7padding(content)
|
|
unpadded_content = aes.pkcs7unpadding(padded_content)
|
|
self.assertEqual(unpadded_content, content)
|