@theterra
I like my Code, JavaScript and React
I am a senior software engineer from GoScale technologies
open source projects or some serious freelance projects.
No blogs yet.
I solved it by writing a java class and imported into nodejs using node-java package. Java package package com.nearinfinity.nodeJava; import java.io.*; import java.util.Base64; import java.security.spec.PKCS8EncodedKeySpec; import java.security.*; import javax.crypto.EncryptedPrivateKeyInfo; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; public class EncryptedPrivateKeyDecode { public PrivateKey getPrivatekey(String [] args) { try { if (args.length == 0) { throw new NullPointerException("the encoded parameter " + "must be non-null"); } // Please change the path to your pem file File f = new File(args[0]); FileInputStream fis = new FileInputStream(f); DataInputStream dis = new DataInputStream(fis); byte[] keyBytes = new byte[(int) f.length()]; dis.readFully(keyBytes); dis.close(); String encrypted = new String(keyBytes); String passphrase = new String(args[1]); encrypted = encrypted.replace("-----BEGIN ENCRYPTED PRIVATE KEY-----", ""); encrypted = encrypted.replace("-----END ENCRYPTED PRIVATE KEY-----", ""); EncryptedPrivateKeyInfo pkInfo = new EncryptedPrivateKeyInfo(Base64.getMimeDecoder().decode(encrypted)); PBEKeySpec keySpec = new PBEKeySpec(passphrase.toCharArray()); SecretKeyFactory pbeKeyFactory = SecretKeyFactory.getInstance(pkInfo.getAlgName()); PKCS8EncodedKeySpec encodedKeySpec = pkInfo.getKeySpec(pbeKeyFactory.generateSecret(keySpec)); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PrivateKey encryptedPrivateKey = keyFactory.generatePrivate(encodedKeySpec); return encryptedPrivateKey; } catch (Exception e) { e.printStackTrace(); } return null; } } Node code const java = jinst.getInstance(); const EncryptedPrivateKeyDecode = java.import( 'com.nearinfinity.nodeJava.EncryptedPrivateKeyDecode' ); const privateKey = new EncryptedPrivateKeyDecode().getPrivatekeySync([ privateKeyPath, privateKeyPassphrase ]); and now we can use this privateKey in node-jdbc package