package org.bouncycastle.jce.provider; import org.bouncycastle.jcajce.provider.config.ConfigurableProvider; import org.bouncycastle.jce.spec.ECParameterSpec; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; public class ProviderUtil { private static final long MAX_MEMORY = Integer.MAX_VALUE; private static volatile ECParameterSpec ecImplicitCaParams; static void setParameter(String parameterName, Object parameter) { if (parameterName.equals(ConfigurableProvider.EC_IMPLICITLY_CA)) { if (parameter instanceof ECParameterSpec || parameter == null) { ecImplicitCaParams = (ECParameterSpec)parameter; } } } public static ECParameterSpec getEcImplicitlyCa() { return ecImplicitCaParams; } static int getReadLimit(InputStream in) throws IOException { if (in instanceof ByteArrayInputStream) { return in.available(); } if (MAX_MEMORY > Integer.MAX_VALUE) { return Integer.MAX_VALUE; } return (int)MAX_MEMORY; } }