private void writePem( String type, byte[] encodedContent, File path ) throws IOException { path.getParentFile().mkdirs(); try ( PemWriter writer = new PemWriter( new FileWriter( path ) ) ) { writer.writeObject( new PemObject( type, encodedContent ) ); writer.flush(); } path.setReadable( false, false ); path.setWritable( false, false ); path.setReadable( true ); path.setWritable( true ); } }
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 String serialize(String type, byte[] data) { PemObject obj = new PemObject(type, data); StringWriter out = new StringWriter(); PemWriter writer = new PemWriter(out); try { writer.writeObject(obj); } catch (IOException e) { throw bomb(e); } finally { IOUtils.closeQuietly(writer); } return out.toString(); } }
try { StringWriter writer = new StringWriter(); PemWriter pemWriter = new PemWriter(writer); pemWriter.writeObject(new PemObject("PUBLIC KEY", keyPair.getPublic().getEncoded())); pemWriter.flush(); pemWriter.close(); pubkey_pem = writer.toString(); try { StringWriter writer = new StringWriter(); PemWriter pemWriter = new PemWriter(writer); pemWriter.writeObject(new PemObject("PRIVATE KEY", keyPair.getPrivate().getEncoded())); pemWriter.flush(); pemWriter.close(); privkey_pem = writer.toString(); PemReader pemReader = new PemReader(new StringReader(encodedKey)); PemObject pem = pemReader.readPemObject(); X509EncodedKeySpec keySpec = new X509EncodedKeySpec(pem.getContent()); pub = (RSAPublicKey) KeyFactory.getInstance(algorithm).generatePublic(keySpec); } catch (Exception e) { try { StringWriter writer = new StringWriter(); PemWriter pemWriter = new PemWriter(writer); pemWriter.writeObject(new PemObject("PUBLIC KEY", pub.getEncoded())); pemWriter.flush(); pemWriter.close(); pubkey_pem = writer.toString();
public static String pemEncodeJcaObject(Object object) throws IOException { StringWriter writer = new StringWriter(); try (PemWriter pemWriter = new PemWriter(writer)) { pemWriter.writeObject(new JcaMiscPEMGenerator(object)); } return writer.toString(); }
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; }
private void buildCRL(X509Certificate x509Certificate, String crlPath) throws Exception { X509v2CRLBuilder builder = new JcaX509v2CRLBuilder(x509Certificate.getIssuerX500Principal(), certStartTime); builder.addCRLEntry(x509Certificate.getSerialNumber(), certStartTime, CRLReason.cACompromise); builder.setNextUpdate(certEndTime); builder.addExtension(Extension.authorityKeyIdentifier, false, new JcaX509ExtensionUtils() .createAuthorityKeyIdentifier(rootCertificate)); builder.addExtension(Extension.cRLNumber, false, new CRLNumber(new BigInteger("1000"))); X509CRLHolder cRLHolder = builder.build(contentSigner); PemWriter pemWriter = new PemWriter(new FileWriter(crlPath)); pemWriter.writeObject(new MiscPEMGenerator(cRLHolder)); pemWriter.flush(); pemWriter.close(); }
PemWriter pemWriter = new PemWriter(string); pemWriter.writeObject(objGen); pemWriter.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); }
public static String publicKeyToPem(final PublicKey key) throws IOException { final PemObject pemObject = new PemObject("PUBLIC KEY", key.getEncoded()); final StringWriter sw = new StringWriter(); try (final PemWriter pw = new PemWriter(sw)) { pw.writeObject(pemObject); } return sw.toString(); }
/** * Generates a PEM representation of the input argument. * * @param object the input argument (cannot be null). * @return PEM representation of the input argument. * @throws IOException When a PEM representation of the input could not be created. */ public static String toPemRepresentation( Object object ) throws IOException { final StringWriter result = new StringWriter(); try ( final PemWriter pemWriter = new PemWriter(result) ) { final PemObjectGenerator objGen = new JcaMiscPEMGenerator ( object ); pemWriter.writeObject( objGen ); } return result.toString(); }
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()] ); }
public static String privateKeyToPem(final PrivateKey key) throws IOException { final PemObject pemObject = new PemObject("PRIVATE KEY", key.getEncoded()); final StringWriter sw = new StringWriter(); try (final PemWriter pw = new PemWriter(sw)) { pw.writeObject(pemObject); } return sw.toString(); }
try (OutputStream outputStream = outputStreamFactory.create(new File(certificateAuthorityDirectory, TlsHelper.escapeFilename(alias) + ".pem")); OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream); PemWriter pemWriter = new PemWriter(outputStreamWriter)) { pemWriter.writeObject(new JcaMiscPEMGenerator(trustedCertificate));
InvalidKeySpecException try ( PemReader r = new PemReader( new FileReader( privateKeyFile ) ) ) PemObject pemObject = r.readPemObject(); if ( pemObject != null ) byte[] encodedKey = pemObject.getContent(); KeySpec keySpec = new PKCS8EncodedKeySpec( encodedKey ); try
caKeyPair = new KeyPair(certificate.getPublicKey(), privateKeyEntry.getPrivateKey()); try (PemWriter pemWriter = new PemWriter(new OutputStreamWriter(outputStreamFactory.create(nifiCert)))) { pemWriter.writeObject(new JcaMiscPEMGenerator(certificate)); try (PemWriter pemWriter = new PemWriter(new OutputStreamWriter(outputStreamFactory.create(nifiKey)))) { pemWriter.writeObject(new JcaMiscPEMGenerator(caKeyPair));
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); } }
public byte[] certificateToDER(String certificatePEM) { byte[] content = null; try (PemReader pemReader = new PemReader(new StringReader(certificatePEM))) { final PemObject pemObject = pemReader.readPemObject(); content = pemObject.getContent(); } catch (IOException e) { // best attempt } return content; }
private byte[] convertPemToDer(String pem) throws IOException { PemReader pemReader = new PemReader(new StringReader(pem)); return pemReader.readPemObject().getContent(); }
public static PrivateKey pemToPrivateKey(final String pem) throws InvalidKeySpecException, IOException { final PemReader pr = new PemReader(new StringReader(pem)); final PemObject pemObject = pr.readPemObject(); final KeyFactory keyFactory = getKeyFactory(); return keyFactory.generatePrivate(new PKCS8EncodedKeySpec(pemObject.getContent())); }