Files
sydapi/src/main/java/com/sunyard/inf/customize/SydHAApi.java
T
2022-08-18 15:36:12 +08:00

137 lines
5.0 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.sunyard.inf.customize;
import com.sunyard.cert.X509;
public interface SydHAApi {
/**
* 通过机构实体ID获得使用者的SM2公钥(DER编码)
* @param pUserID 本机构实体ID,最大长度为16位数字,即设备安装生成实体时的实体机构输入栏的内容
* @param nKeyType 密钥类型,0:签名公钥,1:加密公钥,如无加解密业务,传入0即可
* @return 输出的公钥串,DER编码,HEX格式,此公钥是机构自己公钥证书的公钥
*/
public String SYD_SM2_Get_Id_PublicKey_HA (
String pUserID,
int nKeyType
);
/**
* 通过证书DN获得机构的公钥(DER编码),联调前需要导入公钥证书
* @param Dn 证书的DN,每个证书有唯一的DN
* @param nKeyType 密钥类型,0:签名公钥,1:加密公钥,如无加解密业务,传入0即可
* @return 输出的公钥串,DER编码,HEX格式,此公钥为他方机构的公钥
*/
public String SYD_SM2_Get_Dn_PublicKey_HA (
byte[] Dn,
int nKeyType
);
/**
* 通过本机构实体ID所对应的私钥对指定的原始数据进行数字签名(PKCS#1)
* @param pUserID 本机构实体ID,最大长度为16位数字,即设备安装生成实体时的实体机构输入栏的内容
* @param nOrgDataType 输入的数据类型,0:HASH值,1:原始数据,原始数据由加密设备内部完成HASH并签名
* @param publicKey 公钥串,DER编码,HEX格式。仅 OrgDataType=1有效, 2.1章节接口,输出公钥原串传入
* @param orgData 待签名的原始数据
* @return 签名数据( DER 编码 + Base64 编码)
*/
public String SYD_SM2_Sign_HA(
String pUserID,
int nOrgDataType,
byte[] publicKey,
byte[] orgData
);
/**
* 通过本机构实体ID所对应的私钥对指定的原始数据进行数字签名(PKCS#1)
* @param nOrgDataType 输入的数据类型,0:HASH值,1:原始数据,原始数据由加密设备内部完成HASH并签名
* @param privateKey 私钥串,LMK34-35 下加密的私钥
* @param publicKey 公钥串,DER编码,HEX格式。仅 OrgDataType=1有效, 2.1章节接口,输出公钥原串传入
* @param orgData 待签名的原始数据
* @return 签名数据( DER 编码 + Base64 编码)
*/
public String SYD_SM2_Sign_HA(
int nOrgDataType,
byte[] privateKey,
byte[] publicKey,
byte[] orgData
);
/**
* 用指定的公钥对指定的原始数据进行数字签名验证(PKCS#1)
* @param nOrgDataType 数据类型,SydApi.DATA_ORIGIN 原始数据 SydApi.DATA_HASH : hash 后的类型
* @param publicKey 公钥串,DER编码,HEX格式,2.1章节接口,输出公钥原串传入
* @param orgData 待签名的原始数据
* @param sign 签名数据 (DER 编码 + Base64 编码)
* @return 验签是否通过
*/
public boolean SYD_SM2_Verify_HA(
int nOrgDataType,
byte[] publicKey,
byte[] orgData,
String sign
);
/**
* 对指定的原始数据核验其带公钥证书签名(PKCS#7)
* @param orgData 待签名的原始数据
* @param sign 签名数据
* @return 验签是否通过
*/
public boolean SYD_SM2_DetachedVerify_HA(
byte[] orgData,
String sign );
/**
* 通过指定的私钥对指定的原始数据编制带公钥证书的数字签名(遵循PKCS#7)
* @param orgData 待签名的原始数据
* @param sCertDN 签名者证书 DN
* @return 签名数据
*/
public String SYD_SM2_DetachedSign_HA(
byte[] orgData,
String sCertDN
);
/**
* 用私钥签名(外部私钥)
* @param nOrgDataType 签名数据类型,0 : hash 1 : 原数据
* @param privateKey LMK34-35 下加密的私钥
* @param orgData “签名数据类型”为 0 时:HASH 值。“签名数据类型”为 1 时:要签名的信息
* @return 签名的 base64 编码
*/
public String SM2Sign(
int nOrgDataType,
byte[] privateKey,
byte[] orgData
);
/**
* 用指定的公钥对指定的原始数据进行数字签名验证(PKCS#1)
* @param nOrgDataType 签名数据类型,SydApi.DATA_ORIGIN(1) 原始数据 SydApi.DATA_HASH(0) : hash 后的类型
* @param publicKey 公钥串,DER编码,HEX格式
* @param orgData 待签名的原始数据,“签名数据类型”为 0 时:HASH 值。“签名数据类型”为 1 时:要签名的信息
* @param sign S+R
* @return 验签是否通过
*/
public boolean SM2Verify(
int nOrgDataType,
byte[] publicKey,
byte[] orgData,
byte[] sign
);
public boolean SM2Verify(
int nOrgDataType,
byte[] publicKey,
byte[] orgData,
String base64Sign
);
}