修改网联签名验签接口,添加新疆测试类
This commit is contained in:
parent
fc82f99105
commit
3ed89ebbe1
@ -202,7 +202,7 @@ interface SydSYMApi {
|
|||||||
/**
|
/**
|
||||||
* 用输入的会话密钥,对指定报文数据进行加密处理。填充模式为1
|
* 用输入的会话密钥,对指定报文数据进行加密处理。填充模式为1
|
||||||
*
|
*
|
||||||
* @param nAlg 算法标识., 1:DES,2:AES256,3:SM4。
|
* @param nAlg 算法标识., 0x00:3DES,0x01:SM4。
|
||||||
* @param seesionKey 本地LMK 加密的会话密钥,HEX 格式
|
* @param seesionKey 本地LMK 加密的会话密钥,HEX 格式
|
||||||
* @param pINdata 要加密的报文明文。必须是 8 或16 的倍数。
|
* @param pINdata 要加密的报文明文。必须是 8 或16 的倍数。
|
||||||
* @return 输出的报文密文, 长度为报文明文 + 16
|
* @return 输出的报文密文, 长度为报文明文 + 16
|
||||||
@ -234,7 +234,7 @@ interface SydSYMApi {
|
|||||||
/**
|
/**
|
||||||
* 用输入的会话密钥,对指定报文数据进行解密处理。填充模式为1
|
* 用输入的会话密钥,对指定报文数据进行解密处理。填充模式为1
|
||||||
*
|
*
|
||||||
* @param nAlg 算法标识.1:DES,2:AES256,3:SM4。
|
* @param nAlg 算法标识.0x00:3DES,0x01:SM4。
|
||||||
* @param seesionKey 本地LMK 加密的会话密钥,HEX 格式
|
* @param seesionKey 本地LMK 加密的会话密钥,HEX 格式
|
||||||
* @param pINdata 要解密的报文密文。长度必须是8 或16 的倍数。
|
* @param pINdata 要解密的报文密文。长度必须是8 或16 的倍数。
|
||||||
* @return 输出的报文明文。
|
* @return 输出的报文明文。
|
||||||
|
|||||||
@ -2362,6 +2362,7 @@ public class SydApi4j implements SydApi {
|
|||||||
data.put("certificateModel$option", 0);
|
data.put("certificateModel$option", 0);
|
||||||
data.put("certificateSn", pCertSerial);
|
data.put("certificateSn", pCertSerial);
|
||||||
data.put("inData", pOrgData);
|
data.put("inData", pOrgData);
|
||||||
|
data.put("dataFlag", 'P');
|
||||||
packet.put("data", data);
|
packet.put("data", data);
|
||||||
|
|
||||||
// 渲染发送
|
// 渲染发送
|
||||||
@ -2413,6 +2414,7 @@ public class SydApi4j implements SydApi {
|
|||||||
data.put("certificateSn", pCertSerial);
|
data.put("certificateSn", pCertSerial);
|
||||||
data.put("inData", pOrgData);
|
data.put("inData", pOrgData);
|
||||||
data.put("sign", pSignData);
|
data.put("sign", pSignData);
|
||||||
|
data.put("dataFlag", 'P');
|
||||||
packet.put("data", data);
|
packet.put("data", data);
|
||||||
|
|
||||||
// 渲染发送
|
// 渲染发送
|
||||||
|
|||||||
@ -912,7 +912,17 @@ public class TestAllMethods {
|
|||||||
// E2
|
// E2
|
||||||
@Test
|
@Test
|
||||||
public void testSM2OrRSAGenKeyPair() {
|
public void testSM2OrRSAGenKeyPair() {
|
||||||
String index = "1111111111111123";
|
// 000
|
||||||
|
// String index = "1111111111111147";
|
||||||
|
// // 0342000422C4FC907E0BEC600C2070D675EFB65EAE3A628260FF5461DD5F8133CF7CF98530EF392D016B6487BA6148E9AC27BDD4E8D7404A310CB09335F50AEF00ADB068
|
||||||
|
|
||||||
|
// 001
|
||||||
|
// String index = "1111111111111148";
|
||||||
|
// 0342000450420312F4ABAD98AA8EFC1F8F8204BD9E2F752C59C25A4025E675EDA5FB2337A449E00241EFA4A2F76A6C58D9834D6F0AB1164652E9C588E0EBD539C8ECB9EF
|
||||||
|
|
||||||
|
// 1111111111111149 000 00000001
|
||||||
|
String index = "1111111111111149";
|
||||||
|
// 03420004080589A33A4DB304A3C48355761AC216B8BB5493966996E532B664A5B9CD8F1374F0DAACBF3F6D1F0E48E10DAA91889DB632FF4BE19D903502680D1AB56584D5
|
||||||
|
|
||||||
// SM2
|
// SM2
|
||||||
RetWrap retWrap = api.SM2OrRSAGenKeyPair(1, index, 0);
|
RetWrap retWrap = api.SM2OrRSAGenKeyPair(1, index, 0);
|
||||||
@ -1225,10 +1235,9 @@ public class TestAllMethods {
|
|||||||
@Test
|
@Test
|
||||||
public void testDecryptDE2() {
|
public void testDecryptDE2() {
|
||||||
String sn = "1004282452";
|
String sn = "1004282452";
|
||||||
RetWrap retWrap = api.generateDE(sn, (byte) 0x30);
|
RetWrap retWrap = api.generateDE(sn, SydApi.ALG_SM4);
|
||||||
String sessionKey = (String) retWrap.get("SessionKey");
|
|
||||||
String CipherKey = (String) retWrap.get("CipherKey");
|
String CipherKey = (String) retWrap.get("CipherKey");
|
||||||
String KCV = (String) retWrap.get("KCV");
|
printRetWrap(retWrap);
|
||||||
|
|
||||||
RetWrap retWrap1 = api.decryptDE(sn, CipherKey);
|
RetWrap retWrap1 = api.decryptDE(sn, CipherKey);
|
||||||
printRetWrap(retWrap1);
|
printRetWrap(retWrap1);
|
||||||
@ -1482,10 +1491,10 @@ public class TestAllMethods {
|
|||||||
@Test
|
@Test
|
||||||
public void testSM2Verify3() {
|
public void testSM2Verify3() {
|
||||||
|
|
||||||
String thisPublicKey = "034200045AC5014ED6A2CA0F9F79F3A34ADF4B8B92383F09E2D2F2F5B56F3D6C05B3EE43A3D65E57D3979C6CE9F6CEC5E0E30DC564416BFCB9A3E2D071559098B6B6BEF6";
|
String thisPublicKey = "0342000422C4FC907E0BEC600C2070D675EFB65EAE3A628260FF5461DD5F8133CF7CF98530EF392D016B6487BA6148E9AC27BDD4E8D7404A310CB09335F50AEF00ADB068";
|
||||||
String thisOrgData = "FFFFFFFFFFFFFFFF";
|
String thisOrgData = "FFFFFFFFFFFFFFFF";
|
||||||
|
|
||||||
String s = api.SM2SignC(1, "111111111111111700000000001", Util.hexString2Bytes(thisPublicKey), thisOrgData.getBytes());
|
String s = api.SM2SignC(1, "111111111111114700000000001", Util.hexString2Bytes(thisPublicKey), thisOrgData.getBytes());
|
||||||
|
|
||||||
System.out.println(s);
|
System.out.println(s);
|
||||||
boolean b = api.SM2Verify( Util.hexString2Bytes(thisPublicKey), thisOrgData.getBytes(), s);
|
boolean b = api.SM2Verify( Util.hexString2Bytes(thisPublicKey), thisOrgData.getBytes(), s);
|
||||||
@ -1497,9 +1506,9 @@ public class TestAllMethods {
|
|||||||
@Test
|
@Test
|
||||||
public void testSM2Verify() {
|
public void testSM2Verify() {
|
||||||
|
|
||||||
String userId = "1111111111111113";
|
String userId = "1111111111111149";
|
||||||
String certNo = "1234567812345678";
|
String certNo = "1234567812345678";
|
||||||
String thisPublicKey = "03420004549B6A1A09A5D0D9432C6829D443F85ED8785340FC1AB14118BB7637830C808F7A888DF0C4F988EA6FF2EE6C76ECD00C4B7CEC92CC8EA365F8EA291041CAB231";
|
String thisPublicKey = "03420004080589A33A4DB304A3C48355761AC216B8BB5493966996E532B664A5B9CD8F1374F0DAACBF3F6D1F0E48E10DAA91889DB632FF4BE19D903502680D1AB56584D5";
|
||||||
String thisOrgData = "FFFFFFFFFFFFFFFF";
|
String thisOrgData = "FFFFFFFFFFFFFFFF";
|
||||||
|
|
||||||
String s = api.SM2SignC(userId, certNo, 1, Util.hexString2Bytes(thisPublicKey), thisOrgData.getBytes());
|
String s = api.SM2SignC(userId, certNo, 1, Util.hexString2Bytes(thisPublicKey), thisOrgData.getBytes());
|
||||||
@ -1533,7 +1542,8 @@ public class TestAllMethods {
|
|||||||
// QQ
|
// QQ
|
||||||
@Test
|
@Test
|
||||||
public void testSM2GetPublicKeyC() {
|
public void testSM2GetPublicKeyC() {
|
||||||
String s = api.SM2GetPublicKeyC("0000000011111111", 0);
|
String s = api.SM2GetPublicKeyC("0000000000000001", 0);
|
||||||
|
System.out.println("获取到的公钥: " + s);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 测试通过
|
// 测试通过
|
||||||
|
|||||||
457
src/test/java/com/sunyard/sydapi/test/TestXJ.java
Normal file
457
src/test/java/com/sunyard/sydapi/test/TestXJ.java
Normal file
@ -0,0 +1,457 @@
|
|||||||
|
package com.sunyard.sydapi.test;
|
||||||
|
|
||||||
|
import com.sunyard.RetWrap;
|
||||||
|
import com.sunyard.SydApi;
|
||||||
|
import com.sunyard.cert.X509;
|
||||||
|
import com.sunyard.proto.Util;
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
import racal.sunyard.main.SydApi4j;
|
||||||
|
|
||||||
|
import java.io.BufferedInputStream;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新疆联通政务云
|
||||||
|
*/
|
||||||
|
public class TestXJ {
|
||||||
|
|
||||||
|
SydApi4j api;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void before() {
|
||||||
|
// 通过设置debug的属性开启debug,如果不设置则默认不打开
|
||||||
|
System.setProperty("com.sunyard.sydapi4j.debug", "true");
|
||||||
|
api = (SydApi4j) new SydApi4j().connect("192.168.0.100", 8889, null, 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void after() {
|
||||||
|
try {
|
||||||
|
this.api.disconnect();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 8003
|
||||||
|
@Test
|
||||||
|
public void testSYD_NakedSign() {
|
||||||
|
String dn = "C=CN,O=Sunyard,OU=8001,CN=8001";
|
||||||
|
byte[] bytes = api.SYD_NakedSign("111".getBytes(), dn);
|
||||||
|
System.out.println(Util.bytes2HexString(bytes));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 8004
|
||||||
|
@Test
|
||||||
|
public void testSYD_NakedVerify() {
|
||||||
|
String dn = "C=CN,O=Sunyard,OU=8001,CN=8001";
|
||||||
|
String orgData = "111";
|
||||||
|
byte[] bytes = api.SYD_NakedSign(orgData.getBytes(), dn);
|
||||||
|
String sign = Util.bytes2HexString(bytes);
|
||||||
|
System.out.println(sign);
|
||||||
|
|
||||||
|
boolean b = api.SYD_NakedVerify(orgData.getBytes(), bytes, dn);
|
||||||
|
System.out.println(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 6C
|
||||||
|
@Test
|
||||||
|
public void testNetSign() {
|
||||||
|
String sn = "1004282451";
|
||||||
|
String s = api.netSign(sn, "111".getBytes());
|
||||||
|
System.out.println(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 6D
|
||||||
|
@Test
|
||||||
|
public void testNetVerify() {
|
||||||
|
String sn = "1004282451";
|
||||||
|
String data = "111";
|
||||||
|
String s = api.netSign(sn, data.getBytes());
|
||||||
|
|
||||||
|
boolean b = api.netVerify(sn, data.getBytes(), s);
|
||||||
|
System.out.println(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 80
|
||||||
|
@Test
|
||||||
|
public void testSM2SignCustomized() {
|
||||||
|
String sn = "1004282452";
|
||||||
|
String s = api.SM2SignCustomized(sn, "111".getBytes());
|
||||||
|
System.out.println(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 81
|
||||||
|
@Test
|
||||||
|
public void testSM2VerifyCustomized() {
|
||||||
|
String sn = "1004282451";
|
||||||
|
String data = "111";
|
||||||
|
String s = api.SM2SignCustomized(sn, data.getBytes());
|
||||||
|
|
||||||
|
boolean b = api.SM2VerifyCustomized(sn, data.getBytes(), s);
|
||||||
|
System.out.println(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 74
|
||||||
|
@Test
|
||||||
|
public void testSM2SignC() {
|
||||||
|
String userId = "1111111111111113";
|
||||||
|
String certNo = "1234567812345678";
|
||||||
|
String thisPublicKey = "03420004549B6A1A09A5D0D9432C6829D443F85ED8785340FC1AB14118BB7637830C808F7A888DF0C4F988EA6FF2EE6C76ECD00C4B7CEC92CC8EA365F8EA291041CAB231";
|
||||||
|
String thisOrgData = "FFFFFFFFFFFFFFFF";
|
||||||
|
|
||||||
|
String s = api.SM2SignC(userId, certNo, 1, Util.hexString2Bytes(thisPublicKey), thisOrgData.getBytes());
|
||||||
|
System.out.println(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 75
|
||||||
|
@Test
|
||||||
|
public void testSM2Verify() {
|
||||||
|
|
||||||
|
String userId = "1111111111111113";
|
||||||
|
String certNo = "1234567812345678";
|
||||||
|
String thisPublicKey = "03420004549B6A1A09A5D0D9432C6829D443F85ED8785340FC1AB14118BB7637830C808F7A888DF0C4F988EA6FF2EE6C76ECD00C4B7CEC92CC8EA365F8EA291041CAB231";
|
||||||
|
String thisOrgData = "FFFFFFFFFFFFFFFF";
|
||||||
|
|
||||||
|
String s = api.SM2SignC(userId, certNo, 1, Util.hexString2Bytes(thisPublicKey), thisOrgData.getBytes());
|
||||||
|
|
||||||
|
System.out.println(s);
|
||||||
|
boolean b = api.SM2Verify(certNo, 1, Util.hexString2Bytes(thisPublicKey), thisOrgData.getBytes(), s);
|
||||||
|
System.out.println(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 8005
|
||||||
|
@Test
|
||||||
|
public void testSYD_DetachedSign() {
|
||||||
|
|
||||||
|
String orgData = "3214312341243214";
|
||||||
|
String DN = "C=CN,O=Sunyard,OU=8001,CN=8001";
|
||||||
|
String s = api.SYD_DetachedSign(orgData.getBytes(), DN);
|
||||||
|
System.out.println(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 8006
|
||||||
|
@Test
|
||||||
|
public void testSYD_DetachedVerify() {
|
||||||
|
String orgData = "3214312341243214";
|
||||||
|
String DN = "C=CN,O=Sunyard,OU=8001,CN=8001";
|
||||||
|
String sign = api.SYD_DetachedSign(orgData.getBytes(), DN);
|
||||||
|
System.out.println("签名结果" + sign);
|
||||||
|
|
||||||
|
boolean b = api.SYD_DetachedVerify(orgData.getBytes(), sign);
|
||||||
|
System.out.println("验签结果:" + b);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 8005
|
||||||
|
@Test
|
||||||
|
public void testSm3AndDetachedSign() {
|
||||||
|
String publicKey = "0342000469DE3847DD6A66DA96DB8F2DCFA32E10E680FF2EF4A592079E7C3A44320BB15084E7CA9782A39B6E28F07C04FE00D68958A2605921E71712D56C1E4435A39FA5";
|
||||||
|
String orgData = "FFFFFFFFFFFFFFFF";
|
||||||
|
String testCertNo = "C=CN,O=Sunyard,OU=8001,CN=8001";
|
||||||
|
|
||||||
|
String sign = api.sm3AndDetachedSign(orgData.getBytes(), publicKey, testCertNo);
|
||||||
|
System.out.println("签名结果: " + sign);
|
||||||
|
|
||||||
|
boolean b = api.sm3AndDetachedVerify(orgData.getBytes(), publicKey, sign);
|
||||||
|
System.out.println("验签结果:" + b);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 8005
|
||||||
|
@Test
|
||||||
|
public void testDetachedSign() {
|
||||||
|
String publicKey = "0342000469DE3847DD6A66DA96DB8F2DCFA32E10E680FF2EF4A592079E7C3A44320BB15084E7CA9782A39B6E28F07C04FE00D68958A2605921E71712D56C1E4435A39FA5";
|
||||||
|
String orgData = "FFFFFFFFFFFFFFFF";
|
||||||
|
String testCertNo = "C=CN,O=Sunyard,OU=8001,CN=8001";
|
||||||
|
|
||||||
|
byte[] hash = api.SM3Hash(publicKey, orgData.getBytes());
|
||||||
|
|
||||||
|
String sign = api.detachedSign(
|
||||||
|
SydApi.DATA_HASH,
|
||||||
|
hash,
|
||||||
|
testCertNo
|
||||||
|
);
|
||||||
|
|
||||||
|
System.out.println("\t签名结果: " + sign);
|
||||||
|
|
||||||
|
boolean verify = api.detachedVerify(
|
||||||
|
SydApi.DATA_HASH,
|
||||||
|
hash,
|
||||||
|
sign
|
||||||
|
);
|
||||||
|
|
||||||
|
System.out.println("\t验签结果: " + verify);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 72
|
||||||
|
@Test
|
||||||
|
public void testSM2GenSessionKey() {
|
||||||
|
|
||||||
|
String pk="034200041CD47354867E12B9D138F098413C47D42EDEB2AD402EAB431C0C7AC2FE2D6DE9C67273C643C709F2A749188941B7FA7F9FF14F8E7D19316936DB4D4954FF3819";
|
||||||
|
|
||||||
|
RetWrap retWrap = api.SM2GenSessionKey(pk);
|
||||||
|
printRetWrap(retWrap);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 73
|
||||||
|
@Test
|
||||||
|
public void testSM2ConfirmSessionKeyC() {
|
||||||
|
|
||||||
|
String userId = "1111111111111147";
|
||||||
|
|
||||||
|
String pk="0342000422C4FC907E0BEC600C2070D675EFB65EAE3A628260FF5461DD5F8133CF7CF98530EF392D016B6487BA6148E9AC27BDD4E8D7404A310CB09335F50AEF00ADB068";
|
||||||
|
|
||||||
|
RetWrap retWrap = api.SM2GenSessionKey(pk);
|
||||||
|
printRetWrap(retWrap);
|
||||||
|
|
||||||
|
String cipherKey = (String) retWrap.get("CipherKey");
|
||||||
|
|
||||||
|
RetWrap retWrap1 = api.SM2ConfirmSessionKeyC(userId, cipherKey);
|
||||||
|
printRetWrap(retWrap1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// E0
|
||||||
|
@Test
|
||||||
|
public void testSYMEncryptData() {
|
||||||
|
String sessionKey = "XF356BCBA3204F6E6F356BCBA3204F6E6";
|
||||||
|
String pInData = "1111111111111111";
|
||||||
|
|
||||||
|
byte[] bytes = api.SYMEncryptData(3,sessionKey, pInData.getBytes());
|
||||||
|
byte[] bytes1 = api.SYMDecryptData(3, sessionKey, bytes);
|
||||||
|
System.out.println(new String(bytes1));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// E0
|
||||||
|
@Test
|
||||||
|
public void testEncDecData() {
|
||||||
|
|
||||||
|
String msg = "1111111111111111111111";
|
||||||
|
|
||||||
|
String key = "X3C9003C47A13379011733681ABB4A4D0";
|
||||||
|
|
||||||
|
byte[] bytes = api.SYMEncryptDataCBC(1, key, msg.getBytes());
|
||||||
|
|
||||||
|
System.out.println("输出为: " + Util.bytes2HexString(bytes));
|
||||||
|
|
||||||
|
byte[] bytes1 = api.SYMDecryptDataCBC(1, key, bytes);
|
||||||
|
System.out.println("明文:" + new String(bytes1));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 6B
|
||||||
|
@Test
|
||||||
|
public void testDecryptDE() {
|
||||||
|
String sn = "1004282452";
|
||||||
|
RetWrap retWrap = api.generateDE(sn, (byte) 0x30);
|
||||||
|
String sessionKey = (String) retWrap.get("SessionKey");
|
||||||
|
String CipherKey = (String) retWrap.get("CipherKey");
|
||||||
|
String KCV = (String) retWrap.get("KCV");
|
||||||
|
|
||||||
|
RetWrap retWrap1 = api.decryptDE(sn, CipherKey);
|
||||||
|
printRetWrap(retWrap1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 7E
|
||||||
|
@Test
|
||||||
|
public void testSYD_SM2_Get_Dn_PublicKey_HA() {
|
||||||
|
String dn = "C=CN,O=Sunyard,OU=8001,CN=8001";
|
||||||
|
String s = api.SYD_SM2_Get_Dn_PublicKey_HA(dn.getBytes(), 0);
|
||||||
|
System.out.println(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 6E
|
||||||
|
@Test
|
||||||
|
public void testGetX509SN() {
|
||||||
|
String dn = "C=CN,ST=ZJ,L=HZ,O=SUNYARD,OU=123456,CN=111";
|
||||||
|
String s = api.getX509SN(0, dn.getBytes());
|
||||||
|
System.out.println(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 7E
|
||||||
|
@Test
|
||||||
|
public void testGetDNPublicKey() {
|
||||||
|
String dn = "C=CN,O=Sunyard,OU=8001,CN=8001";
|
||||||
|
String s = api.GetDNPublicKey(0, dn.getBytes());
|
||||||
|
System.out.println(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// QQ
|
||||||
|
@Test
|
||||||
|
public void testSM2GetPublicKeyC() {
|
||||||
|
String userId = "1111111111111117";
|
||||||
|
|
||||||
|
String s = api.SM2GetPublicKeyC(userId, 0);
|
||||||
|
System.out.println(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 8016
|
||||||
|
@Test
|
||||||
|
public void testGetX509CertInfo() {
|
||||||
|
|
||||||
|
String pCert = "-----BEGIN CERTIFICATE-----\u0007MIIC1jCCAnqgAwIBAgIFQAKAAXQwDAYIKoEcz1UBg3UFADBhMQswCQYDVQQGEwJD\u0007TjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y\u0007aXR5MSAwHgYDVQQDDBdDRkNBIEFDUyBURVNUIFNNMiBPQ0EzMTAeFw0xNzExMTYw\u0007NjU0NDVaFw0yMjExMTYwNjU0NDVaMIGDMQswCQYDVQQGEwJDTjEcMBoGA1UECgwT\u0007Q0ZDQSBURVNUIFNNMiBPQ0EzMTEOMAwGA1UECwwFU0hDUEUxGTAXBgNVBAsMEE9y\u0007Z2FuaXphdGlvbmFsLTExKzApBgNVBAMMIjA1MUDkuIrmtbfnpajmja7kuqTmmJPm\u0007iYBAQUFBQUFBQDgwWTATBgcqhkjOPQIBBggqgRzPVQGCLQNCAARg8D1RBEv9lpOE\u0007Q3SdzdLCQ4fDiE8Ncb2Fl4qIGc12GA/LUS1fgzLZuk0WlgyZDSe+QlQziqkmsXsx\u0007KoTCzqsto4H5MIH2MD8GCCsGAQUFBwEBBDMwMTAvBggrBgEFBQcwAYYjaHR0cDov\u0007L29jc3B0ZXN0LmNmY2EuY29tLmNuOjgwL29jc3AwHwYDVR0jBBgwFoAUBMe8+VkB\u0007aT6MNDYgYhg83ry1uwwwDAYDVR0TAQH/BAIwADA2BgNVHR8ELzAtMCugKaAnhiVo\u0007dHRwOi8vMjEwLjc0LjQyLjMvT0NBMzEvU00yL2NybDEuY3JsMA4GA1UdDwEB/wQE\u0007AwIGwDAdBgNVHQ4EFgQUomdLtdhENYb16pe1LNRlcr4N7b8wHQYDVR0lBBYwFAYI\u0007KwYBBQUHAwIGCCsGAQUFBwMEMAwGCCqBHM9VAYN1BQADSAAwRQIgZpJGhpRKmgfi\u0007Vbdq3UAGW6I3AUMfbWMd6webLQXmCOoCIQDSxTKRb0TfoXepD3VgO9qxCDwSc4yn\u0007WJ2GC3qmr81QBg==\u0007-----END CERTIFICATE-----\u0007";
|
||||||
|
X509 x509 = api.GetX509CertInfo(pCert);
|
||||||
|
|
||||||
|
String path = "E:\\work\\sunyard\\证书\\sm2.q\\sm2.q.enc.crt.pem";
|
||||||
|
X509 x509_1 = api.GetX509CertInfo(getCertStr(path));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 8017
|
||||||
|
@Test
|
||||||
|
public void testGetX509CertFileC() {
|
||||||
|
String userId = "8001";
|
||||||
|
|
||||||
|
String s = api.GetX509CertFileC(userId, 0);
|
||||||
|
System.out.println(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// E2
|
||||||
|
@Test
|
||||||
|
public void testSM2GenKeyPair() {
|
||||||
|
RetWrap retWrap = api.SM2GenKeyPair();
|
||||||
|
printRetWrap(retWrap, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// QN
|
||||||
|
@Test
|
||||||
|
public void testSYD_SM2GenKeyPair() {
|
||||||
|
RetWrap retWrap = api.SYD_SM2GenKeyPair();
|
||||||
|
printRetWrap(retWrap);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 77
|
||||||
|
@Test
|
||||||
|
public void testSM2Encrypt() {
|
||||||
|
String publicKey = "03420004C51A40A094B6A14500B2980603D68CA263FF1BA238AFB17BB8B791C5F444465A749B68B4584C83E7BEF66DE2446177E14DBE0F32691F54B1636CC73334A1A94D";
|
||||||
|
String orgData = "FFFFFFFFFFFFFFFF";
|
||||||
|
String s = api.SM2Encrypt(Util.hexString2Bytes(publicKey), orgData.getBytes());
|
||||||
|
|
||||||
|
System.out.println("encData: " + s);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 78
|
||||||
|
@Test
|
||||||
|
public void testSM2DecryptC() {
|
||||||
|
String certId = "1111111111111122";
|
||||||
|
String publicKey = "0342000469DE3847DD6A66DA96DB8F2DCFA32E10E680FF2EF4A592079E7C3A44320BB15084E7CA9782A39B6E28F07C04FE00D68958A2605921E71712D56C1E4435A39FA5";
|
||||||
|
String orgData = "FFFFFFFFFFFFFFFF";
|
||||||
|
String s = api.SM2Encrypt(Util.hexString2Bytes(publicKey), orgData.getBytes());
|
||||||
|
|
||||||
|
byte[] bytes = api.SM2DecryptC(certId, s);
|
||||||
|
|
||||||
|
System.out.println("decData:" + new String(bytes));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 76
|
||||||
|
// 带公钥
|
||||||
|
@Test
|
||||||
|
public void testSM3Hash() {
|
||||||
|
String publicKey = "0342000469DE3847DD6A66DA96DB8F2DCFA32E10E680FF2EF4A592079E7C3A44320BB15084E7CA9782A39B6E28F07C04FE00D68958A2605921E71712D56C1E4435A39FA5";
|
||||||
|
String orgData = "FFFFFFFFFFFFFFFF";
|
||||||
|
|
||||||
|
byte[] hash = api.SM3Hash(publicKey, orgData.getBytes());
|
||||||
|
|
||||||
|
System.out.println("hash:" + Util.bytes2HexString(hash));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试通过
|
||||||
|
// 76
|
||||||
|
// 不带公钥
|
||||||
|
@Test
|
||||||
|
public void testSM3Hash2() {
|
||||||
|
String orgData = "FFFFFFFFFFFFFFFF";
|
||||||
|
|
||||||
|
byte[] hash = api.SM3Hash(orgData.getBytes());
|
||||||
|
|
||||||
|
System.out.println("hash:" + Util.bytes2HexString(hash));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 工具方法
|
||||||
|
// ==========================================
|
||||||
|
|
||||||
|
public static void printRetWrap(RetWrap rw) {
|
||||||
|
printRetWrap(rw, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 输出
|
||||||
|
* @param rw
|
||||||
|
*/
|
||||||
|
public static void printRetWrap(RetWrap rw, boolean flag) {
|
||||||
|
for (String s : rw.keySet()) {
|
||||||
|
|
||||||
|
Object o = rw.get(s);
|
||||||
|
if (o instanceof String) {
|
||||||
|
System.out.println(s + ":" + o);
|
||||||
|
} else if (o instanceof byte[]) {
|
||||||
|
if (flag) {
|
||||||
|
System.out.println(s + ": " + Util.bytes2HexString((byte[]) o));
|
||||||
|
} else {
|
||||||
|
System.out.println(s + ": " + new String(Util.hexString2Bytes(Util.bytes2HexString((byte[]) o))));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
System.out.println(s + ":" + o);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取证书
|
||||||
|
public String getCertStr(String path) {
|
||||||
|
|
||||||
|
BufferedInputStream bis = null;
|
||||||
|
try {
|
||||||
|
bis = new BufferedInputStream(new FileInputStream(path));
|
||||||
|
|
||||||
|
StringBuilder str = new StringBuilder();
|
||||||
|
|
||||||
|
int len = 0;
|
||||||
|
|
||||||
|
while ((len = bis.read()) != -1) {
|
||||||
|
str.append((char) len);
|
||||||
|
}
|
||||||
|
|
||||||
|
return str.toString();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
if (bis != null) {
|
||||||
|
try {
|
||||||
|
bis.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user