sydapi/src/test/java/sample/SamplePKCS1.java
2022-10-12 16:31:11 +08:00

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);
}
}