1 package org.bouncycastle.jcajce.provider.config;
2 
3 import java.util.Map;
4 
5 import org.bouncycastle.asn1.ASN1ObjectIdentifier;
6 import org.bouncycastle.jcajce.provider.util.AsymmetricKeyInfoConverter;
7 
8 /**
9  * Implemented by the BC provider. This allows setting of hidden parameters,
10  * such as the ImplicitCA parameters from X.962, if used.
11  */
12 public interface ConfigurableProvider
13 {
14     /**
15      * Elliptic Curve CA parameters - thread local version
16      */
17     static final String THREAD_LOCAL_EC_IMPLICITLY_CA = "threadLocalEcImplicitlyCa";
18 
19     /**
20      * Elliptic Curve CA parameters - VM wide version
21      */
22     static final String EC_IMPLICITLY_CA = "ecImplicitlyCa";
23 
24     /**
25      * Diffie-Hellman Default Parameters - thread local version
26      */
27     static final String THREAD_LOCAL_DH_DEFAULT_PARAMS = "threadLocalDhDefaultParams";
28 
29     /**
30      * Diffie-Hellman Default Parameters - VM wide version
31      */
32     static final String DH_DEFAULT_PARAMS = "DhDefaultParams";
33 
34     /**
35      * A set of OBJECT IDENTIFIERs representing acceptable named curves for imported keys.
36      */
37     static final String ACCEPTABLE_EC_CURVES = "acceptableEcCurves";
38 
39     /**
40      * A set of OBJECT IDENTIFIERs to EC Curves providing local curve name mapping.
41      */
42     static final String ADDITIONAL_EC_PARAMETERS = "additionalEcParameters";
43 
setParameter(String parameterName, Object parameter)44     void setParameter(String parameterName, Object parameter);
45 
addAlgorithm(String key, String value)46     void addAlgorithm(String key, String value);
47 
addAlgorithm(String type, ASN1ObjectIdentifier oid, String className)48     void addAlgorithm(String type, ASN1ObjectIdentifier oid, String className);
49 
hasAlgorithm(String type, String name)50     boolean hasAlgorithm(String type, String name);
51 
addKeyInfoConverter(ASN1ObjectIdentifier oid, AsymmetricKeyInfoConverter keyInfoConverter)52     void addKeyInfoConverter(ASN1ObjectIdentifier oid, AsymmetricKeyInfoConverter keyInfoConverter);
53 
getKeyInfoConverter(ASN1ObjectIdentifier oid)54     AsymmetricKeyInfoConverter getKeyInfoConverter(ASN1ObjectIdentifier oid);
55 
addAttributes(String key, Map<String, String> attributeMap)56     void addAttributes(String key, Map<String, String> attributeMap);
57 }
58