![JAR search and dependency download from the Maven repository](/logo.png)
common.crypto.SystemProvider Maven / Gradle / Ivy
package com.unbound.common.crypto;
import java.security.*;
import java.util.ArrayList;
import java.util.concurrent.ConcurrentHashMap;
public final class SystemProvider
{
private SystemProvider()
{
}
private static ArrayList providers = new ArrayList<>();
private static void addProvider(String name)
{
providers.add(Security.getProvider(name));
}
static
{
addProvider("SUN");
addProvider("SunEC");
addProvider("SunJCE");
addProvider("SunRsaSign");
addProvider("SunJSSE");
addProvider("IBMJCE");
addProvider("IBMJSSE2");
}
static public abstract class Base
{
private ConcurrentHashMap map = new ConcurrentHashMap<>();
protected abstract T getInstance(String alg, Provider provider) throws Exception;
public T getInstance(String alg)
{
Provider provider = map.get(alg);
if (provider == null)
{
for (Provider p : providers)
{
try
{
T result = getInstance(alg, p);
if (result != null)
{
map.put(alg, p);
return result;
}
}
catch (Exception ignored)
{
}
}
}
try
{
T result = getInstance(alg, provider);
if (result != null) return result;
}
catch (Exception ignored)
{
}
throw new ProviderException("Provider not found for " + alg);
}
}
public static final Base Cipher = new Base()
{
protected javax.crypto.Cipher getInstance(String alg, Provider provider) throws Exception
{
return javax.crypto.Cipher.getInstance(alg, provider);
}
};
public static final Base Signature = new Base()
{
protected java.security.Signature getInstance(String alg, Provider provider) throws Exception
{
return java.security.Signature.getInstance(alg, provider);
}
};
public static final Base MessageDigest = new Base()
{
protected java.security.MessageDigest getInstance(String alg, Provider provider) throws Exception
{
return java.security.MessageDigest.getInstance(alg, provider);
}
};
public static final Base Mac = new Base()
{
protected javax.crypto.Mac getInstance(String alg, Provider provider) throws Exception
{
return javax.crypto.Mac.getInstance(alg, provider);
}
};
public static final Base KeyFactory = new Base()
{
protected java.security.KeyFactory getInstance(String alg, Provider provider) throws Exception
{
return java.security.KeyFactory.getInstance(alg, provider);
}
};
public static final Base KeyAgreement = new Base()
{
protected javax.crypto.KeyAgreement getInstance(String alg, Provider provider) throws Exception
{
return javax.crypto.KeyAgreement.getInstance(alg, provider);
}
};
public static final Base KeyPairGenerator = new Base()
{
protected java.security.KeyPairGenerator getInstance(String alg, Provider provider) throws Exception
{
return java.security.KeyPairGenerator.getInstance(alg, provider);
}
};
public static final Base KeyStore = new Base()
{
protected java.security.KeyStore getInstance(String alg, Provider provider) throws Exception
{
return java.security.KeyStore.getInstance(alg, provider);
}
};
/*
public static final Base AlgorithmParameters = new Base()
{
protected java.security.AlgorithmParameters getInstance(String alg, Provider provider) throws Exception
{ return java.security.AlgorithmParameters.getInstance(alg, provider); }
};
*/
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy