整理示例代码

This commit is contained in:
cheney 2023-04-17 14:29:04 +08:00
parent ca32bb4c18
commit 52e47a5809
4 changed files with 4 additions and 244 deletions

View File

@ -1560,7 +1560,7 @@ public class SydApi4j implements SydApi {
// }
private static void println(Object i) {
static void println(Object i) {
if (debug) {
System.out.println(i);
}
@ -1569,7 +1569,7 @@ public class SydApi4j implements SydApi {
}
}
private static void print(Object i) {
static void print(Object i) {
if (debug) {
System.out.print(i);
}

View File

@ -1,129 +0,0 @@
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[ 2000*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";
private static final String RSA2 = "C=CN,O=sunyard,OU=rsa,CN=javaRsa";
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("172.16.17.161");
SydApi4j api = (SydApi4j) builder.build();
String attachedSign = api.attachedSign(2,orgData2k, RSA2);
System.out.println(attachedSign);
boolean attachedVerify = api.attachedVerify(2,attachedSign);
System.out.println(attachedVerify);
// byte[] hash = api.RSAHash(2, orgData2k);
// System.out.println(Util.bytes2HexString(hash));
// byte[] bytes = api.SYD_NakedSign(orgData2k, pcDnEN);
// System.out.println(Util.bytes2HexString(bytes));
}
@Test
public void aboutCert() throws UnsupportedEncodingException {
//System.setProperty("com.sunyard.sydapi4j.debug", "true");
SydApiBuilder builder = new SydApiBuilder().setIp("192.168.1.100");
SydApi4j api = (SydApi4j) builder.build();
RetWrap allCert = api.getAllCert(0);
printRetWrap(allCert);
List<String> certs= api.getAllCert();
System.out.println("所有证书"+certs);
System.out.println(certs.size());
}
@Test
public void nakedsign(){
// System.setProperty("com.sunyard.sydapi4j.debug", "true");
SydApiBuilder builder = new SydApiBuilder().setIp("172.16.17.161");
SydApi4j api = (SydApi4j) builder.build();
byte[] nakedSign2 = api.SYD_NakedSign(orgData2k, pcDnEN);
System.out.println("大数据裸签:"+ Util.bytes2HexString(nakedSign2));
boolean nakedVerify2 = api.SYD_NakedVerify(orgData2k, nakedSign2, pcDnEN);
System.out.println("大数据验签:"+nakedVerify2 );
}
}

View File

@ -14,8 +14,8 @@ public class Shangqing {
private SydApi4j api;
// 测试数据
private String uid = "111";
private String dn = "C=CN,ST=321,L=123123,O=123,OU=321,OU=321,CN=123";
private String uid = "8012";
private String dn = "C=CN,O=CFCA OCA1,OU=YCCA,OU=Individual-2,CN=YCCA@黄金交易所@Zhuangj@1";
private byte[] orgData = new byte[2 * 1024 * 1024];
@Before

View File

@ -1,111 +0,0 @@
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 ShangqingXingye {
private static final byte[] orgData2k = new byte[ 16 ];
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: 数字信封
*/
RetWrap signData = api.generateDEByDn(pcDnEN, orgData2k);
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));
//
// /**
// * 通过指定的私钥对指定的原始数据编制带公钥证书的数字签名遵循PKCS#7
// * @param orgData: 待签名的原始数据
// * @param pcDnEN: 签名者证书 DN
// * @return signsData: 签名数据
// */
String signsData = api.SYD_SM2_DetachedSign_HA(orgData2k, pcDnEN);
System.out.println("签名数据:" + signsData);
/**
* 利用清算所的公钥证书对签名数据进行验签
* @param dataType: 数据模式, 0:输入的数据为 HASH 后的数据, 1:输入的数据为原始数据库(本次传入1)
* @param orgData: 待签名的原始数据
* @param sign: 签名数据
*/
boolean result = api.detachedVerify(1, orgData2k, signsData);
System.out.println("验签结果:" + result);
/**
* 产生对称密钥通过清算所公钥证书加密生成数字信封
* 利用会员的私钥证书对数据进行签名
* 上清所 SYD_SignDzigitalEnvelope (String pcDnEN, String pcDnSign, byte[] pcData);
* @param pcDnEN: 清算所的公钥证书
* @param pcDnSign会员的私钥证书
* @param pcData: 明文数据
* @return pcSignData: 签名数字信封
*/
String pcSignData = api.SYD_SignDigitalEnvelope(pcDnEN, pcDnEN, orgData2k);
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"); //输出程序运行时间
}
}
}