mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-07-07 09:45:04 +08:00
Enhance docs, add more tests in RSA
(#5898)
This commit is contained in:
@ -1,23 +1,64 @@
|
||||
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 {
|
||||
|
||||
RSA rsa = new RSA(1024);
|
||||
private final RSA rsa = new RSA(1024);
|
||||
|
||||
@Test
|
||||
void testRSA() {
|
||||
// given
|
||||
String textToEncrypt = "Such secure";
|
||||
void testEncryptDecryptString() {
|
||||
String originalMessage = "Such secure";
|
||||
String encryptedMessage = rsa.encrypt(originalMessage);
|
||||
String decryptedMessage = rsa.decrypt(encryptedMessage);
|
||||
assertEquals(originalMessage, decryptedMessage);
|
||||
}
|
||||
|
||||
// when
|
||||
String cipherText = rsa.encrypt(textToEncrypt);
|
||||
String decryptedText = rsa.decrypt(cipherText);
|
||||
@Test
|
||||
void testEncryptDecryptBigInteger() {
|
||||
BigInteger originalMessage = new BigInteger("12345678901234567890");
|
||||
BigInteger encryptedMessage = rsa.encrypt(originalMessage);
|
||||
BigInteger decryptedMessage = rsa.decrypt(encryptedMessage);
|
||||
assertEquals(originalMessage, decryptedMessage);
|
||||
}
|
||||
|
||||
// then
|
||||
assertEquals("Such secure", decryptedText);
|
||||
@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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user