Java tutorial
import java.security.Provider; import java.security.Security; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class Main { public static void main(String[] argv) throws Exception { Set result = new HashSet(); String serviceType = "KeyFactory"; Provider[] providers = Security.getProviders(); for (int i = 0; i < providers.length; i++) { Set keys = providers[i].keySet(); for (Iterator it = keys.iterator(); it.hasNext();) { String key = (String) it.next(); key = key.split(" ")[0]; if (key.startsWith(serviceType + ".")) { result.add(key.substring(serviceType.length() + 1)); } else if (key.startsWith("Alg.Alias." + serviceType + ".")) { result.add(key.substring(serviceType.length() + 11)); } } } System.out.println(result); } } [1.2.840.113549.1.3.1, OID.1.2.840.113549.1.1, 1.2.840.113549.1.1, OID.1.2.840.113549.1.3.1, 1.3.14.3.2.12, DSA, DiffieHellman, RSA, DH, 1.2.840.10040.4.1]