⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 providerutil.java

📁 kmlnjlkj nlkjlkjkljl okopokipoipo oipipipo i
💻 JAVA
字号:
package org.bouncycastle.jce.provider;import org.bouncycastle.jce.ProviderConfigurationPermission;import org.bouncycastle.jce.provider.asymmetric.ec.EC5Util;import org.bouncycastle.jce.interfaces.ConfigurableProvider;import org.bouncycastle.jce.spec.ECParameterSpec;import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.InputStream;import java.security.Permission;public class ProviderUtil{    private static final long  MAX_MEMORY = Runtime.getRuntime().maxMemory();    private static Permission BC_EC_LOCAL_PERMISSION = new ProviderConfigurationPermission(                                                   "BC", ConfigurableProvider.THREAD_LOCAL_EC_IMPLICITLY_CA);    private static Permission BC_EC_PERMISSION = new ProviderConfigurationPermission(                                                   "BC", ConfigurableProvider.EC_IMPLICITLY_CA);    private static ThreadLocal threadSpec = new ThreadLocal();    private static volatile ECParameterSpec ecImplicitCaParams;    static void setParameter(String parameterName, Object parameter)    {        SecurityManager securityManager = System.getSecurityManager();        if (parameterName.equals(ConfigurableProvider.THREAD_LOCAL_EC_IMPLICITLY_CA))        {            ECParameterSpec curveSpec;            if (securityManager != null)            {                securityManager.checkPermission(BC_EC_LOCAL_PERMISSION);            }            if (parameter instanceof ECParameterSpec || parameter == null)            {                curveSpec = (ECParameterSpec)parameter;            }            else  // assume java.security.spec            {                curveSpec = EC5Util.convertSpec((java.security.spec.ECParameterSpec)parameter, false);            }            if (curveSpec == null)            {                threadSpec.remove();            }            else            {                threadSpec.set(curveSpec);            }        }        else if (parameterName.equals(ConfigurableProvider.EC_IMPLICITLY_CA))        {            if (securityManager != null)            {                securityManager.checkPermission(BC_EC_PERMISSION);            }            if (parameter instanceof ECParameterSpec || parameter == null)            {                ecImplicitCaParams = (ECParameterSpec)parameter;            }            else  // assume java.security.spec            {                ecImplicitCaParams = EC5Util.convertSpec((java.security.spec.ECParameterSpec)parameter, false);            }        }    }    public static ECParameterSpec getEcImplicitlyCa()    {        ECParameterSpec spec = (ECParameterSpec)threadSpec.get();        if (spec != null)        {            return spec;        }        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;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -