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 addAttributes(String key, Map<String, String> attributeMap)54 void addAttributes(String key, Map<String, String> attributeMap); 55 } 56