配合网联接口
This commit is contained in:
@@ -170,6 +170,99 @@ public class SydApi4j implements SydApi {
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
public RetWrap SYD_SM2GenKeyPair(String userId, int nKeyType) {
|
||||
ProtoQN proto = new ProtoQN();
|
||||
String sk = "999999999999999999999999999";
|
||||
if (userId != null) {
|
||||
sk = SYMUtil.genPrivateKeyMark(userId, nKeyType == 0 ? "000" : "001", "00000001");
|
||||
}
|
||||
|
||||
HashMap<String, Object> packet = new HashMap();
|
||||
HashMap<String, Object> data = new HashMap();
|
||||
packet.put("data", data);
|
||||
PacketSN sn = PacketSN.gen();
|
||||
packet.put("header", sn.getSn().array());
|
||||
data.put("sk", sk);
|
||||
// data.put("startTime", "20220101");
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
||||
Date dt = new Date();
|
||||
String startTime = sdf.format(dt);
|
||||
data.put("startTime", startTime);
|
||||
data.put("endTime", "20990101");
|
||||
ByteBuffer bb = proto.rend(packet);
|
||||
synchronized (this) {
|
||||
bb = this.syncRead(this.syncSend(bb));
|
||||
}
|
||||
|
||||
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);
|
||||
} else {
|
||||
ret = (Map) ret.get("data");
|
||||
PacketSection error = (PacketSection) ret.get("error");
|
||||
byte[] be = error.getBytes();
|
||||
if ((be[0] ^ be[1]) != 0) {
|
||||
throw new SydApiException(error.getInfo(), error.autoInt());
|
||||
} else {
|
||||
String pkv = ((PacketSection) ret.get("pk")).getString();
|
||||
String skv = ((PacketSection) ret.get("sk")).getString();
|
||||
RetWrap r = new RetWrap();
|
||||
r.put("publicKey", "03420004" + pkv);
|
||||
r.put("privateKey", skv);
|
||||
return r;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public RetWrap SYD_RSAGenKeyPair(String userId, int nKeyType) {
|
||||
ProtoGN proto = new ProtoGN();
|
||||
String sk = "999999999999999999999999999";
|
||||
if (userId != null) {
|
||||
sk = SYMUtil.genPrivateKeyMark(userId, nKeyType == 0 ? "000" : "001", "00000001");
|
||||
}
|
||||
|
||||
HashMap<String, Object> packet = new HashMap();
|
||||
HashMap<String, Object> data = new HashMap();
|
||||
packet.put("data", data);
|
||||
PacketSN sn = PacketSN.gen();
|
||||
packet.put("header", sn.getSn().array());
|
||||
data.put("sk", sk);
|
||||
// data.put("startTime", "20220101");
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
||||
Date dt = new Date();
|
||||
String startTime = sdf.format(dt);
|
||||
data.put("startTime", startTime);
|
||||
data.put("endTime", "20990101");
|
||||
ByteBuffer bb = proto.rend(packet);
|
||||
synchronized (this) {
|
||||
bb = this.syncRead(this.syncSend(bb));
|
||||
}
|
||||
|
||||
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);
|
||||
} else {
|
||||
ret = (Map) ret.get("data");
|
||||
PacketSection error = (PacketSection) ret.get("error");
|
||||
byte[] be = error.getBytes();
|
||||
if ((be[0] ^ be[1]) != 0) {
|
||||
throw new SydApiException(error.getInfo(), error.autoInt());
|
||||
} else {
|
||||
//String pkv = ((PacketSection) ret.get("pk")).getString();
|
||||
byte[] pkv = ((PacketSection) ret.get("pk")).getBytes();
|
||||
String skv = ((PacketSection) ret.get("sk")).getString();
|
||||
RetWrap r = new RetWrap();
|
||||
// r.put("publicKey", "03420004" + pkv);
|
||||
r.put("publicKey", Util.bytes2HexString(pkv));
|
||||
r.put("privateKey", skv);
|
||||
return r;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String SYD_SM2_Get_Id_PublicKey_HA(
|
||||
String pUserID,
|
||||
|
||||
Reference in New Issue
Block a user