本地保存
This commit is contained in:
@@ -1,183 +0,0 @@
|
||||
package com.sunyard.util;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
/**
|
||||
* @Author:Cheney
|
||||
* @Date:2023/7/27 11:16
|
||||
*/
|
||||
public class FrameCache {
|
||||
private static ByteBuffer sm2p1;
|
||||
private static ByteBuffer sm2p1v;
|
||||
private static ByteBuffer rsap1;
|
||||
private static ByteBuffer rsap1v;
|
||||
private static ByteBuffer sm2det;
|
||||
private static ByteBuffer sm2detv;
|
||||
private static ByteBuffer rsadet;
|
||||
private static ByteBuffer rsadetv;
|
||||
|
||||
private static ByteBuffer sm2detres;
|
||||
|
||||
public static ByteBuffer getSm2detres() {
|
||||
return sm2detres;
|
||||
}
|
||||
|
||||
public static void setSm2detres(ByteBuffer sm2detres) {
|
||||
FrameCache.sm2detres = sm2detres;
|
||||
}
|
||||
|
||||
private static String P7sign;
|
||||
|
||||
public static String getP7sign() {
|
||||
return P7sign;
|
||||
}
|
||||
|
||||
public static void setP7sign(String p7sign) {
|
||||
P7sign = p7sign;
|
||||
}
|
||||
|
||||
public static ByteBuffer getSm2p1() {
|
||||
return sm2p1;
|
||||
}
|
||||
|
||||
public static void setSm2p1(ByteBuffer sm2p1) {
|
||||
FrameCache.sm2p1 = sm2p1;
|
||||
}
|
||||
|
||||
public static ByteBuffer getSm2p1v() {
|
||||
return sm2p1v;
|
||||
}
|
||||
|
||||
public static void setSm2p1v(ByteBuffer sm2p1v) {
|
||||
FrameCache.sm2p1v = sm2p1v;
|
||||
}
|
||||
|
||||
public static ByteBuffer getRsap1() {
|
||||
return rsap1;
|
||||
}
|
||||
|
||||
public static void setRsap1(ByteBuffer rsap1) {
|
||||
FrameCache.rsap1 = rsap1;
|
||||
}
|
||||
|
||||
public static ByteBuffer getRsap1v() {
|
||||
return rsap1v;
|
||||
}
|
||||
|
||||
public static void setRsap1v(ByteBuffer rsap1v) {
|
||||
FrameCache.rsap1v = rsap1v;
|
||||
}
|
||||
|
||||
public static ByteBuffer getSm2det() {
|
||||
return sm2det;
|
||||
}
|
||||
|
||||
public static void setSm2det(ByteBuffer sm2det) {
|
||||
FrameCache.sm2det = sm2det;
|
||||
}
|
||||
|
||||
public static ByteBuffer getSm2detv() {
|
||||
return sm2detv;
|
||||
}
|
||||
|
||||
public static void setSm2detv(ByteBuffer sm2detv) {
|
||||
FrameCache.sm2detv = sm2detv;
|
||||
}
|
||||
|
||||
public static ByteBuffer getRsadet() {
|
||||
return rsadet;
|
||||
}
|
||||
|
||||
public static void setRsadet(ByteBuffer rsadet) {
|
||||
FrameCache.rsadet = rsadet;
|
||||
}
|
||||
|
||||
public static ByteBuffer getRsadetv() {
|
||||
return rsadetv;
|
||||
}
|
||||
|
||||
public static void setRsadetv(ByteBuffer rsadetv) {
|
||||
FrameCache.rsadetv = rsadetv;
|
||||
}
|
||||
|
||||
public static ByteBuffer getSm2att() {
|
||||
return sm2att;
|
||||
}
|
||||
|
||||
public static void setSm2att(ByteBuffer sm2att) {
|
||||
FrameCache.sm2att = sm2att;
|
||||
}
|
||||
|
||||
public static ByteBuffer getSm2attv() {
|
||||
return sm2attv;
|
||||
}
|
||||
|
||||
public static void setSm2attv(ByteBuffer sm2attv) {
|
||||
FrameCache.sm2attv = sm2attv;
|
||||
}
|
||||
|
||||
public static ByteBuffer getRsaatt() {
|
||||
return rsaatt;
|
||||
}
|
||||
|
||||
public static void setRsaatt(ByteBuffer rsaatt) {
|
||||
FrameCache.rsaatt = rsaatt;
|
||||
}
|
||||
|
||||
public static ByteBuffer getRsaattv() {
|
||||
return rsaattv;
|
||||
}
|
||||
|
||||
public static void setRsaattv(ByteBuffer rsaattv) {
|
||||
FrameCache.rsaattv = rsaattv;
|
||||
}
|
||||
|
||||
public static ByteBuffer getSm2gen() {
|
||||
return sm2gen;
|
||||
}
|
||||
|
||||
public static void setSm2gen(ByteBuffer sm2gen) {
|
||||
FrameCache.sm2gen = sm2gen;
|
||||
}
|
||||
|
||||
public static ByteBuffer getSm2den() {
|
||||
return sm2den;
|
||||
}
|
||||
|
||||
public static void setSm2den(ByteBuffer sm2den) {
|
||||
FrameCache.sm2den = sm2den;
|
||||
}
|
||||
|
||||
public static ByteBuffer getRsagen() {
|
||||
return rsagen;
|
||||
}
|
||||
|
||||
public static void setRsagen(ByteBuffer rsagen) {
|
||||
FrameCache.rsagen = rsagen;
|
||||
}
|
||||
|
||||
public static ByteBuffer getRsaden() {
|
||||
return rsaden;
|
||||
}
|
||||
|
||||
public static void setRsaden(ByteBuffer rsaden) {
|
||||
FrameCache.rsaden = rsaden;
|
||||
}
|
||||
|
||||
private static ByteBuffer sm2att;
|
||||
private static ByteBuffer sm2attv;
|
||||
private static ByteBuffer rsaatt;
|
||||
private static ByteBuffer rsaattv;
|
||||
private static ByteBuffer sm2gen;
|
||||
private static ByteBuffer sm2den;
|
||||
private static ByteBuffer rsagen;
|
||||
private static ByteBuffer rsaden;
|
||||
|
||||
|
||||
|
||||
// private static ByteBuffer res;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -442,29 +442,27 @@ public class SydApi4j implements SydApi {
|
||||
Proto8003 proto = new Proto8003();
|
||||
PacketSN sn = PacketSN.gen();
|
||||
|
||||
byte[] dn = new byte[256];
|
||||
byte[] s = null;
|
||||
|
||||
try {
|
||||
sCertDN = DnUtil.verifyDn(sCertDN);
|
||||
s = sCertDN.getBytes("GBK");
|
||||
} catch (UnsupportedEncodingException var16) {
|
||||
var16.printStackTrace();
|
||||
}
|
||||
|
||||
System.arraycopy(s, 0, dn, 0, s.length);
|
||||
HashMap<String, Object> packet = new HashMap();
|
||||
HashMap<String, Object> data = new HashMap();
|
||||
packet.put("data", data);
|
||||
packet.put("header", sn.getSn().array());
|
||||
data.put("signatureDataType$option", 1);
|
||||
data.put("DN", dn);
|
||||
data.put("signData", orgData);
|
||||
data.put("rFlag", 'P');
|
||||
data.put("hash", hash);
|
||||
ByteBuffer bb = proto.rend(packet);
|
||||
byte[] dn = new byte[256];
|
||||
byte[] s = null;
|
||||
|
||||
try {
|
||||
sCertDN = DnUtil.verifyDn(sCertDN);
|
||||
s = sCertDN.getBytes("GBK");
|
||||
} catch (UnsupportedEncodingException var16) {
|
||||
var16.printStackTrace();
|
||||
}
|
||||
|
||||
System.arraycopy(s, 0, dn, 0, s.length);
|
||||
HashMap<String, Object> packet = new HashMap();
|
||||
HashMap<String, Object> data = new HashMap();
|
||||
packet.put("data", data);
|
||||
packet.put("header", sn.getSn().array());
|
||||
data.put("signatureDataType$option", 1);
|
||||
data.put("DN", dn);
|
||||
data.put("signData", orgData);
|
||||
data.put("rFlag", 'P');
|
||||
data.put("hash", hash);
|
||||
ByteBuffer bb = proto.rend(packet);
|
||||
|
||||
synchronized(this) {
|
||||
bb = this.syncRead(this.syncSend(bb));
|
||||
@@ -523,49 +521,41 @@ public class SydApi4j implements SydApi {
|
||||
Proto8003 proto = new Proto8003();
|
||||
PacketSN sn = PacketSN.gen();
|
||||
HashMap<String, Object> packet = new HashMap<String, Object>();
|
||||
ByteBuffer bb = null;
|
||||
if (null ==FrameCache.getRsap1()) {
|
||||
|
||||
|
||||
byte[] dn = new byte[256];
|
||||
byte[] s = null;
|
||||
try {
|
||||
s = sCertDN.getBytes("GBK");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.arraycopy(s, 0, dn, 0, s.length);
|
||||
|
||||
// 填充数据
|
||||
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
packet.put("data", data);
|
||||
|
||||
packet.put("header", sn.getSn().array());
|
||||
if (rFlag == 1) {
|
||||
// MD5
|
||||
data.put("rFlag", 'M');
|
||||
}
|
||||
if (rFlag == 2) {
|
||||
// SHA-1
|
||||
data.put("rFlag", 'S');
|
||||
}
|
||||
if (rFlag == 3) {
|
||||
// SHA-256
|
||||
data.put("rFlag", 'R');
|
||||
}
|
||||
data.put("signatureDataType$option", 1);
|
||||
data.put("DN", dn);
|
||||
data.put("signData", orgData);
|
||||
data.put("hash", hash);
|
||||
// 渲染发送
|
||||
bb = proto.rend(packet);
|
||||
FrameCache.setRsap1(bb);
|
||||
}else{
|
||||
bb = FrameCache.getRsap1();
|
||||
byte[] dn = new byte[256];
|
||||
byte[] s = null;
|
||||
try {
|
||||
s = sCertDN.getBytes("GBK");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.arraycopy(s, 0, dn, 0, s.length);
|
||||
|
||||
// 填充数据
|
||||
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
packet.put("data", data);
|
||||
|
||||
packet.put("header", sn.getSn().array());
|
||||
if (rFlag == 1) {
|
||||
// MD5
|
||||
data.put("rFlag", 'M');
|
||||
}
|
||||
if (rFlag == 2) {
|
||||
// SHA-1
|
||||
data.put("rFlag", 'S');
|
||||
}
|
||||
if (rFlag == 3) {
|
||||
// SHA-256
|
||||
data.put("rFlag", 'R');
|
||||
}
|
||||
data.put("signatureDataType$option", 1);
|
||||
data.put("DN", dn);
|
||||
data.put("signData", orgData);
|
||||
data.put("hash", hash);
|
||||
// 渲染发送
|
||||
ByteBuffer bb = proto.rend(packet);
|
||||
synchronized (this) {
|
||||
// 响应解析
|
||||
bb = syncRead(syncSend(bb));
|
||||
@@ -600,31 +590,30 @@ public class SydApi4j implements SydApi {
|
||||
PacketSN sn = PacketSN.gen();
|
||||
HashMap<String, Object> packet = new HashMap();
|
||||
|
||||
sign = ASN1Util.alignSignDer(sign);
|
||||
byte[] dn = new byte[256];
|
||||
byte[] s = null;
|
||||
|
||||
sign = ASN1Util.alignSignDer(sign);
|
||||
byte[] dn = new byte[256];
|
||||
byte[] s = null;
|
||||
try {
|
||||
sCertDN = DnUtil.verifyDn(sCertDN);
|
||||
s = sCertDN.getBytes("GBK");
|
||||
} catch (UnsupportedEncodingException var18) {
|
||||
var18.printStackTrace();
|
||||
}
|
||||
|
||||
try {
|
||||
sCertDN = DnUtil.verifyDn(sCertDN);
|
||||
s = sCertDN.getBytes("GBK");
|
||||
} catch (UnsupportedEncodingException var18) {
|
||||
var18.printStackTrace();
|
||||
}
|
||||
System.arraycopy(s, 0, dn, 0, s.length);
|
||||
HashMap<String, Object> data = new HashMap();
|
||||
packet.put("data", data);
|
||||
|
||||
System.arraycopy(s, 0, dn, 0, s.length);
|
||||
HashMap<String, Object> data = new HashMap();
|
||||
packet.put("data", data);
|
||||
|
||||
packet.put("header", sn.getSn().array());
|
||||
data.put("signatureDataType$option", 1);
|
||||
data.put("DN", dn);
|
||||
data.put("odata", orgData);
|
||||
data.put("rFlag", 'P');
|
||||
data.put("hash", hash);
|
||||
data.put("signature", sign);
|
||||
data.put("returnSign$option", 0);
|
||||
ByteBuffer bb = proto.rend(packet);
|
||||
packet.put("header", sn.getSn().array());
|
||||
data.put("signatureDataType$option", 1);
|
||||
data.put("DN", dn);
|
||||
data.put("odata", orgData);
|
||||
data.put("rFlag", 'P');
|
||||
data.put("hash", hash);
|
||||
data.put("signature", sign);
|
||||
data.put("returnSign$option", 0);
|
||||
ByteBuffer bb = proto.rend(packet);
|
||||
|
||||
synchronized(this) {
|
||||
byte[] b = this.syncSend(bb);
|
||||
@@ -680,48 +669,41 @@ public class SydApi4j implements SydApi {
|
||||
Proto8004 proto = new Proto8004();
|
||||
HashMap<String, Object> packet = new HashMap<String, Object>();
|
||||
PacketSN sn = PacketSN.gen();
|
||||
ByteBuffer bb =null;
|
||||
if (null == FrameCache.getRsap1v()) {
|
||||
|
||||
byte[] dn = new byte[256];
|
||||
byte[] s = null;
|
||||
|
||||
byte[] dn = new byte[256];
|
||||
byte[] s = null;
|
||||
|
||||
try {
|
||||
s = sCertDN.getBytes("GBK");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.arraycopy(s, 0, dn, 0, s.length);
|
||||
|
||||
// 填充数据
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
packet.put("data", data);
|
||||
|
||||
packet.put("header", sn.getSn().array());
|
||||
if (rFlag == 1) {
|
||||
data.put("rFlag", 'M');
|
||||
}
|
||||
if (rFlag == 2) {
|
||||
data.put("rFlag", 'S');
|
||||
}
|
||||
if (rFlag == 3) {
|
||||
data.put("rFlag", 'R');
|
||||
}
|
||||
data.put("signatureDataType$option", 1);
|
||||
data.put("DN", dn);
|
||||
data.put("odata", orgData);
|
||||
data.put("signature", sign);
|
||||
data.put("hash", hashData);
|
||||
data.put("returnSign$option", 0);
|
||||
// 渲染发送
|
||||
bb = proto.rend(packet);
|
||||
FrameCache.setRsap1v(bb);
|
||||
}else{
|
||||
bb = FrameCache.getRsap1v();
|
||||
try {
|
||||
s = sCertDN.getBytes("GBK");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.arraycopy(s, 0, dn, 0, s.length);
|
||||
|
||||
// 填充数据
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
packet.put("data", data);
|
||||
|
||||
packet.put("header", sn.getSn().array());
|
||||
if (rFlag == 1) {
|
||||
data.put("rFlag", 'M');
|
||||
}
|
||||
if (rFlag == 2) {
|
||||
data.put("rFlag", 'S');
|
||||
}
|
||||
if (rFlag == 3) {
|
||||
data.put("rFlag", 'R');
|
||||
}
|
||||
data.put("signatureDataType$option", 1);
|
||||
data.put("DN", dn);
|
||||
data.put("odata", orgData);
|
||||
data.put("signature", sign);
|
||||
data.put("hash", hashData);
|
||||
data.put("returnSign$option", 0);
|
||||
// 渲染发送
|
||||
ByteBuffer bb = proto.rend(packet);
|
||||
|
||||
synchronized (this) {
|
||||
byte[] b = syncSend(bb);
|
||||
|
||||
@@ -896,71 +878,58 @@ public class SydApi4j implements SydApi {
|
||||
Proto8005 proto = new Proto8005();
|
||||
HashMap<String, Object> packet = new HashMap<String, Object>();
|
||||
PacketSN sn = PacketSN.gen();
|
||||
ByteBuffer bb = null;
|
||||
if (null == FrameCache.getSm2det()) {
|
||||
byte[] dn = new byte[256];
|
||||
byte[] s = null;
|
||||
try {
|
||||
sCertDN = verifyDn(sCertDN);
|
||||
s = sCertDN.getBytes("GBK");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.arraycopy(s, 0, dn, 0, s.length);
|
||||
|
||||
// 填充数据
|
||||
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
packet.put("data", data);
|
||||
|
||||
packet.put("header", sn.getSn().array());
|
||||
data.put("DN", dn);
|
||||
if (dataType == DATA_HASH) {
|
||||
data.put("hashFlag", 'P');
|
||||
data.put("hash", orgData);
|
||||
} else {
|
||||
data.put("infoData", orgData);
|
||||
}
|
||||
|
||||
// 渲染发送
|
||||
bb = proto.rend(packet);
|
||||
FrameCache.setSm2det(bb);
|
||||
}else{
|
||||
bb = FrameCache.getSm2det();
|
||||
byte[] dn = new byte[256];
|
||||
byte[] s = null;
|
||||
try {
|
||||
sCertDN = verifyDn(sCertDN);
|
||||
s = sCertDN.getBytes("GBK");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.arraycopy(s, 0, dn, 0, s.length);
|
||||
|
||||
// 填充数据
|
||||
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
packet.put("data", data);
|
||||
|
||||
packet.put("header", sn.getSn().array());
|
||||
data.put("DN", dn);
|
||||
if (dataType == DATA_HASH) {
|
||||
data.put("hashFlag", 'P');
|
||||
data.put("hash", orgData);
|
||||
} else {
|
||||
data.put("infoData", orgData);
|
||||
}
|
||||
|
||||
// 渲染发送
|
||||
ByteBuffer bb = proto.rend(packet);
|
||||
|
||||
synchronized (this) {
|
||||
// 响应解析
|
||||
bb = syncRead(syncSend(bb));
|
||||
|
||||
}
|
||||
|
||||
//
|
||||
if (null == FrameCache.getP7sign()) {
|
||||
Packet p = proto.parse(bb);
|
||||
Map<String, Object> ret = p.toMap();
|
||||
|
||||
if (
|
||||
!Arrays.equals(sn.getSn().array(), ((PacketSection) ret.get("header")).getBytes())
|
||||
) {
|
||||
throw new SydApiException("包序号不匹配", -4);
|
||||
}
|
||||
ret = (Map<String, Object>) ret.get("data");
|
||||
PacketSection error = (PacketSection) ret.get("error");
|
||||
byte[] be = error.getBytes();
|
||||
if (
|
||||
(0 != (be[0] ^ be[1]))) {
|
||||
|
||||
throw new SydApiException(error.getInfo(), error.autoInt());
|
||||
}
|
||||
|
||||
String signature = ((PacketSection) ret.get("signature")).getString();
|
||||
FrameCache.setP7sign(signature);
|
||||
return signature;
|
||||
}else{
|
||||
return FrameCache.getP7sign();
|
||||
Packet p = proto.parse(bb);
|
||||
Map<String, Object> ret = p.toMap();
|
||||
if (
|
||||
!Arrays.equals(sn.getSn().array(), ((PacketSection) ret.get("header")).getBytes())
|
||||
) {
|
||||
throw new SydApiException("包序号不匹配", -4);
|
||||
}
|
||||
ret = (Map<String, Object>) ret.get("data");
|
||||
PacketSection error = (PacketSection) ret.get("error");
|
||||
byte[] be = error.getBytes();
|
||||
if (
|
||||
(0 != (be[0] ^ be[1]))) {
|
||||
|
||||
throw new SydApiException(error.getInfo(), error.autoInt());
|
||||
}
|
||||
|
||||
String signature = ((PacketSection) ret.get("signature")).getString();
|
||||
return signature;
|
||||
|
||||
}
|
||||
|
||||
@@ -972,30 +941,24 @@ public class SydApi4j implements SydApi {
|
||||
HashMap<String, Object> packet = new HashMap<String, Object>();
|
||||
PacketSN sn = PacketSN.gen();
|
||||
|
||||
ByteBuffer bb =null;
|
||||
if (null == FrameCache.getSm2detv()) {
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
packet.put("data", data);
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
packet.put("data", data);
|
||||
|
||||
packet.put("header", sn.getSn().array());
|
||||
packet.put("header", sn.getSn().array());
|
||||
|
||||
if (dataType == DATA_HASH) {
|
||||
data.put("hashFlag", 'P');
|
||||
data.put("hash", orgData);
|
||||
} else {
|
||||
data.put("originData", orgData);
|
||||
}
|
||||
|
||||
|
||||
data.put("signData", sign.getBytes());
|
||||
data.put("flag$option", 0);
|
||||
// 渲染发送
|
||||
bb = proto.rend(packet);
|
||||
FrameCache.setSm2detv(bb);
|
||||
}else{
|
||||
bb = FrameCache.getSm2detv();
|
||||
if (dataType == DATA_HASH) {
|
||||
data.put("hashFlag", 'P');
|
||||
data.put("hash", orgData);
|
||||
} else {
|
||||
data.put("originData", orgData);
|
||||
}
|
||||
|
||||
|
||||
data.put("signData", sign.getBytes());
|
||||
data.put("flag$option", 0);
|
||||
// 渲染发送
|
||||
ByteBuffer bb = proto.rend(packet);
|
||||
|
||||
synchronized (this) {
|
||||
// 响应解析
|
||||
bb = syncRead(syncSend(bb));
|
||||
@@ -1100,46 +1063,39 @@ public class SydApi4j implements SydApi {
|
||||
// 填充数据
|
||||
HashMap<String, Object> packet = new HashMap<String, Object>();
|
||||
PacketSN sn = PacketSN.gen();
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
packet.put("data", data);
|
||||
|
||||
ByteBuffer bb= null;
|
||||
if(null == FrameCache.getRsadetv()) {
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
packet.put("data", data);
|
||||
if (rFlag == 1) {//RSA证书
|
||||
data.put("rFlag", 'D');
|
||||
}
|
||||
if (rFlag == 2) {
|
||||
data.put("rFlag", 'O');
|
||||
}
|
||||
if (rFlag == 3) {
|
||||
data.put("rFlag", 'U');
|
||||
}
|
||||
packet.put("header", sn.getSn().array());
|
||||
|
||||
|
||||
if (dataType == DATA_HASH) {
|
||||
if (rFlag == 1) {//RSA证书
|
||||
data.put("rFlag", 'D');
|
||||
data.put("hashFlag", 'M');
|
||||
}
|
||||
if (rFlag == 2) {
|
||||
data.put("rFlag", 'O');
|
||||
data.put("hashFlag", 'S');
|
||||
}
|
||||
if (rFlag == 3) {
|
||||
data.put("rFlag", 'U');
|
||||
data.put("hashFlag", 'R');
|
||||
}
|
||||
packet.put("header", sn.getSn().array());
|
||||
|
||||
|
||||
if (dataType == DATA_HASH) {
|
||||
if (rFlag == 1) {//RSA证书
|
||||
data.put("hashFlag", 'M');
|
||||
}
|
||||
if (rFlag == 2) {
|
||||
data.put("hashFlag", 'S');
|
||||
}
|
||||
if (rFlag == 3) {
|
||||
data.put("hashFlag", 'R');
|
||||
}
|
||||
data.put("hash", orgData);
|
||||
} else {
|
||||
data.put("originData", orgData);
|
||||
}
|
||||
data.put("signData", sign.getBytes());
|
||||
data.put("flag$option", 0);
|
||||
// 渲染发送
|
||||
bb = proto.rend(packet);
|
||||
FrameCache.setRsadetv(bb);
|
||||
}else{
|
||||
bb = FrameCache.getRsadet();
|
||||
data.put("hash", orgData);
|
||||
} else {
|
||||
data.put("originData", orgData);
|
||||
}
|
||||
data.put("signData", sign.getBytes());
|
||||
data.put("flag$option", 0);
|
||||
// 渲染发送
|
||||
ByteBuffer bb = proto.rend(packet);
|
||||
|
||||
synchronized (this) {
|
||||
// 响应解析
|
||||
@@ -1353,58 +1309,52 @@ public class SydApi4j implements SydApi {
|
||||
Proto8005 proto = new Proto8005();
|
||||
HashMap<String, Object> packet = new HashMap<String, Object>();
|
||||
PacketSN sn = PacketSN.gen();
|
||||
ByteBuffer bb = null;
|
||||
if ( null == FrameCache.getRsadet()) {
|
||||
|
||||
byte[] dn = new byte[256];
|
||||
byte[] s = null;
|
||||
try {
|
||||
sCertDN = verifyDn(sCertDN);
|
||||
s = sCertDN.getBytes("GBK");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
byte[] dn = new byte[256];
|
||||
byte[] s = null;
|
||||
try {
|
||||
sCertDN = verifyDn(sCertDN);
|
||||
s = sCertDN.getBytes("GBK");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.arraycopy(s, 0, dn, 0, s.length);
|
||||
System.arraycopy(s, 0, dn, 0, s.length);
|
||||
|
||||
// 填充数据
|
||||
// 填充数据
|
||||
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
packet.put("data", data);
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
packet.put("data", data);
|
||||
|
||||
packet.put("header", sn.getSn().array());
|
||||
if (rFlag == 1) {//RSA证书加签方法
|
||||
data.put("rFlag", 'M');
|
||||
packet.put("header", sn.getSn().array());
|
||||
if (rFlag == 1) {//RSA证书加签方法
|
||||
data.put("rFlag", 'M');
|
||||
}
|
||||
if (rFlag == 2) {
|
||||
data.put("rFlag", 'S');
|
||||
}
|
||||
if (rFlag == 3) {
|
||||
data.put("rFlag", 'R');
|
||||
}
|
||||
data.put("DN", dn);
|
||||
if (dataType == DATA_HASH) {
|
||||
if (rFlag == 1) {
|
||||
data.put("hashFlag", 'M');
|
||||
}
|
||||
if (rFlag == 2) {
|
||||
data.put("rFlag", 'S');
|
||||
data.put("hashFlag", 'S');
|
||||
}
|
||||
if (rFlag == 3) {
|
||||
data.put("rFlag", 'R');
|
||||
data.put("hashFlag", 'R');
|
||||
}
|
||||
data.put("DN", dn);
|
||||
if (dataType == DATA_HASH) {
|
||||
if (rFlag == 1) {
|
||||
data.put("hashFlag", 'M');
|
||||
}
|
||||
if (rFlag == 2) {
|
||||
data.put("hashFlag", 'S');
|
||||
}
|
||||
if (rFlag == 3) {
|
||||
data.put("hashFlag", 'R');
|
||||
}
|
||||
data.put("hash", orgData);
|
||||
} else {
|
||||
data.put("infoData", orgData);
|
||||
}
|
||||
|
||||
// 渲染发送
|
||||
bb = proto.rend(packet);
|
||||
FrameCache.setRsadet(bb);
|
||||
}else{
|
||||
bb = FrameCache.getRsadet();
|
||||
data.put("hash", orgData);
|
||||
} else {
|
||||
data.put("infoData", orgData);
|
||||
}
|
||||
|
||||
// 渲染发送
|
||||
ByteBuffer bb = proto.rend(packet);
|
||||
|
||||
synchronized (this) {
|
||||
// 响应解析
|
||||
bb = syncRead(syncSend(bb));
|
||||
@@ -3184,36 +3134,32 @@ public class SydApi4j implements SydApi {
|
||||
// 填充数据
|
||||
PacketSN sn = PacketSN.gen();
|
||||
HashMap<String, Object> packet = new HashMap<String, Object>();
|
||||
ByteBuffer bb =null;
|
||||
if (null == FrameCache.getRsagen()) {
|
||||
packet.put("header", sn.getSn().array());
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
data.put("alg$option", alg);
|
||||
data.put("certificateModel$option", model);
|
||||
|
||||
if (model == 0) {
|
||||
data.put("certificateSn", certSerial);
|
||||
} else {
|
||||
data.put("certificateDn", certSerial);
|
||||
}
|
||||
packet.put("header", sn.getSn().array());
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
data.put("alg$option", alg);
|
||||
data.put("certificateModel$option", model);
|
||||
|
||||
if (alg == 3 || alg == 4) {
|
||||
data.put("orgData", oData);
|
||||
}
|
||||
|
||||
data.put("keyType", "X");
|
||||
if (alg == 4) {
|
||||
data.put("keyType", "L");
|
||||
}
|
||||
|
||||
|
||||
packet.put("data", data);
|
||||
// 渲染发送 耗时长
|
||||
bb = proto.rend(packet);
|
||||
FrameCache.setRsagen(bb);
|
||||
}else{
|
||||
bb = FrameCache.getRsagen();
|
||||
if (model == 0) {
|
||||
data.put("certificateSn", certSerial);
|
||||
} else {
|
||||
data.put("certificateDn", certSerial);
|
||||
}
|
||||
|
||||
if (alg == 3 || alg == 4) {
|
||||
data.put("orgData", oData);
|
||||
}
|
||||
|
||||
data.put("keyType", "X");
|
||||
if (alg == 4) {
|
||||
data.put("keyType", "L");
|
||||
}
|
||||
|
||||
|
||||
packet.put("data", data);
|
||||
// 渲染发送 耗时长
|
||||
ByteBuffer bb = proto.rend(packet);
|
||||
|
||||
synchronized (this) {
|
||||
// 响应解析
|
||||
bb = syncRead(syncSend(bb));
|
||||
@@ -3843,31 +3789,25 @@ public class SydApi4j implements SydApi {
|
||||
PacketSN sn = PacketSN.gen();
|
||||
HashMap<String, Object> packet = new HashMap<String, Object>();
|
||||
|
||||
ByteBuffer bb =null ;
|
||||
if(null == FrameCache.getSm2den()) {
|
||||
packet.put("header", sn.getSn().array());
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
if (pFlag) {
|
||||
data.put("pFlag", "P");
|
||||
}
|
||||
data.put("certificateModel$option", model);
|
||||
|
||||
if (model == 0) {
|
||||
data.put("certificateSn", certSerial);
|
||||
} else {
|
||||
data.put("certificateDn", certSerial);
|
||||
}
|
||||
data.put("key", pCipherKey);
|
||||
data.put("keyType", "X");
|
||||
packet.put("data", data);
|
||||
|
||||
// 渲染发送
|
||||
bb = proto.rend(packet);
|
||||
FrameCache.setSm2den(bb);
|
||||
packet.put("header", sn.getSn().array());
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
if (pFlag) {
|
||||
data.put("pFlag", "P");
|
||||
}
|
||||
else{
|
||||
bb = FrameCache.getSm2den();
|
||||
data.put("certificateModel$option", model);
|
||||
|
||||
if (model == 0) {
|
||||
data.put("certificateSn", certSerial);
|
||||
} else {
|
||||
data.put("certificateDn", certSerial);
|
||||
}
|
||||
data.put("key", pCipherKey);
|
||||
data.put("keyType", "X");
|
||||
packet.put("data", data);
|
||||
|
||||
// 渲染发送
|
||||
ByteBuffer bb = proto.rend(packet);
|
||||
|
||||
synchronized (this) {
|
||||
// 响应解析
|
||||
bb = syncRead(syncSend(bb));
|
||||
@@ -3918,31 +3858,26 @@ public class SydApi4j implements SydApi {
|
||||
PacketSN sn = PacketSN.gen();
|
||||
HashMap<String, Object> packet = new HashMap<String, Object>();
|
||||
|
||||
ByteBuffer bb =null;
|
||||
if (null == FrameCache.getRsaden()) {
|
||||
packet.put("header", sn.getSn().array());
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
data.put("pFlag", "R");
|
||||
if (!pFlag) {
|
||||
data.put("pFlag", "Q");
|
||||
}
|
||||
data.put("certificateModel$option", model);
|
||||
|
||||
if (model == 0) {
|
||||
data.put("certificateSn", certSerial);
|
||||
} else {
|
||||
data.put("certificateDn", certSerial);
|
||||
}
|
||||
data.put("key", pCipherKey);
|
||||
data.put("keyType", "L");
|
||||
packet.put("data", data);
|
||||
|
||||
// 渲染发送
|
||||
bb = proto.rend(packet);
|
||||
FrameCache.setRsaden(bb);
|
||||
}else{
|
||||
bb = FrameCache.getRsaden();
|
||||
packet.put("header", sn.getSn().array());
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
data.put("pFlag", "R");
|
||||
if (!pFlag) {
|
||||
data.put("pFlag", "Q");
|
||||
}
|
||||
data.put("certificateModel$option", model);
|
||||
|
||||
if (model == 0) {
|
||||
data.put("certificateSn", certSerial);
|
||||
} else {
|
||||
data.put("certificateDn", certSerial);
|
||||
}
|
||||
data.put("key", pCipherKey);
|
||||
data.put("keyType", "L");
|
||||
packet.put("data", data);
|
||||
|
||||
// 渲染发送
|
||||
ByteBuffer bb = proto.rend(packet);
|
||||
|
||||
synchronized (this) {
|
||||
// 响应解析
|
||||
bb = syncRead(syncSend(bb));
|
||||
@@ -12104,45 +12039,38 @@ public class SydApi4j implements SydApi {
|
||||
Proto8018 proto = new Proto8018();
|
||||
HashMap<String, Object> packet = new HashMap<String, Object>();
|
||||
PacketSN sn = PacketSN.gen();
|
||||
ByteBuffer bb =null;
|
||||
if(null == FrameCache.getRsaatt()) {
|
||||
|
||||
|
||||
byte[] dn = new byte[256];
|
||||
byte[] s = null;
|
||||
try {
|
||||
s = sCertDN.getBytes("GBK");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.arraycopy(s, 0, dn, 0, s.length);
|
||||
|
||||
// 填充数据
|
||||
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
packet.put("data", data);
|
||||
|
||||
packet.put("header", sn.getSn().array());
|
||||
if (rFlag == 1) {
|
||||
data.put("rFlag", 'M');
|
||||
}
|
||||
if (rFlag == 2) {
|
||||
data.put("rFlag", 'S');
|
||||
}
|
||||
if (rFlag == 3) {
|
||||
data.put("rFlag", 'R');
|
||||
}
|
||||
data.put("DN", dn);
|
||||
data.put("infoData", orgData);
|
||||
|
||||
// 渲染发送
|
||||
bb = proto.rend(packet);
|
||||
FrameCache.setRsaatt(bb);
|
||||
}else{
|
||||
bb = FrameCache.getRsaatt();
|
||||
byte[] dn = new byte[256];
|
||||
byte[] s = null;
|
||||
try {
|
||||
s = sCertDN.getBytes("GBK");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.arraycopy(s, 0, dn, 0, s.length);
|
||||
|
||||
// 填充数据
|
||||
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
packet.put("data", data);
|
||||
|
||||
packet.put("header", sn.getSn().array());
|
||||
if (rFlag == 1) {
|
||||
data.put("rFlag", 'M');
|
||||
}
|
||||
if (rFlag == 2) {
|
||||
data.put("rFlag", 'S');
|
||||
}
|
||||
if (rFlag == 3) {
|
||||
data.put("rFlag", 'R');
|
||||
}
|
||||
data.put("DN", dn);
|
||||
data.put("infoData", orgData);
|
||||
|
||||
// 渲染发送
|
||||
ByteBuffer bb = proto.rend(packet);
|
||||
|
||||
synchronized (this) {
|
||||
// 响应解析
|
||||
bb = syncRead(syncSend(bb));
|
||||
@@ -12176,35 +12104,28 @@ public class SydApi4j implements SydApi {
|
||||
Proto8018 proto = new Proto8018();
|
||||
HashMap<String, Object> packet = new HashMap<String, Object>();
|
||||
PacketSN sn = PacketSN.gen();
|
||||
ByteBuffer bb =null;
|
||||
|
||||
if (null == FrameCache.getSm2att()) {
|
||||
byte[] dn = new byte[256];
|
||||
byte[] s = null;
|
||||
try {
|
||||
s = sCertDN.getBytes("GBK");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.arraycopy(s, 0, dn, 0, s.length);
|
||||
|
||||
// 填充数据
|
||||
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
packet.put("data", data);
|
||||
packet.put("header", sn.getSn().array());
|
||||
data.put("DN", dn);
|
||||
data.put("infoData", orgData);
|
||||
|
||||
// 渲染发送
|
||||
bb = proto.rend(packet);
|
||||
FrameCache.setSm2att(bb);
|
||||
|
||||
}else{
|
||||
bb = FrameCache.getSm2att();
|
||||
byte[] dn = new byte[256];
|
||||
byte[] s = null;
|
||||
try {
|
||||
s = sCertDN.getBytes("GBK");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.arraycopy(s, 0, dn, 0, s.length);
|
||||
|
||||
// 填充数据
|
||||
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
packet.put("data", data);
|
||||
packet.put("header", sn.getSn().array());
|
||||
data.put("DN", dn);
|
||||
data.put("infoData", orgData);
|
||||
|
||||
// 渲染发送
|
||||
ByteBuffer bb = proto.rend(packet);
|
||||
|
||||
synchronized (this) {
|
||||
// 响应解析
|
||||
bb = syncRead(syncSend(bb));
|
||||
@@ -12250,21 +12171,16 @@ public class SydApi4j implements SydApi {
|
||||
HashMap<String, Object> packet = new HashMap<String, Object>();
|
||||
HashMap<String, Object> data = new HashMap<String, Object>();
|
||||
PacketSN sn = PacketSN.gen();
|
||||
ByteBuffer bb = null;
|
||||
if(null == FrameCache.getSm2attv()) {
|
||||
packet.put("data", data);
|
||||
|
||||
packet.put("header", sn.getSn().array());
|
||||
packet.put("data", data);
|
||||
|
||||
data.put("signData", sign);
|
||||
data.put("flag$option", 0);
|
||||
packet.put("header", sn.getSn().array());
|
||||
|
||||
// 渲染发送
|
||||
bb = proto.rend(packet);
|
||||
FrameCache.setSm2attv(bb);
|
||||
}else{
|
||||
bb = FrameCache.getSm2attv();
|
||||
}
|
||||
data.put("signData", sign);
|
||||
data.put("flag$option", 0);
|
||||
|
||||
// 渲染发送
|
||||
ByteBuffer bb = proto.rend(packet);
|
||||
|
||||
synchronized (this) {
|
||||
// 响应解析
|
||||
|
||||
Reference in New Issue
Block a user