org.spongycastle.openssl.PEMWriter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of scprov-jdk15 Show documentation
Show all versions of scprov-jdk15 Show documentation
Spongy Castle is a package-rename (org.bouncycastle.* to org.spongycastle.*) of Bouncy Castle intended for Android.
Android ships with a stripped-down version of Bouncy Castle - this causes classloader collisions if you try to add
an alternative (updated/complete) Bouncy Castle jar.
This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for JDK 1.5.
The newest version!
package org.spongycastle.openssl;
import java.io.IOException;
import java.io.Writer;
import java.security.NoSuchProviderException;
import java.security.SecureRandom;
import org.spongycastle.jce.provider.BouncyCastleProvider;
import org.spongycastle.util.io.pem.PemGenerationException;
import org.spongycastle.util.io.pem.PemObjectGenerator;
import org.spongycastle.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, BouncyCastleProvider.PROVIDER_NAME);
}
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);
}
}
}