Java:无法将私钥inputStream转换为PrivateKey对象

时间:2018-04-10 15:31:33

标签: java rsa inputstream private-key

我正在尝试转换私钥文件的输入流。此文件包含byte[]类型的私钥,这在我的文件系统中存在。这就是我将其作为流阅读的方式:

File file = new File("/home/user/Desktop/user(4).key");
oldPrivateKey = new FileInputStream(file);

这就是我试图将私钥流转换为它的对象类型的方法。

public PrivateKey getPrivateKeyObject(InputStream privateKey) throws EmprisException
{
    PrivateKey privateKeyObject = null;
    byte[] privateKeyBytes;
    try {
        privateKeyBytes = IOUtils.toByteArray(privateKey);
        PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(privateKeyBytes);
        KeyFactory keyFactory = KeyFactory.getInstance("RSA");
        privateKeyObject = keyFactory.generatePrivate(privateKeySpec);
        } catch(Exception e){
        e.printStackTrace();
    }
    return privateKeyObject;
}

这就是我得到的错误:

java.security.InvalidKeyException: IOException : Short read of DER length

这条消息可能是什么原因? 非常感谢您的帮助和提前感谢。

0 个答案:

没有答案