package com.taikang.iot.re.security;
import org.apache.log4j.Logger;
import org.bouncycastle.asn1.pkcs.RSAPrivateKey;
import org.bouncycastle.util.io.pem.PemObject;
import org.bouncycastle.util.io.pem.PemReader;
import javax.net.ssl.*;
import java.io.*;
import java.security.*;
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.RSAPrivateKeySpec;/**
* @Author: chengsh05
* @Date: 2019/3/1 17:51*/
public classSSLUtil {private static Logger logger = Logger.getLogger(OpensslHelper.class);/**
* 利用开源的工具类解析openssl私钥,openssl私钥文件格式为pem,需要去除页眉页脚后才能被java读取
*
* @param file
* @return*/
public staticPrivateKey getPrivateKey(File file) {if (file == null) {return null;
}
PrivateKey privKey= null;
PemReader pemReader= null;try{
pemReader= new PemReader(newFileReader(file));
PemObject pemObject=pemReader.readPemObject();byte[] pemContent =pemObject.getContent();//支持从PKCS#1或PKCS#8 格式的私钥文件中提取私钥
if (pemObject.getType().endsWith("RSA PR