Enhance docs, add more tests in RSA (#5898)

This commit is contained in:
Hardik Pawar
2024-10-26 20:20:32 +05:30
committed by GitHub
parent 3de202b953
commit 4d85c61c37
2 changed files with 116 additions and 22 deletions

View File

@ -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);
}
}