Skip to content

Commit 54cf118

Browse files
committed
Improved AsymmetricEncryptionTest.
1 parent 8b54052 commit 54cf118

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed

src/main/java/ro/kuberam/libs/java/crypto/encrypt/AsymmetricEncryption.java

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,23 +47,21 @@
4747
*/
4848
public class AsymmetricEncryption {
4949

50-
public static String encryptString(String data, String base64PublicKey, String transformationName)
50+
public static String encryptString(String data, PublicKey publicKey, String transformationName)
5151
throws CryptoException, IOException {
5252
String provider = "SUN";
5353

54-
return encryptString(data, base64PublicKey, transformationName, provider);
54+
return encryptString(data, publicKey, transformationName, provider);
5555
}
5656

57-
public static String encryptString(String data, String base64PublicKey, String transformationName, String provider)
57+
public static String encryptString(String data, PublicKey publicKey, String transformationName, String provider)
5858
throws CryptoException, IOException {
5959
byte[] dataBytes = data.getBytes(UTF_8);
60-
String algorithm = transformationName.split("/")[0];
6160
byte[] resultBytes = null;
6261

6362
Cipher cipher;
6463
try {
6564
cipher = Cipher.getInstance(transformationName);
66-
PublicKey publicKey = LoadPublicKey.run(base64PublicKey, algorithm, provider);
6765
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
6866
resultBytes = cipher.doFinal(dataBytes);
6967
} catch (IllegalBlockSizeException | BadPaddingException | NoSuchAlgorithmException | NoSuchPaddingException
@@ -76,23 +74,22 @@ public static String encryptString(String data, String base64PublicKey, String t
7674
return Base64.getEncoder().encodeToString(resultBytes);
7775
}
7876

79-
public static String decryptString(String encryptedData, String base64PrivateKey, String transformationName)
77+
public static String decryptString(String encryptedData, PrivateKey privateKey, String transformationName)
8078
throws CryptoException, IOException {
8179
String provider = "SUN";
8280

83-
return decryptString(encryptedData, base64PrivateKey, transformationName, provider);
81+
return decryptString(encryptedData, privateKey, transformationName, provider);
8482
}
8583

86-
public static String decryptString(String encryptedData, String base64PrivateKey, String transformationName,
84+
public static String decryptString(String encryptedData, PrivateKey privateKey, String transformationName,
8785
String provider) throws CryptoException, IOException {
8886
byte[] dataBytes = Base64.getDecoder().decode(encryptedData);
89-
String algorithm = transformationName.split("/")[0];
9087
byte[] resultBytes = null;
9188

9289
Cipher cipher;
9390
try {
9491
cipher = Cipher.getInstance(transformationName);
95-
cipher.init(Cipher.DECRYPT_MODE, LoadPrivateKey.run(base64PrivateKey, algorithm, provider));
92+
cipher.init(Cipher.DECRYPT_MODE, privateKey);
9693
resultBytes = cipher.doFinal(dataBytes);
9794
} catch (IllegalBlockSizeException | BadPaddingException | NoSuchAlgorithmException | NoSuchPaddingException
9895
| InvalidKeyException e) {

src/test/java/ro/kuberam/libs/java/crypto/encrypt/AsymmetricEncryptionTest.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,29 @@
2424

2525
import java.nio.file.Files;
2626
import java.nio.file.Paths;
27+
import java.security.PrivateKey;
28+
import java.security.PublicKey;
2729

2830
import org.junit.Test;
2931

3032
import ro.kuberam.libs.java.crypto.CryptoModuleTests;
33+
import ro.kuberam.libs.java.crypto.keyManagement.LoadPrivateKey;
34+
import ro.kuberam.libs.java.crypto.keyManagement.LoadPublicKey;
3135

3236
public class AsymmetricEncryptionTest extends CryptoModuleTests {
3337

3438
@Test
3539
public void encryptStringWithRsaAsymmetricKey() throws Exception {
3640
String transformation = "RSA/ECB/PKCS1Padding";
37-
String publicKey = new String(
41+
String algorithm = "RSA";
42+
43+
String base64PublicKey = new String(
3844
Files.readAllBytes(Paths.get(getClass().getResource("../rsa-public-key.key").toURI())), UTF_8);
39-
String privateKey = new String(
45+
PublicKey publicKey = LoadPublicKey.run(base64PublicKey, algorithm, null);
46+
47+
String base64PrivateKey = new String(
4048
Files.readAllBytes(Paths.get(getClass().getResource("../rsa-private-key.key").toURI())), UTF_8);
49+
PrivateKey privateKey = LoadPrivateKey.run(base64PrivateKey, algorithm, null);
4150

4251
String encryptedText = AsymmetricEncryption.encryptString(longString, publicKey, transformation);
4352
String decryptedText = AsymmetricEncryption.decryptString(encryptedText, privateKey, transformation);

0 commit comments

Comments
 (0)