修改示例

This commit is contained in:
cheney 2022-05-26 17:13:49 +08:00
parent 5df3f6e23b
commit f90276218c
5 changed files with 187 additions and 3 deletions

View File

@ -1,4 +1,4 @@
package com.sunyard.sydapi.test;
package com.sunyard.sydapi.sample;
import com.sunyard.cert.X509;

View File

@ -0,0 +1,71 @@
package com.sunyard.sydapi.test;
import com.sunyard.RetWrap;
import com.sunyard.proto.Util;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import racal.sunyard.main.SydApi4j;
public class TestMAC {
private SydApi4j api;
private final int KeyType = 1;
private String key = "SK000000000000000000800000000";
private String msg = "AAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBB";
@Before
public void before() {
// 通过设置debug的属性开启debug如果不设置则默认不打开
System.setProperty("com.sunyard.sydapi4j.debug", "true");
api = (SydApi4j) new SydApi4j().connect("192.168.0.200", 8889, null, 1000);
}
@After
public void after() {
try {
this.api.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testMAC() {
// 分块进行计算
final int blockSize = 1024;
String mac = api.MACCalc(2, KeyType, key, 0, msg.getBytes(), 3);
System.out.println( mac );
}
@Test
public void testSM4MAC() {
// 分块进行计算
final int blockSize = 1024;
String data = Util.bytes2HexString( msg.getBytes() );
System.out.println( data );
RetWrap retWrap = api.genMAB(0, KeyType, 2, key, null, data.getBytes() );
System.out.println( new String( (byte[]) retWrap.get("MAB") ));
}
// 分块进行计算
@Test
public void testSM4MAC2() {
String data = Util.bytes2HexString( msg.getBytes() );
System.out.println( data );
String hash = api.genMAB(2, KeyType, key, data.getBytes() );
System.out.println( hash );
}
}

View File

@ -1,4 +1,4 @@
package com.sunyard.sydapi.test;
package com.sunyard.sydapi.sample;
import com.sunyard.SydApi;
@ -38,6 +38,15 @@ public class TestPKCS1 {
System.out.println("签名结果 " + Util.bytes2HexString(sign) );
boolean pass = api.SYD_NakedVerify(testData.getBytes(), sign, testCertNo);
System.out.println("验签结果 " + pass);
}
public static void case2(SydApi api) {
byte[] sign = api.SYD_NakedSign(testData.getBytes(), testCertNo);
System.out.println("签名结果 " + Util.bytes2HexString(sign) );
boolean pass = api.SYD_NakedVerify(testData.getBytes(), sign, testCertNo);
System.out.println("验签结果 " + pass);
}

View File

@ -1,4 +1,4 @@
package com.sunyard.sydapi.test;
package com.sunyard.sydapi.sample;
import com.sunyard.SydApi;

View File

@ -0,0 +1,104 @@
package com.sunyard.sydapi.test;
import com.sunyard.SydApi;
import com.sunyard.proto.Util;
import racal.sunyard.main.SydApi4j;
import racal.sunyard.main.SydApiBuilder;
import static com.sunyard.SydApi.*;
public class TestSV {
private static final String inHexData = "67c6697351ff4aec29cdbaabf2fbe346";
private static final String dn = "C=CN,ST=浙江,L=杭州,O=信雅达测试123,OU=安全应用1,OU=安全应用2,CN=@信雅达安全测试";
public static void main(String[] args) {
System.setProperty("com.sunyard.sydapi4j.debug", "true");
// 连接加密机
SydApi4j api = (SydApi4j) new SydApi4j().connect("172.16.18.59", 8889, null, 1000);
SydApiBuilder builder = new SydApiBuilder().setIp("192.168.5.88");
builder.build();
try {
// case1(api);
case4(api);
case5(api);
} catch (Exception e) {
e.printStackTrace();
} finally {
api.disconnect();
}
}
public static void case1(SydApi api) {
String sign = api.attachedSign( Util.hexString2Bytes( inHexData ), dn );
System.out.println("签名结果 " + sign );
boolean pass = api.attachedVerify(sign);
System.out.println("验签结果 " + pass);
}
public static void case2(SydApi api) {
System.out.println("begin SYD_Sign_Detach");
String sign = api.detachedSign( DATA_ORIGIN, Util.hexString2Bytes( inHexData ), dn );
System.out.println("签名结果 " + sign );
System.out.println("begin SYD_Sign_Detach");
System.out.println("begin SYD_Verify_Detach");
boolean pass = api.detachedVerify(DATA_ORIGIN, Util.hexString2Bytes( inHexData ), sign);
System.out.println("验签结果 " + pass);
System.out.println("end SYD_Verify_Detach");
}
public static void case3(SydApi api) {
System.out.println("begin SYD_NakedSign");
byte[] sign = api.SYD_NakedSign( Util.hexString2Bytes(inHexData) , dn);
System.out.println("签名结果 " + Util.bytes2HexString(sign) );
System.out.println("end SYD_NakedSign");
System.out.println("begin SYD_NakedVerify");
boolean pass = api.SYD_NakedVerify( Util.hexString2Bytes(inHexData), sign, dn);
System.out.println("验签结果 " + pass);
System.out.println("end SYD_NakedVerify");
}
public static void case4(SydApi api) {
// 不传 ID
String pk = api.SM2GetPublicKeyC("65667", 0 );
String sk = api.SM2GetPrivateKeyC("000000000006566700000000001");
String sign = api.SM2SignC( 0, sk, Util.hexString2Bytes(pk), Util.hexString2Bytes(inHexData) );
System.out.println("签名结果 " + sign );
boolean pass = api.SM2Verify(Util.hexString2Bytes(pk), Util.hexString2Bytes(inHexData), sign );
System.out.println("验签结果 " + pass);
}
public static void case5(SydApi api) {
// ID
String uid = "8765432187654321";
String pk = api.SM2GetPublicKeyC("65667", 0 );
String sk = api.SM2GetPrivateKeyC("000000000006566700000000001");
System.out.println("begin SYD_Sign_P1");
String sign = api.SM2SignC( 0, uid, sk, Util.hexString2Bytes(pk), Util.hexString2Bytes(inHexData) );
System.out.println("签名结果 " + Util.bytes2HexString( Util.decodeBase64( sign ) ) );
System.out.println("end SYD_Verify_P1");
System.out.println("begin SYD_Sign_P1");
boolean pass = api.SM2Verify(uid, 1, Util.hexString2Bytes(pk), Util.hexString2Bytes(inHexData), sign );
System.out.println("验签结果 " + pass);
System.out.println("end SYD_Verify_P1");
}
}