增加二维码、条形码签名验签测试

This commit is contained in:
yihzhou
2024-11-21 10:56:01 +08:00
parent 25803c9d4f
commit db80b1dd83
17 changed files with 1353 additions and 68 deletions
+119
View File
@@ -0,0 +1,119 @@
package sample;
import com.sunyard.RetWrap;
import com.sunyard.SydApi;
import com.sunyard.proto.Util;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import racal.sunyard.main.SydApi4j;
import java.util.HashMap;
/**
* @Author:Cheney
* @Date:2024/8/09 16:24
*/
public class SampleICBC {
private SydApi4j api;
final String SM2dn = "C=CN,O=CFCA OCA1,OU=YCCA,OU=Individual-2,CN=YCCA@黄金交易所@Zhuangj@1";
byte[] orgData = "12345678123456".getBytes();
@Before
public void before() {
// 通过设置debug的属性开启debug,如果不设置则默认不打开
System.setProperty("com.sunyard.sydapi4j.debug", "true");
//通过设置不校验证书是否反序
System.setProperty("com.sunyard.dnsort", "false");
api = (SydApi4j) new SydApi4j().connect("172.16.17.232", 8889, null, 1000);
}
@After
public void after() {
try {
this.api.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
//证书导入
public void importCert(){
String cert = "-----BEGIN CERTIFICATE-----\n" +
"MIICMjCCAdWgAwIBAgIGAYqHSuwHMAwGCCqBHM9VAYN1BQAwSzELMAkGA1UEBhMC\n" +
"Q04xDjAMBgNVBAoTBUdNU1NMMRAwDgYDVQQLEwdQS0kvU00yMRowGAYDVQQDExFN\n" +
"aWRkbGVDQSBmb3IgVGVzdDAiGA8yMDIzMDkxMTE2MDAwMFoYDzIwMjQwOTExMTYw\n" +
"MDAwWjBgMQswCQYDVQQGDAJDTjELMAkGA1UECAwCemoxCzAJBgNVBAcMAmh6MRAw\n" +
"DgYDVQQKDAdzdW55YXJkMRAwDgYDVQQLDAd6eWhUZXN0MRMwEQYDVQQDDAp6eWhU\n" +
"ZXN0U00yMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEYB3P271TUdDKfUr0VbkL\n" +
"v+N6QlrYcfAqbqjgqHaa3Xt5/8n3rHXp5ILj8QdU1pCFOF6xaaCwg1L7oR90MHZe\n" +
"GKOBiTCBhjAbBgNVHSMEFDASgBD5f1W0J5QzYqZWym/MXRr/MBkGA1UdDgQSBBAK\n" +
"g03SZSfU07aY4XNDfVIOMDEGCCsGAQUFBwEBBCUwIzAhBggrBgEFBQcwAYYVaHR0\n" +
"cHM6Ly9vY3NwLmdtc3NsLmNuMAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgDAMAwG\n" +
"CCqBHM9VAYN1BQADSQAwRgIhAK1lDGV1UtbYz5Hf8DCpq8UySCtu5dguh/eZsc4c\n" +
"V9PtAiEA5SO99BSunZMtrpHFJC1XbEQ5Xp0zIJQvzjRqZwfkyrw=\n" +
"-----END CERTIFICATE-----\n";
String dn = api.importCert(cert);
System.out.println("返回证书主题:"+dn);
}
@Test
//sm2算法 attach签名验签
public void sm2signAtt(){
String attachedSign = api.attachedSign(orgData, SM2dn);
System.out.println("attach签名:"+attachedSign);
boolean attachedVerify = api.attachedVerify(attachedSign);
System.out.println("attach验签:"+attachedVerify);
}
@Test
//sm2数字信封加密解密
public void sm2gen(){
String ivHex = "31323334353637383132333435363738";
/**
* SM2数字信封生成
* @param sm2Dn 证书DN
* @param IV iv
* @param orgData 原始数据
* @param roundmod 轮模式 0 ECB 1 CBC
* @return 加密后的数据
*/
RetWrap genByDn = api.generateDEByDnICBC(SM2dn, ivHex,orgData,1);
String cipherKey = (String) genByDn.get(SydApi.RET_CIPHER_KEY);
System.out.println("SM2数字信封: " +cipherKey);
/**
* SM2数字信封解密
* @param sm2Dn 证书DN
* @param IV iv
* @param cipherKey 数字信封
* @param roundmod 轮模式 0 ECB 1 CBC
* @return 加密后的数据
*/
RetWrap denSM2 = api.decryptDEByDNICBC( SM2dn,ivHex, cipherKey,1);
byte[] oData = (byte[]) denSM2.get("oData");
System.out.println("SM2信封解密:"+ new String(oData));
}
@Test
public void getTIme(){
HashMap<String, String> certTime = api.getCertTime(SM2dn);
System.out.println(certTime.get("after"));
System.out.println(certTime.get("before"));
Util.bytes2HexString("aa".getBytes());
}
}