-
Notifications
You must be signed in to change notification settings - Fork 184
/
RSAPrivacyEncryptorTest.java
37 lines (30 loc) · 1.24 KB
/
RSAPrivacyEncryptorTest.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
package com.wechat.pay.java.core.cipher;
import static com.wechat.pay.java.core.model.TestConfig.*;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
public class RSAPrivacyEncryptorTest {
private static RSAPrivacyEncryptor rsaPrivacyEncryptor;
private static RSAPrivacyDecryptor rsaPrivacyDecryptor;
private static final String PLAINTEXT = "plaintext";
@BeforeClass
public static void init() {
rsaPrivacyEncryptor =
new RSAPrivacyEncryptor(
MERCHANT_CERTIFICATE.getPublicKey(), MERCHANT_CERTIFICATE_SERIAL_NUMBER);
rsaPrivacyDecryptor = new RSAPrivacyDecryptor(MERCHANT_PRIVATE_KEY);
}
@Test
public void testEncryptWithOAEP() {
String ciphertext = rsaPrivacyEncryptor.encrypt(PLAINTEXT);
String decryptMessage = rsaPrivacyDecryptor.decrypt(ciphertext);
Assert.assertEquals(PLAINTEXT, decryptMessage);
Assert.assertEquals(
MERCHANT_CERTIFICATE_SERIAL_NUMBER, rsaPrivacyEncryptor.getWechatpaySerial());
}
@Test(expected = IllegalArgumentException.class)
public void testEncryptTooLargePlaintext() {
int paddingLen = 2 * 20 + 2; // OAEP adds 2 * sha1's length + 2 padding
rsaPrivacyEncryptor.encrypt(new String(new char[256 - paddingLen + 1]));
}
}