68 lines
1.7 KiB
Java
68 lines
1.7 KiB
Java
package sample;
|
|
|
|
|
|
import com.sunyard.SydApi;
|
|
import com.sunyard.proto.Util;
|
|
import racal.sunyard.main.SydApi4j;
|
|
|
|
|
|
public class SamplePKCS1 {
|
|
|
|
private static final String testId = "8012";
|
|
private static final String testData = "1234567812345678";
|
|
private static final String testCertNo = "C=CN,O=CFCA OCA1,OU=YCCA,OU=Individual-2,CN=YCCA@黄金交易所@Zhuangj@1";
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
// 连接加密机
|
|
SydApi4j api = (SydApi4j) new SydApi4j().connect("192.168.0.200", 8889, null, 1000);
|
|
|
|
|
|
try {
|
|
|
|
// 原始数据模式
|
|
case1( api );
|
|
|
|
// 外部 hash
|
|
case2( api );
|
|
|
|
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
} finally {
|
|
api.disconnect();
|
|
}
|
|
}
|
|
|
|
// 签名验签 1
|
|
public static void case1(SydApi api) {
|
|
|
|
System.out.println("\n\n----- 裸签名 -----");
|
|
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);
|
|
}
|
|
|
|
// 签名验签 2
|
|
public static void case2(SydApi api) {
|
|
|
|
String pk = api.SM2GetPublicKeyC( testId ,0);
|
|
|
|
System.out.println( pk );
|
|
|
|
byte[] data = api.SM3Hash( Util.hexString2Bytes(pk) );
|
|
|
|
byte[] sign = api.SYD_NakedSign(data, testCertNo);
|
|
System.out.println("签名结果 " + Util.bytes2HexString(sign) );
|
|
|
|
|
|
boolean pass = api.SYD_NakedVerify(data, sign, testCertNo);
|
|
System.out.println("验签结果 " + pass);
|
|
}
|
|
|
|
}
|