init files
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
package com.sunyard.inf;
|
||||
|
||||
import com.sunyard.RetWrap;
|
||||
|
||||
|
||||
/**
|
||||
* 密钥生成相关接口
|
||||
*/
|
||||
public interface SydGenApi {
|
||||
/**
|
||||
* RSA、SM2 非对称密钥产生
|
||||
*
|
||||
* @return RetWrap 包含 privateKey 和 publicKey
|
||||
* privateKey LMK 加密下的私钥
|
||||
* publicKey 公钥的 DER 编码
|
||||
*/
|
||||
RetWrap SM2GenKeyPair();
|
||||
|
||||
/**
|
||||
* RSA、SM2 非对称密钥产生
|
||||
* @param keyType 算法标识 0:RSA 1:SM2
|
||||
* @param index 27位数字,以此索引存储生成的密钥
|
||||
* @param length 长度
|
||||
* @return RetWrap 包含 privateKey 和 publicKey
|
||||
* privateKey LMK 加密下的私钥
|
||||
* publicKey 公钥的 DER 编码
|
||||
* 再之前的接口上添加了索引参数
|
||||
*/
|
||||
RetWrap SM2OrRSAGenKeyPair(int keyType,String index,int length);
|
||||
|
||||
|
||||
/**
|
||||
* 对称密钥产生
|
||||
* @param keyType 密钥类型
|
||||
* @param solution 密钥方案(LMK) 密钥长度/LMK下加密密钥的方案。
|
||||
* @return RetWrap 包含
|
||||
* lmkKey LMK LMK加密密钥
|
||||
* keyCheck 密钥校验值
|
||||
*
|
||||
*/
|
||||
RetWrap genSymmetricKey(String keyType,char solution);
|
||||
RetWrap genAndPrintSplit(String keyType,char solution);
|
||||
|
||||
|
||||
public RetWrap outputKey(String keyType, char solution, String zmk, String key);
|
||||
public RetWrap inputKey(String keyType, char solution, String zmk, String key);
|
||||
|
||||
/**
|
||||
* 密钥合成
|
||||
* @param keyType 密钥类型
|
||||
* @param keySolution 密钥方案(LMK) 密钥长度/LMK下加密密钥的方案。
|
||||
* @param keyClearPattern 两个明文分量异或合成
|
||||
* @return RetWrap 包含
|
||||
* lmkKey LMK LMK加密密钥
|
||||
* keyCheck 密钥校验值
|
||||
*
|
||||
*/
|
||||
RetWrap genComposeKey(String keyType,char keySolution,String keyClearPattern);
|
||||
RetWrap genComposeKey(String[] keys);
|
||||
/**
|
||||
* SM2 非对称密钥产生和存储
|
||||
*
|
||||
* @return RetWrap 包含 privateKey 和 publicKey
|
||||
* privateKey LMK 加密下的私钥
|
||||
* publicKey 公钥的 DER 编码
|
||||
*/
|
||||
RetWrap SYD_SM2GenKeyPair();
|
||||
|
||||
|
||||
/**
|
||||
* 此函数用于会话密钥的产生,用发起端。
|
||||
* 加密机产生随机会话密钥,输出两类密文:
|
||||
* 1、 公钥加密的密文,用于密钥的传递。
|
||||
* 2、 本地 LMK 加密,用于本地应用数据的加解密。
|
||||
*
|
||||
* @param publicKey 公钥串,DER 编码,HEX 格式。
|
||||
* @return CipherKey 公钥加密的会话密钥,DER 编码,HEX 格式, SessionKey 本地LMK 加密的会话密钥,HEX 格式 , KCV 会话密钥的检验值,HEX 格式,长度为 16H
|
||||
*/
|
||||
RetWrap SM2GenSessionKey(String publicKey);
|
||||
|
||||
|
||||
/**
|
||||
* 此函数用于会话密钥的接收,用于接收端。
|
||||
* 加密机通过使用者 ID 所对应的私钥解密对方公钥加密的密文,输出本地 LMK 加密的会话密钥,用于本地应用数据的加解密。
|
||||
*
|
||||
* @param userId 使用者的 ID,最大长度为 16 位数字,右对齐。
|
||||
* @param cipherKey 公钥加密的会话密钥,DER 编码,HEX 格式
|
||||
* @return SessionKey : 本地LMK 加密的会话密钥,HEX 格式 ; KCV 会话密钥的检验值,HEX 格式,长度为 16H。
|
||||
*/
|
||||
RetWrap SM2ConfirmSessionKeyC(String userId, String cipherKey);
|
||||
/**
|
||||
* 此函数用于会话密钥的接收,用于接收端。
|
||||
* 加密机通过使用者 ID 所对应的私钥解密对方公钥加密的密文,输出本地 LMK 加密的会话密钥,用于本地应用数据的加解密。
|
||||
*
|
||||
* @param sk 私钥
|
||||
* @param cipherKey 公钥加密的会话密钥,DER 编码,HEX 格式
|
||||
* @return SessionKey : 本地LMK 加密的会话密钥,HEX 格式 ; KCV 会话密钥的检验值,HEX 格式,长度为 16H。
|
||||
*/
|
||||
RetWrap SM2ConfirmSessionKey(String sk, String cipherKey);
|
||||
|
||||
|
||||
/**
|
||||
* 产生对称密钥,通过公钥加密生成网联格式的数字信封。
|
||||
|
||||
* @param certSerial 对*方 X509 证书的序列号。
|
||||
* @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 generateDE(
|
||||
String certSerial,
|
||||
byte nAlg
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
* 接收用私钥解密数字信封,还原对称密钥。
|
||||
*
|
||||
* @param pCertSerial 输入。 对方 X509 证书的序列号。
|
||||
* @param pCipherKey 输入。 公钥加密的会话密钥,BASE64 编码
|
||||
* @return RetWrap 包含 SessionKey KCV
|
||||
* SessionKey 输出。 本地LMK 加密的会话密钥,格式为:密钥类型|密钥密文,比如:02|密钥密文
|
||||
* KCV 会话密钥的检验值,HEX 格式,长度为 36H。
|
||||
*/
|
||||
RetWrap decryptDE(
|
||||
String pCertSerial,
|
||||
String pCipherKey
|
||||
);
|
||||
|
||||
/**
|
||||
* 产生要求长度的随即数据串,可用于身份认证
|
||||
*
|
||||
* @param nRandomSize 需要输出的随机串的长度
|
||||
* @return 未抛出异常表示成功, 返回 HEX 格式的密钥
|
||||
*
|
||||
*/
|
||||
String GenerateRandom(
|
||||
int nRandomSize
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user