package org.bouncycastle.jcajce;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.KeyStore;
public class BCLoadStoreParameter
implements KeyStore.LoadStoreParameter
{
private final InputStream in;
private final OutputStream out;
private final KeyStore.ProtectionParameter protectionParameter;
public BCLoadStoreParameter(OutputStream out, char[] password)
{
this(out, new KeyStore.PasswordProtection(password));
}
public BCLoadStoreParameter(InputStream in, char[] password)
{
this(in, new KeyStore.PasswordProtection(password));
}
public BCLoadStoreParameter(InputStream in, KeyStore.ProtectionParameter protectionParameter)
{
this(in, null, protectionParameter);
}
public BCLoadStoreParameter(OutputStream out, KeyStore.ProtectionParameter protectionParameter)
{
this(null, out, protectionParameter);
}
BCLoadStoreParameter(InputStream in, OutputStream out, KeyStore.ProtectionParameter protectionParameter)
{
this.in = in;
this.out = out;
this.protectionParameter = protectionParameter;
}
public KeyStore.ProtectionParameter getProtectionParameter()
{
return protectionParameter;
}
public OutputStream getOutputStream()
{
if (out == null)
{
throw new UnsupportedOperationException("parameter not configured for storage - no OutputStream");
}
return out;
}
public InputStream getInputStream()
{
if (out != null)
{
throw new UnsupportedOperationException("parameter configured for storage OutputStream present");
}
return in;
}
}