package org.bouncycastle.jcajce; import java.io.OutputStream; import java.security.KeyStore; import java.security.KeyStore.LoadStoreParameter; import java.security.KeyStore.ProtectionParameter; /** * LoadStoreParameter to allow for additional config with PKCS12 files. * <p> * Note: if you want a straight DER encoding of a PKCS#12 file you should use this. * </p> */ public class PKCS12StoreParameter implements LoadStoreParameter { private final OutputStream out; private final ProtectionParameter protectionParameter; private final boolean forDEREncoding; public PKCS12StoreParameter(OutputStream out, char[] password) { this(out, password, false); } public PKCS12StoreParameter(OutputStream out, ProtectionParameter protectionParameter) { this(out, protectionParameter, false); } public PKCS12StoreParameter(OutputStream out, char[] password, boolean forDEREncoding) { this(out, new KeyStore.PasswordProtection(password), forDEREncoding); } public PKCS12StoreParameter(OutputStream out, ProtectionParameter protectionParameter, boolean forDEREncoding) { this.out = out; this.protectionParameter = protectionParameter; this.forDEREncoding = forDEREncoding; } public OutputStream getOutputStream() { return out; } public ProtectionParameter getProtectionParameter() { return protectionParameter; } /** * Return whether the KeyStore used with this parameter should be DER encoded on saving. * * @return true for straight DER encoding, false otherwise, */ public boolean isForDEREncoding() { return forDEREncoding; } }