sydapi/src/main/java/com/sunyard/inf/SydCertApi.java

181 lines
5.1 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;
import com.sunyard.RetWrap;
import com.sunyard.cert.X509;
import com.sunyard.constant.CertUsage;
import java.io.UnsupportedEncodingException;
import java.util.List;
/**
* 证书操作相关接口
*/
public interface SydCertApi {
/**
* 通过证书的 DN获取证书的序号。
* @param nCertType 输入 证书类型0x00:签名证书,0x01:加密证书
* @param certDN 输入。证书 subject 的 DN。
* @return CertSerial 证书有 SN。
*/
String getX509SN(
int nCertType,
byte[] certDN
);
/**
* 通过证书 获得 DER编码的公钥。
* @param dnType 证书类型 0:签名证书, 1:加密证书
* @param dn 传入的证书
* @return 输出的公钥串DER 编码HEX 格式。输出的公钥串DER 编码HEX 格式。
*/
String GetDNPublicKey(
int dnType,
byte[] dn
);
/**
* 通过索引获取公钥
* @param userId 16位机构号
* @param nKeyTypes 密钥类型
* @return 公钥
*/
String RSAGetPublicKeyC(
String userId,
int nKeyTypes
);
/**
* 通过使用者 ID 获得使用者的 SM2 公钥(DER 编码)。
* @param userId 使用者的 ID最大长度为 16 位数字,右对齐。
* @param nKeyTypes 密钥类型0x00签名公钥, 0x01:加密公钥。
* @return 输出的公钥串DER 编码HEX 格式。输出的公钥串DER 编码HEX 格式。
*/
String SM2GetPublicKeyC(
String userId,
int nKeyTypes
);
public String SM2GetPrivateKeyC(String privateKeyTag);
String SM2GetPublicKeyC_QX(
int userId,
int nKeyTypes
);
/**
* 输入 X509 格式的证书,获取证书信息。
* @param pCert base64 编码的证书
* @return 证书信息类
*/
X509 GetX509CertInfo(
String pCert
);
/**
* 通过SN获取 X509 证书信息
* @param sn sn证书序号
* @param nCertType 证书类型0:签名证书, 1:加密证书
* @return
*/
String GetX509CertFileBySN(String sn, int nCertType);
/**
* 通过使用者 ID 获取的 X509 证书文件。
* @param userId 使用者的 ID最大长度为 16 位数字(要与生成实体的机构号保持一致)。
* @param nCertType 证书类型0:签名证书, 1:加密证书
* @return base64 编码的证书
*/
String GetX509CertFileC(
String userId,
int nCertType
);
/**
* 从签名中获取证书并上载到加密机
* @param orgData 待签名的原始数据
* @param sign 签名数据
* @return 证书信息(包含公钥字段)
*/
public X509 SYD_Get_X509_CertInfo_HA(
byte[] orgData,
String sign
);
/**
* 查询所有证书
* @return
* certDNs: 证书DN
*/
List<String> getAllCert() throws UnsupportedEncodingException;
/**
* 查询所有证书
* @param dataFlag 数据包标志 0起始包 1中间包 2结束包
* @return
* dataFlag: 数据包标志 0起始包 1中间包 2结束包
* certAllNum: 证书总数
* realCertNum: 实际证书个数
* dataAttrFlag: 数据包属性标志
* certLenMax: 证书最大长度
* certDNs: 证书DN
*/
RetWrap getAllCert(int dataFlag) throws UnsupportedEncodingException;
/**
* 查询所有证书
* @param dataFlag 数据包标志 0起始包 1中间包 2结束包
* @param sqlite 查询条件,默认查询所有"1=1"
* @return
* dataFlag: 数据包标志 0起始包 1中间包 2结束包
* certAllNum: 证书总数
* realCertNum: 实际证书个数
* dataAttrFlag: 数据包属性标志
* certLenMax: 证书最大长度
* certDNs: 证书DN
*/
RetWrap getAllCert(int dataFlag,String sqlite) throws UnsupportedEncodingException;
/**
* 上传指定证书到加密设备
* @param certData 证书的字节数组
* @param organizationId 机构号的字节数组
* @param us 白名单类型
* @return
*/
RetWrap importCert(byte[] certData, byte[] organizationId, CertUsage... us);
RetWrap importCert(byte[] certData, byte[] organizationId);
String importCert(String cert);
/**
* 从加密设备中删除指定 DN 的公钥证书
* @param dn传入的证书
*
* @return
*/
boolean deleteCert(String dn);
/**
* 上传指定证书到加密设备,并在证书前后加上begin和end
* @param certData 证书的字节数组
* @param organizationId 机构号的字节数组
* @param us 白名单类型
* @return
*/
RetWrap importCertAddHT(String certData, byte[] organizationId, CertUsage... us);
RetWrap importCertAddHT(String certData, byte[] organizationId);
String getCertByDn(String dn) throws UnsupportedEncodingException;
String getCertByDn(String dn,int type) throws UnsupportedEncodingException;
public String getCertByDn(byte[] dnBytes);
}