# Conflicts: # pom.xml # src/main/java/com/sunyard/SydApiException.java # src/main/java/racal/sunyard/main/SydApi4j.java # src/test/java/com/sunyard/sydapi/test/TestAllMethods.java
136 lines
4.6 KiB
Java
136 lines
4.6 KiB
Java
package com.sunyard.inf.cryption;
|
|
|
|
public interface SydASYMApi {
|
|
/**
|
|
* 非对称加解密接口
|
|
*/
|
|
/**
|
|
* 用指定的 SM2 公钥对指定的密文数据进行加密。
|
|
*
|
|
* @param publicKey 公钥钥串,DER 编码,HEX 格式。
|
|
* @param pOrgData 加密的数据。
|
|
* @return 加密的数据 base64 编码。
|
|
*/
|
|
String SM2Encrypt(
|
|
byte[] publicKey,
|
|
byte[] pOrgData
|
|
);
|
|
|
|
/**
|
|
* 用指定的 SM2 公钥对指定的密文数据进行加密。
|
|
*
|
|
* @param publicKey 公钥钥串,DER 编码,HEX 格式。
|
|
* @param pOrgData 加密的数据。
|
|
* @return 加密的数据 der 编码。
|
|
*/
|
|
byte[] SYD_SM2_Encrypt(byte[] publicKey, byte[] pOrgData);
|
|
|
|
|
|
/**
|
|
* 用指定的 SM2 公钥对指定的密文数据进行加密。
|
|
* 输出的sm2密文结构为C1C2C3格式
|
|
* @param publicKey 公钥钥串,DER 编码,HEX 格式。
|
|
* @param pOrgData 加密的数据。
|
|
* @return 加密的数据 base64 编码。
|
|
*/
|
|
String SM2EncryptOrder(byte[] publicKey, byte[] pOrgData);
|
|
|
|
|
|
/**
|
|
* 通过使用者 ID 所对应的私钥对指定的密文数据进行解密。
|
|
*
|
|
* @param userId 使用者的 ID,最大长度为 16 位数字,右对齐。
|
|
* @param pEnData 加密的数据,base64 编码。
|
|
* @return 明文数据。
|
|
*/
|
|
byte[] SM2DecryptC(String userId, String pEnData);
|
|
|
|
/**
|
|
* 使用外部私钥解密
|
|
* @param sk LMK下加密的私钥
|
|
* @param enData 密文数据(base64 编码)
|
|
* @return 解密结果
|
|
*/
|
|
byte[] SM2Decrypt(byte[] sk, String enData);
|
|
|
|
/**
|
|
* 使用外部私钥解密
|
|
* @param sk LMK下加密的私钥
|
|
* @param enData 密文数据(DER 编码)
|
|
* @return 解密结果
|
|
*/
|
|
byte[] SYD_SM2_Decrypt(byte[] sk, byte[] enData);
|
|
|
|
/**
|
|
* 通过使用者 ID 所对应的私钥对指定的密文数据进行解密。
|
|
* 输入的sm2密文结构为C1C2C3格式
|
|
* @param userId 使用者的 ID,最大长度为 16 位数字,右对齐。
|
|
* @param enData 加密的数据,base64 编码。
|
|
* @param keyType 密钥类型,0:签名证书, 1:加密证书。
|
|
* @return 明文数据。
|
|
*/
|
|
byte[] SM2DecryptOrder(String userId, String enData, int keyType);
|
|
|
|
/**
|
|
* 用指定的 RSA 私钥对指定的密文数据进行加密。
|
|
*
|
|
* @param publicKey 私钥串,DER 编码,HEX 格式。
|
|
* @param pOrgData 加密的数据。
|
|
* @return 加密的数据 base64 编码。
|
|
*/
|
|
String RSAEncrypt(
|
|
String publicKey,
|
|
byte[] pOrgData
|
|
);
|
|
|
|
/**
|
|
* 通过使用者 ID 所对应的私钥对指定的密文数据进行解密。
|
|
*
|
|
* @param userId 使用者的 ID,最大长度为 16 位数字,右对齐。
|
|
* @param pEnData 加密的数据,base64 编码。
|
|
* @return 明文数据。
|
|
*/
|
|
byte[] RSADecryptC(
|
|
String userId,
|
|
String pEnData
|
|
) throws Exception;
|
|
|
|
|
|
/**
|
|
* 使用外部私钥解密
|
|
* @param sk
|
|
* @param enData
|
|
* @return
|
|
*/
|
|
public byte[] RSADecrypt(String sk, String enData) throws Exception;
|
|
|
|
|
|
/**
|
|
* 非对称公钥加密
|
|
* @param alg 算法标识,0 = RSA 1 = SM2
|
|
* @param pk 公钥的 DER 编码
|
|
* @param data 数据
|
|
* @return 公钥加密的密文的 DER 编码(对于 RSA 算法,数据类型为 BIT).
|
|
*/
|
|
public byte[] encryptByPk(int alg, String pk, byte[] data);
|
|
|
|
/**
|
|
* 非对称私钥解密
|
|
* @param alg 算法标识:0 = RSA 1 = SM2
|
|
* @param sk 私钥值,LMK下加密的私钥
|
|
* @param data 密文数据(DER 编码)
|
|
* @return 公钥加密的密文的 DER 编码(对于 RSA 算法,数据类型为 BIT)
|
|
*/
|
|
public byte[] decryptBySk(int alg, String sk, byte[] data);
|
|
|
|
|
|
/**
|
|
* 非对称私钥解密
|
|
* @param alg 算法标识:0 = RSA 1 = SM2
|
|
* @param userId 16位机构号
|
|
* @param data 密文数据(DER 编码)
|
|
* @return 公钥加密的密文的 DER 编码(对于 RSA 算法,数据类型为 BIT).
|
|
*/
|
|
public byte[] decryptBySkC(int alg, String userId, byte[] data);
|
|
}
|