1a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrompackage org.bouncycastle.jcajce.provider.config;
2a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom
3a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstromimport java.io.OutputStream;
4a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstromimport java.security.KeyStore;
5a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstromimport java.security.KeyStore.LoadStoreParameter;
6a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstromimport java.security.KeyStore.ProtectionParameter;
7a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom
8a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrompublic class PKCS12StoreParameter
9a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    implements LoadStoreParameter
10a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom{
11a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    private final OutputStream out;
12a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    private final ProtectionParameter protectionParameter;
13a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    private final boolean forDEREncoding;
14a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom
15a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    public PKCS12StoreParameter(OutputStream out, char[] password)
16a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    {
17a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom        this(out, password, false);
18a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    }
19a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom
20a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    public PKCS12StoreParameter(OutputStream out, ProtectionParameter protectionParameter)
21a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    {
22a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom        this(out, protectionParameter, false);
23a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    }
24a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom
25a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    public PKCS12StoreParameter(OutputStream out, char[] password, boolean forDEREncoding)
26a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    {
27a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom        this(out, new KeyStore.PasswordProtection(password), forDEREncoding);
28a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    }
29a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom
30a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    public PKCS12StoreParameter(OutputStream out, ProtectionParameter protectionParameter, boolean forDEREncoding)
31a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    {
32a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom        this.out = out;
33a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom        this.protectionParameter = protectionParameter;
34a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom        this.forDEREncoding = forDEREncoding;
35a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    }
36a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom
37a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    public OutputStream getOutputStream()
38a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    {
39a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom        return out;
40a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    }
41a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom
42a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    public ProtectionParameter getProtectionParameter()
43a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    {
44a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom        return protectionParameter;
45a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    }
46a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom
47a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    public boolean isForDEREncoding()
48a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    {
49a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom        return forDEREncoding;
50a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom    }
51a198e1ecc615e26a167d0f2dca9fa7e5fc62de10Brian Carlstrom}
52