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();
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("Alg.Alias.")) {
// Strip the alias
key = key.substring(10);
}
int ix = key.indexOf('.');
result.add(key.substring(0, ix));
}
}
System.out.println(result);
}
}
[KeyFactory,
TransformService,
CertPathBuilder,
Cipher,
SecureRandom,
Signature,
AlgorithmParameterGenerator,
KeyPairGenerator,
XMLSignatureFactory,
CertificateFactory,
MessageDigest,
KeyInfoFactory,
KeyAgreement,
CertStore,
Configuration,
SSLContext,
SaslServerFactory,
AlgorithmParameters,
TrustManagerFactory,
GssApiMechanism,
TerminalFactory,
Mac,
KeyGenerator,
Policy,
CertPathValidator,
SaslClientFactory,
SecretKeyFactory,
KeyManagerFactory,
KeyStore,
Provider]