blob: 834252f0945976723a5d098771613727be929ea1 [file] [log] [blame]
package org.bouncycastle.openssl;
import java.io.IOException;
import java.io.Writer;
import java.security.NoSuchProviderException;
import java.security.SecureRandom;
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.
*/
public class PEMWriter
extends PemWriter
{
private String provider;
/**
* Base constructor.
*
* @param out output stream to use.
*/
public PEMWriter(Writer out)
{
this(out, "BC");
}
public PEMWriter(
Writer out,
String provider)
{
super(out);
this.provider = provider;
}
public void writeObject(
Object obj)
throws IOException
{
try
{
super.writeObject(new MiscPEMGenerator(obj));
}
catch (PemGenerationException e)
{
if (e.getCause() instanceof IOException)
{
throw (IOException)e.getCause();
}
throw e;
}
}
public void writeObject(
PemObjectGenerator obj)
throws IOException
{
super.writeObject(obj);
}
public void writeObject(
Object obj,
String algorithm,
char[] password,
SecureRandom random)
throws IOException
{
try
{
super.writeObject(new MiscPEMGenerator(obj, algorithm, password, random, provider));
}
catch (NoSuchProviderException e)
{
throw new EncryptionException(e.getMessage(), e);
}
}
}