-
Notifications
You must be signed in to change notification settings - Fork 19.9k
/
Copy pathRSATest.java
64 lines (50 loc) · 2.17 KB
/
RSATest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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 {
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);
}
}