diff --git a/DProto/SK.xml b/DProto/SK.xml
new file mode 100644
index 0000000..6f46dd3
--- /dev/null
+++ b/DProto/SK.xml
@@ -0,0 +1,51 @@
+
+
+
+
+ SK
+
+
+
+ 需要产生的随机数长度
+ 注意: 最大不超过4K
+
+
+
+
+
+
+ SL
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/java接口说明文档.docx b/doc/java接口说明文档.docx
index 3c9bc04..d4dc478 100644
Binary files a/doc/java接口说明文档.docx and b/doc/java接口说明文档.docx differ
diff --git a/src/main/java/com/sunyard/inf/SydZYOption.java b/src/main/java/com/sunyard/inf/SydZYOption.java
index 8dc28d2..d6489bb 100644
--- a/src/main/java/com/sunyard/inf/SydZYOption.java
+++ b/src/main/java/com/sunyard/inf/SydZYOption.java
@@ -255,4 +255,10 @@ public interface SydZYOption {
byte[] decryptByMainAndSYMEn(String encryptKeyIndex, int encryptAlgFlag, byte[] encryptIv, int encryptKeyDivNum,
List encryptKeyDivData, int[] encryptKeyDivAlgFlag, List encryptKeyDivIv, byte[] inputData);
+ /**
+ * 产生随机数
+ * @param nRandomSize 产生随机数长度
+ * @return 随机数
+ */
+ String GenRandom(int nRandomSize);
}
diff --git a/src/main/java/racal/sunyard/main/SydApi4j.java b/src/main/java/racal/sunyard/main/SydApi4j.java
index f607bcd..c5f4323 100644
--- a/src/main/java/racal/sunyard/main/SydApi4j.java
+++ b/src/main/java/racal/sunyard/main/SydApi4j.java
@@ -9932,5 +9932,40 @@ public class SydApi4j implements SydApi {
}
}
+ @Override
+ public String GenRandom(int nRandomSize) {
+ //获取协议
+ ProtoSK proto = new ProtoSK();
+
+ //填充数据
+ PacketSN sn = PacketSN.gen();
+ HashMap packet = new HashMap();
+ packet.put("header", sn.getSn().array());
+ HashMap data = new HashMap();
+ data.put("nRandomSize", nRandomSize);
+ packet.put("data", data);
+
+ //渲染发送
+ ByteBuffer bb = proto.rend(packet);
+
+ synchronized (this) {
+ //解析响应
+ bb = syncRead(syncSend(bb));
+ }
+ Packet p = proto.parse(bb, packet);
+ Map ret = p.toMap();
+ if (
+ !Arrays.equals(sn.getSn().array(), ((PacketSection) ret.get("header")).getBytes())
+ ) {
+ throw new SydApiException("包序号不匹配", -4);
+ }
+ ret = (Map) ret.get("data");
+ PacketSection error = (PacketSection) ret.get("error");
+ if (!"00".equals(error.getString())) {
+ throw new SydApiException(error.getInfo(), error.autoInt());
+ }
+ return Util.bytes2HexString(((PacketSection) ret.get("random")).getBytes());
+ }
+
// ---------------------中移指令结束--------------------------------
}