mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-12-19 07:00:35 +08:00
65 lines
2.2 KiB
Java
65 lines
2.2 KiB
Java
package com.thealgorithms.ciphers;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
|
|
|
import java.math.BigInteger;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
class RSATest {
|
|
|
|
private final RSA rsa = new RSA(1024);
|
|
|
|
@Test
|
|
void testEncryptDecryptString() {
|
|
String originalMessage = "Such secure";
|
|
String encryptedMessage = rsa.encrypt(originalMessage);
|
|
String decryptedMessage = rsa.decrypt(encryptedMessage);
|
|
assertEquals(originalMessage, decryptedMessage);
|
|
}
|
|
|
|
@Test
|
|
void testEncryptDecryptBigInteger() {
|
|
BigInteger originalMessage = new BigInteger("12345678901234567890");
|
|
BigInteger encryptedMessage = rsa.encrypt(originalMessage);
|
|
BigInteger decryptedMessage = rsa.decrypt(encryptedMessage);
|
|
assertEquals(originalMessage, decryptedMessage);
|
|
}
|
|
|
|
@Test
|
|
void testEmptyMessage() {
|
|
String originalMessage = "";
|
|
assertThrows(IllegalArgumentException.class, () -> rsa.encrypt(originalMessage));
|
|
assertThrows(IllegalArgumentException.class, () -> rsa.decrypt(originalMessage));
|
|
}
|
|
|
|
@Test
|
|
void testDifferentKeySizes() {
|
|
// Testing with 512-bit RSA keys
|
|
RSA smallRSA = new RSA(512);
|
|
String originalMessage = "Test with smaller key";
|
|
|
|
String encryptedMessage = smallRSA.encrypt(originalMessage);
|
|
String decryptedMessage = smallRSA.decrypt(encryptedMessage);
|
|
|
|
assertEquals(originalMessage, decryptedMessage);
|
|
|
|
// Testing with 2048-bit RSA keys
|
|
RSA largeRSA = new RSA(2048);
|
|
String largeOriginalMessage = "Test with larger key";
|
|
|
|
String largeEncryptedMessage = largeRSA.encrypt(largeOriginalMessage);
|
|
String largeDecryptedMessage = largeRSA.decrypt(largeEncryptedMessage);
|
|
|
|
assertEquals(largeOriginalMessage, largeDecryptedMessage);
|
|
}
|
|
|
|
@Test
|
|
void testSpecialCharacters() {
|
|
String originalMessage = "Hello, RSA! @2024#";
|
|
String encryptedMessage = rsa.encrypt(originalMessage);
|
|
String decryptedMessage = rsa.decrypt(encryptedMessage);
|
|
assertEquals(originalMessage, decryptedMessage);
|
|
}
|
|
}
|