private static PrivateKey getRSAPrivateKeyFrom(String content) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException { PemReader reader = new PemReader(new StringReader(content)); PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(reader.readPemObject().getContent()); return KeyFactory.getInstance("RSA").generatePrivate(spec); }
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; }
Optional<PublicKey> fromPEM(Optional<String> pemKey) { return pemKey .map(k -> new PEMParser(new PemReader(new StringReader(k)))) .flatMap(this::publicKeyFrom); }
public PemObject readPemObject() throws IOException { String line = readLine(); while (line != null && !line.startsWith(BEGIN)) { line = readLine(); } if (line != null) { line = line.substring(BEGIN.length()); int index = line.indexOf('-'); String type = line.substring(0, index); if (index > 0) { return loadObject(type); } } return null; }
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 PrivateKey loadPrivateKey(File keyFile) { PemObject privateKeyObject; try ( PemReader pemReader = new PemReader( new InputStreamReader( new FileInputStream(keyFile) ) ) ) { //TODO add loader return null; } catch (IOException e) { throw new RuntimeException(e); } }
/** * Read the next PEM object as a blob of raw data with header information. * * @return the next object in the stream, null if no objects left. * @throws IOException in case of a parse error. */ public PemObject readPemObject() throws IOException { String line = readLine(); while (line != null && !line.startsWith(BEGIN)) { line = readLine(); } if (line != null) { line = line.substring(BEGIN.length()); int index = line.indexOf('-'); String type = line.substring(0, index); if (index > 0) { return loadObject(type); } } return null; }
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 PublicKey getRSAPublicKeyFrom(String content) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException { PemReader reader = new PemReader(new StringReader(content)); EncodedKeySpec spec = new X509EncodedKeySpec(reader.readPemObject().getContent()); return KeyFactory.getInstance("RSA").generatePublic(spec); }
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(); } } }
InputStream is = resource.getInputStream(); PemObject pemObject = new PemReader(new InputStreamReader( is )).readPemObject(); return pemObject;
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(); } } } }
public X509Certificate[] loadCertificates( File certFile ) throws CertificateException, IOException { CertificateFactory certFactory = CertificateFactory.getInstance( CERTIFICATE_TYPE ); Collection<X509Certificate> certificates = new LinkedList<>(); try ( PemReader r = new PemReader( new FileReader( certFile ) ) ) { for ( PemObject pemObject = r.readPemObject(); pemObject != null; pemObject = r.readPemObject() ) { byte[] encodedCert = pemObject.getContent(); Collection<? extends X509Certificate> loadedCertificates = (Collection<X509Certificate>) certFactory.generateCertificates( new ByteArrayInputStream( encodedCert ) ); certificates.addAll( loadedCertificates ); } } if ( certificates.size() == 0 ) { // Ok, failed to read as PEM file, try and read it as raw binary certificate try ( FileInputStream in = new FileInputStream( certFile ) ) { certificates = (Collection<X509Certificate>) certFactory.generateCertificates( in ); } } return certificates.toArray( new X509Certificate[certificates.size()] ); }
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; }
public static Registration fromJson(String json) { Map map = GSON.fromJson(json, Map.class); if (map.isEmpty()) { return Registration.createNullPrivateKeyEntry(); } List<X509Certificate> chain = new ArrayList<>(); try { PemReader reader = new PemReader(new StringReader((String) map.get("agentPrivateKey"))); KeyFactory kf = KeyFactory.getInstance("RSA"); PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(reader.readPemObject().getContent()); PrivateKey privateKey = kf.generatePrivate(spec); String agentCertificate = (String) map.get("agentCertificate"); PemReader certReader = new PemReader(new StringReader(agentCertificate)); while (true) { PemObject obj = certReader.readPemObject(); if (obj == null) { break; } chain.add((X509Certificate) CertificateFactory.getInstance("X.509").generateCertificate(new ByteArrayInputStream(obj.getContent()))); } return new Registration(privateKey, chain.toArray(new X509Certificate[0])); } catch (IOException | NoSuchAlgorithmException | CertificateException | InvalidKeySpecException e) { throw bomb(e); } }
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; } }
InvalidKeySpecException try ( PemReader r = new PemReader( new FileReader( privateKeyFile ) ) ) PemObject pemObject = r.readPemObject(); if ( pemObject != null )
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(); } } }
PemReader pemReader = new PemReader(new StringReader(encodedKey)); PemObject pem = pemReader.readPemObject(); X509EncodedKeySpec keySpec = new X509EncodedKeySpec(pem.getContent()); pub = (RSAPublicKey) KeyFactory.getInstance(algorithm).generatePublic(keySpec);
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; } }