package org.bouncycastle.openssl.jcajce; import java.io.IOException; import java.io.Writer; import org.bouncycastle.openssl.PEMEncryptor; import org.bouncycastle.util.io.pem.PemGenerationException; import org.bouncycastle.util.io.pem.PemObjectGenerator; import org.bouncycastle.util.io.pem.PemWriter; /** * General purpose writer for OpenSSL PEM objects based on JCA/JCE classes. */ public class JcaPEMWriter extends PemWriter { /** * Base constructor. * * @param out output stream to use. */ public JcaPEMWriter(Writer out) { super(out); } /** * @throws java.io.IOException */ public void writeObject( Object obj) throws IOException { writeObject(obj, null); } /** * @param obj * @param encryptor * @throws java.io.IOException */ public void writeObject( Object obj, PEMEncryptor encryptor) throws IOException { try { super.writeObject(new JcaMiscPEMGenerator(obj, encryptor)); } catch (PemGenerationException e) { if (e.getCause() instanceof IOException) { throw (IOException)e.getCause(); } throw e; } } public void writeObject( PemObjectGenerator obj) throws IOException { super.writeObject(obj); } }