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