publicclass customizablecryptoimplements crypto
{
/**
* 构造x509格式证书的工厂变量
*/
private certificatefactorycertfact;
/**
* 获取构造x509格式证书的工厂变量(单例模式)
*
* @return证书工厂变量
*/
publicsynchronizedcertificatefactory getcertificatefactory()
{
if (certfact ==null)
{
try
{
certfact =certificatefactory.getinstance(x.509);
}
catch(certificateexception e)
{
if (logger.iserrorenable())
{
logger.error(fail to get certificatefactory);
}
}
returncertfact;
}
returncertfact;
}
public privatekeygetprivatekey(string keyname, string passwrod)
{
pemreader pemin;
bytearrayinputstreampembytein =new bytearrayinputstream(getprivatekey(keyname));
pemin = new pemreader(newinputstreamreader(pembytein));
return ((keypair) pemin.readobject()).getprivate();
}
public x509certificate[]getcertificates(string keyname)
{
x509certificate[] certlist=new x509certificate[1];
//从psql中取出证书并转换为x509格式证书
certificatefactory cf =null;
x509certificate cert =null;
cf = getcertificatefactory();
bytearrayinputstream bais =new bytearrayinputstream(getcertificate(keyname));
cert = (x509certificate)cf.generatecertificate(bais);
certlist[0] = cert;
return certlist;
}
其他方法空实现....
}