package sample; import com.sunyard.RetWrap; import com.sunyard.SydApi; import com.sunyard.SydApiException; import com.sunyard.proto.Util; import racal.sunyard.main.SydApi4j; import racal.sunyard.main.SydApiBuilder; import java.io.UnsupportedEncodingException; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Sample4HY { private static final String SM2dn = "C=cn,O=CFCA TEST OCA1,OU=Local RA,OU=Organizational-1,CN=041@Z8000000001938231GX0@8000000001938231GX0@00000001"; private static final String SM2dn2 = "C=CN,O=CFCA OCA1,OU=YCCA,OU=Individual-2,CN=YCCA@黄金交易所@Zhuangj@1" ; private static final byte[] orgData = new byte[ 1*1024]; public static void main(String[] args) { //调试模式(控制台会打印发送报文) System.setProperty("com.sunyard.sydapi4j.debug", "true"); //证书是否反序校验 //System.setProperty("com.sunyard.dnsort", "false"); //主备模式连接 SydApi4j.SYD_Set_Parameter_HA("172.16.17.1", "172.16.17.16", 8889, 1000); SydApi4j api = (SydApi4j) new SydApi4j(); //设置连接 // SydApiBuilder builder = new SydApiBuilder().setIp("192.168.0.100"); // SydApi4j api = (SydApi4j) builder.build(); try { // SM2裸签 byte[] nakedSign1 = api.SYD_NakedSign(orgData, SM2dn2); System.out.println("SM2数据裸签:"+ Util.encodeBase64(nakedSign1)); boolean nakedVerify1 = api.SYD_NakedVerify(orgData, nakedSign1, SM2dn2); System.out.println("SM2数据验签:"+nakedVerify1 ); // //数字信封 // RetWrap genSM2 = api.generateDEByDn( SM2dn2, orgData); // byte[] cipherKey = (byte[]) genSM2.get(SydApi.RET_CIPHER_KEY); // System.out.println("SM2数字信封: " + new String(cipherKey)); // RetWrap denSM2 = api.decryptDEByDN( SM2dn2, cipherKey); // byte[] oData = (byte[]) denSM2.get("oData"); // System.out.println("SM2信封解密:"+Util.bytes2HexString(oData)); // // // String aa ="MEUCIQD3ZW+ReFjSbkPx2SEm3R8SwC4ke8ZllgGJBXEp8aSJsAIgUUEVqWQtbDPitbJQec5+71gCU3e3OBNwdL0EYoKId4k="; // String oData2 ="test123"; // boolean nakedVerify2 = api.SYD_NakedVerify(oData2.getBytes(), Util.decodeBase64(aa), SM2dn); // System.out.println("SM2数据验签:"+nakedVerify2 ); // String certByDn = api.getCertByDn(SM2dn2, 0); // System.out.println(certByDn); // // Pattern pattern = Pattern.compile("-----BEGIN CERTIFICATE-----|-----END CERTIFICATE-----"); // Matcher matcher = pattern.matcher(certByDn); // String dealCert = matcher.replaceAll("").trim(); // System.out.println(dealCert); }catch (SydApiException e){ e.printStackTrace(); } catch (Exception e) { throw new RuntimeException(e); } } }