InvalidKeySpecExeption when loadding the RSA private key from file

后端 未结 2 1719
时光说笑
时光说笑 2021-01-13 08:06

I\'m trying to load a private key from file in java. This key is generated by ssh-agent. I\'m actually using the code below:

     public PrivateKey getPrivat         


        
2条回答
  •  南方客
    南方客 (楼主)
    2021-01-13 08:09

    Intstead of removing header and footers from private key file you can use BouncyCastle's Pemreader.

     private PrivateKey getPrivateKeyFromFile(String keyFile) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException {
        final InputStream inputStream = getClass().getClassLoader().getResourceAsStream(keyFile);
        String privateKeySTr = IOUtils.toString(inputStream, String.valueOf(StandardCharsets.UTF_8));
    
        PemObject pem = new PemReader(new StringReader(privateKeySTr)).readPemObject();
        byte[] der = pem.getContent();
        KeyFactory keyFactory = KeyFactory.getInstance("RSA");
        PKCS8EncodedKeySpec ks = new PKCS8EncodedKeySpec(der);
        RSAPrivateKey privKey = (RSAPrivateKey) keyFactory.generatePrivate(ks);
        return privKey;
    }
    

提交回复
热议问题