- 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
packagecom.thealgorithms.ciphers;
importstaticorg.junit.jupiter.api.Assertions.assertEquals;
importstaticorg.junit.jupiter.api.Assertions.assertThrows;
importjava.math.BigInteger;
importorg.junit.jupiter.api.Test;
classRSATest {
privatefinalRSArsa = newRSA(1024);
@Test
voidtestEncryptDecryptString() {
StringoriginalMessage = "Such secure";
StringencryptedMessage = rsa.encrypt(originalMessage);
StringdecryptedMessage = rsa.decrypt(encryptedMessage);
assertEquals(originalMessage, decryptedMessage);
}
@Test
voidtestEncryptDecryptBigInteger() {
BigIntegeroriginalMessage = newBigInteger("12345678901234567890");
BigIntegerencryptedMessage = rsa.encrypt(originalMessage);
BigIntegerdecryptedMessage = rsa.decrypt(encryptedMessage);
assertEquals(originalMessage, decryptedMessage);
}
@Test
voidtestEmptyMessage() {
StringoriginalMessage = "";
assertThrows(IllegalArgumentException.class, () -> rsa.encrypt(originalMessage));
assertThrows(IllegalArgumentException.class, () -> rsa.decrypt(originalMessage));
}
@Test
voidtestDifferentKeySizes() {
// Testing with 512-bit RSA keys
RSAsmallRSA = newRSA(512);
StringoriginalMessage = "Test with smaller key";
StringencryptedMessage = smallRSA.encrypt(originalMessage);
StringdecryptedMessage = smallRSA.decrypt(encryptedMessage);
assertEquals(originalMessage, decryptedMessage);
// Testing with 2048-bit RSA keys
RSAlargeRSA = newRSA(2048);
StringlargeOriginalMessage = "Test with larger key";
StringlargeEncryptedMessage = largeRSA.encrypt(largeOriginalMessage);
StringlargeDecryptedMessage = largeRSA.decrypt(largeEncryptedMessage);
assertEquals(largeOriginalMessage, largeDecryptedMessage);
}
@Test
voidtestSpecialCharacters() {
StringoriginalMessage = "Hello, RSA! @2024#";
StringencryptedMessage = rsa.encrypt(originalMessage);
StringdecryptedMessage = rsa.decrypt(encryptedMessage);
assertEquals(originalMessage, decryptedMessage);
}
}