private static byte[] parsePEMFile(File pemFile) throws IOException { if (!pemFile.isFile() || !pemFile.exists()) { throw new FileNotFoundException(String.format("The file '%s' doesn't exist.", pemFile.getAbsolutePath())); } PemReader reader = new PemReader(new FileReader(pemFile)); PemObject pemObject = reader.readPemObject(); byte[] content = pemObject.getContent(); reader.close(); return content; }
public static Object readKey(Reader reader) throws Exception { try { PEMParser pemParser = new PEMParser(reader); try { return pemParser.readObject(); } finally { pemParser.close(); } } catch (NoClassDefFoundError e) { //. We use reflection here to keep compatible with old library of bouncycastle Class<?> pemReaderClass = Class.forName("org.bouncycastle.openssl.PEMReader"); PemReader r = (PemReader)pemReaderClass.getConstructor(Reader.class).newInstance(reader); try { return pemReaderClass.getMethod("readObject").invoke(r); } finally { r.close(); } } } }
static PemObject loadPemResource(String resource) throws IOException { // InputStream s = TlsTestUtils.class.getResourceAsStream(resource); InputStream s = new FileInputStream(resource); PemReader p = new PemReader(new InputStreamReader(s)); PemObject o = p.readPemObject(); p.close(); return o; }
private Object readPemObject(String pemString) throws IOException { StringReader strReader = new StringReader(pemString); PemReader pemReader = new PemReader(strReader); try { return pemReader.readPemObject(); } finally { strReader.close(); pemReader.close(); } } }
private static byte[] convertPEMToEncodedData(String pemString) throws IOException { ByteArrayInputStream bIn = new ByteArrayInputStream(pemString.getBytes()); PemReader pRdr = new PemReader(new InputStreamReader(bIn)); try { PemObject pemObject = pRdr.readPemObject(); return pemObject.getContent(); } finally { pRdr.close(); } } }
private static RSAPrivateKey readPrivateKeyFromByteArray(byte[] privateKeyBytes, String algorithm) throws IOException { PemReader reader = new PemReader(new StringReader(new String(privateKeyBytes))); try { PemObject pemObject = reader.readPemObject(); byte[] bytes = pemObject.getContent(); RSAPrivateKey privateKey = null; try { Security.addProvider(new BouncyCastleProvider()); KeyFactory kf = KeyFactory.getInstance(algorithm, "BC"); EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(bytes); privateKey = (RSAPrivateKey) kf.generatePrivate(keySpec); } catch (NoSuchAlgorithmException e) { System.out.println("Could not reconstruct the private key, the given algorithm could not be found."); } catch (InvalidKeySpecException e) { System.out.println("Could not reconstruct the private key"); } catch (NoSuchProviderException e) { System.out.println("Could not reconstruct the private key, invalid provider."); } return privateKey; } finally { reader.close(); } } }
private static RSAPublicKey readPublicKeyFromFile(String filepath, String algorithm) throws IOException { File pemFile = new File(filepath); if (!pemFile.isFile() || !pemFile.exists()) { throw new FileNotFoundException(String.format("The file '%s' doesn't exist.", pemFile.getAbsolutePath())); } PemReader reader = new PemReader(new FileReader(pemFile)); try { PemObject pemObject = reader.readPemObject(); byte[] bytes = pemObject.getContent(); RSAPublicKey publicKey = null; try { KeyFactory kf = KeyFactory.getInstance(algorithm); EncodedKeySpec keySpec = new X509EncodedKeySpec(bytes); publicKey = (RSAPublicKey) kf.generatePublic(keySpec); } catch (NoSuchAlgorithmException e) { System.out.println("Could not reconstruct the public key, the given algorithm could not be found."); } catch (InvalidKeySpecException e) { System.out.println("Could not reconstruct the public key"); } return publicKey; } finally { reader.close(); } }
public static Object readKey(Reader reader) throws Exception { try { PEMParser pemParser = new PEMParser(reader); try { return pemParser.readObject(); } finally { pemParser.close(); } } catch (NoClassDefFoundError e) { //. We use reflection here to keep compatible with old library of bouncycastle Class<?> pemReaderClass = Class.forName("org.bouncycastle.openssl.PEMReader"); PemReader r = (PemReader)pemReaderClass.getConstructor(Reader.class).newInstance(reader); try { return pemReaderClass.getMethod("readObject").invoke(r); } finally { r.close(); } } } }
private static RSAPrivateKey readPrivateKeyFromFile(String filepath, String algorithm) throws IOException { File pemFile = new File(filepath); if (!pemFile.isFile() || !pemFile.exists()) { throw new FileNotFoundException(String.format("The file '%s' doesn't exist.", pemFile.getAbsolutePath())); } PemReader reader = new PemReader(new FileReader(pemFile)); try { PemObject pemObject = reader.readPemObject(); byte[] bytes = pemObject.getContent(); RSAPrivateKey privateKey = null; try { Security.addProvider(new BouncyCastleProvider()); KeyFactory kf = KeyFactory.getInstance(algorithm, "BC"); EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(bytes); privateKey = (RSAPrivateKey) kf.generatePrivate(keySpec); } catch (NoSuchAlgorithmException e) { System.out.println("Could not reconstruct the private key, the given algorithm could not be found."); } catch (InvalidKeySpecException e) { System.out.println("Could not reconstruct the private key"); } catch (NoSuchProviderException e) { System.out.println("Could not reconstruct the private key, invalid provider."); } return privateKey; } finally { reader.close(); } }
public static Object readKey(Reader reader) throws Exception { try { PEMParser pemParser = new PEMParser(reader); try { return pemParser.readObject(); } finally { pemParser.close(); } } catch (NoClassDefFoundError e) { //. We use reflection here to keep compatible with old library of bouncycastle Class<?> pemReaderClass = Class.forName("org.bouncycastle.openssl.PEMReader"); PemReader r = (PemReader)pemReaderClass.getConstructor(Reader.class).newInstance(reader); try { return pemReaderClass.getMethod("readObject").invoke(r); } finally { r.close(); } } } }
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import org.bouncycastle.util.io.pem.PemObject; import org.bouncycastle.util.io.pem.PemReader; public class PemFile { private PemObject pemObject; public PemFile(String filename) throws FileNotFoundException, IOException { PemReader pemReader = new PemReader(new InputStreamReader(new FileInputStream(filename))); try { this.pemObject = pemReader.readPemObject(); } finally { pemReader.close(); } } public PemObject getPemObject() { return pemObject; } }
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import org.bouncycastle.util.io.pem.PemObject; import org.bouncycastle.util.io.pem.PemReader; public class PemFile { private PemObject pemObject; public PemFile(String filename) throws FileNotFoundException, IOException { PemReader pemReader = new PemReader(new InputStreamReader( new FileInputStream(filename))); try { this.pemObject = pemReader.readPemObject(); } finally { pemReader.close(); } } public PemObject getPemObject() { return pemObject; } }
private static X509Certificate loadPemCertificate(String pemResourceName) { CertificateFactory certificateFactory; try { certificateFactory = CertificateFactory.getInstance("X.509"); } catch (CertificateException e) { throw new RuntimeException("X.509 factory error: " + e.getMessage(), e); } Thread currentThread = Thread.currentThread(); ClassLoader classLoader = currentThread.getContextClassLoader(); InputStream certificateInputStream = classLoader.getResourceAsStream(pemResourceName); if (null == certificateInputStream) { throw new IllegalArgumentException("resource not found: " + pemResourceName); } PemReader pemReader = new PemReader(new InputStreamReader(certificateInputStream)); try { try { PemObject pemObject; pemObject = pemReader.readPemObject(); X509Certificate certificate = (X509Certificate) certificateFactory .generateCertificate(new ByteArrayInputStream(pemObject.getContent())); return certificate; } finally { pemReader.close(); } } catch (IOException e) { throw new RuntimeException("IO error: " + e.getMessage(), e); } catch (CertificateException e) { throw new RuntimeException("cert error: " + e.getMessage(), e); } }
// Read the CSR FileReader fileReader = new FileReader("/path/to/your.csr"); PemReader pemReader = new PemReader(fileReader); PKCS10CertificationRequest csr = new PKCS10CertificationRequest(pemReader.readPemObject().getContent()); pemReader.close(); fileReader.close(); // Write the Public Key as a PEM-File StringWriter output = new StringWriter(); PemWriter pemWriter = new PemWriter(output); PemObject pkPemObject = new PemObject("PUBLIC KEY", csr.getSubjectPublicKeyInfo().getEncoded()); pemWriter.writeObject(pkPemObject); pemWriter.close(); System.out.println(output.getBuffer()); // Extract the Public Key as "RSAKeyParameters" so you can use for // encryption/signing operations. RSAKeyParameters pubkey = (RSAKeyParameters)PublicKeyFactory.createKey(csr.getSubjectPublicKeyInfo());
/** * Loads a PEM file from the specified location. * * @param file Location of the file to load * * @return Content of the PEM file * * @throws IOException Thrown when cannot read the file */ public static byte[] loadPemFileAsBytes(final String file) throws IOException { final PemReader pemReader = new PemReader(new FileReader(file)); final PemObject pemObject = pemReader.readPemObject(); final byte[] content = pemObject.getContent(); logger.debug("Reading PEM file {}, type = {}", file, pemObject.getType()); pemReader.close(); return content; }
/** * Loads a PEM file from the specified location. * * @param file Location of the file to load * * @return Content of the PEM file * * @throws IOException Thrown when cannot read the file */ public static byte[] loadPemFileAsBytes(final String file) throws IOException { final PemReader pemReader = new PemReader(new FileReader(file)); final PemObject pemObject = pemReader.readPemObject(); final byte[] content = pemObject.getContent(); logger.debug("Reading PEM file {}, type = {}", file, pemObject.getType()); pemReader.close(); return content; }
publicKeyCertificateReader.close();
PemReader pr = new PemReader(sr); cr.holder = new X509CertificateHolder(pr.readPemObject().getContent()); pr.close();
PemReader pr = new PemReader(sr); cr.holder = new X509CertificateHolder(pr.readPemObject().getContent()); pr.close();