95 lines
3.6 KiB
Java
95 lines
3.6 KiB
Java
package sample;
|
|
|
|
import cn.hutool.crypto.asymmetric.SM2;
|
|
import com.sunyard.RetWrap;
|
|
import com.sunyard.cert.X509;
|
|
import com.sunyard.proto.Util;
|
|
import com.sunyard.util.ASN1Util;
|
|
import com.sunyard.util.CertUtil;
|
|
import org.junit.Test;
|
|
import racal.sunyard.main.SydApi4j;
|
|
import racal.sunyard.main.SydApiBuilder;
|
|
|
|
import java.io.UnsupportedEncodingException;
|
|
import java.security.NoSuchProviderException;
|
|
import java.security.cert.CertificateException;
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
|
|
import static com.sunyard.sydapi.util.PrintUtil.printRetWrap;
|
|
|
|
public class Shanghairenhang {
|
|
private static final byte[] orgData2k = new byte[ 1*1024 ];
|
|
private static final String pcDnEN = "C=CN,O=CFCA OCA1,OU=YCCA,OU=Individual-2,CN=YCCA@黄金交易所@Zhuangj@1";
|
|
private static final String RSA = "C=cn,O=CFCA TEST CA,OU=NCS2,OU=Enterprises,CN=041@Z402451000010@ShanDong@00000001";
|
|
|
|
public static void main(String[] args) throws UnsupportedEncodingException, CertificateException, NoSuchProviderException {
|
|
// System.setProperty("com.sunyard.sydapi4j.debug", "true");
|
|
long startTime = System.currentTimeMillis(); //获取开始时间
|
|
SydApiBuilder builder = new SydApiBuilder().setIp("192.168.0.200");
|
|
SydApi4j api = (SydApi4j) builder.build();
|
|
|
|
try {
|
|
|
|
String orgData = "123456";
|
|
|
|
|
|
/**
|
|
* 产生对称密钥,通过公钥加密生成数字信封,。
|
|
* @param pcDnEN: 清算所的公钥证书
|
|
* @param pcData: 明文数据。
|
|
* @return RetWrap: 数字信封
|
|
*/
|
|
|
|
|
|
// 获取加密证书
|
|
// String cert = api.getCertByDn(pcDnEN);
|
|
//
|
|
// System.out.println("cert=" + cert);
|
|
RetWrap status = api.getStatus();
|
|
String mem =(String) status.get("MEM");
|
|
String cpu =(String) status.get("CPU");
|
|
String disk =(String) status.get("DISK");
|
|
System.out.println(mem+cpu+disk);
|
|
|
|
|
|
RetWrap signData = api.generateDEByDn(pcDnEN, orgData.getBytes());
|
|
byte[] cpkey2 = (byte[]) signData.get("CipherKey");
|
|
System.out.println("加密信封:" + new String(cpkey2));
|
|
|
|
/**
|
|
* 接收用私钥解密数字信封,还原原文。。
|
|
* @param pcDnEN: 清算所的公钥证书
|
|
* @param cpkey: 数字信封。
|
|
* @return preData: 原数据
|
|
*/
|
|
RetWrap oDataWrap = api.decryptDEByDN(pcDnEN,cpkey2 );
|
|
byte[] preData = (byte[]) oDataWrap.get("oData");
|
|
System.out.println("解密信封:" + Util.bytes2HexString(preData));
|
|
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
} finally {
|
|
long endTime = System.currentTimeMillis(); //获取结束时间
|
|
System.out.println("程序运行时间:" + (endTime - startTime) + "ms"); //输出程序运行时间
|
|
}
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testRenhang() throws UnsupportedEncodingException {
|
|
//System.setProperty("com.sunyard.sydapi4j.debug", "true");
|
|
SydApiBuilder builder = new SydApiBuilder().setIp("192.168.0.200");
|
|
SydApi4j api = (SydApi4j) builder.build();
|
|
// String attachedSign = api.attachedSign(2,orgData2k, RSA);
|
|
// System.out.println(attachedSign);
|
|
// boolean attachedVerify = api.attachedVerify(2,attachedSign);
|
|
// System.out.println(attachedVerify);
|
|
|
|
byte[] bytes = api.SYD_NakedSign(orgData2k, pcDnEN);
|
|
System.out.println(Util.bytes2HexString(bytes));
|
|
}
|
|
|
|
} |