TreeSet<String> algorithms = new TreeSet<>(); for (Provider provider : Security.getProviders()) for (Service service : provider.getServices()) if (service.getType().equals("Signature")) algorithms.add(service.getAlgorithm()); for (String algorithm : algorithms) System.out.println(algorithm);
TreeSet<String> ciphers = new TreeSet<>(); for (Provider provider : Security.getProviders()) for (Service service : provider.getServices()) if (service.getType().equals("Cipher")) ciphers.add(service.getAlgorithm()); for (String cipher : ciphers) System.out.println(cipher);
static public void listAlgorithms( String algFilter ){ java.security.Provider[] providers = java.security.Security.getProviders(); for ( java.security.Provider p : providers ){ String providerStr = String.format( "%s/%s/%f\n", p.getName(), p.getInfo(), p.getVersion() ); mLog.debug( providerStr ); Set< Service > services = p.getServices(); List< String > algs = new ArrayList<>(); for ( Service s : services ){ boolean match = true; if ( algFilter != null ){ match = s.getAlgorithm().toLowerCase().contains( algFilter.toLowerCase() ); } if ( match ){ String algStr = String.format( "\t%s/%s/%s", s.getType(), s.getAlgorithm(), s.getClassName() ); algs.add( algStr ); } } Collections.sort( algs ); for ( String alg : algs ) mLog.debug( "\t" + alg ); mLog.debug( "" ); } }//listAlgorithms
Provider[] providers = Security.getProviders(); for (Provider p : providers) { String providerStr = String.format("%s/%s/%f\n", p.getName(), p.getInfo(), p.getVersion()); Set<Service> services = p.getServices(); for (Service s : services) { if ("MessageDigest".equals(s.getType())) { System.out.printf("\t%s/%s/%s", s.getType(), s.getAlgorithm(), s.getClassName()); } } }