增加签名数字信封、解签名数字信封接口

This commit is contained in:
yihzhou
2022-09-05 11:06:34 +08:00
parent 6daefe5d48
commit bed95d2009
6 changed files with 319 additions and 16 deletions
@@ -0,0 +1,57 @@
package com.sunyard.sydapi.test;
import com.sunyard.RetWrap;
import com.sunyard.SydApi;
import com.sunyard.cert.X509;
import com.sunyard.proto.Util;
import racal.sunyard.main.SydApi4j;
import racal.sunyard.main.SydApiBuilder;
public class AAA4shangqing {
private static final String orgData = "12345678";
private static final String publicKey = "034200043EDA3A107B7CC35CC005C7FBF0BB4E6B43A07EE14E360603D22ECA2A600B2D0FA03055D400D1240300F54648B849D13F50B330FF14351B5645B13686820A65BB";
private static final String pcDnEN ="C=CN,O=CFCA OCA1,OU=YCCA,OU=Individual-2,CN=YCCA@黄金交易所@Zhuangj@1";
public static void main(String[] args) {
System.setProperty("com.sunyard.sydapi4j.debug", "true");
long startTime = System.currentTimeMillis(); //获取开始时间
SydApiBuilder builder = new SydApiBuilder().setIp("192.168.0.100");
SydApi4j api = (SydApi4j) builder.build();
try {
/**
* 产生对称密钥,通过清算所公钥证书加密生成数字信封。
* 上清所 SYD_SignDzigitalEnvelope (String pcDnEN, String pcDnSign, byte[] pcData);
* @param pcDnEN: 清算所的公钥证书
* @param pcDnSign:会员的私钥证书
* @param pcData: 明文数据。
* @return pcSignData: 签名数字信封
*/
String pcSignData= api.SYD_SignDigitalEnvelope(pcDnEN,pcDnEN, orgData.getBytes("GBK"));
System.out.println("签名数字信封:"+pcSignData);
/**
* 利用清算所公钥证书对签名数据进行验签。接收用会员的私钥证书解密数字信封,还原原文。
* 上清所 byte[] SYD_VerifyDigitalEnveloe(String pcDnDe, String pcDnVerify, String pcSignData );
* @param pcDnDe: 会员的私钥证书
* @param pcDnVerify: 清算所公钥证书
* @param pcSignData: 签名数字信封数据。
* @return pcData:原数据
*/
byte[] oData =api.SYD_VerifyDigitalEnveloe(pcDnEN,pcDnEN,pcSignData);
System.out.println("原数据:"+ Util.bytes2HexString(oData));
}
catch (Exception e) {
e.printStackTrace();
}finally {
long endTime = System.currentTimeMillis(); //获取结束时间
System.out.println("程序运行时间:" + (endTime - startTime) + "ms"); //输出程序运行时间
}
}
}