public class CustomizableCrypto implements Crypto { /** * 构造 X509 式证书的工厂变量 */ private CertificateFactory certFact ; /** * 获取构造 X509 式证书的工厂变量(单例模式) * * @return 证书工厂变量 */ public synchronized CertificateFacto
publicclassCustomizableCryptoimplementsCrypto
{
/**
* 构造X509格式证书的工厂变量
*/
privateCertificateFactorycertFact;
/**
* 获取构造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;
}
publicPrivateKeygetPrivateKey(String keyName, String passwrod)
{
PEMReader pemIn;
ByteArrayInputStreampemByteIn =
newByteArrayInputStream(getprivatekey(keyName));
pemIn = newPEMReader(newInputStreamReader(pemByteIn));
return ((KeyPair) pemIn.readObject()).getPrivate();
}
publicX509Certificate[]getCertificates(String keyName)
{
X509Certificate[] certList=
newX509Certificate[1];
//从psql中取出证书并转换为X509格式证书
CertificateFactory cf =
null;
X509Certificate cert =
null;
cf = getCertificateFactory();
ByteArrayInputStream bais =newByteArrayInputStream(getCertificate(keyName));
cert = (X509Certificate)cf.generateCertificate(bais);
certList[0] = cert;
returncertList;
}
其他方法空实现....
}
本文原创发布php中文网,转载请注明出处,感谢您的尊重!