武汉人行指令整合

This commit is contained in:
zhoubin
2021-08-11 13:56:19 +08:00
parent 73ad09279e
commit 45f81f4685
15 changed files with 1479 additions and 259 deletions
@@ -2,6 +2,8 @@ package com.sunyard.inf;
import com.sunyard.RetWrap;
import java.io.UnsupportedEncodingException;
/**
* 密钥生成相关接口
@@ -128,6 +130,57 @@ public interface SydGenApi {
*/
RetWrap SM2GenSessionKey(String publicKey);
/**
* 生成数字信封
* @param publicKey 公钥
* @return
* CipherKey: 公钥加密的会话密钥,DER 编码,HEX 格式,
* SessionKey: 本地LMK 加密的会话密钥,HEX 格式 ,
* KCV: 会话密钥的检验值,HEX 格式,长度为 16H。
*/
RetWrap genDigitalEnvelope(String publicKey);
/**
* 解密数字信封
*
* @param sk 私钥索引
* @param cipherKey 密文
* @return sessionKey LMK加密下的密钥
*/
String deDigitalEnvelope(String sk, String cipherKey);
/**
* @Description: 数字信封加密数据,会员专用
* @Param: [pk, inPutData,msgId]
* @return: byte[] 格式:sessionByPk+\r\n+头+\r\n+密文
* @Author: wp
* @Date: 2020/11/20
*/
String genDigitalEnvelopeWithDM(String pk, String inPutDataStr,String msgId) throws UnsupportedEncodingException;
/**
* 数字信封加密数据,票价所定制格式
* @param pk 公钥值
* @param inPutData 报文明文
* @return 报文密文 格式:sessionByPk(base64)+\r\n+密文(base64)
* @throws UnsupportedEncodingException
*/
String genDigitalEnvelopeWithData(String pk,String inPutData) throws UnsupportedEncodingException;
/**
* 解密数字信封,解密数据
* @param sk 私钥索引
* @param inPutData 报文密文
* @return 报文明文
* @throws UnsupportedEncodingException
*/
String deDigitalEnvelopeWithData(String sk, String inPutData) throws UnsupportedEncodingException;
/**
* 将秘钥从 PK 加密转为 LMK 加密
* @param skIndex 私钥索引
* @param sessionKey 会话秘钥密文
* @return 会话秘钥密文
*/
String transKeyFromPkToLmk(String skIndex, String sessionKey);
/**
* 此函数用于会话密钥的接收,用于接收端。
@@ -148,6 +201,17 @@ public interface SydGenApi {
*/
RetWrap SM2ConfirmSessionKey(String sk, String cipherKey);
/**
* 产生对称密钥,通过公钥加密生成网联格式的数字信封。
* @param dn 对*方 X509 证书DN。
* @param nAlg 算法标识,0:AES,1:SM4
* @return RetWrap 包含 CipherKey SessionKey KCV
* CipherKey 公钥加密的会话密钥 ,BASE64 编码
* SessionKey 本地LMK 加密的会话密钥,HEX 格式, 本地 LMK 加密的会话密钥长度,HEX 格式(不包括第 1 个字符),一般为 33 个 Bytes。默认输入值为缓冲区的大小。
* KCV 会话密钥的检验值,HEX 格式,长度为 32H。
*/
RetWrap generateDEByDn(byte[] dn, byte nAlg) throws Exception;
/**
* 产生对称密钥,通过公钥加密生成网联格式的数字信封。