如何读取使用JAVA的Pem文件中的EC私钥。在阅读时,我得到以下异常。
引起:java.security.InvalidKeyException:IOException:版本不匹配:(支持:00,解析:01
其实我的。 Pem文件包含以下结构中的私钥。
----开始EC私钥------ ==== + ==== + === ==== + ==== + === -----结束EC私钥-----
答案 0 :(得分:0)
从请求的EC私钥(例如key.pem)中,我成功将其导入到java.security.KeyStore
openssl pkcs8 -in key.pem -inform PEM -topk8 -nocrypt -out key-pkcs8.der -outform DER
void loadPrivateKey(KeyStore ks, X509Certificate cert){
File privKeyFile = new File("key-pkcs8.der");
// read private key DER file
DataInputStream dis = new DataInputStream(new FileInputStream(privKeyFile));
byte[] privKeyBytes = new byte[(int)privKeyFile.length()];
dis.read(privKeyBytes);
dis.close();
KeyFactory kf = KeyFactory.getInstance("EC");
// decode private key
PKCS8EncodedKeySpec privSpec = new PKCS8EncodedKeySpec(privKeyBytes);
PrivateKey privKey = kf.generatePrivate(privSpec);
ks.setKeyEntry("key-alias", privKey, "password".toCharArray(), new Certificate[] {cert});
}