diff --git a/DIRECTORY.md b/DIRECTORY.md index 90b26ae98797..4b98173a4e85 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -636,6 +636,7 @@ * [A5CipherTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/a5/A5CipherTest.java) * [A5KeyStreamGeneratorTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/a5/A5KeyStreamGeneratorTest.java) * [LFSRTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/a5/LFSRTest.java) + * [AESEncryptionTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/AESEncryptionTest.java) * [AutokeyTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/AutokeyTest.java) * [BlowfishTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/BlowfishTest.java) * [CaesarTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/CaesarTest.java) diff --git a/src/test/java/com/thealgorithms/ciphers/AESEncryptionTest.java b/src/test/java/com/thealgorithms/ciphers/AESEncryptionTest.java new file mode 100644 index 000000000000..2f0831e35064 --- /dev/null +++ b/src/test/java/com/thealgorithms/ciphers/AESEncryptionTest.java @@ -0,0 +1,62 @@ +package com.thealgorithms.ciphers; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import javax.crypto.SecretKey; +import org.junit.jupiter.api.Test; + +public class AESEncryptionTest { + + @Test + public void testGetSecretEncryptionKey() throws Exception { + SecretKey key = AESEncryption.getSecretEncryptionKey(); + assertNotNull(key, "Secret key should not be null"); + assertEquals(128, key.getEncoded().length * 8, "Key size should be 128 bits"); + } + + @Test + public void testEncryptText() throws Exception { + String plainText = "Hello World"; + SecretKey secKey = AESEncryption.getSecretEncryptionKey(); + byte[] cipherText = AESEncryption.encryptText(plainText, secKey); + + assertNotNull(cipherText, "Ciphertext should not be null"); + assertTrue(cipherText.length > 0, "Ciphertext should not be empty"); + } + + @Test + public void testDecryptText() throws Exception { + String plainText = "Hello World"; + SecretKey secKey = AESEncryption.getSecretEncryptionKey(); + byte[] cipherText = AESEncryption.encryptText(plainText, secKey); + + // Decrypt the ciphertext + String decryptedText = AESEncryption.decryptText(cipherText, secKey); + + assertNotNull(decryptedText, "Decrypted text should not be null"); + assertEquals(plainText, decryptedText, "Decrypted text should match the original plain text"); + } + + @Test + public void testEncryptDecrypt() throws Exception { + String plainText = "Hello AES!"; + SecretKey secKey = AESEncryption.getSecretEncryptionKey(); + + // Encrypt the plaintext + byte[] cipherText = AESEncryption.encryptText(plainText, secKey); + + // Decrypt the ciphertext + String decryptedText = AESEncryption.decryptText(cipherText, secKey); + + assertEquals(plainText, decryptedText, "Decrypted text should match the original plain text"); + } + + @Test + public void testBytesToHex() { + byte[] bytes = new byte[] {0, 1, 15, 16, (byte) 255}; // Test with diverse byte values + String hex = AESEncryption.bytesToHex(bytes); + assertEquals("00010F10FF", hex, "Hex representation should match the expected value"); + } +}
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: