系统要求
1. Windows系统、Linux系统、Mac系统
2. JDK7及以上
3. 调用大宝CA的JCE库
4. JDK使用无限制的安全策略文件
DCKS文件导出PEM格式数字证书的核心代码
public boolean exportCertPEM(String alias, String exportFilepath) throws KeyStoreException, CertificateEncodingException
{
X509Certificate cert = (X509Certificate)this.keyStore.getCertificate(alias);
String certBase64 = Base64.encode(cert.getEncoded());
FileOutputStream fos = null;
try
{
fos = new FileOutputStream(exportFilepath);
byte[] certBase64Bytes = certBase64.getBytes();
int len = certBase64Bytes.length;
fos.write("-----BEGIN CERTIFICATE-----\r\n".getBytes());
for (int i = 0; i < certBase64Bytes.length; i++)
{
if (i > 0 && (i != len - 1) && i % 64 == 0)
{
fos.write("\r\n".getBytes());
}
fos.write(certBase64Bytes[i]);
}
fos.write("\r\n-----END CERTIFICATE-----".getBytes());
return true;
}
catch(Exception ex)
{
}
finally
{
try
{
if (fos != null)
{
fos.close();
}
}
catch(Exception ex)
{
}
}
return false;
}
DCKS文件导出PEM格式SM2私钥的核心代码
public boolean exportPrivateKeyPEM(String alias, char[] priKeyPassword, String exportFilepath)
{
FileOutputStream fos = null;
try
{
PrivateKey sm2PrivateKey = (PrivateKey)keyStore.getKey(alias, priKeyPassword);
if (sm2PrivateKey == null)
{
return false;
}
String privateBase64 = Base64.encode(sm2PrivateKey.getEncoded());
fos = new FileOutputStream(exportFilepath);
byte[] privateBase64Bytes = privateBase64.getBytes();
int len = privateBase64Bytes.length;
fos.write("-----BEGIN PRIVATE KEY-----\r\n".getBytes());
for (int i = 0; i < len; i++)
{
if (i > 0 && (i != len - 1) && i % 64 == 0)
{
fos.write("\r\n".getBytes());
}
fos.write(privateBase64Bytes[i]);
}
fos.write("\r\n-----END PRIVATE KEY-----".getBytes());
return true;
}
catch (Exception e1)
{
e1.printStackTrace();
return false;
}
finally
{
try
{
if (fos != null)
{
fos.close();
}
}
catch(Exception ex)
{
}
}
}
最新版本大宝CA国密JCE的JAR包和示例代码下载地址:https://download.youkuaiyun.com/download/upset_ming/11866671
该博客介绍了系统使用大宝CA国密JCE的要求,包括支持Windows、Linux、Mac系统,JDK7及以上等。还给出了DCKS文件导出PEM格式数字证书和SM2私钥的核心代码,最后提供了最新版本大宝CA国密JCE的JAR包和示例代码下载地址。
4196

被折叠的 条评论
为什么被折叠?



