diff --git a/src/main/java/racal/sunyard/main/SydApi4j.java b/src/main/java/racal/sunyard/main/SydApi4j.java index 47f065c..7bde953 100644 --- a/src/main/java/racal/sunyard/main/SydApi4j.java +++ b/src/main/java/racal/sunyard/main/SydApi4j.java @@ -4025,8 +4025,6 @@ public class SydApi4j implements SydApi { throw new SydApiException(error.getInfo(), error.autoInt()); } - System.out.println("内部输出: " + Util.bytes2HexString(((PacketSection) ret.get("cipherData")).getBytes())); - return SYMUtil.derEnData2Base64EnC1C2C3(((PacketSection) ret.get("cipherData")).getBytes()); } @@ -4161,8 +4159,6 @@ public class SydApi4j implements SydApi { byte[] pOrgData = SYMUtil.base64EnData2DerEnDataC1C2C3(enData); - System.out.println("解密内部输出: " + Util.bytes2HexString(pOrgData)); - // 填充数据 HashMap packet = new HashMap(); HashMap data = new HashMap(); diff --git a/src/test/java/com/sunyard/sydapi/test/TestGSYH.java b/src/test/java/com/sunyard/sydapi/test/TestGSYH.java index 8235081..e7fc6a3 100644 --- a/src/test/java/com/sunyard/sydapi/test/TestGSYH.java +++ b/src/test/java/com/sunyard/sydapi/test/TestGSYH.java @@ -201,10 +201,12 @@ public class TestGSYH { // 78 @Test public void testSM2DecryptOrder() { - String certId = "1111111111111151"; - String publicKey = "034200048043AF118B45629857DB693105849B2617FED249D59DFD29BE9A891ADEE7441A2D8C62020953DAEF038184E0244310CF2123C507F26F5380FFECC8D53E79B24E"; + String userId = "1111111111111151"; String orgData = "FfffffffffffffFfffffffffffffffff"; + // 通过用户id获取公钥 + String publicKey = api.SM2GetPublicKeyC(userId, SydApi.FOR_ENCRYPT); + /** * 用指定的 SM2 公钥对指定的密文数据进行加密。 * 输出的sm2密文结构为C1C2C3格式 @@ -223,7 +225,7 @@ public class TestGSYH { * @param enData 加密的数据,base64 编码。 * @return 明文数据。 */ - byte[] bytes = api.SM2DecryptOrder(certId, s); + byte[] bytes = api.SM2DecryptOrder(userId, s); System.out.println("decData:" + new String(bytes)); } @@ -231,6 +233,7 @@ public class TestGSYH { @Test public void testDecryptDE4() { String sn = "1004282452"; + String orgCode = "00001111222233"; /** * 产生对称密钥,通过公钥加密生成网联格式的数字信封。 @@ -242,7 +245,7 @@ public class TestGSYH { * SessionKey 本地LMK 加密的会话密钥,HEX 格式, 本地 LMK 加密的会话密钥长度,HEX 格式(不包括第 1 个字符),一般为 33 个 Bytes。默认输入值为缓冲区的大小。 * KCV 会话密钥的检验值,HEX 格式,长度为 32H。 */ - RetWrap retWrap = api.generateDEbyGS(sn, "00001111222233"); + RetWrap retWrap = api.generateDEbyGS(sn, orgCode); String CipherKey = (String) retWrap.get(SydApi.RET_CIPHER_KEY); String sessionKey = (String) retWrap.get(SydApi.RET_SESSION_KEY); String kcv = (String) retWrap.get(SydApi.RET_KCV);